X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=comstack%2Ftcpip.c;fp=comstack%2Ftcpip.c;h=dac5b2a37f543b042003d6c54188afce050bdb4c;hp=311b6e2ca5b42d4c099a391b0ac4af794a94b034;hb=840a4ec014e70059d147b4ded3548df191c79687;hpb=a92a7ff2538ad0d9e7b85edf860f2e6cd0a9bed4 diff --git a/comstack/tcpip.c b/comstack/tcpip.c index 311b6e2..dac5b2a 100644 --- a/comstack/tcpip.c +++ b/comstack/tcpip.c @@ -2,7 +2,7 @@ * Copyright (c) 1995-2002, Index Data * See the file LICENSE for details. * - * $Id: tcpip.c,v 1.45 2002-01-21 21:50:32 adam Exp $ + * $Id: tcpip.c,v 1.46 2002-02-19 20:02:40 adam Exp $ */ #include @@ -13,6 +13,7 @@ #endif #include #include +#include #if HAVE_OPENSSL_SSL_H #include #include @@ -125,10 +126,17 @@ COMSTACK tcpip_type(int s, int blocking, int protocol, void *vp) #ifdef WIN32 if (!(p->blocking = blocking) && ioctlsocket(s, FIONBIO, &tru) < 0) + return 0; #else - if (!(p->blocking = blocking) && fcntl(s, F_SETFL, O_NONBLOCK) < 0) + if (!(p->blocking = blocking)) + { + if (fcntl(s, F_SETFL, O_NONBLOCK) < 0) + return 0; +#ifndef MSG_NOSIGNAL + signal (SIGPIPE, SIG_IGN); +#endif + } #endif - return 0; p->io_pending = 0; p->iofile = s;