1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

we are never interested in SIGPIPE so just ignore (block) it

always. Don't even install a handler.
This commit is contained in:
Andrew Tridgell 0001-01-01 00:00:00 +00:00
parent f297662d64
commit 72c383f4b7
3 changed files with 5 additions and 44 deletions

View 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
****************************************************************************/

View 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" );

View 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);