From 5107f170d103593545cb15f38958922bbe5502ff Mon Sep 17 00:00:00 2001 From: Alexandre Savard <alexandre.savard@savoirfairelinux.com> Date: Wed, 15 Aug 2012 15:52:03 -0400 Subject: [PATCH] #14615: Clear call map in voip destructorw --- daemon/src/iax/iaxvoiplink.cpp | 3 ++- daemon/src/iax/iaxvoiplink.h | 2 +- daemon/src/sip/sipvoiplink.cpp | 4 +++- daemon/src/sip/sipvoiplink.h | 2 +- daemon/src/voiplink.h | 4 ++-- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/daemon/src/iax/iaxvoiplink.cpp b/daemon/src/iax/iaxvoiplink.cpp index 647608ceef..66221b7985 100644 --- a/daemon/src/iax/iaxvoiplink.cpp +++ b/daemon/src/iax/iaxvoiplink.cpp @@ -68,6 +68,7 @@ IAXVoIPLink::~IAXVoIPLink() handlingEvents_ = false; regSession_ = NULL; // shall not delete it // XXX: but why? terminate(); + clearCallMap(); } void @@ -419,7 +420,7 @@ IAXVoIPLink::sendTextMessage(const std::string& callID, #endif void -IAXVoIPLink::clearCallMap(Call *call) +IAXVoIPLink::clearCallMap() { ost::MutexLock m(iaxCallMapMutex_); diff --git a/daemon/src/iax/iaxvoiplink.h b/daemon/src/iax/iaxvoiplink.h index 9db1ff16fc..0b2b1283c6 100644 --- a/daemon/src/iax/iaxvoiplink.h +++ b/daemon/src/iax/iaxvoiplink.h @@ -176,7 +176,7 @@ class IAXVoIPLink : public VoIPLink { #if HAVE_INSTANT_MESSAGING virtual void sendTextMessage(const std::string& callID, const std::string& message, const std::string& from); #endif - virtual void clearCallMap(Call* call); + virtual void clearCallMap(); virtual void addCall(Call* call); virtual Call* getCall(const std::string& id); virtual void removeCall(const std::string &id); diff --git a/daemon/src/sip/sipvoiplink.cpp b/daemon/src/sip/sipvoiplink.cpp index 8fbe4f927d..f8fde08b83 100644 --- a/daemon/src/sip/sipvoiplink.cpp +++ b/daemon/src/sip/sipvoiplink.cpp @@ -516,6 +516,8 @@ SIPVoIPLink::~SIPVoIPLink() pj_caching_pool_destroy(cp_); pj_shutdown(); + + clearCallMap(); } SIPVoIPLink* SIPVoIPLink::instance() @@ -1044,7 +1046,7 @@ void SIPVoIPLink::sendTextMessage(const std::string &callID, #endif // HAVE_INSTANT_MESSAGING void -SIPVoIPLink::clearCallMap(Call *call) +SIPVoIPLink::clearCallMap() { ost::MutexLock m(sipCallMapMutex_); diff --git a/daemon/src/sip/sipvoiplink.h b/daemon/src/sip/sipvoiplink.h index cfbe1bb448..29f8e01313 100644 --- a/daemon/src/sip/sipvoiplink.h +++ b/daemon/src/sip/sipvoiplink.h @@ -256,7 +256,7 @@ class SIPVoIPLink : public VoIPLink { const std::string& message, const std::string& from); #endif - virtual void clearCallMap(Call* call); + virtual void clearCallMap(); virtual void addCall(Call* call); virtual Call* getCall(const std::string& id); virtual void removeCall(const std::string &id); diff --git a/daemon/src/voiplink.h b/daemon/src/voiplink.h index 5d04834afc..a6659e2fc8 100644 --- a/daemon/src/voiplink.h +++ b/daemon/src/voiplink.h @@ -70,7 +70,7 @@ class VoIPLink { /** * Virtual method * Build and send account registration request - *SIP/ + */ virtual void sendRegister(Account *a) = 0; /** @@ -167,7 +167,7 @@ class VoIPLink { const std::string &message, const std::string &from) = 0; #endif - virtual void clearCallMap(Call* call) = 0; + virtual void clearCallMap() = 0; /** Add a call to the call map (protected by mutex) * @param call A call pointer with a unique pointer -- GitLab