diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-04-24 06:57:02 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-04-24 06:57:02 +0200 |
commit | 8562240e8c0222a2bf5f666218cbce01bfae0f62 (patch) | |
tree | 577e4ceea38d2d59185b0c085ab47c05e7c28aba | |
parent | 7e4d9a4bfa2148c07930dd45b4e7d3071ff6180e (diff) |
fix more fd <= 0 bugs
-rw-r--r-- | sys/src/cmd/aux/gps/gpsfs.c | 32 | ||||
-rw-r--r-- | sys/src/cmd/aux/gps/util.c | 8 | ||||
-rw-r--r-- | sys/src/cmd/ndb/dnresolve.c | 12 | ||||
-rw-r--r-- | sys/src/cmd/sam/mesg.c | 7 |
4 files changed, 15 insertions, 44 deletions
diff --git a/sys/src/cmd/aux/gps/gpsfs.c b/sys/src/cmd/aux/gps/gpsfs.c index 62b3073a0..f02be2db9 100644 --- a/sys/src/cmd/aux/gps/gpsfs.c +++ b/sys/src/cmd/aux/gps/gpsfs.c @@ -126,6 +126,7 @@ void setline(void); int getonechar(vlong*); void getline(char*, int, vlong*); void putline(char*); +void rtcset(long t); int gettime(Fix*); int getzulu(char *, Fix*); int getalt(char*, char*, Fix*); @@ -570,37 +571,6 @@ readraw(Req *r) return nil; } -void -rtcset(long t) -{ - static int fd; - long r; - int n; - char buf[32]; - - if(fd <= 0 && (fd = open("#r/rtc", ORDWR)) < 0){ - fprint(2, "Can't open #r/rtc: %r\n"); - return; - } - n = read(fd, buf, sizeof buf - 1); - if(n <= 0){ - fprint(2, "Can't read #r/rtc: %r\n"); - return; - } - buf[n] = '\0'; - r = strtol(buf, nil, 0); - if(r <= 0){ - fprint(2, "ridiculous #r/rtc: %ld\n", r); - return; - } - if(r - t > 1 || t - r > 0){ - seek(fd, 0, 0); - fprint(fd, "%ld", t); - fprint(2, "correcting #r/rtc: %ld → %ld\n", r, t); - } - seek(fd, 0, 0); -} - int gettime(Fix *f){ /* Convert zulu time and date to Plan9 time(2) */ diff --git a/sys/src/cmd/aux/gps/util.c b/sys/src/cmd/aux/gps/util.c index 44ae03da9..799a7beb1 100644 --- a/sys/src/cmd/aux/gps/util.c +++ b/sys/src/cmd/aux/gps/util.c @@ -142,15 +142,15 @@ strtopos(char *p, char **ep) return pl; } -static void -rtcset(long t) /* We may use this some day */ +void +rtcset(long t) { - static int fd; + static int fd = -1; long r; int n; char buf[32]; - if(fd <= 0 && (fd = open("#r/rtc", ORDWR)) < 0){ + if(fd < 0 && (fd = open("#r/rtc", ORDWR)) < 0){ fprint(2, "Can't open #r/rtc: %r\n"); return; } diff --git a/sys/src/cmd/ndb/dnresolve.c b/sys/src/cmd/ndb/dnresolve.c index bcdd69d5f..f5954a992 100644 --- a/sys/src/cmd/ndb/dnresolve.c +++ b/sys/src/cmd/ndb/dnresolve.c @@ -265,9 +265,9 @@ querydestroy(Query *qp) { queryck(qp); /* leave udpfd open */ - if (qp->tcpfd > 0) + if (qp->tcpfd >= 0) close(qp->tcpfd); - if (qp->tcpctlfd > 0) { + if (qp->tcpctlfd >= 0) { hangup(qp->tcpctlfd); close(qp->tcpctlfd); } @@ -666,7 +666,7 @@ readnet(Query *qp, int medium, uchar *ibuf, uvlong endms, uchar **replyp, memset(srcip, 0, IPaddrlen); alarm(ms); if (medium == Udp) - if (qp->udpfd <= 0) + if (qp->udpfd < 0) dnslog("readnet: qp->udpfd closed"); else { len = read(qp->udpfd, ibuf, Udphdrsize+Maxudpin); @@ -683,7 +683,7 @@ readnet(Query *qp, int medium, uchar *ibuf, uvlong endms, uchar **replyp, if (!qp->tcpset) dnslog("readnet: tcp params not set"); fd = qp->tcpfd; - if (fd <= 0) + if (fd < 0) dnslog("readnet: %s: tcp fd unset for dest %I", qp->dp->name, qp->tcpip); else if (readn(fd, lenbuf, 2) != 2) { @@ -1003,7 +1003,7 @@ mydnsquery(Query *qp, int medium, uchar *udppkt, int len) } close(nfd); - if (qp->udpfd <= 0) + if (qp->udpfd < 0) dnslog("mydnsquery: qp->udpfd %d closed", qp->udpfd); else { if (write(qp->udpfd, udppkt, len+Udphdrsize) != @@ -1353,7 +1353,7 @@ tcpquery(Query *qp, DNSmsg *mp, int depth, uchar *ibuf, uchar *obuf, int len, if (xmitquery(qp, Tcp, depth, obuf, inns, len) < 0 || readreply(qp, Tcp, req, ibuf, mp, endms) < 0) rv = -1; - if (qp->tcpfd > 0) { + if (qp->tcpfd >= 0) { hangup(qp->tcpctlfd); close(qp->tcpctlfd); close(qp->tcpfd); diff --git a/sys/src/cmd/sam/mesg.c b/sys/src/cmd/sam/mesg.c index e9234a7ad..7d390fd13 100644 --- a/sys/src/cmd/sam/mesg.c +++ b/sys/src/cmd/sam/mesg.c @@ -86,11 +86,12 @@ char *tname[] = { void journal(int out, char *s) { - static int fd = 0; + static int fd = -1; - if(fd <= 0) + if(fd < 0) fd = create("/tmp/sam.out", 1, 0666L); - fprint(fd, "%s%s\n", out? "out: " : "in: ", s); + if(fd >= 0) + fprint(fd, "%s%s\n", out? "out: " : "in: ", s); } void |