diff --git a/src/WHISPER/InternalUDPService.cpp b/src/WHISPER/InternalUDPService.cpp index 557e568..b788682 100644 --- a/src/WHISPER/InternalUDPService.cpp +++ b/src/WHISPER/InternalUDPService.cpp @@ -91,13 +91,13 @@ namespace WHISPER { { WHISPER::Leave Leave(getParentID(),getOwnID(),getOwnDeviceType(),ownReceivingPort_,myAdress_); this->publish(Leave.serialize(),WHISPER::MsgTopicsMap[(WHISPER::MsgTopics)Leave.topic_]); - unsubscribe(WHISPER::MsgTopicsMap[WHISPER::MsgTopics::MANAGEMENT]); + // unsubscribe(WHISPER::MsgTopicsMap[WHISPER::MsgTopics::MANAGEMENT]); - if (subscribedTopics.size() > 0) { - for ( std::vector::iterator it = subscribedTopics.begin(); it != subscribedTopics.end(); it++) { - unsubscribe(*it); - } - } + // if (subscribedTopics.size() > 0) { + // for ( std::vector::iterator it = subscribedTopics.begin(); it != subscribedTopics.end(); it++) { + // unsubscribe(*it); + // } + // } diff --git a/src/WHISPER/whisper.cpp b/src/WHISPER/whisper.cpp index 3f2acf6..ee4f1a5 100644 --- a/src/WHISPER/whisper.cpp +++ b/src/WHISPER/whisper.cpp @@ -40,6 +40,12 @@ namespace WHISPER void whispercomm::disconnect() { + if (subscribedTopics.size() > 0) { + for ( std::vector::iterator it = subscribedTopics.begin(); it != subscribedTopics.end(); it++) { + unsubscribe(*it); + } + } + stopReceiveThread = true; if(receiveThread.joinable()) receiveThread.join(); derivedDisconnect();