1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

Add proxy support to toxme and autouptdate

This commit is contained in:
sudden6 2016-01-19 00:19:07 +01:00
parent 1757dfb2fc
commit f14bc8316c
4 changed files with 33 additions and 0 deletions

View File

@ -108,6 +108,7 @@ AutoUpdater::VersionInfo AutoUpdater::getUpdateVersion()
QNetworkAccessManager *manager = new QNetworkAccessManager;
QNetworkReply* reply = manager->get(QNetworkRequest(QUrl(checkURI)));
manager->setProxy(Settings::getInstance().getProxy());
while (!reply->isFinished())
{
if (abortFlag)
@ -222,6 +223,7 @@ QByteArray AutoUpdater::getUpdateFlist()
QNetworkAccessManager *manager = new QNetworkAccessManager;
QNetworkReply* reply = manager->get(QNetworkRequest(QUrl(flistURI)));
manager->setProxy(Settings::getInstance().getProxy());
while (!reply->isFinished())
{
if (abortFlag)
@ -277,6 +279,7 @@ AutoUpdater::UpdateFile AutoUpdater::getUpdateFile(UpdateFileMeta fileMeta,
file.metadata = fileMeta;
QNetworkAccessManager *manager = new QNetworkAccessManager;
manager->setProxy(Settings::getInstance().getProxy());
QNetworkReply* reply = manager->get(QNetworkRequest(QUrl(filesURI+fileMeta.id)));
QObject::connect(reply, &QNetworkReply::downloadProgress, progressCallback);
while (!reply->isFinished())

View File

@ -19,6 +19,7 @@
#include "toxme.h"
#include "src/core/core.h"
#include <src/persistence/settings.h>
#include <QtDebug>
#include <QNetworkAccessManager>
#include <QNetworkReply>
@ -34,6 +35,7 @@ QByteArray Toxme::makeJsonRequest(QString url, QString json, QNetworkReply::Netw
return QByteArray();
QNetworkAccessManager netman;
netman.setProxy(Settings::getInstance().getProxy());
QNetworkRequest request{url};
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
QNetworkReply* reply = netman.post(request,json.toUtf8());
@ -57,6 +59,7 @@ QByteArray Toxme::getServerPubkey(QString url, QNetworkReply::NetworkError &erro
// Get key
QNetworkAccessManager netman;
netman.setProxy(Settings::getInstance().getProxy());
QNetworkRequest request{url};
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
QNetworkReply* reply = netman.get(request);

View File

@ -44,6 +44,7 @@
#include <QCryptographicHash>
#include <QMutexLocker>
#include <QThread>
#include <QNetworkProxy>
#define SHOW_SYSTEM_TRAY_DEFAULT (bool) true
@ -770,6 +771,29 @@ void Settings::setForceTCP(bool newValue)
forceTCP = newValue;
}
QNetworkProxy Settings::getProxy() const
{
QNetworkProxy proxy;
switch(Settings::getProxyType())
{
case ProxyType::ptNone:
proxy.setType(QNetworkProxy::NoProxy);
break;
case ProxyType::ptSOCKS5:
proxy.setType(QNetworkProxy::Socks5Proxy);
break;
case ProxyType::ptHTTP:
proxy.setType(QNetworkProxy::HttpProxy);
break;
default:
proxy.setType(QNetworkProxy::NoProxy);
qWarning() << "Invalid Proxy type, setting to NoProxy";
}
proxy.setHostName(Settings::getProxyAddr());
proxy.setPort(Settings::getProxyPort());
return proxy;
}
ProxyType Settings::getProxyType() const
{
QMutexLocker locker{&bigLock};

View File

@ -26,6 +26,7 @@
#include <QPixmap>
#include <QMutex>
#include <QDate>
#include <QNetworkProxy>
#include "src/core/corestructs.h"
class ToxId;
@ -109,6 +110,8 @@ public:
bool getForceTCP() const;
void setForceTCP(bool newValue);
QNetworkProxy getProxy() const;
QString getProxyAddr() const;
void setProxyAddr(const QString& newValue);