|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
--- opal-3.6.2/src/sip/handlers.cxx.orig 2009-05-28 12:27:34.000000000 +0100
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+++ opal-3.6.2/src/sip/handlers.cxx 2009-05-28 14:02:21.000000000 +0100
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
@@ -1465,6 +1465,16 @@
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
//////////////////////////////////////////////////////////////////
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+/* All of the bwlow search loops run through the list with only
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ PSafeReference rather than PSafeReadOnly, even though they are
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ reading fields from the handler instances. We can get away with
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ this becuase the information being tested, e.g. AOR, is constant
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ for the life of the handler instance, once constructed.
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ We need to use PSafeReference as there are some cases where
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ deadlocks can occur when locked handlers look for information
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ from other handlers.
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ */
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
unsigned SIPHandlersList::GetCount(SIP_PDU::Methods meth, const PString & eventPackage) const
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
{
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
unsigned count = 0;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
@@ -1493,11 +1503,12 @@
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
/**
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
* Find the SIPHandler object with the specified callID
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
*/
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
-PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByCallID(const PString & callID, PSafetyMode m)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByCallID(const PString & callID, PSafetyMode mode)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
{
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- for (PSafePtr<SIPHandler> handler(*this, m); handler != NULL; ++handler)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- if (callID == handler->GetCallID())
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ for (PSafePtr<SIPHandler> handler(*this, PSafeReference); handler != NULL; ++handler) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ if (callID == handler->GetCallID() && handler.SetSafetyMode(mode))
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
return handler;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
return NULL;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
}
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
@@ -1505,18 +1516,44 @@
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
/**
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
* Find the SIPHandler object with the specified authRealm
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
*/
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
-PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByAuthRealm (const PString & authRealm, const PString & userName, PSafetyMode m)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByAuthRealm (const PString & authRealm, const PString & userName, PSafetyMode mode)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
{
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- PIPSocket::Address realmAddress;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ PIPSocket::Address handlerRealmAddress;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ PIPSocket::Address authRealmAddress(authRealm);
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ // if username is specified, look for exact matches
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ if (!userName.IsEmpty()) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ // look for a match to exact user name and realm
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ for (PSafePtr<SIPHandler> handler(*this, PSafeReference); handler != NULL; ++handler) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ if ( handler->GetUsername() == userName &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ (handler->GetRealm().IsEmpty() || handler->GetRealm() == authRealm) &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ handler.SetSafetyMode(mode))
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ return handler;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ // look for a match to exact username and realm as hostname
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ for (PSafePtr<SIPHandler> handler(*this, PSafeReference); handler != NULL; ++handler) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ if (PIPSocket::GetHostAddress(handler->GetRealm(), handlerRealmAddress) &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ handlerRealmAddress == authRealmAddress &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ handler->GetUsername() == userName &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ handler.SetSafetyMode(mode))
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ return handler;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- for (PSafePtr<SIPHandler> handler(*this, m); handler != NULL; ++handler) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- if (authRealm == handler->GetRealm() && (userName.IsEmpty() || userName == handler->GetUsername()))
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ // look for a match to exact realm
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ for (PSafePtr<SIPHandler> handler(*this, PSafeReference); handler != NULL; ++handler) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ if (handler->GetRealm() == authRealm && handler.SetSafetyMode(mode))
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
return handler;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
}
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- for (PSafePtr<SIPHandler> handler(*this, m); handler != NULL; ++handler) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- if (PIPSocket::GetHostAddress(handler->GetRealm(), realmAddress))
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- if (realmAddress == PIPSocket::Address(authRealm) && (userName.IsEmpty() || userName == handler->GetUsername()))
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- return handler;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ // look for a match to exact realm as hostname
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ for (PSafePtr<SIPHandler> handler(*this, PSafeReference); handler != NULL; ++handler) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ if (PIPSocket::GetHostAddress(handler->GetRealm(), handlerRealmAddress) &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ handlerRealmAddress == authRealmAddress &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ handler.SetSafetyMode(mode))
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ return handler;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
}
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
return NULL;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
}
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
@@ -1529,24 +1566,27 @@
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
* or 6001@seconix.com when registering 6001@seconix.com to
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
* sip.seconix.com
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
*/
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
-PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByUrl(const PString & remoteAddress, SIP_PDU::Methods meth, PSafetyMode m)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByUrl(const PString & remoteAddress, SIP_PDU::Methods meth, PSafetyMode mode)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
{
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
SIPURL remoteURL = remoteAddress;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- for (PSafePtr<SIPHandler> handler(*this, m); handler != NULL; ++handler) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- if (meth == handler->GetMethod() && remoteURL == handler->GetAddressOfRecord())
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ for (PSafePtr<SIPHandler> handler(*this, PSafeReference); handler != NULL; ++handler) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ if (handler->GetMethod() == meth &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ handler->GetAddressOfRecord() == remoteURL &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ handler.SetSafetyMode(mode))
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
return handler;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
}
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
return NULL;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
}
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
-PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByUrl(const PString & aor, SIP_PDU::Methods meth, const PString & eventPackage, PSafetyMode m)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByUrl(const PString & aor, SIP_PDU::Methods meth, const PString & eventPackage, PSafetyMode mode)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
{
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
SIPURL aorURL = aor;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- for (PSafePtr<SIPHandler> handler(*this, m); handler != NULL; ++handler) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- if (meth == handler->GetMethod() &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ for (PSafePtr<SIPHandler> handler(*this, PSafeReference); handler != NULL; ++handler) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ if (handler->GetMethod() == meth &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
handler->GetAddressOfRecord() == aorURL &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- handler->GetEventPackage() == eventPackage)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ handler->GetEventPackage() == eventPackage &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ handler.SetSafetyMode(mode))
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
return handler;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
}
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
return NULL;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
@@ -1558,14 +1598,14 @@
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
* For example, in the above case, the name parameter
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
* could be "sip.seconix.com" or "seconix.com".
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
*/
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
-PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByDomain(const PString & name, SIP_PDU::Methods meth, PSafetyMode m)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByDomain(const PString & name, SIP_PDU::Methods meth, PSafetyMode mode)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
{
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- for (PSafePtr<SIPHandler> handler(*this, m); handler != NULL; ++handler) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
-
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- if ((handler->GetMethod() == meth) &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- (handler->GetState() != SIPHandler::Unsubscribed) &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ for (PSafePtr<SIPHandler> handler(*this, PSafeReference); handler != NULL; ++handler) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ if ( handler->GetMethod() == meth &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ handler->GetState() != SIPHandler::Unsubscribed &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
(handler->GetAddressOfRecord().GetHostName() == name ||
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
- handler->GetAddressOfRecord().GetHostAddress().IsEquivalent(name)))
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ handler->GetAddressOfRecord().GetHostAddress().IsEquivalent(name)) &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
+ handler.SetSafetyMode(mode))
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
return handler;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
}
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
6c79d0c |
return NULL;
|