summaryrefslogtreecommitdiff
path: root/sys/src/cmd/ndb
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2012-08-08 19:03:10 +0200
committercinap_lenrek <cinap_lenrek@gmx.de>2012-08-08 19:03:10 +0200
commitf466d3894c7c83f2dbde773c5b886a18b57d799e (patch)
tree774f39cf281b349be4f916654c4d253696a18b0c /sys/src/cmd/ndb
parentea64fd3ad52bd7ff34889fcfd435443a39ddd6d8 (diff)
ndb/dns: cleanup
Diffstat (limited to 'sys/src/cmd/ndb')
-rw-r--r--sys/src/cmd/ndb/dns.c25
-rw-r--r--sys/src/cmd/ndb/dnudpserver.c8
2 files changed, 18 insertions, 15 deletions
diff --git a/sys/src/cmd/ndb/dns.c b/sys/src/cmd/ndb/dns.c
index e4244e5f8..c0e814b95 100644
--- a/sys/src/cmd/ndb/dns.c
+++ b/sys/src/cmd/ndb/dns.c
@@ -274,7 +274,17 @@ mountinit(char *service, char *mntpt)
char buf[32];
if(pipe(p) < 0)
- abort(); /* "pipe failed" */;
+ sysfatal("pipe failed: %r");
+
+ /*
+ * make a /srv/dns
+ */
+ if((f = create(service, OWRITE|ORCLOSE, 0666)) < 0)
+ sysfatal("create %s failed: %r", service);
+ snprint(buf, sizeof buf, "%d", p[1]);
+ if(write(f, buf, strlen(buf)) != strlen(buf))
+ sysfatal("write %s failed: %r", service);
+
/* copy namespace to avoid a deadlock */
switch(rfork(RFFDG|RFPROC|RFNAMEG)){
case 0: /* child: hang around and (re)start main proc */
@@ -282,22 +292,11 @@ mountinit(char *service, char *mntpt)
procsetname("%s restarter", mntpt);
break;
case -1:
- abort(); /* "fork failed\n" */;
+ sysfatal("fork failed: %r");
default: /* parent: make /srv/dns, mount it, exit */
close(p[0]);
/*
- * make a /srv/dns
- */
- f = create(service, 1, 0666);
- if(f < 0)
- abort(); /* service */;
- snprint(buf, sizeof buf, "%d", p[1]);
- if(write(f, buf, strlen(buf)) != strlen(buf))
- abort(); /* "write %s", service */;
- close(f);
-
- /*
* put ourselves into the file system
*/
if(mount(p[1], -1, mntpt, MAFTER, "") < 0)
diff --git a/sys/src/cmd/ndb/dnudpserver.c b/sys/src/cmd/ndb/dnudpserver.c
index fd7ef1eab..bac4af058 100644
--- a/sys/src/cmd/ndb/dnudpserver.c
+++ b/sys/src/cmd/ndb/dnudpserver.c
@@ -288,8 +288,12 @@ udpannounce(char *mntpt)
}
/* turn on header style interface */
- if(write(ctl, hmsg, strlen(hmsg)) != strlen(hmsg))
- abort(); /* hmsg */
+ if(write(ctl, hmsg, strlen(hmsg)) != strlen(hmsg)){
+ close(ctl);
+ if(!whined++)
+ warning("can't enable headers on %s", datafile);
+ return -1;
+ }
snprint(datafile, sizeof(datafile), "%s/data", dir);
data = open(datafile, ORDWR);