X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=blobdiff_plain;f=log.c;h=cbe4a85bf013fd8d2c432ba510b1f9ac301bb1d6;hp=3748f9157d15dc7778847201c0eaed777f39fdc5;hb=2d7478f775f7e150f46f095e8e4db90f24b362b8;hpb=45736f7396593c2f4ef9ebf35c561e7a32111f63 diff --git a/log.c b/log.c index 3748f91..cbe4a85 100644 --- a/log.c +++ b/log.c @@ -579,6 +579,7 @@ static void log_from_fd_afterpoll(void *sst, struct pollfd *fds, int nfds) i=-1; } } + } else if (errno==EINTR || iswouldblock(errno)) { } else { Message(M_WARNING,"log_from_fd: %s\n",strerror(errno)); st->finished=True; @@ -598,6 +599,8 @@ void log_from_fd(int fd, cstring_t prefix, struct log_if *log) st->i=0; st->finished=False; + setnonblock(st->fd); + register_for_poll(st,log_from_fd_beforepoll,log_from_fd_afterpoll, prefix); }