summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJani Mustonen <janijohannes@kapsi.fi>2017-11-04 13:28:50 +0200
committermujx <mujx@users.noreply.github.com>2017-11-04 13:28:50 +0200
commit8c5a331c73d175b3106967ace19d6baa9464b097 (patch)
tree92c9cce67a1fb337de459001afd1c182a7ec4123
parent7e03ca43595d1e9f8fa1743d4072d719a2cdfffa (diff)
Simple SOCKS proxy support (#110)
-rw-r--r--src/main.cc29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/main.cc b/src/main.cc
index 2d059788..8bd77254 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -19,11 +19,38 @@
#include <QDesktopWidget>
#include <QFontDatabase>
#include <QLibraryInfo>
+#include <QNetworkProxy>
#include <QSettings>
#include <QTranslator>
#include "MainWindow.h"
+void
+setupProxy()
+{
+ QSettings settings;
+
+ /**
+ To set up a SOCKS proxy:
+ [user]
+ proxy\socks\host=<>
+ proxy\socks\port=<>
+ proxy\socks\user=<>
+ proxy\socks\password=<>
+ **/
+ if (settings.contains("user/proxy/socks/host")) {
+ QNetworkProxy proxy;
+ proxy.setType(QNetworkProxy::Socks5Proxy);
+ proxy.setHostName(settings.value("user/proxy/socks/host").toString());
+ proxy.setPort(settings.value("user/proxy/socks/port").toInt());
+ if (settings.contains("user/proxy/socks/user"))
+ proxy.setUser(settings.value("user/proxy/socks/user").toString());
+ if (settings.contains("user/proxy/socks/password"))
+ proxy.setPassword(settings.value("user/proxy/socks/password").toString());
+ QNetworkProxy::setApplicationProxy(proxy);
+ }
+}
+
int
main(int argc, char *argv[])
{
@@ -62,6 +89,8 @@ main(int argc, char *argv[])
appTranslator.load("nheko_" + lang, ":/translations");
app.installTranslator(&appTranslator);
+ setupProxy();
+
MainWindow w;
// Move the MainWindow to the center