--- loncom/loncnew 2010/12/21 11:17:03 1.92 +++ loncom/loncnew 2011/01/10 12:23:00 1.93 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # lonc maintains the connections to remote computers # -# $Id: loncnew,v 1.92 2010/12/21 11:17:03 foxr Exp $ +# $Id: loncnew,v 1.93 2011/01/10 12:23:00 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1733,6 +1733,13 @@ sub ChildProcess { cb => \&ToggleDebug, data => "INT"); + # Block the pipe signal we'll get when the socket disconnects. We detect + # socket disconnection via send/receive failures. On disconnect, the + # socket becomes readable .. which will force the disconnect detection. + + my $set = POSIX::SigSet->new(SIGPIPE); + sigprocmask(SIG_BLOCK, $set); + # Figure out if we got passed a socket or need to open one to listen for # client requests.