r3482 - in trunk/libmsip/source: . transports
mikma at minisip.org
mikma at minisip.org
Sun Nov 18 11:21:07 CET 2007
Author: mikma
Date: 2007-11-18 11:21:07 +0100 (Sun, 18 Nov 2007)
New Revision: 3482
Modified:
trunk/libmsip/source/SipLayerTransport.cxx
trunk/libmsip/source/transports/SipTransport.cxx
trunk/libmsip/source/transports/SipTransport.h
Log:
Implement SipTransport::getDefaultPort
Modified: trunk/libmsip/source/SipLayerTransport.cxx
===================================================================
--- trunk/libmsip/source/SipLayerTransport.cxx 2007-11-18 10:10:14 UTC (rev 3481)
+++ trunk/libmsip/source/SipLayerTransport.cxx 2007-11-18 10:21:07 UTC (rev 3482)
@@ -512,17 +512,6 @@
pack->addBefore( hdr );
}
-static int32_t getDefaultPort(const string &transport)
-{
- if( transport == "TLS" ){
- return 5061;
- }
- else{
- return 5060;
- }
-}
-
-
static bool lookupDestSrv(const string &domain, const string &transport,
string &destAddr, int32_t &destPort)
{
@@ -551,7 +540,7 @@
}
// RFC 3263 4.2 Determining Port and IP Address
-static bool lookupDestIpPort(const SipUri &uri, const string &transport,
+static bool lookupDestIpPort(const SipUri &uri, MRef<SipTransport*> transport,
string &destAddr, int32_t &destPort)
{
bool res = false;
@@ -566,7 +555,7 @@
if( IPAddress::isNumeric( addr ) ){
res = true;
if( !port ){
- port = getDefaultPort( transport );
+ port = transport->getDefaultPort();
}
}
// Not numeric
@@ -575,13 +564,13 @@
res = true;
}
// Lookup SRV
- else if( lookupDestSrv( uri.getIp(), transport,
+ else if( lookupDestSrv( uri.getIp(), transport->getName(),
addr, port )){
res = true;
}
else{
// Lookup A or AAAA
- port = getDefaultPort( transport );
+ port = transport->getDefaultPort();
res = true;
}
}
@@ -700,7 +689,7 @@
return false;
}
- return lookupDestIpPort(uri, destTransport->getName(),
+ return lookupDestIpPort(uri, destTransport,
destAddr, destPort);
}
}
Modified: trunk/libmsip/source/transports/SipTransport.cxx
===================================================================
--- trunk/libmsip/source/transports/SipTransport.cxx 2007-11-18 10:10:14 UTC (rev 3481)
+++ trunk/libmsip/source/transports/SipTransport.cxx 2007-11-18 10:21:07 UTC (rev 3482)
@@ -35,6 +35,10 @@
SipTransport::SipTransport( MRef<Library *> lib ): MPlugin( lib ){
}
+int32_t SipTransport::getDefaultPort(){
+ return isSecure() ? 5061 : 5060;
+}
+
MRef<StreamSocket *> SipTransport::connect( const IPAddress &addr, uint16_t port, MRef<CertificateSet *> cert_db, MRef<CertificateChain *> certChain ){
throw Exception("Connection less transport");
}
Modified: trunk/libmsip/source/transports/SipTransport.h
===================================================================
--- trunk/libmsip/source/transports/SipTransport.h 2007-11-18 10:10:14 UTC (rev 3481)
+++ trunk/libmsip/source/transports/SipTransport.h 2007-11-18 10:21:07 UTC (rev 3482)
@@ -53,6 +53,11 @@
*/
virtual std::string getViaProtocol() const=0;
+ /**
+ * @return 5061 for secure transports and 5060 otherwise.
+ */
+ virtual int32_t getDefaultPort();
+
/** Setup a new listening socket */
virtual MRef<SipSocketServer *> createServer( MRef<SipLayerTransport*> receiver, bool ipv6, const std::string &ipString, int32_t prefPort, MRef<CertificateSet *> cert_db = NULL, MRef<CertificateChain *> certChain = NULL ) = 0;
/**
More information about the Minisip-devel
mailing list