rpc_server: Move setting ip-based socket options
authorVolker Lendecke <vl@samba.org>
Tue, 12 Jan 2021 16:03:42 +0000 (17:03 +0100)
committerVolker Lendecke <vl@samba.org>
Thu, 14 Jan 2021 13:29:35 +0000 (13:29 +0000)
All ncacn_ip_tcp listener sockets are created via
dcesrv_create_ncacn_ip_tcp_socket(). Moving setting the socket options
out of dcesrv_setup_ncacn_ip_tcp_socket() to remove a special case for
TCP from the dcesrv_setup_* family of routines.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Samuel Cabrero <scabrero@samba.org>
source3/rpc_server/rpc_server.c

index a2a2115ab81e3860c0742d96c2d57cf2d6d109c9..c58d76a947dd8512030e207401c9fd694e2f620c 100644 (file)
@@ -300,6 +300,10 @@ NTSTATUS dcesrv_create_ncacn_ip_tcp_socket(const struct sockaddr_storage *ifss,
                return NT_STATUS_UNSUCCESSFUL;
        }
 
+       /* ready to listen */
+       set_socket_options(fd, "SO_KEEPALIVE");
+       set_socket_options(fd, lp_socket_options());
+
        DBG_DEBUG("Opened ncacn_ip_tcp socket fd %d for port %u\n", fd, *port);
 
        *out_fd = fd;
@@ -337,10 +341,6 @@ NTSTATUS dcesrv_setup_ncacn_ip_tcp_socket(struct tevent_context *ev_ctx,
        state->termination_fn = term_fn;
        state->termination_data = term_data;
 
-       /* ready to listen */
-       set_socket_options(state->fd, "SO_KEEPALIVE");
-       set_socket_options(state->fd, lp_socket_options());
-
        /* Set server socket to non-blocking for the accept. */
        rc = set_blocking(state->fd, false);
        if (rc < 0) {