diff options
Diffstat (limited to 'src/connectionhandler.cc')
-rw-r--r-- | src/connectionhandler.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/connectionhandler.cc b/src/connectionhandler.cc index 26cce46..8b48c03 100644 --- a/src/connectionhandler.cc +++ b/src/connectionhandler.cc @@ -80,9 +80,16 @@ void ConnectionHandler::subscribe(clientid_t clientid, nodeid_t nodeid) DEBUG(conn, "Added subscriber of %d\n", (int)nodeid); } -void ConnectionHandler::unsubscribe(clientid_t clientid, nodeid_t nodeid) +bool ConnectionHandler::unsubscribe(clientid_t clientid, nodeid_t nodeid) { + if(connlist[clientid].find(nodeid) == connlist[clientid].end()) + { + // Trying to unsubscribe from a node that is not subscribed. + return false; + } + connlist[clientid].erase(nodeid); + return true; } SubscriberList ConnectionHandler::subscriberlist(NodeIdList nodes) |