mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-12 09:04:33 +02:00
Completely rip TomahawkSettings out of proxy code
This commit is contained in:
@@ -23,15 +23,12 @@
|
|||||||
#include "NetworkProxyFactory.h"
|
#include "NetworkProxyFactory.h"
|
||||||
#include "utils/Logger.h"
|
#include "utils/Logger.h"
|
||||||
|
|
||||||
// TODO: get rid of this here!
|
|
||||||
#include "TomahawkSettings.h"
|
|
||||||
|
|
||||||
|
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#include <QNetworkConfiguration>
|
#include <QNetworkConfiguration>
|
||||||
|
#include <QNetworkAccessManager>
|
||||||
|
|
||||||
namespace Tomahawk
|
namespace Tomahawk
|
||||||
{
|
{
|
||||||
@@ -57,7 +54,7 @@ NetworkProxyFactory::queryProxy( const QNetworkProxyQuery& query )
|
|||||||
s_noProxyHostsMutex.lock();
|
s_noProxyHostsMutex.lock();
|
||||||
if ( !hostname.isEmpty() && s_noProxyHosts.contains( hostname ) )
|
if ( !hostname.isEmpty() && s_noProxyHosts.contains( hostname ) )
|
||||||
proxies << QNetworkProxy::NoProxy << systemProxyForQuery( query );
|
proxies << QNetworkProxy::NoProxy << systemProxyForQuery( query );
|
||||||
else if ( m_proxy.hostName().isEmpty() || TomahawkSettings::instance()->proxyType() == QNetworkProxy::NoProxy )
|
else if ( m_proxy.hostName().isEmpty() || proxyType() == QNetworkProxy::NoProxy )
|
||||||
proxies << systemProxyForQuery( query );
|
proxies << systemProxyForQuery( query );
|
||||||
else
|
else
|
||||||
proxies << m_proxy << systemProxyForQuery( query );
|
proxies << m_proxy << systemProxyForQuery( query );
|
||||||
@@ -87,7 +84,7 @@ NetworkProxyFactory::setNoProxyHosts( const QStringList& hosts )
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
NetworkProxyFactory::setProxy( const QNetworkProxy& proxy )
|
NetworkProxyFactory::setProxy( const QNetworkProxy& proxy, bool useProxyDns )
|
||||||
{
|
{
|
||||||
m_proxyChanged = false;
|
m_proxyChanged = false;
|
||||||
if ( m_proxy != proxy )
|
if ( m_proxy != proxy )
|
||||||
@@ -97,12 +94,12 @@ NetworkProxyFactory::setProxy( const QNetworkProxy& proxy )
|
|||||||
QFlags< QNetworkProxy::Capability > proxyCaps;
|
QFlags< QNetworkProxy::Capability > proxyCaps;
|
||||||
proxyCaps |= QNetworkProxy::TunnelingCapability;
|
proxyCaps |= QNetworkProxy::TunnelingCapability;
|
||||||
proxyCaps |= QNetworkProxy::ListeningCapability;
|
proxyCaps |= QNetworkProxy::ListeningCapability;
|
||||||
if ( TomahawkSettings::instance()->proxyDns() )
|
if ( useProxyDns )
|
||||||
proxyCaps |= QNetworkProxy::HostNameLookupCapability;
|
proxyCaps |= QNetworkProxy::HostNameLookupCapability;
|
||||||
|
|
||||||
m_proxy.setCapabilities( proxyCaps );
|
m_proxy.setCapabilities( proxyCaps );
|
||||||
tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Proxy using host" << proxy.hostName() << "and port" << proxy.port();
|
tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Proxy using host" << proxy.hostName() << "and port" << proxy.port();
|
||||||
tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "setting proxy to use proxy DNS?" << (TomahawkSettings::instance()->proxyDns() ? "true" : "false");
|
tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "setting proxy to use proxy DNS?" << useProxyDns;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -242,20 +239,20 @@ setNam( QNetworkAccessManager* nam, bool noMutexLocker )
|
|||||||
{
|
{
|
||||||
tDebug( LOGVERBOSE ) << "creating initial gui thread (" << QCoreApplication::instance()->thread() << ") nam";
|
tDebug( LOGVERBOSE ) << "creating initial gui thread (" << QCoreApplication::instance()->thread() << ") nam";
|
||||||
// Should only get here on first initialization of the nam
|
// Should only get here on first initialization of the nam
|
||||||
TomahawkSettings *s = TomahawkSettings::instance();
|
|
||||||
NetworkProxyFactory* proxyFactory = new NetworkProxyFactory();
|
NetworkProxyFactory* proxyFactory = new NetworkProxyFactory();
|
||||||
if ( s->proxyType() != QNetworkProxy::NoProxy && !s->proxyHost().isEmpty() )
|
if ( proxyType() != QNetworkProxy::NoProxy && !proxyHost().isEmpty() )
|
||||||
{
|
{
|
||||||
tDebug( LOGVERBOSE ) << "Setting proxy to saved values";
|
tDebug( LOGVERBOSE ) << "Setting proxy to saved values";
|
||||||
QNetworkProxy proxy( s->proxyType(), s->proxyHost(), s->proxyPort(), s->proxyUsername(), s->proxyPassword() );
|
QNetworkProxy proxy( proxyType(), proxyHost(), proxyPort(), proxyUsername(), proxyPassword() );
|
||||||
proxyFactory->setProxy( proxy );
|
proxyFactory->setProxy( proxy, proxyDns() );
|
||||||
//FIXME: Jreen is broke without this
|
//FIXME: Jreen is broke without this
|
||||||
//QNetworkProxy::setApplicationProxy( proxy );
|
//QNetworkProxy::setApplicationProxy( proxy );
|
||||||
s_noProxyHostsMutex.lock();
|
s_noProxyHostsMutex.lock();
|
||||||
if ( !s->proxyNoProxyHosts().isEmpty() && s_noProxyHosts.isEmpty() )
|
if ( !proxyNoProxyHosts().isEmpty() && s_noProxyHosts.isEmpty() )
|
||||||
{
|
{
|
||||||
s_noProxyHostsMutex.unlock();
|
s_noProxyHostsMutex.unlock();
|
||||||
proxyFactory->setNoProxyHosts( s->proxyNoProxyHosts().split( ',', QString::SkipEmptyParts ) );
|
proxyFactory->setNoProxyHosts( proxyNoProxyHosts().split( ',', QString::SkipEmptyParts ) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
s_noProxyHostsMutex.unlock();
|
s_noProxyHostsMutex.unlock();
|
||||||
@@ -274,5 +271,112 @@ setNam( QNetworkAccessManager* nam, bool noMutexLocker )
|
|||||||
setProxyFactory( dynamic_cast< NetworkProxyFactory* >( nam->proxyFactory() ), true );
|
setProxyFactory( dynamic_cast< NetworkProxyFactory* >( nam->proxyFactory() ), true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool s_proxyDns;
|
||||||
|
QNetworkProxy::ProxyType s_proxyType;
|
||||||
|
QString s_proxyHost;
|
||||||
|
int s_proxyPort;
|
||||||
|
QString s_proxyUsername;
|
||||||
|
QString s_proxyPassword;
|
||||||
|
QString s_proxyNoProxyHosts;
|
||||||
|
|
||||||
|
QString
|
||||||
|
proxyHost()
|
||||||
|
{
|
||||||
|
return s_proxyHost;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
setProxyHost( const QString& host )
|
||||||
|
{
|
||||||
|
s_proxyHost = host;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString
|
||||||
|
proxyNoProxyHosts()
|
||||||
|
{
|
||||||
|
return s_proxyNoProxyHosts;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
setProxyNoProxyHosts( const QString& hosts )
|
||||||
|
{
|
||||||
|
s_proxyNoProxyHosts = hosts;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
qulonglong
|
||||||
|
proxyPort()
|
||||||
|
{
|
||||||
|
return s_proxyPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
setProxyPort( const qulonglong port )
|
||||||
|
{
|
||||||
|
s_proxyPort = port;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString
|
||||||
|
proxyUsername()
|
||||||
|
{
|
||||||
|
return s_proxyUsername;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
setProxyUsername( const QString& username )
|
||||||
|
{
|
||||||
|
s_proxyUsername = username;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString
|
||||||
|
proxyPassword()
|
||||||
|
{
|
||||||
|
return s_proxyPassword;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
setProxyPassword( const QString& password )
|
||||||
|
{
|
||||||
|
s_proxyPassword = password;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QNetworkProxy::ProxyType
|
||||||
|
proxyType()
|
||||||
|
{
|
||||||
|
return s_proxyType;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
setProxyType( const QNetworkProxy::ProxyType type )
|
||||||
|
{
|
||||||
|
s_proxyType = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
proxyDns()
|
||||||
|
{
|
||||||
|
return s_proxyDns;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
setProxyDns( bool proxyDns )
|
||||||
|
{
|
||||||
|
s_proxyDns = proxyDns;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -22,6 +22,9 @@
|
|||||||
#ifndef TOMAHAWK_UTILS_NETWORKACCESSMANAGER_H
|
#ifndef TOMAHAWK_UTILS_NETWORKACCESSMANAGER_H
|
||||||
#define TOMAHAWK_UTILS_NETWORKACCESSMANAGER_H
|
#define TOMAHAWK_UTILS_NETWORKACCESSMANAGER_H
|
||||||
|
|
||||||
|
|
||||||
|
#include <QNetworkProxy>
|
||||||
|
|
||||||
#include "DllMacro.h"
|
#include "DllMacro.h"
|
||||||
|
|
||||||
class QNetworkAccessManager;
|
class QNetworkAccessManager;
|
||||||
@@ -32,6 +35,28 @@ namespace Utils
|
|||||||
{
|
{
|
||||||
DLLEXPORT QNetworkAccessManager* nam();
|
DLLEXPORT QNetworkAccessManager* nam();
|
||||||
DLLEXPORT void setNam( QNetworkAccessManager* nam, bool noMutexLocker = false );
|
DLLEXPORT void setNam( QNetworkAccessManager* nam, bool noMutexLocker = false );
|
||||||
|
|
||||||
|
// Proxy settings
|
||||||
|
DLLEXPORT bool proxyDns();
|
||||||
|
DLLEXPORT void setProxyDns( bool proxyDns );
|
||||||
|
|
||||||
|
DLLEXPORT QNetworkProxy::ProxyType proxyType();
|
||||||
|
DLLEXPORT void setProxyType( QNetworkProxy::ProxyType proxyType );
|
||||||
|
|
||||||
|
DLLEXPORT QString proxyHost();
|
||||||
|
DLLEXPORT void setProxyHost( const QString& proxyHost );
|
||||||
|
|
||||||
|
DLLEXPORT qulonglong proxyPort();
|
||||||
|
DLLEXPORT void setProxyPort( qulonglong proxyPort );
|
||||||
|
|
||||||
|
DLLEXPORT QString proxyUsername();
|
||||||
|
DLLEXPORT void setProxyUsername( const QString& proxyUsername );
|
||||||
|
|
||||||
|
DLLEXPORT QString proxyPassword();
|
||||||
|
DLLEXPORT void setProxyPassword( const QString& proxyPassword );
|
||||||
|
|
||||||
|
DLLEXPORT QString proxyNoProxyHosts();
|
||||||
|
DLLEXPORT void setProxyNoProxyHosts( const QString& proxyNoProxyHosts );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -46,7 +46,7 @@ namespace Utils
|
|||||||
|
|
||||||
virtual void setNoProxyHosts( const QStringList &hosts );
|
virtual void setNoProxyHosts( const QStringList &hosts );
|
||||||
virtual QStringList noProxyHosts() const { return m_noProxyHosts; }
|
virtual QStringList noProxyHosts() const { return m_noProxyHosts; }
|
||||||
virtual void setProxy( const QNetworkProxy &proxy );
|
virtual void setProxy( const QNetworkProxy &proxy, bool useProxyDns );
|
||||||
virtual QNetworkProxy proxy() { return m_proxy; }
|
virtual QNetworkProxy proxy() { return m_proxy; }
|
||||||
|
|
||||||
virtual NetworkProxyFactory& operator=( const NetworkProxyFactory &rhs );
|
virtual NetworkProxyFactory& operator=( const NetworkProxyFactory &rhs );
|
||||||
|
@@ -296,12 +296,12 @@ SettingsDialog::saveSettings()
|
|||||||
if ( !m_advancedWidgetUi->enableProxyCheckBox->isChecked() )
|
if ( !m_advancedWidgetUi->enableProxyCheckBox->isChecked() )
|
||||||
{
|
{
|
||||||
tDebug() << Q_FUNC_INFO << "Got NoProxy selected";
|
tDebug() << Q_FUNC_INFO << "Got NoProxy selected";
|
||||||
proxyFactory->setProxy( QNetworkProxy::NoProxy );
|
proxyFactory->setProxy( QNetworkProxy::NoProxy, s->proxyDns() );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tDebug() << Q_FUNC_INFO << "Got Socks5Proxy selected";
|
tDebug() << Q_FUNC_INFO << "Got Socks5Proxy selected";
|
||||||
proxyFactory->setProxy( QNetworkProxy( QNetworkProxy::Socks5Proxy, s->proxyHost(), s->proxyPort(), s->proxyUsername(), s->proxyPassword() ) );
|
proxyFactory->setProxy( QNetworkProxy( QNetworkProxy::Socks5Proxy, s->proxyHost(), s->proxyPort(), s->proxyUsername(), s->proxyPassword() ), s->proxyDns() );
|
||||||
if ( !s->proxyNoProxyHosts().isEmpty() )
|
if ( !s->proxyNoProxyHosts().isEmpty() )
|
||||||
{
|
{
|
||||||
tDebug() << Q_FUNC_INFO << "noproxy hosts:" << s->proxyNoProxyHosts();
|
tDebug() << Q_FUNC_INFO << "noproxy hosts:" << s->proxyNoProxyHosts();
|
||||||
|
@@ -198,6 +198,16 @@ TomahawkApp::init()
|
|||||||
new ACLRegistryImpl( this );
|
new ACLRegistryImpl( this );
|
||||||
|
|
||||||
tDebug( LOGINFO ) << "Setting NAM.";
|
tDebug( LOGINFO ) << "Setting NAM.";
|
||||||
|
|
||||||
|
TomahawkSettings *s = TomahawkSettings::instance();
|
||||||
|
Tomahawk::Utils::setProxyDns( s->proxyDns() );
|
||||||
|
Tomahawk::Utils::setProxyType( s->proxyType() );
|
||||||
|
Tomahawk::Utils::setProxyHost( s->proxyHost() );
|
||||||
|
Tomahawk::Utils::setProxyPort( s->proxyPort() );
|
||||||
|
Tomahawk::Utils::setProxyUsername( s->proxyUsername() );
|
||||||
|
Tomahawk::Utils::setProxyPassword( s->proxyPassword() );
|
||||||
|
Tomahawk::Utils::setProxyNoProxyHosts( s->proxyNoProxyHosts() );
|
||||||
|
|
||||||
// Cause the creation of the nam, but don't need to address it directly, so prevent warning
|
// Cause the creation of the nam, but don't need to address it directly, so prevent warning
|
||||||
Q_UNUSED( Tomahawk::Utils::nam() );
|
Q_UNUSED( Tomahawk::Utils::nam() );
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user