From 3d484b0d1a2a49113683f40a66a7fc4c1bebcda1 Mon Sep 17 00:00:00 2001 From: rsc Date: Thu, 29 Dec 2005 21:41:54 +0000 Subject: set qid.vers (Erik Quanstrom) --- src/lib9/_p9dir.c | 4 +++- src/lib9/dial.c | 16 +++++++++------- src/lib9/fmt/fmtfd.c | 2 +- src/lib9/fmt/fmtfdflush.c | 2 +- src/lib9/fmt/runevsmprint.c | 6 +++--- src/lib9/fmt/sprint.c | 2 +- src/lib9/fmt/vsmprint.c | 6 +++--- 7 files changed, 21 insertions(+), 17 deletions(-) (limited to 'src/lib9') 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; } -- cgit v1.2.3