summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/lib/util_sock.c6
-rw-r--r--source3/libsmb/unexpected.c6
-rw-r--r--source3/rpc_server/rpc_server.c16
-rw-r--r--source3/winbindd/winbindd.c9
4 files changed, 31 insertions, 6 deletions
diff --git a/source3/lib/util_sock.c b/source3/lib/util_sock.c
index ebdd2c78f3..9ade23c8bc 100644
--- a/source3/lib/util_sock.c
+++ b/source3/lib/util_sock.c
@@ -1298,12 +1298,6 @@ int create_pipe_sock(const char *socket_dir,
goto out_close;
}
- if (listen(sock, 5) == -1) {
- DEBUG(0, ("listen failed on pipe socket %s: %s\n", path,
- strerror(errno)));
- goto out_close;
- }
-
SAFE_FREE(path);
umask(old_umask);
diff --git a/source3/libsmb/unexpected.c b/source3/libsmb/unexpected.c
index 483d325d67..f537b3d0a7 100644
--- a/source3/libsmb/unexpected.c
+++ b/source3/libsmb/unexpected.c
@@ -72,6 +72,7 @@ NTSTATUS nb_packet_server_create(TALLOC_CTX *mem_ctx,
struct nb_packet_server *result;
struct tevent_fd *fde;
NTSTATUS status;
+ int rc;
result = talloc_zero(mem_ctx, struct nb_packet_server);
if (result == NULL) {
@@ -87,6 +88,11 @@ NTSTATUS nb_packet_server_create(TALLOC_CTX *mem_ctx,
status = map_nt_error_from_unix(errno);
goto fail;
}
+ rc = listen(result->listen_sock, 5);
+ if (rc < 0) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
+ }
talloc_set_destructor(result, nb_packet_server_destructor);
fde = tevent_add_fd(ev, result, result->listen_sock, TEVENT_FD_READ,
diff --git a/source3/rpc_server/rpc_server.c b/source3/rpc_server/rpc_server.c
index c995e22ea0..6b95419172 100644
--- a/source3/rpc_server/rpc_server.c
+++ b/source3/rpc_server/rpc_server.c
@@ -209,6 +209,7 @@ bool setup_named_pipe_socket(const char *pipe_name,
{
struct dcerpc_ncacn_listen_state *state;
struct tevent_fd *fde;
+ int rc;
state = talloc(ev_ctx, struct dcerpc_ncacn_listen_state);
if (!state) {
@@ -225,6 +226,13 @@ bool setup_named_pipe_socket(const char *pipe_name,
goto out;
}
+ rc = listen(state->fd, 5);
+ if (rc < 0) {
+ DEBUG(0, ("Failed to listen on pipe socket %s: %s\n",
+ pipe_name, strerror(errno)));
+ goto out;
+ }
+
state->ev_ctx = ev_ctx;
state->msg_ctx = msg_ctx;
@@ -852,6 +860,7 @@ bool setup_dcerpc_ncalrpc_socket(struct tevent_context *ev_ctx,
{
struct dcerpc_ncacn_listen_state *state;
struct tevent_fd *fde;
+ int rc;
state = talloc(ev_ctx, struct dcerpc_ncacn_listen_state);
if (state == NULL) {
@@ -878,6 +887,13 @@ bool setup_dcerpc_ncalrpc_socket(struct tevent_context *ev_ctx,
goto out;
}
+ rc = listen(state->fd, 5);
+ if (rc < 0) {
+ DEBUG(0, ("Failed to listen on ncalrpc socket %s: %s\n",
+ name, strerror(errno)));
+ goto out;
+ }
+
state->ev_ctx = ev_ctx;
state->msg_ctx = msg_ctx;
diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c
index cb9d70c5f3..b33328c8d3 100644
--- a/source3/winbindd/winbindd.c
+++ b/source3/winbindd/winbindd.c
@@ -957,6 +957,7 @@ static bool winbindd_setup_listeners(void)
struct winbindd_listen_state *pub_state = NULL;
struct winbindd_listen_state *priv_state = NULL;
struct tevent_fd *fde;
+ int rc;
pub_state = talloc(winbind_event_context(),
struct winbindd_listen_state);
@@ -970,6 +971,10 @@ static bool winbindd_setup_listeners(void)
if (pub_state->fd == -1) {
goto failed;
}
+ rc = listen(pub_state->fd, 5);
+ if (rc < 0) {
+ goto failed;
+ }
fde = tevent_add_fd(winbind_event_context(), pub_state, pub_state->fd,
TEVENT_FD_READ, winbindd_listen_fde_handler,
@@ -992,6 +997,10 @@ static bool winbindd_setup_listeners(void)
if (priv_state->fd == -1) {
goto failed;
}
+ rc = listen(priv_state->fd, 5);
+ if (rc < 0) {
+ goto failed;
+ }
fde = tevent_add_fd(winbind_event_context(), priv_state,
priv_state->fd, TEVENT_FD_READ,