s3: Change exit on immediate socket failure.
authorIra Cooper <samba@ira.wakeful.net>
Mon, 28 Jun 2010 17:39:28 +0000 (13:39 -0400)
committerJeremy Allison <jra@samba.org>
Mon, 28 Jun 2010 19:08:03 +0000 (12:08 -0700)
    This change makes it so socket errors early in the smbd child
    process cause orderly exits not coredumps.

Signed-off-by: Jeremy Allison <jra@samba.org>
source3/smbd/process.c

index 3c44cca5fd9b0de4fd0b45c8dc29a31c76fb1393..8c2060df1adf6b9fb7d50d7014decd0fc2ed766e 100644 (file)
@@ -2895,7 +2895,7 @@ void smbd_process(void)
        if (ret != 0) {
                int level = (errno == ENOTCONN)?2:0;
                DEBUG(level,("getpeername() failed - %s\n", strerror(errno)));
-               exit_server("getpeername() failed.\n");
+               exit_server_cleanly("getpeername() failed.\n");
        }
        ret = tsocket_address_bsd_from_sockaddr(smbd_server_conn,
                                                sa, sa_len,
@@ -2903,7 +2903,7 @@ void smbd_process(void)
        if (ret != 0) {
                DEBUG(0,("%s: tsocket_address_bsd_from_sockaddr remote failed - %s\n",
                        __location__, strerror(errno)));
-               exit_server("tsocket_address_bsd_from_sockaddr remote failed.\n");
+               exit_server_cleanly("tsocket_address_bsd_from_sockaddr remote failed.\n");
        }
 
        sa = (struct sockaddr *)(void *)&ss;
@@ -2912,7 +2912,7 @@ void smbd_process(void)
        if (ret != 0) {
                int level = (errno == ENOTCONN)?2:0;
                DEBUG(level,("getsockname() failed - %s\n", strerror(errno)));
-               exit_server("getsockname() failed.\n");
+               exit_server_cleanly("getsockname() failed.\n");
        }
        ret = tsocket_address_bsd_from_sockaddr(smbd_server_conn,
                                                sa, sa_len,
@@ -2920,7 +2920,7 @@ void smbd_process(void)
        if (ret != 0) {
                DEBUG(0,("%s: tsocket_address_bsd_from_sockaddr remote failed - %s\n",
                        __location__, strerror(errno)));
-               exit_server("tsocket_address_bsd_from_sockaddr remote failed.\n");
+               exit_server_cleanly("tsocket_address_bsd_from_sockaddr remote failed.\n");
        }
 
        smbd_server_conn->local_address = local_address;