From 465da7b17eef4c86020a5def41a87977410b965a Mon Sep 17 00:00:00 2001 From: Dhammika Pathirana Date: Tue, 26 Oct 2010 16:02:47 +0200 Subject: drop connection requests with duplicate peer identity Signed-off-by: Dhammika Pathirana --- src/session.cpp | 9 +++++++-- src/zmq_init.hpp | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/session.cpp b/src/session.cpp index f853d5a..98e3c49 100644 --- a/src/session.cpp +++ b/src/session.cpp @@ -231,6 +231,13 @@ void zmq::session_t::process_attach (i_engine *engine_, return; } + // If the session already has an engine attached, destroy new one. + // Note new engine is not plugged in yet, we don't have to unplug it. + if (engine) { + delete engine_; + return; + } + // Check whether the required pipes already exist. If not so, we'll // create them and bind them to the socket object. if (!pipes_attached) { @@ -257,8 +264,6 @@ void zmq::session_t::process_attach (i_engine *engine_, } // Plug in the engine. - zmq_assert (!engine); - zmq_assert (engine_); engine = engine_; engine->plug (io_thread, this); diff --git a/src/zmq_init.hpp b/src/zmq_init.hpp index 6087de9..2233b7b 100644 --- a/src/zmq_init.hpp +++ b/src/zmq_init.hpp @@ -55,7 +55,7 @@ namespace zmq void process_plug (); void process_unplug (); - // Associated wite-protocol engine. + // Associated wire-protocol engine. i_engine *engine; // True if our own identity was already sent to the peer. -- cgit v1.2.3