diff --git a/src/session_base.cpp b/src/session_base.cpp index 6acaa39c..50686e09 100644 --- a/src/session_base.cpp +++ b/src/session_base.cpp @@ -308,9 +308,6 @@ void zmq::session_base_t::process_attach (i_engine *engine_) // Ask socket to plug into the remote end of the pipe. send_bind (socket, pipes [1]); - - // Store the outpipe for disconnect situations - outpipe = pipes [1]; } // Plug in the engine. @@ -399,7 +396,15 @@ void zmq::session_base_t::detached () } reset (); - + + // For delayed connect situations, terminate the pipe + // and reestablish later on + if (pipe && options.delay_attach_on_connect == 1 + && addr->protocol != "pgm" && addr->protocol != "epgm") { + pipe->terminate (false); + pipe = NULL; + } + // Reconnect. if (options.reconnect_ivl != -1) start_connecting (true); @@ -408,14 +413,6 @@ void zmq::session_base_t::detached () // the socket object to resend all the subscriptions. if (pipe && (options.type == ZMQ_SUB || options.type == ZMQ_XSUB)) pipe->hiccup (); - - // For delayed connect situations, terminate the pipe - // and reestablish later on - if (pipe && options.delay_attach_on_connect == 1 - && addr->protocol != "pgm" && addr->protocol != "epgm") { - pipe->terminate (false); - outpipe->terminate (false); - } } void zmq::session_base_t::start_connecting (bool wait_) diff --git a/src/session_base.hpp b/src/session_base.hpp index 02b68462..8244cb59 100644 --- a/src/session_base.hpp +++ b/src/session_base.hpp @@ -103,9 +103,6 @@ namespace zmq // Pipe connecting the session to its socket. zmq::pipe_t *pipe; - - // Socket end of the pipe, for delay attach scenario - zmq::pipe_t *outpipe; // This flag is true if the remainder of the message being processed // is still in the in pipe.