diff options
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/netsurf.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/desktop/netsurf.c b/desktop/netsurf.c index eec131ad7..d90683be8 100644 --- a/desktop/netsurf.c +++ b/desktop/netsurf.c @@ -19,6 +19,7 @@ */ #include <locale.h> +#include <signal.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> @@ -76,6 +77,14 @@ void netsurf_init(int argc, char** argv) { struct utsname utsname; + /* 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 !(defined(__SVR4) && defined(__sun)) stdout = stderr; #endif |