X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fevent.c;h=db3dad68e776168a2c645aa14e801413cf837dd7;hb=ac868fa87da18cdebb86103b35ce250bd171f700;hp=5041f8ce02bc6cf23e69b52c214de682869330b1;hpb=eaa4473118b245a9dc1d806309eb70d4b2c6eaa4;p=adns.git diff --git a/src/event.c b/src/event.c index 5041f8c..db3dad6 100644 --- a/src/event.c +++ b/src/event.c @@ -284,7 +284,9 @@ static int internal_callback(adns_state ads, int maxfd, } else if (callb_checkfd(maxfd,exceptfds,ads->tcpsocket)) { adns__tcp_broken(ads,"select","exceptional condition detected"); } else if (ads->tcpsend.used && callb_checkfd(maxfd,writefds,ads->tcpsocket)) { + adns__sigpipe_protect(ads); r= write(ads->tcpsocket,ads->tcpsend.buf,ads->tcpsend.used); + adns__sigpipe_unprotect(ads); if (r<0) { if (errno!=EAGAIN && errno!=EWOULDBLOCK && errno!=ENOMEM && errno!=EINTR) { adns__tcp_broken(ads,"write",strerror(errno));