101 |
|
close(fileno(stdin)); |
102 |
|
close(fileno(stdout)); |
103 |
|
/* create named pipes for input and output */ |
104 |
< |
if (mknod(mktemp(strcpy(inpname,TEMPLATE)), S_IFIFO|0600) < 0) |
104 |
> |
if (mknod(mktemp(strcpy(inpname,TEMPLATE)), S_IFIFO|0600, 0) < 0) |
105 |
|
goto createrr; |
106 |
< |
if (mknod(mktemp(strcpy(outpname,TEMPLATE)), S_IFIFO|0600) < 0) |
106 |
> |
if (mknod(mktemp(strcpy(outpname,TEMPLATE)), S_IFIFO|0600, 0) < 0) |
107 |
|
goto createrr; |
108 |
|
sprintf(buf, "%d\n%s\n%s\n", getpid(), inpname, outpname); |
109 |
< |
if (lseek(persistfd, 0L, 0) < 0) |
110 |
< |
error(SYSTEM, "seek error on persist file in pfhold"); |
109 |
> |
if (lseek(persistfd, 0L, 0) < 0 || ftruncate(persistfd, 0L) < 0) |
110 |
> |
error(SYSTEM, "seek/truncate error on persist file"); |
111 |
|
n = strlen(buf); |
112 |
|
if (write(persistfd, buf, n) < n) |
113 |
< |
error(SYSTEM, "error writing persist file in pfhold"); |
113 |
> |
error(SYSTEM, "error writing persist file"); |
114 |
|
/* wait TIMELIM for someone to signal us */ |
115 |
|
signal(SIGIO, sig_noop); |
116 |
|
alarm(TIMELIM); |