From 89950c54f5cd13d170d3c3ec7b5d93236f9a58d0 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Fri, 17 May 2013 17:08:54 +0200 Subject: [PATCH] Sent old tomahawk versions SipInfos like before. --- src/libtomahawk/network/Servent.cpp | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/libtomahawk/network/Servent.cpp b/src/libtomahawk/network/Servent.cpp index aae34489b..9ceb819c5 100644 --- a/src/libtomahawk/network/Servent.cpp +++ b/src/libtomahawk/network/Servent.cpp @@ -435,15 +435,28 @@ Servent::registerPeer( const Tomahawk::peerinfo_ptr& peerInfo ) QString key = uuid(); const QString& nodeid = Database::instance()->impl()->dbid(); - /*ControlConnection* conn = new ControlConnection( this ); - conn->setName( peerInfo->contactId() ); - conn->setId( nodeid ); - conn->addPeerInfo( peerInfo );*/ - registerLazyOffer( key, peerInfo, nodeid ); QList sipInfos = getLocalSipInfos( nodeid, key ); - - peerInfo->sendLocalSipInfos( sipInfos ); + // SipInfos were single-value before 0.7.999 + if ( !peerInfo->versionString().isEmpty() && TomahawkUtils::compareVersionStrings( peerInfo->versionString(), "Tomahawk Player EmptyOS 0.7.99" ) < 0) + { + SipInfo info = SipInfo(); + info.setVisible( false ); + foreach ( SipInfo _info, sipInfos ) + { + QHostAddress ha = QHostAddress( _info.host() ); + if ( ( Servent::isValidExternalIP( ha ) && ha.protocol() == QAbstractSocket::IPv4Protocol ) || ( ha.protocol() == QAbstractSocket::UnknownNetworkLayerProtocol ) ) + { + info = _info; + break; + } + } + peerInfo->sendLocalSipInfos( QList() << info ); + } + else + { + peerInfo->sendLocalSipInfos( sipInfos ); + } handleSipInfo( peerInfo ); connect( peerInfo.data(), SIGNAL( sipInfoChanged() ), SLOT( onSipInfoChanged() ) );