diff -U 3 -H -d -r -N -x '*~' -- tmpfs/quassel/src/core/networkconnection.cpp home/sphilips/projects/quassel/src/core/networkconnection.cpp --- tmpfs/quassel/src/core/networkconnection.cpp 2008-08-30 16:22:13.000000000 +0000 +++ home/sphilips/projects/quassel/src/core/networkconnection.cpp 2008-08-31 00:17:32.000000000 +0000 @@ -23,6 +23,10 @@ #include #include +#ifndef QT_NO_NETWORKPROXY +# include +#endif + #include "util.h" #include "core.h" #include "coresession.h" @@ -89,6 +93,26 @@ connect(network, SIGNAL(autoReconnectIntervalSet(quint32)), this, SLOT(autoReconnectSettingsChanged())); connect(network, SIGNAL(autoReconnectRetriesSet(quint16)), this, SLOT(autoReconnectSettingsChanged())); + +#ifndef QT_NO_NETWORKPROXY + char *env_socks = getenv("SOCKS_SERVER"); + + if (env_socks != NULL) { + QString socks = QString(env_socks); + + if (! socks.isEmpty()) { + QStringList split = socks.split(QChar(':')); + QString socks_host = (split[0].isEmpty()) ? QString("localhost") : split[0]; + unsigned int socks_port = (split.count() > 1 && split[1].toInt() > 0) ? split[1].toInt() : 1080; + + qDebug() << "Using SOCKS (" << socks_host << ":" << socks_port << ")"; + + QNetworkProxy proxy(QNetworkProxy::Socks5Proxy, socks_host, socks_port); + (&socket)->setProxy(proxy); + } + } +#endif + #ifndef QT_NO_OPENSSL connect(&socket, SIGNAL(encrypted()), this, SLOT(socketEncrypted())); connect(&socket, SIGNAL(sslErrors(const QList &)), this, SLOT(sslErrors(const QList &)));