#include "bundles.h"
#include "multihandle.h"
#include "pipeline.h"
+#include "sigpipe.h"
#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>
struct SessionHandle *nextdata;
if(GOOD_MULTI_HANDLE(multi)) {
+ SIGPIPE_VARIABLE(pipe);
+ bool restore_pipe = FALSE;
+
multi->type = 0; /* not good anymore */
/* Close all the connections in the connection cache */
close_all_connections(multi);
if(multi->closure_handle) {
+ sigpipe_ignore(multi->closure_handle, &pipe);
+ restore_pipe = TRUE;
+
multi->closure_handle->dns.hostcache = multi->hostcache;
Curl_hostcache_clean(multi->closure_handle,
multi->closure_handle->dns.hostcache);
Curl_pipeline_set_server_blacklist(NULL, &multi->pipelining_server_bl);
free(multi);
+ if(restore_pipe)
+ sigpipe_restore(&pipe);
return CURLM_OK;
}