Hi, 2012/12/14, intrigeri <intrig...@boum.org>: > [..] that should be for another orthogonal patch: no sane > upstream maintainer will accept a patch that supposedly "implements > SOCKS5 support", but also silently changes the behaviour for HTTP > proxy users. See what I mean? :) Ok, I removed that last part from the patch. The upstream mantainer will decide what's best :)
> So, the question now becomes: how does the stored history affect the > behaviour of Minitube? Does it affect this behaviour in any way that > could be observable on the network, or on the YouTube / Google / 3rd > party servers that are reached? (I guess, and hope, the answers will > unanimously be "no", but this is what should be checked.) I searched for "recent" in the source files and didn't find anything suspicious. There is code to save recent keywords, load them, clear them with a button, but they shouldn't affect the behaviour in any way. I hope someone else can confirm! Greetings Alessandro
--- minitube/src/global.h 2012-09-27 12:17:03.000000000 +0200 +++ global.h 2012-12-15 15:50:00.000000000 +0100 @@ -123,11 +123,72 @@ } } + void networkSocks5ProxySetting() { + char *socks5_server_env; + socks5_server_env = std::getenv("socks5_server"); + if (!socks5_server_env) { + socks5_server_env = std::getenv("SOCKS5_SERVER"); + } + + if (socks5_server_env) { + QString proxy_host = ""; + QString proxy_port = ""; + QString proxy_user = ""; + QString proxy_pass = ""; + QString socks5_server = QString(socks5_server_env); + socks5_server.remove(QRegExp("/$")); + + // parse username and password + if (socks5_server.contains(QChar('@'))) { + QStringList socks5_server_list = socks5_server.split(QChar('@')); + QStringList socks5_server_user_pass = socks5_server_list[0].split(QChar(':')); + if (socks5_server_user_pass.size() > 0) { + proxy_user = QUrl::fromPercentEncoding(socks5_server_user_pass[0].toUtf8()); + } + if (socks5_server_user_pass.size() == 2) { + proxy_pass = QUrl::fromPercentEncoding(socks5_server_user_pass[1].toUtf8()); + } + if (socks5_server_list.size() > 1) { + socks5_server = socks5_server_list[1]; + } + } + + // parse hostname and port + QStringList socks5_server_list = socks5_server.split(QChar(':')); + if (socks5_server_list.size() > 0) { + proxy_host = socks5_server_list[0]; + } + if (socks5_server_list.size() > 1) { + proxy_port = socks5_server_list[1]; + } + + // set proxy setting + if (!proxy_host.isEmpty()) { + QNetworkProxy proxy; + proxy.setType(QNetworkProxy::Socks5Proxy); + proxy.setHostName(proxy_host); + if (!proxy_port.isEmpty()) { + proxy.setPort(proxy_port.toUShort()); + } + if (!proxy_user.isEmpty()) { + proxy.setUser(proxy_user); + } + if (!proxy_pass.isEmpty()) { + proxy.setPassword(proxy_pass); + } + + qDebug() << "Using SOCKS5 proxy:" << socks5_server_env; + QNetworkProxy::setApplicationProxy(proxy); + } + } + } + static QNetworkAccessManager *nam = 0; QNetworkAccessManager* networkAccessManager() { if (!nam) { networkHttpProxySetting(); + networkSocks5ProxySetting(); maybeSetSystemProxy(); nam = new QNetworkAccessManager(); }
_______________________________________________ tails-dev mailing list tails-dev@boum.org https://mailman.boum.org/listinfo/tails-dev