While testing TLS with sipXecs4.2.1 we have found that the stack creates a new
TLS socket everytime while send a request to the same destination (same host
and port).This does not happen in case of TCP.
Is this a known problem?
When stack tries to send a message below is the flow
getClientForDestination()-->findExistingClientForDestination() --->
isAcceptableForDestination(). In this routine the below check fails for TLS as
getLocalIp() returns NULL and as a result new connection is created every time.
// Only accept it if the local IP is correct.
if (0 == strcmp(getLocalIp(), localIp))
{
....
....
While creating a TCP socket in SipTcpServer::buildClientSocket(), the localIp
is passed to OsConnectionSocket() where it gets stored in mLocalIp.
While creating a TLS socket in SipTLSServer:: buildClientSocket() the local ip
address is not passed to OsSSLConnectionSocket().This routine then calls
OsConnectionSocket() with localIp as NULL or INADDR_ANY.As a result the
mLocalIp does not get set
if (localIp)
{
mLocalIp = localIp;
}
Is there any specific reason for passing localIP as NULL to
OsConnectionSocket() for TLS.
Regards,
Gauri
_______________________________________________
sipx-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipx-dev/