Loading CHANGES +6 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,12 @@ Changelog Daniel (11 October 2004) - libcurl now uses SO_NOSIGPIPE for systems that support it (Mac OS X 10.2 or later is one) to inhibit the SIGPIPE signal when writing to a socket while the peer dies. The same effect is provide by the MSG_NOSIGNAL parameter to send() on other systems. Alan Pinstein verified the fix. Gisle (6 October 2004) - For USE_LIBIDN builds: Added Top-Level-Domain (TLD) check of host-name used in fix_hostname(). Checks if characters in 'host->name' (indirectly Loading lib/connect.c +20 −0 Original line number Diff line number Diff line Loading @@ -558,6 +558,23 @@ static void tcpnodelay(struct connectdata *conn, #endif } #ifdef SO_NOSIGPIPE /* The preferred method on Mac OS X (10.2 and later) to prevent SIGPIPEs when sending data to a dead peer (instead of relying on the 4th argument to send being MSG_NOSIGNAL). Possibly also existing and in use on other BSD systems? */ static void nosigpipe(struct connectdata *conn, curl_socket_t sockfd) { struct SessionHandle *data= conn->data; int onoff = 1; if(setsockopt(sockfd, SOL_SOCKET, SO_NOSIGPIPE, (void *)&onoff, sizeof(onoff)) < 0) infof(data, "Could not set SO_NOSIGPIPE: %s\n", Curl_strerror(conn, Curl_ourerrno())); } #endif /* singleipconnect() connects to the given IP only, and it may return without having connected if used from the multi interface. */ static curl_socket_t Loading @@ -584,6 +601,9 @@ singleipconnect(struct connectdata *conn, if(data->set.tcp_nodelay) tcpnodelay(conn, sockfd); #ifdef SO_NOSIGPIPE nosigpipe(conn, sockfd); #endif if(conn->data->set.device) { /* user selected to bind the outgoing socket to a specified "device" before doing connect */ Loading Loading
CHANGES +6 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,12 @@ Changelog Daniel (11 October 2004) - libcurl now uses SO_NOSIGPIPE for systems that support it (Mac OS X 10.2 or later is one) to inhibit the SIGPIPE signal when writing to a socket while the peer dies. The same effect is provide by the MSG_NOSIGNAL parameter to send() on other systems. Alan Pinstein verified the fix. Gisle (6 October 2004) - For USE_LIBIDN builds: Added Top-Level-Domain (TLD) check of host-name used in fix_hostname(). Checks if characters in 'host->name' (indirectly Loading
lib/connect.c +20 −0 Original line number Diff line number Diff line Loading @@ -558,6 +558,23 @@ static void tcpnodelay(struct connectdata *conn, #endif } #ifdef SO_NOSIGPIPE /* The preferred method on Mac OS X (10.2 and later) to prevent SIGPIPEs when sending data to a dead peer (instead of relying on the 4th argument to send being MSG_NOSIGNAL). Possibly also existing and in use on other BSD systems? */ static void nosigpipe(struct connectdata *conn, curl_socket_t sockfd) { struct SessionHandle *data= conn->data; int onoff = 1; if(setsockopt(sockfd, SOL_SOCKET, SO_NOSIGPIPE, (void *)&onoff, sizeof(onoff)) < 0) infof(data, "Could not set SO_NOSIGPIPE: %s\n", Curl_strerror(conn, Curl_ourerrno())); } #endif /* singleipconnect() connects to the given IP only, and it may return without having connected if used from the multi interface. */ static curl_socket_t Loading @@ -584,6 +601,9 @@ singleipconnect(struct connectdata *conn, if(data->set.tcp_nodelay) tcpnodelay(conn, sockfd); #ifdef SO_NOSIGPIPE nosigpipe(conn, sockfd); #endif if(conn->data->set.device) { /* user selected to bind the outgoing socket to a specified "device" before doing connect */ Loading