diff options
author | Saturn&Eric <[email protected]> | 2023-03-31 21:27:08 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2023-03-31 21:27:08 +0000 |
commit | 3cb863592a548edc074dde045493e0f83e5d694a (patch) | |
tree | 242534c257e723f49080428db22118c75706e233 /src/ui/GpgFrontendUIInit.cpp | |
parent | Merge pull request #91 from saturneric/dev/2.0.10/main (diff) | |
parent | feat: add project security document (diff) | |
download | GpgFrontend-2.1.0.tar.gz GpgFrontend-2.1.0.zip |
Merge pull request #93 from saturneric/dev/2.0.10/mainv2.1.0
Develop 2.1.0.2
Diffstat (limited to 'src/ui/GpgFrontendUIInit.cpp')
-rw-r--r-- | src/ui/GpgFrontendUIInit.cpp | 61 |
1 files changed, 59 insertions, 2 deletions
diff --git a/src/ui/GpgFrontendUIInit.cpp b/src/ui/GpgFrontendUIInit.cpp index 6e41f81f..b90493a5 100644 --- a/src/ui/GpgFrontendUIInit.cpp +++ b/src/ui/GpgFrontendUIInit.cpp @@ -71,6 +71,63 @@ void InitGpgFrontendUI(QApplication* app) { // init common utils CommonUtils::GetInstance(); + // application proxy configure + + auto& settings = GlobalSettingStation::GetInstance().GetUISettings(); + bool proxy_enable = false; + try { + proxy_enable = settings.lookup("proxy.enable"); + } catch (...) { + SPDLOG_ERROR("setting operation error: proxy_enable"); + } + SPDLOG_DEBUG("loading proxy configure, proxy_enable: {}", proxy_enable); + + // if enable proxy for application + if (proxy_enable) { + try { + std::string proxy_type = settings.lookup("proxy.proxy_type"); + std::string proxy_host = settings.lookup("proxy.proxy_host"); + int proxy_port = settings.lookup("proxy.port"); + std::string proxy_username = settings.lookup("proxy.username"); + std::string proxy_password = settings.lookup("proxy.password"); + + SPDLOG_DEBUG("proxy settings: type {}, host {}, port: {}", proxy_type, + proxy_host, proxy_port); + + QNetworkProxy::ProxyType proxy_type_qt = QNetworkProxy::NoProxy; + if (proxy_type == "HTTP") { + proxy_type_qt = QNetworkProxy::HttpProxy; + } else if (proxy_type == "Socks5") { + proxy_type_qt = QNetworkProxy::Socks5Proxy; + } else { + proxy_type_qt = QNetworkProxy::DefaultProxy; + } + + // create proxy object and apply settings + QNetworkProxy proxy; + if (proxy_type_qt != QNetworkProxy::DefaultProxy) { + proxy.setType(proxy_type_qt); + proxy.setHostName(QString::fromStdString(proxy_host)); + proxy.setPort(proxy_port); + if (!proxy_username.empty()) + proxy.setUser(QString::fromStdString(proxy_username)); + if (!proxy_password.empty()) + proxy.setPassword(QString::fromStdString(proxy_password)); + } else { + proxy.setType(proxy_type_qt); + } + QNetworkProxy::setApplicationProxy(proxy); + + } catch (...) { + SPDLOG_ERROR("setting operation error: proxy setings"); + // no proxy by default + QNetworkProxy::setApplicationProxy(QNetworkProxy::NoProxy); + } + } else { + // no proxy by default + QNetworkProxy::setApplicationProxy(QNetworkProxy::NoProxy); + } + // create the thread to load the gpg context auto* init_ctx_task = new Thread::CtxCheckTask(); @@ -213,7 +270,7 @@ void init_locale() { #ifndef WINDOWS if (!lang.empty()) { - std::string lc = lang.empty() ? "" : lang + ".UTF-8"; + std::string lc = lang + ".UTF-8"; // set LC_ALL auto* locale_name = setlocale(LC_ALL, lc.c_str()); @@ -229,7 +286,7 @@ void init_locale() { } #else if (!lang.empty()) { - std::string lc = lang.empty() ? "" : lang; + std::string lc = lang; // set LC_ALL auto* locale_name = setlocale(LC_ALL, lc.c_str()); |