summaryrefslogtreecommitdiff
path: root/src/socket_base.cpp
diff options
context:
space:
mode:
authorMartin Sustrik <sustrik@250bpm.com>2010-02-13 13:07:33 +0100
committerMartin Sustrik <sustrik@250bpm.com>2010-02-13 13:07:33 +0100
commitcdc2efe9b5f0d1f45065b1c32e5eabd7e9f78a12 (patch)
tree5d847b389419e06687683cd7fa5437b681ba0cc0 /src/socket_base.cpp
parent923eacd28a725a6b32de588fe7a54dbe252d84aa (diff)
Multi-hop REQ/REP, part VII., identity-related algorithms rewritten
Diffstat (limited to 'src/socket_base.cpp')
-rw-r--r--src/socket_base.cpp25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/socket_base.cpp b/src/socket_base.cpp
index 720e8cd..4af69a0 100644
--- a/src/socket_base.cpp
+++ b/src/socket_base.cpp
@@ -267,7 +267,7 @@ int zmq::socket_base_t::connect (const char *addr_)
return -1;
}
- send_attach (session, pgm_sender);
+ send_attach (session, pgm_sender, 0, NULL);
}
else if (options.requires_in) {
@@ -282,7 +282,7 @@ int zmq::socket_base_t::connect (const char *addr_)
return -1;
}
- send_attach (session, pgm_receiver);
+ send_attach (session, pgm_receiver, 0, NULL);
}
else
zmq_assert (false);
@@ -454,30 +454,33 @@ bool zmq::socket_base_t::has_out ()
return xhas_out ();
}
-bool zmq::socket_base_t::register_session (const char *name_,
- session_t *session_)
+bool zmq::socket_base_t::register_session (unsigned char peer_identity_size_,
+ unsigned char *peer_identity_, session_t *session_)
{
sessions_sync.lock ();
- bool registered =
- named_sessions.insert (std::make_pair (name_, session_)).second;
+ bool registered = named_sessions.insert (std::make_pair (std::string (
+ (char*) peer_identity_, peer_identity_size_), session_)).second;
sessions_sync.unlock ();
return registered;
}
-void zmq::socket_base_t::unregister_session (const char *name_)
+void zmq::socket_base_t::unregister_session (unsigned char peer_identity_size_,
+ unsigned char *peer_identity_)
{
sessions_sync.lock ();
- named_sessions_t::iterator it = named_sessions.find (name_);
+ named_sessions_t::iterator it = named_sessions.find (std::string (
+ (char*) peer_identity_, peer_identity_size_));
zmq_assert (it != named_sessions.end ());
named_sessions.erase (it);
sessions_sync.unlock ();
}
-zmq::session_t *zmq::socket_base_t::find_session (const char *name_)
+zmq::session_t *zmq::socket_base_t::find_session (
+ unsigned char peer_identity_size_, unsigned char *peer_identity_)
{
sessions_sync.lock ();
-
- named_sessions_t::iterator it = named_sessions.find (name_);
+ named_sessions_t::iterator it = named_sessions.find (std::string (
+ (char*) peer_identity_, peer_identity_size_));
if (it == named_sessions.end ()) {
sessions_sync.unlock ();
return NULL;