aboutsummaryrefslogtreecommitdiff
path: root/lib/transfer.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2002-08-08 22:52:50 +0000
committerDaniel Stenberg <daniel@haxx.se>2002-08-08 22:52:50 +0000
commit4cf953678d06346de07d3d64fe5bc650cbc01bf6 (patch)
treeb4f64e7b2bdcf1fc2f13f97db2c81595fd202ace /lib/transfer.c
parentca5678c8c112bb31b3f4074a6526905027b57e38 (diff)
Markus F.X.J. Oberhumer's CURLOPT_NOSIGNAL patch
Diffstat (limited to 'lib/transfer.c')
-rw-r--r--lib/transfer.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/transfer.c b/lib/transfer.c
index ae9d621c8..0b0563f41 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -1130,7 +1130,8 @@ CURLcode Curl_pretransfer(struct SessionHandle *data)
/*************************************************************
* Tell signal handler to ignore SIGPIPE
*************************************************************/
- data->state.prev_signal = signal(SIGPIPE, SIG_IGN);
+ if(!data->set.no_signal)
+ data->state.prev_signal = signal(SIGPIPE, SIG_IGN);
#endif
Curl_initinfo(data); /* reset session-specific information "variables" */
@@ -1143,7 +1144,8 @@ CURLcode Curl_posttransfer(struct SessionHandle *data)
{
#if defined(HAVE_SIGNAL) && defined(SIGPIPE)
/* restore the signal handler for SIGPIPE before we get back */
- signal(SIGPIPE, data->state.prev_signal);
+ if(!data->set.no_signal)
+ signal(SIGPIPE, data->state.prev_signal);
#endif
return CURLE_OK;