diff --git a/src/socket_base.cpp b/src/socket_base.cpp index 56a3ce20..617c4b30 100644 --- a/src/socket_base.cpp +++ b/src/socket_base.cpp @@ -506,9 +506,6 @@ int zmq::socket_base_t::connect (const char *addr_) int rc = pipepair (parents, new_pipes, hwms, conflates); errno_assert (rc == 0); - // Attach local end of the pipe to this socket object. - attach_pipe (new_pipes [0]); - if (!peer.socket) { // The peer doesn't exist yet so we don't know whether // to send the identity message or not. To resolve this, @@ -557,6 +554,9 @@ int zmq::socket_base_t::connect (const char *addr_) send_bind (peer.socket, new_pipes [1], false); } + // Attach local end of the pipe to this socket object. + attach_pipe (new_pipes [0]); + // Save last endpoint URI last_endpoint.assign (addr_);