1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-06 22:26:32 +02:00

* Fixed TWK-226. Never advertise ourselves with an unroutable / internal-only IP address.

This commit is contained in:
Christian Muehlhaeuser
2011-06-23 16:54:27 +02:00
parent 660176477a
commit dca4a7c591

View File

@@ -195,13 +195,28 @@ Servent::createConnectionKey( const QString& name, const QString &nodeid, const
void void
Servent::setExternalAddress( QHostAddress ha, unsigned int port ) Servent::setExternalAddress( QHostAddress ha, unsigned int port )
{ {
m_externalAddress = ha; QString ip = ha.toString();
m_externalPort = port; if ( !qApp->arguments().contains( "--lanhack" ) )
if( m_externalPort == 0 || m_externalAddress.toString().isEmpty() )
{ {
if( !TomahawkSettings::instance()->externalHostname().isEmpty() && if ( ip.startsWith( "10." ) || ip.startsWith( "172.16." ) || ip.startsWith( "192.168." ) )
!TomahawkSettings::instance()->externalPort() == 0 ) {
qDebug() << Q_FUNC_INFO << "Tried to set an invalid ip as external address!";
return;
}
m_externalAddress = ha;
m_externalPort = port;
}
else
{
m_externalAddress = ha;
m_externalPort = port;
}
if ( m_externalPort == 0 || m_externalAddress.toString().isEmpty() )
{
if ( !TomahawkSettings::instance()->externalHostname().isEmpty() &&
!TomahawkSettings::instance()->externalPort() == 0 )
{ {
qDebug() << "UPnP failed, have external address/port -- falling back"; qDebug() << "UPnP failed, have external address/port -- falling back";
m_externalHostname = TomahawkSettings::instance()->externalHostname(); m_externalHostname = TomahawkSettings::instance()->externalHostname();