summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2007-10-31 15:39:55 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2007-10-31 15:39:55 +0000
commit6eeeee1778253dcd3a7783275377434238f855fe (patch)
tree1ce0a96821a063efa7fd818b24fee12945cc1324 /desktop
parentd1bf94dc4d647f70139a086b976e5d7a57d79a1c (diff)
downloadnetsurf-6eeeee1778253dcd3a7783275377434238f855fe.tar.gz
netsurf-6eeeee1778253dcd3a7783275377434238f855fe.tar.bz2
Ignore SIGPIPE on all platforms, not just RISC OS.
svn path=/trunk/netsurf/; revision=3638
Diffstat (limited to 'desktop')
-rw-r--r--desktop/netsurf.c9
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