aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/ndb/dntcpserver.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2006-02-17 19:21:49 +0000
committerrsc <devnull@localhost>2006-02-17 19:21:49 +0000
commit19256e0dd9c3c383ada7cc28b67487400c9162e3 (patch)
treedb1d798627a8d42e5432237639e96f5ac111dd13 /src/cmd/ndb/dntcpserver.c
parent05f5d46b6368978fd22cfbea7155e983b0faa9a7 (diff)
downloadplan9port-19256e0dd9c3c383ada7cc28b67487400c9162e3.tar.gz
plan9port-19256e0dd9c3c383ada7cc28b67487400c9162e3.tar.bz2
plan9port-19256e0dd9c3c383ada7cc28b67487400c9162e3.zip
changes from erik quanstrom
Diffstat (limited to 'src/cmd/ndb/dntcpserver.c')
-rw-r--r--src/cmd/ndb/dntcpserver.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/src/cmd/ndb/dntcpserver.c b/src/cmd/ndb/dntcpserver.c
index 4ae787a8..38e3ce7c 100644
--- a/src/cmd/ndb/dntcpserver.c
+++ b/src/cmd/ndb/dntcpserver.c
@@ -35,10 +35,10 @@ connreadmsg(int tfd, int *fd, uchar *buf, int max)
if (lfd < 0)
return -1;
*fd = accept(lfd, ldir);
- n = -1;
- if (*fd < 0)
+ if (*fd >= 0)
n = readmsg(*fd, buf, max);
- //close(fd);
+ else
+ n = -1;
close(lfd);
return n;
}
@@ -181,7 +181,7 @@ out:
void
tcpproc(void *v)
{
- int len;
+ int len, rv;
Request req;
DNSmsg reqmsg, repmsg;
char *err;
@@ -191,7 +191,7 @@ tcpproc(void *v)
NetConnInfo *caller;
rfd = -1;
- fd = (int)v;
+ fd = (uintptr)v;
caller = 0;
/* loop on requests */
for(;; putactivity()){
@@ -244,12 +244,13 @@ tcpproc(void *v)
break;
} else {
dnserver(&reqmsg, &repmsg, &req);
- if(reply(rfd, &repmsg, &req, caller) < 0)
- break;
+ rv = reply(rfd, &repmsg, &req, caller);
rrfreelist(repmsg.qd);
rrfreelist(repmsg.an);
rrfreelist(repmsg.ns);
rrfreelist(repmsg.ar);
+ if(rv < 0)
+ break;
}
}
@@ -264,8 +265,6 @@ enum {
Maxactivetcp = 4,
};
-extern char *portname;
-
static int
tcpannounce(char *mntpt)
{
@@ -283,12 +282,10 @@ void
dntcpserver(void *v)
{
int i, fd;
- char *mntpt;
- mntpt = v;
- while((fd = tcpannounce(mntpt)) < 0)
+ while((fd = tcpannounce(v)) < 0)
sleep(5*1000);
for(i=0; i<Maxactivetcp; i++)
- proccreate(tcpproc, (void*)fd, STACK);
+ proccreate(tcpproc, (void*)(uintptr)fd, STACK);
}