introduce and use close_on_exec_on(fd). -50 bytes.
This commit is contained in:
@@ -50,11 +50,6 @@ unsigned byte_chr(char *s,unsigned n,int c)
|
||||
return t - s;
|
||||
}
|
||||
|
||||
int coe(int fd)
|
||||
{
|
||||
return fcntl(fd, F_SETFD, FD_CLOEXEC);
|
||||
}
|
||||
|
||||
#ifdef UNUSED
|
||||
static /* as it isn't used anywhere else */
|
||||
void tai_pack(char *s, const struct tai *t)
|
||||
|
||||
@@ -27,8 +27,6 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
extern unsigned byte_chr(char *s,unsigned n,int c);
|
||||
|
||||
extern int coe(int);
|
||||
|
||||
#define direntry struct dirent
|
||||
|
||||
//struct tai {
|
||||
|
||||
@@ -454,8 +454,8 @@ int runsv_main(int argc, char **argv)
|
||||
dir = argv[1];
|
||||
|
||||
xpipe(selfpipe);
|
||||
coe(selfpipe[0]);
|
||||
coe(selfpipe[1]);
|
||||
close_on_exec_on(selfpipe[0]);
|
||||
close_on_exec_on(selfpipe[1]);
|
||||
ndelay_on(selfpipe[0]);
|
||||
ndelay_on(selfpipe[1]);
|
||||
|
||||
@@ -491,8 +491,8 @@ int runsv_main(int argc, char **argv)
|
||||
if (stat("log/down", &s) != -1)
|
||||
svd[1].want = W_DOWN;
|
||||
xpipe(logpipe);
|
||||
coe(logpipe[0]);
|
||||
coe(logpipe[1]);
|
||||
close_on_exec_on(logpipe[0]);
|
||||
close_on_exec_on(logpipe[1]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -512,7 +512,7 @@ int runsv_main(int argc, char **argv)
|
||||
O_WRONLY|O_NDELAY|O_APPEND|O_CREAT, 0600);
|
||||
if (lock_exnb(svd[0].fdlock) == -1)
|
||||
fatal_cannot("lock supervise/lock");
|
||||
coe(svd[0].fdlock);
|
||||
close_on_exec_on(svd[0].fdlock);
|
||||
if (haslog) {
|
||||
if (mkdir("log/supervise", 0700) == -1) {
|
||||
r = readlink("log/supervise", buf, 256);
|
||||
@@ -536,30 +536,30 @@ int runsv_main(int argc, char **argv)
|
||||
O_WRONLY|O_NDELAY|O_APPEND|O_CREAT, 0600);
|
||||
if (lock_ex(svd[1].fdlock) == -1)
|
||||
fatal_cannot("lock log/supervise/lock");
|
||||
coe(svd[1].fdlock);
|
||||
close_on_exec_on(svd[1].fdlock);
|
||||
}
|
||||
|
||||
mkfifo("log/supervise/control"+4, 0600);
|
||||
svd[0].fdcontrol = xopen("log/supervise/control"+4, O_RDONLY|O_NDELAY);
|
||||
coe(svd[0].fdcontrol);
|
||||
close_on_exec_on(svd[0].fdcontrol);
|
||||
svd[0].fdcontrolwrite = xopen("log/supervise/control"+4, O_WRONLY|O_NDELAY);
|
||||
coe(svd[0].fdcontrolwrite);
|
||||
close_on_exec_on(svd[0].fdcontrolwrite);
|
||||
update_status(&svd[0]);
|
||||
if (haslog) {
|
||||
mkfifo("log/supervise/control", 0600);
|
||||
svd[1].fdcontrol = xopen("log/supervise/control", O_RDONLY|O_NDELAY);
|
||||
coe(svd[1].fdcontrol);
|
||||
close_on_exec_on(svd[1].fdcontrol);
|
||||
svd[1].fdcontrolwrite = xopen("log/supervise/control", O_WRONLY|O_NDELAY);
|
||||
coe(svd[1].fdcontrolwrite);
|
||||
close_on_exec_on(svd[1].fdcontrolwrite);
|
||||
update_status(&svd[1]);
|
||||
}
|
||||
mkfifo("log/supervise/ok"+4, 0600);
|
||||
fd = xopen("log/supervise/ok"+4, O_RDONLY|O_NDELAY);
|
||||
coe(fd);
|
||||
close_on_exec_on(fd);
|
||||
if (haslog) {
|
||||
mkfifo("log/supervise/ok", 0600);
|
||||
fd = xopen("log/supervise/ok", O_RDONLY|O_NDELAY);
|
||||
coe(fd);
|
||||
close_on_exec_on(fd);
|
||||
}
|
||||
for (;;) {
|
||||
struct pollfd x[3];
|
||||
|
||||
@@ -190,8 +190,8 @@ static int setup_log(void)
|
||||
warnx("cannot create pipe for log");
|
||||
return -1;
|
||||
}
|
||||
coe(logpipe[1]);
|
||||
coe(logpipe[0]);
|
||||
close_on_exec_on(logpipe[1]);
|
||||
close_on_exec_on(logpipe[0]);
|
||||
ndelay_on(logpipe[0]);
|
||||
ndelay_on(logpipe[1]);
|
||||
if (dup2(logpipe[1], 2) == -1) {
|
||||
@@ -245,7 +245,7 @@ int runsvdir_main(int argc, char **argv)
|
||||
curdir = open_read(".");
|
||||
if (curdir == -1)
|
||||
fatal2_cannot("open current directory", "");
|
||||
coe(curdir);
|
||||
close_on_exec_on(curdir);
|
||||
|
||||
stampcheck = monotonic_sec();
|
||||
|
||||
|
||||
@@ -361,7 +361,7 @@ static unsigned rotate(struct logdir *ld)
|
||||
/* we presume this cannot fail */
|
||||
ld->filecur = fdopen(ld->fdcur, "a"); ////
|
||||
setvbuf(ld->filecur, NULL, _IOFBF, linelen); ////
|
||||
coe(ld->fdcur);
|
||||
close_on_exec_on(ld->fdcur);
|
||||
ld->size = 0;
|
||||
while (fchmod(ld->fdcur, 0644) == -1)
|
||||
pause2cannot("set mode of current", ld->name);
|
||||
@@ -482,7 +482,7 @@ static unsigned logdir_open(struct logdir *ld, const char *fn)
|
||||
warn2("cannot open log directory", (char*)fn);
|
||||
return 0;
|
||||
}
|
||||
coe(ld->fddir);
|
||||
close_on_exec_on(ld->fddir);
|
||||
if (fchdir(ld->fddir) == -1) {
|
||||
logdir_close(ld);
|
||||
warn2("cannot change directory", (char*)fn);
|
||||
@@ -498,7 +498,7 @@ static unsigned logdir_open(struct logdir *ld, const char *fn)
|
||||
pause1cannot("change to initial working directory");
|
||||
return 0;
|
||||
}
|
||||
coe(ld->fdlock);
|
||||
close_on_exec_on(ld->fdlock);
|
||||
|
||||
ld->size = 0;
|
||||
ld->sizemax = 1000000;
|
||||
@@ -624,7 +624,7 @@ static unsigned logdir_open(struct logdir *ld, const char *fn)
|
||||
ld->filecur = fdopen(ld->fdcur, "a"); ////
|
||||
setvbuf(ld->filecur, NULL, _IOFBF, linelen); ////
|
||||
|
||||
coe(ld->fdcur);
|
||||
close_on_exec_on(ld->fdcur);
|
||||
while (fchmod(ld->fdcur, 0644) == -1)
|
||||
pause2cannot("set mode of current", ld->name);
|
||||
|
||||
@@ -851,7 +851,7 @@ int svlogd_main(int argc, char **argv)
|
||||
if (dirn <= 0) usage();
|
||||
////if (buflen <= linemax) usage();
|
||||
fdwdir = xopen(".", O_RDONLY|O_NDELAY);
|
||||
coe(fdwdir);
|
||||
close_on_exec_on(fdwdir);
|
||||
dir = xzalloc(dirn * sizeof(struct logdir));
|
||||
for (i = 0; i < dirn; ++i) {
|
||||
dir[i].fddir = -1;
|
||||
|
||||
Reference in New Issue
Block a user