aboutsummaryrefslogtreecommitdiff
path: root/src/qt/optionsmodel.cpp
diff options
context:
space:
mode:
authorPhilip Kaufmann <phil.kaufmann@t-online.de>2013-12-20 18:47:49 +0100
committerPhilip Kaufmann <phil.kaufmann@t-online.de>2014-01-17 15:43:44 +0100
commit1ba3560fe870dac8d27d75671c483eaa4e0009ff (patch)
tree3925fb306afea23ecc717c9ec2ce329ff56a8030 /src/qt/optionsmodel.cpp
parent08ede8ef5edd8bfe6b80d0900bd9bd65b2d45cbf (diff)
downloadbitcoin-1ba3560fe870dac8d27d75671c483eaa4e0009ff.tar.xz
[Qt] let OptionsModel::getProxySettings() directly query proxy
- as a proxy set via GUI can be overridden via -proxy, directly query the core to get active proxy - give a warning, if active proxy is not SOCKS5 (needs to be SOCKS5 for the Qt networking code to work) - also remove an obsolete connect() call from optionsdialog.cpp and a reference to Bitcoin-Qt (now just GUI)
Diffstat (limited to 'src/qt/optionsmodel.cpp')
-rw-r--r--src/qt/optionsmodel.cpp24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp
index 1133c457b3..a18fd1d514 100644
--- a/src/qt/optionsmodel.cpp
+++ b/src/qt/optionsmodel.cpp
@@ -19,6 +19,7 @@
#include "walletdb.h"
#endif
+#include <QNetworkProxy>
#include <QSettings>
#include <QStringList>
@@ -375,14 +376,25 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
return successful;
}
-bool OptionsModel::getProxySettings(QString& proxyIP, quint16 &proxyPort) const
+bool OptionsModel::getProxySettings(QNetworkProxy& proxy) const
{
- std::string proxy = GetArg("-proxy", "");
- if (proxy.empty()) return false;
+ // Directly query current base proxy, because
+ // GUI settings can be overridden with -proxy.
+ proxyType curProxy;
+ if (GetProxy(NET_IPV4, curProxy)) {
+ if (curProxy.second == 5) {
+ proxy.setType(QNetworkProxy::Socks5Proxy);
+ proxy.setHostName(QString::fromStdString(curProxy.first.ToStringIP()));
+ proxy.setPort(curProxy.first.GetPort());
+
+ return true;
+ }
+ else
+ return false;
+ }
+ else
+ proxy.setType(QNetworkProxy::NoProxy);
- CService addrProxy(proxy);
- proxyIP = QString(addrProxy.ToStringIP().c_str());
- proxyPort = addrProxy.GetPort();
return true;
}