summaryrefslogtreecommitdiff
path: root/src/named_session.cpp
diff options
context:
space:
mode:
authorMartin Sustrik <sustrik@250bpm.com>2011-03-16 13:26:23 +0100
committerMartin Sustrik <sustrik@250bpm.com>2011-03-16 13:26:23 +0100
commit32ded2b457b2102dba4c15e00363f031d212b1c4 (patch)
tree163f0540f5f26277ba934bc80671a7c4fc73b7ad /src/named_session.cpp
parentb79d07b8bc844135c44c1ff8b84b50dc08f56925 (diff)
Duplicate identities now checked with zmq_connect
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
Diffstat (limited to 'src/named_session.cpp')
-rw-r--r--src/named_session.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/named_session.cpp b/src/named_session.cpp
index 7e2c49e..34f4af4 100644
--- a/src/named_session.cpp
+++ b/src/named_session.cpp
@@ -45,11 +45,17 @@ zmq::named_session_t::~named_session_t ()
unregister_session (peer_identity);
}
-void zmq::named_session_t::attached (const blob_t &peer_identity_)
+bool zmq::named_session_t::attached (const blob_t &peer_identity_)
{
- // The owner should take care to not attach the session
- // to an unrelated peer.
+ // Double check that identities match.
zmq_assert (peer_identity == peer_identity_);
+
+ // If the session already has an engine attached, destroy new one.
+ if (has_engine ()) {
+ log ("DPID: duplicate peer identity - disconnecting peer");
+ return false;
+ }
+ return true;
}
void zmq::named_session_t::detached ()