ndb/dns: cleanup

This commit is contained in:
cinap_lenrek 2012-08-08 19:03:10 +02:00
parent ea64fd3ad5
commit f466d3894c
2 changed files with 18 additions and 15 deletions

View file

@ -274,7 +274,17 @@ mountinit(char *service, char *mntpt)
char buf[32]; char buf[32];
if(pipe(p) < 0) 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 */ /* copy namespace to avoid a deadlock */
switch(rfork(RFFDG|RFPROC|RFNAMEG)){ switch(rfork(RFFDG|RFPROC|RFNAMEG)){
case 0: /* child: hang around and (re)start main proc */ case 0: /* child: hang around and (re)start main proc */
@ -282,21 +292,10 @@ mountinit(char *service, char *mntpt)
procsetname("%s restarter", mntpt); procsetname("%s restarter", mntpt);
break; break;
case -1: case -1:
abort(); /* "fork failed\n" */; sysfatal("fork failed: %r");
default: /* parent: make /srv/dns, mount it, exit */ default: /* parent: make /srv/dns, mount it, exit */
close(p[0]); 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 * put ourselves into the file system
*/ */

View file

@ -288,8 +288,12 @@ udpannounce(char *mntpt)
} }
/* turn on header style interface */ /* turn on header style interface */
if(write(ctl, hmsg, strlen(hmsg)) != strlen(hmsg)) if(write(ctl, hmsg, strlen(hmsg)) != strlen(hmsg)){
abort(); /* hmsg */ close(ctl);
if(!whined++)
warning("can't enable headers on %s", datafile);
return -1;
}
snprint(datafile, sizeof(datafile), "%s/data", dir); snprint(datafile, sizeof(datafile), "%s/data", dir);
data = open(datafile, ORDWR); data = open(datafile, ORDWR);