Now can confirm exactly I'm positively right: downloaded sourcecode and found no UPnP redirection of TLS port

MainFrm.cpp:
void MainFrame::startUPnP() {
stopUPnP();
if( SETTING(INCOMING_CONNECTIONS) == SettingsManager::INCOMING_FIREWALL_UPNP ) {
UPnP_TCPConnection = new UPnP( Util::getLocalIp(), "TCP", APPNAME " Download Port (" + Util::toString(ConnectionManager::getInstance()->getPort()) + " TCP)", ConnectionManager::getInstance()->getPort() );
UPnP_UDPConnection = new UPnP( Util::getLocalIp(), "UDP", APPNAME " Search Port (" + Util::toString(SearchManager::getInstance()->getPort()) + " UDP)", SearchManager::getInstance()->getPort() );
// <--------- here must be TLS redirection set also -------->
//Smth. like this:
if(CryptoManager::getInstance()->TLSOk())
{
UPnP_TCPTLSConnection = new UPnP(Util::getLocalIp(), "TCP", APPNAME " TLS Port (" + Util::toString(ConnectionManager::getInstance()->getSecurePort()) + " TCP)", ConnectionManager::getInstance()->getSecurePort() );
}
if ( FAILED(UPnP_UDPConnection->OpenPorts()) || FAILED(UPnP_TCPConnection->OpenPorts()) ||
(FAILED(UPnP_TCPTLSConnection->OpenPorts()) && CryptoManager::getInstance()->TLSOk()))
{
LogManager::getInstance()->message(STRING(UPNP_FAILED_TO_CREATE_MAPPINGS));
MessageBox(CTSTRING(UPNP_FAILED_TO_CREATE_MAPPINGS), _T(APPNAME) _T(" ") _T(VERSIONSTRING), MB_OK | MB_ICONWARNING);
// We failed! thus reset the objects
delete UPnP_TCPConnection;
delete UPnP_UDPConnection;
delete UPnP_TCPTLSConnection; UPnP_TCPConnection = UPnP_UDPConnection
= UPnP_TCPTLSConnection=NULL;
}
else
{
if(!BOOLSETTING(NO_IP_OVERRIDE)) {
// now lets configure the external IP (connect to me) address
string ExternalIP = UPnP_TCPConnection->GetExternalIP();
if ( !ExternalIP.empty() ) {
// woohoo, we got the external IP from the UPnP framework
SettingsManager::getInstance()->set(SettingsManager::EXTERNAL_IP, ExternalIP );
} else {
//:-( Looks like we have to rely on the user setting the external IP manually
// no need to do cleanup here because the mappings work
LogManager::getInstance()->message(STRING(UPNP_FAILED_TO_GET_EXTERNAL_IP));
MessageBox(CTSTRING(UPNP_FAILED_TO_GET_EXTERNAL_IP), _T(APPNAME) _T(" ") _T(VERSIONSTRING), MB_OK | MB_ICONWARNING);
}
}
}
}
}
void MainFrame::stopUPnP() {
// Just check if the port mapping objects are initialized (NOT NULL)
if ( UPnP_TCPConnection != NULL )
{
if (FAILED(UPnP_TCPConnection->ClosePorts()) )
{
LogManager::getInstance()->message(STRING(UPNP_FAILED_TO_REMOVE_MAPPINGS));
}
delete UPnP_TCPConnection;
}
if ( UPnP_UDPConnection != NULL )
{
if (FAILED(UPnP_UDPConnection->ClosePorts()) )
{
LogManager::getInstance()->message(STRING(UPNP_FAILED_TO_REMOVE_MAPPINGS));
}
delete UPnP_UDPConnection;
}
if ( UPnP_TCPTLSConnection != NULL )
{
if (FAILED(UPnP_TCPTLSConnection->ClosePorts()) )
{
LogManager::getInstance()->message(STRING(UPNP_FAILED_TO_REMOVE_MAPPINGS));
}
delete UPnP_TCPTLSConnection;
} // Not sure this is required (i.e. Objects are checked later in execution)
// But its better being on the save side

UPnP_TCPConnection = UPnP_UDPConnection
= UPnP_TCPTLSConnection = NULL;
}