X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=slip.c;h=59978c98d87ea5a5704595d675532d4b87320d43;hb=4ac7fd3ff73c98100d8a8546668d0212e4af3ffa;hp=891b2686bdf4c1a4b9612a9d167496a6bcf40686;hpb=f665113d3997514ee123a7fd28920c278628a865;p=secnet.git diff --git a/slip.c b/slip.c index 891b268..59978c9 100644 --- a/slip.c +++ b/slip.c @@ -170,13 +170,13 @@ static int userv_beforepoll(void *sst, struct pollfd *fds, int *nfds_io, struct userv *st=sst; if (st->rxfd!=-1) { - *nfds_io=2; + BEFOREPOLL_WANT_FDS(2); fds[0].fd=st->txfd; fds[0].events=0; /* Might want to pick up POLLOUT sometime */ fds[1].fd=st->rxfd; fds[1].events=POLLIN; } else { - *nfds_io=0; + BEFOREPOLL_WANT_FDS(0); } return 0; } @@ -231,19 +231,10 @@ static void userv_userv_callback(void *sst, pid_t pid, int status) return; } if (!st->expecting_userv_exit) { - if (WIFEXITED(status)) { - fatal("%s: userv exited unexpectedly with status %d", - st->slip.nl.name,WEXITSTATUS(status)); - } else if (WIFSIGNALED(status)) { - fatal("%s: userv exited unexpectedly: uncaught signal %d", - st->slip.nl.name,WTERMSIG(status)); - } else { - fatal("%s: userv stopped unexpectedly", - st->slip.nl.name); - } + lg_exitstatus(0,st->slip.nl.name,0, + st->expecting_userv_exit ? M_WARNING : M_FATAL, + status,"userv"); } - Message(M_WARNING,"%s: userv subprocess died with status %d\n", - st->slip.nl.name,WEXITSTATUS(status)); st->pid=0; } @@ -313,7 +304,6 @@ static void userv_invoke_userv(struct userv *st) s=subnet_to_string(snets->list[i]); strcat(nets,s); strcat(nets,","); - free(s); } nets[strlen(nets)-1]=0; subnet_list_free(snets); @@ -392,7 +382,7 @@ static void userv_phase_hook(void *sst, uint32_t newphase) if (newphase==PHASE_RUN) { userv_invoke_userv(st); /* Register for poll() */ - register_for_poll(st, userv_beforepoll, userv_afterpoll, 2, + register_for_poll(st, userv_beforepoll, userv_afterpoll, st->slip.nl.name); } if (newphase==PHASE_SHUTDOWN) {