]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
we are never interested in SIGPIPE so just ignore (block) it
authorAndrew Tridgell <tridge@samba.org>
Wed, 2 Sep 1998 05:00:47 +0000 (05:00 +0000)
committerAndrew Tridgell <tridge@samba.org>
Wed, 2 Sep 1998 05:00:47 +0000 (05:00 +0000)
always. Don't even install a handler.

source/lib/util.c
source/nmbd/nmbd.c
source/smbd/server.c

index 41877874890e160d3e3e3ee2964461f534cd295d..8b10939a97957d4338fef2d2b4dd7a4ba671e613 100644 (file)
@@ -3390,15 +3390,6 @@ void *Realloc(void *p,int size)
 }
 
 
-/****************************************************************************
-  Signal handler for SIGPIPE (write on a disconnected socket) 
-****************************************************************************/
-void Abort(void )
-{
-  DEBUG(0,("Probably got SIGPIPE\nExiting\n"));
-  exit(2);
-}
-
 /****************************************************************************
 get my own name and IP
 ****************************************************************************/
index 72cc9408d511e569939d25db9e9e21644ecbf905..ef3713c134257b9b5b32b71140d3a041a6cead84 100644 (file)
@@ -103,17 +103,6 @@ static void sig_hup(int sig)
 
 } /* sig_hup */
 
-/**************************************************************************** **
- catch a sigpipe
- **************************************************************************** */
-static void sig_pipe(int sig)
-{
-  BlockSignals( True, SIGPIPE );
-
-  DEBUG( 0, ("Got SIGPIPE\n") );
-
-  BlockSignals( False, SIGPIPE );
-} /* sig_pipe */
 
 #if DUMP_CORE
 /**************************************************************************** **
@@ -432,7 +421,8 @@ static BOOL open_sockets(BOOL isdaemon, int port)
   if ( ClientNMB == -1 )
     return( False );
 
-  CatchSignal( SIGPIPE, SIGNAL_CAST sig_pipe );
+  /* we are never interested in SIGPIPE */
+  BlockSignals(True,SIGPIPE);
 
   set_socket_options( ClientNMB,   "SO_BROADCAST" );
   set_socket_options( ClientDGRAM, "SO_BROADCAST" );
index 1bc6cf273f03aaa869c97f121fe4322dc1913cd5..dadf2018c8e1a6a4d80de6f63e256b2c66cb5ae2 100644 (file)
@@ -67,25 +67,6 @@ void  killkids(void)
 }
 
 
-
-/****************************************************************************
-  this is called when the client exits abruptly
-  **************************************************************************/
-static void sig_pipe(int sig)
-{
-       struct cli_state *cli;
-       BlockSignals(True,SIGPIPE);
-
-       if ((cli = server_client()) && cli->initialised) {
-               DEBUG(3,("lost connection to password server\n"));
-               cli_shutdown(cli);
-               BlockSignals(False,SIGPIPE);
-               return;
-       }
-
-       exit_server("Got sigpipe\n");
-}
-
 /****************************************************************************
   open the socket communication
 ****************************************************************************/
@@ -96,7 +77,6 @@ static BOOL open_sockets_inetd(void)
        /* Started from inetd. fd 0 is the socket. */
        /* We will abort gracefully when the client or remote system 
           goes away */
-       CatchSignal(SIGPIPE, SIGNAL_CAST sig_pipe);
        Client = dup(0);
        
        /* close our standard file descriptors */
@@ -244,9 +224,6 @@ max can be %d\n",
                        if (Client != -1 && fork()==0) {
                                /* Child code ... */
                                
-                               CatchSignal(SIGPIPE, 
-                                           SIGNAL_CAST sig_pipe);
-                               
                                /* close the listening socket(s) */
                                for(i = 0; i < num_interfaces; i++)
                                        close(fd_listenset[i]);
@@ -552,6 +529,9 @@ static void usage(char *pname)
        fault_setup((void (*)(void *))exit_server);
        CatchSignal(SIGTERM , SIGNAL_CAST dflt_sig);
 
+       /* we are never interested in SIGPIPE */
+       BlockSignals(True,SIGPIPE);
+
        /* we want total control over the permissions on created files,
           so set our umask to 0 */
        umask(0);