#define CNT(art,rc) (counts->results[art_##art][RC_##rc])
char *inprog= ipf_xtra && !completed
- ? xasprintf(" inprogress=%ld", ipf_xtra->inprogress)
- : xasprintf("%s",""); /* GCC produces a stupid warning for printf("") ! */
+ ? masprintf(" inprogress=%ld", ipf_xtra->inprogress)
+ : masprintf("%s",""); /* GCC produces a stupid warning for printf("") ! */
char *autodefer= ipf_xtra && ipf_xtra->autodefer >= 0
- ? xasprintf(" autodeferred=%ld", ipf_xtra->autodefer)
- : xasprintf("%s","");
+ ? masprintf(" autodeferred=%ld", ipf_xtra->autodefer)
+ : masprintf("%s","");
notice("%s %s read=%d (+bl=%d,+err=%d)%s%s"
" missing=%d offered=%d (ch=%d,nc=%d) accepted=%d (ch=%d,nc=%d)"
}
static void sigarrived_handler(int signum) {
+ int esave = errno;
static char x;
switch (signum) {
case SIGTERM:
default:
abort();
}
- write(signal_self_pipe[1],&x,1);
+ int r = write(signal_self_pipe[1],&x,1);
+ if (!(r==1 || isewouldblock(errno))) abort();
+ errno = esave;
}
void init_signals(void) {