aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-12-29 21:41:54 +0000
committerrsc <devnull@localhost>2005-12-29 21:41:54 +0000
commit3d484b0d1a2a49113683f40a66a7fc4c1bebcda1 (patch)
treea84c94062c51c5dd49f139cb712a24cc70728b33
parentadeb5ac9eb03ba6da8f8c175fbaf3621523e2837 (diff)
downloadplan9port-3d484b0d1a2a49113683f40a66a7fc4c1bebcda1.tar.gz
plan9port-3d484b0d1a2a49113683f40a66a7fc4c1bebcda1.tar.bz2
plan9port-3d484b0d1a2a49113683f40a66a7fc4c1bebcda1.zip
set qid.vers (Erik Quanstrom)
-rw-r--r--src/lib9/_p9dir.c4
-rw-r--r--src/lib9/dial.c16
-rw-r--r--src/lib9/fmt/fmtfd.c2
-rw-r--r--src/lib9/fmt/fmtfdflush.c2
-rw-r--r--src/lib9/fmt/runevsmprint.c6
-rw-r--r--src/lib9/fmt/sprint.c2
-rw-r--r--src/lib9/fmt/vsmprint.c6
7 files changed, 21 insertions, 17 deletions
diff --git a/src/lib9/_p9dir.c b/src/lib9/_p9dir.c
index 25e6394b..2028c1ad 100644
--- a/src/lib9/_p9dir.c
+++ b/src/lib9/_p9dir.c
@@ -64,7 +64,7 @@ disksize(int fd, int dev)
return u64;
#endif
if(ioctl(fd, BLKGETSIZE, &l) >= 0)
- return (vlong)l*512;
+ return l*512;
if(ioctl(fd, HDIO_GETGEO, &geo) >= 0)
return (vlong)geo.heads*geo.sectors*geo.cylinders*512;
return 0;
@@ -173,6 +173,8 @@ _p9dir(struct stat *lst, struct stat *st, char *name, Dir *d, char **str, char *
#ifdef _HAVESTGEN
d->qid.vers = st->st_gen;
#endif
+ if(d->qid.vers == 0)
+ d->qid.vers = st->st_mtime + st->st_ctime;
d->mode = st->st_mode&0777;
d->atime = st->st_atime;
d->mtime = st->st_mtime;
diff --git a/src/lib9/dial.c b/src/lib9/dial.c
index da9019ae..dcbdc0b8 100644
--- a/src/lib9/dial.c
+++ b/src/lib9/dial.c
@@ -60,10 +60,6 @@ p9dial(char *addr, char *local, char *dummy2, int *dummy3)
}
free(buf);
- memset(&sa, 0, sizeof sa);
- memmove(&sa.sin_addr, &host, 4);
- sa.sin_family = AF_INET;
- sa.sin_port = htons(port);
if((s = socket(AF_INET, proto, 0)) < 0)
return -1;
@@ -100,9 +96,15 @@ p9dial(char *addr, char *local, char *dummy2, int *dummy3)
n = 1;
setsockopt(s, SOL_SOCKET, SO_BROADCAST, &n, sizeof n);
- if(connect(s, (struct sockaddr*)&sa, sizeof sa) < 0){
- close(s);
- return -1;
+ if(host != 0){
+ memset(&sa, 0, sizeof sa);
+ memmove(&sa.sin_addr, &host, 4);
+ sa.sin_family = AF_INET;
+ sa.sin_port = htons(port);
+ if(connect(s, (struct sockaddr*)&sa, sizeof sa) < 0){
+ close(s);
+ return -1;
+ }
}
if(proto == SOCK_STREAM){
int one = 1;
diff --git a/src/lib9/fmt/fmtfd.c b/src/lib9/fmt/fmtfd.c
index d15be926..9f35f02a 100644
--- a/src/lib9/fmt/fmtfd.c
+++ b/src/lib9/fmt/fmtfd.c
@@ -40,7 +40,7 @@ fmtfdinit(Fmt *f, int fd, char *buf, int size)
f->to = buf;
f->stop = buf + size;
f->flush = __fmtFdFlush;
- f->farg = (void*)fd;
+ f->farg = (void*)(uintptr_t)fd;
f->nfmt = 0;
return 0;
}
diff --git a/src/lib9/fmt/fmtfdflush.c b/src/lib9/fmt/fmtfdflush.c
index b7970073..b615416a 100644
--- a/src/lib9/fmt/fmtfdflush.c
+++ b/src/lib9/fmt/fmtfdflush.c
@@ -27,7 +27,7 @@ __fmtFdFlush(Fmt *f)
int n;
n = (char*)f->to - (char*)f->start;
- if(n && write((int)f->farg, f->start, n) != n)
+ if(n && write((uintptr)f->farg, f->start, n) != n)
return 0;
f->to = f->start;
return 1;
diff --git a/src/lib9/fmt/runevsmprint.c b/src/lib9/fmt/runevsmprint.c
index 19a4654d..f83dce29 100644
--- a/src/lib9/fmt/runevsmprint.c
+++ b/src/lib9/fmt/runevsmprint.c
@@ -36,7 +36,7 @@ runeFmtStrFlush(Fmt *f)
if(f->start == nil)
return 0;
- n = (int)f->farg;
+ n = (uintptr)f->farg;
n *= 2;
s = (Rune*)f->start;
f->start = realloc(s, sizeof(Rune)*n);
@@ -47,7 +47,7 @@ runeFmtStrFlush(Fmt *f)
free(s);
return 0;
}
- f->farg = (void*)n;
+ f->farg = (void*)(uintptr)n;
f->to = (Rune*)f->start + ((Rune*)f->to - s);
f->stop = (Rune*)f->start + n - 1;
return 1;
@@ -67,7 +67,7 @@ runefmtstrinit(Fmt *f)
f->to = f->start;
f->stop = (Rune*)f->start + n - 1;
f->flush = runeFmtStrFlush;
- f->farg = (void*)n;
+ f->farg = (void*)(uintptr)n;
f->nfmt = 0;
return 0;
}
diff --git a/src/lib9/fmt/sprint.c b/src/lib9/fmt/sprint.c
index ba60228a..1ab5ce62 100644
--- a/src/lib9/fmt/sprint.c
+++ b/src/lib9/fmt/sprint.c
@@ -30,7 +30,7 @@ sprint(char *buf, char *fmt, ...)
* we must be sure not to overflow a 32-bit pointer.
*/
if(buf+len < buf)
- len = -(uint)buf-1;
+ len = -(uintptr)buf-1;
va_start(args, fmt);
n = vsnprint(buf, len, fmt, args);
diff --git a/src/lib9/fmt/vsmprint.c b/src/lib9/fmt/vsmprint.c
index 99cd0e32..6f493733 100644
--- a/src/lib9/fmt/vsmprint.c
+++ b/src/lib9/fmt/vsmprint.c
@@ -36,7 +36,7 @@ fmtStrFlush(Fmt *f)
if(f->start == nil)
return 0;
- n = (int)f->farg;
+ n = (uintptr)f->farg;
n *= 2;
s = (char*)f->start;
f->start = realloc(s, n);
@@ -47,7 +47,7 @@ fmtStrFlush(Fmt *f)
free(s);
return 0;
}
- f->farg = (void*)n;
+ f->farg = (void*)(uintptr)n;
f->to = (char*)f->start + ((char*)f->to - s);
f->stop = (char*)f->start + n - 1;
return 1;
@@ -67,7 +67,7 @@ fmtstrinit(Fmt *f)
f->to = f->start;
f->stop = (char*)f->start + n - 1;
f->flush = fmtStrFlush;
- f->farg = (void*)n;
+ f->farg = (void*)(uintptr)n;
f->nfmt = 0;
return 0;
}