diff options
Diffstat (limited to 'lib/transfer.c')
-rw-r--r-- | lib/transfer.c | 6 |
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; |