From f629a4f00fb0ff766cba2194d9a408ddee6699cf Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Thu, 18 Jan 2007 01:26:58 +0000 Subject: Revert hack around broken pipe (not caching fetch handles used for SSL connections). Ignore SIGPIPE completely as nothing other than OpenSSL is expected to generate it. svn path=/trunk/netsurf/; revision=3145 --- content/fetch.c | 8 ++------ riscos/gui.c | 7 +++++++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/content/fetch.c b/content/fetch.c index 0ab8ae843..0842d3cc4 100644 --- a/content/fetch.c +++ b/content/fetch.c @@ -755,12 +755,8 @@ void fetch_stop(struct fetch *f) codem = curl_multi_remove_handle(fetch_curl_multi, f->curl_handle); assert(codem == CURLM_OK); - if (strncasecmp(f->url, "https:", 6)) { - /* Put this curl handle into the cache if wanted. */ - fetch_cache_handle(f->curl_handle, f->host); - } else { - curl_easy_cleanup(f->curl_handle); - } + /* Put this curl handle into the cache if wanted. */ + fetch_cache_handle(f->curl_handle, f->host); f->curl_handle = 0; /* Remove this from the active set of fetches (if it's still there) */ RING_REMOVE(fetch_ring, f); diff --git a/riscos/gui.c b/riscos/gui.c index 0190e3703..28eaa8c3e 100644 --- a/riscos/gui.c +++ b/riscos/gui.c @@ -372,6 +372,13 @@ void gui_init(int argc, char** argv) prev_sigs.sigint = signal(SIGINT, ro_gui_signal); prev_sigs.sigsegv = signal(SIGSEGV, ro_gui_signal); prev_sigs.sigterm = signal(SIGTERM, ro_gui_signal); + /* Ignore SIGPIPE - this is necessary as OpenSSL can generate these + * and the default action is to terminate the app. There's no easy + * way of determining the cause of the SIGPIPE (other than using + * sigaction() and some mechanism for getting the file descriptor + * out of libcurl). However, we expect nothing else to generate a + * SIGPIPE, anyway, so may as well just ignore them all. */ + signal(SIGPIPE, SIG_IGN); if (prev_sigs.sigabrt == SIG_ERR || prev_sigs.sigfpe == SIG_ERR || prev_sigs.sigill == SIG_ERR || -- cgit v1.2.3