From: Richard Kettlewell Date: Sat, 10 Dec 2011 16:09:13 +0000 (+0000) Subject: cleanup: build on Ubuntu Lucid X-Git-Tag: v0.2.0~8 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=commitdiff_plain;h=5a8a70536e4fa79612405a88c50743976abb2d50;hp=3ca86f6d356be1eb166f2b576a1d6ad14943feae cleanup: build on Ubuntu Lucid The discard() idiom is chosen because Clang tolerates it. Signed-off-by: Richard Kettlewell --- diff --git a/process.c b/process.c index 343be9b..0a7a0f2 100644 --- a/process.c +++ b/process.c @@ -193,6 +193,9 @@ static int signal_beforepoll(void *st, struct pollfd *fds, int *nfds_io, return 0; } +/* Bodge to work around Ubuntu's strict header files */ +static void discard(int anything) {} + static afterpoll_fn signal_afterpoll; static void signal_afterpoll(void *st, struct pollfd *fds, int nfds) { @@ -201,7 +204,8 @@ static void signal_afterpoll(void *st, struct pollfd *fds, int nfds) sigset_t todo,old; if (nfds && (fds->revents & POLLIN)) { - read(spr,buf,16); /* We don't actually care what we read; as + discard(read(spr,buf,16)); + /* We don't actually care what we read; as long as there was at least one byte (which there was) we'll pick up the signals in the pending set */ @@ -253,7 +257,8 @@ static void signal_handler(int signum) will be atomic, and it seems to be the lesser of the two evils. */ saved_errno=errno; - write(spw,&thing,1); /* We don't care if this fails (i.e. the pipe + discard(write(spw,&thing,1)); + /* We don't care if this fails (i.e. the pipe is full) because the service routine will spot the pending signal anyway */ errno=saved_errno;