diff --git a/src/libtomahawk/utils/tomahawkutils.cpp b/src/libtomahawk/utils/tomahawkutils.cpp index da643be06..97ce2e572 100644 --- a/src/libtomahawk/utils/tomahawkutils.cpp +++ b/src/libtomahawk/utils/tomahawkutils.cpp @@ -375,6 +375,7 @@ NetworkProxyFactory::setNoProxyHosts( const QStringList& hosts ) { QString munge = host.simplified(); newList << munge; + //TODO: wildcard support } qDebug() << Q_FUNC_INFO << " No-proxy hosts: " << newList; m_noProxyHosts = newList; diff --git a/src/libtomahawk/utils/tomahawkutils.h b/src/libtomahawk/utils/tomahawkutils.h index 25ff053e9..ebe2562b4 100644 --- a/src/libtomahawk/utils/tomahawkutils.h +++ b/src/libtomahawk/utils/tomahawkutils.h @@ -57,7 +57,10 @@ namespace TomahawkUtils class DLLEXPORT NetworkProxyFactory : public QNetworkProxyFactory { public: - NetworkProxyFactory() {} + NetworkProxyFactory() + : m_proxy( QNetworkProxy::NoProxy ) + {} + virtual ~NetworkProxyFactory() {} virtual QList< QNetworkProxy > queryProxy( const QNetworkProxyQuery & query = QNetworkProxyQuery() ); diff --git a/src/sip/jabber/jabber.cpp b/src/sip/jabber/jabber.cpp index c0bf481b7..da9b7acf7 100644 --- a/src/sip/jabber/jabber.cpp +++ b/src/sip/jabber/jabber.cpp @@ -155,22 +155,22 @@ JabberPlugin::refreshProxy() { qDebug() << Q_FUNC_INFO; - if(!m_client->connection()) - { - m_client->setConnection(new Jreen::TcpConnection(m_currentServer, m_currentPort)); - } - + if( !m_client->connection() ) + return; + QNetworkProxy proxyToUse = TomahawkUtils::proxyFactory()->queryProxy( QNetworkProxyQuery( m_currentServer, m_currentPort ) ).first(); m_usedProxy = proxyToUse; if( proxyToUse.type() != QNetworkProxy::NoProxy && ( m_currentServer.isEmpty() || !(m_currentPort > 0) ) ) { + qDebug() << Q_FUNC_INFO << " proxy type is not noproxy but no server/port set"; // patches are welcome in Jreen that implement jdns through proxy emit error( SipPlugin::ConnectionError, tr( "You need to set hostname and port of your jabber server, if you want to use it through a proxy" ) ); return; } + qDebug() << Q_FUNC_INFO << " proxy type is NoProxy ? " << (proxyToUse.type() == QNetworkProxy::NoProxy ? "true" : "false" ); qobject_cast( m_client->connection() )->setProxy( proxyToUse ); } @@ -223,10 +223,10 @@ JabberPlugin::connectPlugin( bool startup ) return true; //FIXME: should i return false here?! } + refreshProxy(); + qDebug() << "Connecting to the XMPP server..." << m_client->jid().full(); - refreshProxy(); - //FIXME: we're badly workarounding some missing reconnection api here, to be fixed soon QTimer::singleShot( 1000, m_client, SLOT( connectToServer() ) ); @@ -507,15 +507,13 @@ JabberPlugin::checkSettings() QNetworkProxy proxyToUse = TomahawkUtils::proxyFactory()->queryProxy( QNetworkProxyQuery( m_currentServer, m_currentPort ) ).first(); if ( proxyToUse.hostName() != m_usedProxy.hostName() || - proxyToUse.port() != m_usedProxy.port() || - proxyToUse.user() != m_usedProxy.user() || - proxyToUse.password() != m_usedProxy.password() || - proxyToUse.type() != m_usedProxy.type() || - proxyToUse.capabilities() != m_usedProxy.capabilities() ) - { - m_usedProxy = proxyToUse; + proxyToUse.port() != m_usedProxy.port() || + proxyToUse.user() != m_usedProxy.user() || + proxyToUse.password() != m_usedProxy.password() || + proxyToUse.type() != m_usedProxy.type() || + proxyToUse.capabilities() != m_usedProxy.capabilities() + ) reconnect = true; - } m_currentUsername = accountName(); m_currentPassword = readPassword(); @@ -534,6 +532,8 @@ JabberPlugin::checkSettings() setupClientHelper(); + refreshProxy(); + qDebug() << Q_FUNC_INFO << "Updated settings"; connectPlugin( false ); } diff --git a/src/tomahawkapp.cpp b/src/tomahawkapp.cpp index 92bc11c3b..752eaf451 100644 --- a/src/tomahawkapp.cpp +++ b/src/tomahawkapp.cpp @@ -193,7 +193,9 @@ TomahawkApp::init() QNetworkProxy proxy( static_cast( s->proxyType() ), s->proxyHost(), s->proxyPort(), s->proxyUsername(), s->proxyPassword() ); proxyFactory->setProxy( proxy ); } - proxyFactory->setNoProxyHosts( s->proxyNoProxyHosts().split( ',', QString::SkipEmptyParts ) ); + + if ( !s->proxyNoProxyHosts().isEmpty() ) + proxyFactory->setNoProxyHosts( s->proxyNoProxyHosts().split( ',', QString::SkipEmptyParts ) ); TomahawkUtils::NetworkProxyFactory::setApplicationProxyFactory( proxyFactory ); #ifdef LIBLASTFM_FOUND @@ -535,7 +537,7 @@ TomahawkApp::setupSIP() #endif qDebug() << "Connecting SIP classes"; - SipHandler::instance()->refreshProxy(); + //SipHandler::instance()->refreshProxy(); SipHandler::instance()->loadFromConfig( true ); } }