GNOME Bugzilla – Bug 105890
Return of the SIGPIPE error
Last modified: 2006-06-18 05:22:41 UTC
When making the jump to GNet, all the unix-specific code was taken out of pan/sockets.c. Unfortunately this included the SIGPIPE handling, so pan can crash again with an uhnandled SIGPIPE when giochannel flushes its write buffer. Reported by Brian Morrison.
This patch should compile on unix & windows: > --- sockets.c 3 Feb 2003 23:43:18 -0000 1.110 > +++ sockets.c 12 Feb 2003 05:33:12 -0000 > @@ -25,6 +25,7 @@ > > #include <errno.h> > #include <string.h> > +#include <signal.h> /* for sigignore(SIGPIPE) on unix */ > #include <unistd.h> > > #include <glib.h> > @@ -90,6 +91,11 @@ > g_return_val_if_fail (is_nonempty_string (server_name), NULL); > g_return_val_if_fail (is_nonempty_string (server_address), > NULL); g_return_val_if_fail (port>=0, NULL); > + > + /* needed on Unix */ > +# ifdef SIGPIPE > + sigignore (SIGPIPE); > +# endif > > /* create the socket */
Fixed in CVS: http://cvs.gnome.org/bonsai/cvsview2.cgi?diff_mode=context&whitespace_mode=show&subdir=pan/pan&command=DIFF_FRAMESET&file=sockets.c&rev1=1.110&rev2=1.111&root=/cvs/gnome