summaryrefslogtreecommitdiff
path: root/src/signaler.cpp
diff options
context:
space:
mode:
authorMartin Sustrik <sustrik@250bpm.com>2011-09-02 15:34:12 +0200
committerMartin Sustrik <sustrik@250bpm.com>2011-09-02 15:34:12 +0200
commit8b7ac4c2a9c3ede95d6f5f9717a1939a23788964 (patch)
tree9afa85cda119a35f2dcd18eb7ff77e92cb8bd78a /src/signaler.cpp
parent2910a728dc777068e6ae7f67041da185b0865171 (diff)
Close file descriptors on exec (issue 218)
When exec is executed to start a different process image old 0MQ file descriptors could stay open, thus blocking TCP ports and alike. This patch should solve the problem. Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
Diffstat (limited to 'src/signaler.cpp')
-rw-r--r--src/signaler.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/signaler.cpp b/src/signaler.cpp
index 1c1c5b6..aac3e7c 100644
--- a/src/signaler.cpp
+++ b/src/signaler.cpp
@@ -240,7 +240,7 @@ int zmq::signaler_t::make_fdpair (fd_t *r_, fd_t *w_)
// Create listening socket.
SOCKET listener;
- listener = socket (AF_INET, SOCK_STREAM, 0);
+ listener = open_socket (AF_INET, SOCK_STREAM, 0);
wsa_assert (listener != INVALID_SOCKET);
// Set SO_REUSEADDR and TCP_NODELAY on listening socket.
@@ -308,7 +308,7 @@ int zmq::signaler_t::make_fdpair (fd_t *r_, fd_t *w_)
lcladdr.sin_addr.s_addr = htonl (INADDR_LOOPBACK);
lcladdr.sin_port = 0;
- int listener = socket (AF_INET, SOCK_STREAM, 0);
+ int listener = open_socket (AF_INET, SOCK_STREAM, 0);
errno_assert (listener != -1);
int on = 1;
@@ -329,7 +329,7 @@ int zmq::signaler_t::make_fdpair (fd_t *r_, fd_t *w_)
rc = listen (listener, 1);
errno_assert (rc != -1);
- *w_ = socket (AF_INET, SOCK_STREAM, 0);
+ *w_ = open_socket (AF_INET, SOCK_STREAM, 0);
errno_assert (*w_ != -1);
rc = setsockopt (*w_, IPPROTO_TCP, TCP_NODELAY, &on, sizeof (on));