diff options
author | Saturneric <[email protected]> | 2022-01-12 00:36:36 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2022-01-12 00:36:36 +0000 |
commit | cd837f0d154e061bc26118f204d5f9a2a417be81 (patch) | |
tree | 2d9477c852eedef603901486a3dbbe50204b473a /src/ui/thread/ProxyConnectionTestThread.cpp | |
parent | <fix>(ui): Fixed some bugs in tooltips. (diff) | |
download | GpgFrontend-cd837f0d154e061bc26118f204d5f9a2a417be81.tar.gz GpgFrontend-cd837f0d154e061bc26118f204d5f9a2a417be81.zip |
<refactor>(ui): Adjust src/ui/function to src/ui/thread
Diffstat (limited to 'src/ui/thread/ProxyConnectionTestThread.cpp')
-rw-r--r-- | src/ui/thread/ProxyConnectionTestThread.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/ui/thread/ProxyConnectionTestThread.cpp b/src/ui/thread/ProxyConnectionTestThread.cpp new file mode 100644 index 00000000..76cf525e --- /dev/null +++ b/src/ui/thread/ProxyConnectionTestThread.cpp @@ -0,0 +1,56 @@ +/** + * This file is part of GpgFrontend. + * + * GpgFrontend is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Foobar is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see <https://www.gnu.org/licenses/>. + * + * The initial version of the source code is inherited from gpg4usb-team. + * Their source code version also complies with GNU General Public License. + * + * The source code version of this software was modified and released + * by Saturneric<[email protected]><[email protected]> starting on May 12, 2021. + * + */ + +#include "ProxyConnectionTestThread.h" + +void GpgFrontend::UI::ProxyConnectionTestThread::run() { + QNetworkProxyQuery npq({QUrl(url_)}); + auto proxies_list = QNetworkProxyFactory::systemProxyForQuery(npq); + + if (proxies_list.isEmpty()) { + LOG(INFO) << "no proxy applied"; + } else { + LOG(INFO) << "proxies list hostname" + << proxies_list.front().hostName().toStdString(); + } + + LOG(INFO) << "proxies list size" << proxies_list.size(); + + auto manager = std::make_unique<QNetworkAccessManager>(nullptr); + QNetworkRequest url_request; + url_request.setUrl(QUrl(url_)); + auto _reply = manager->get(url_request); + + while (_reply->isRunning()) QApplication::processEvents(); + auto _buffer = _reply->readAll(); + if (_reply->error() == QNetworkReply::NoError && !_buffer.isEmpty()) { + result_ = "Reachable"; + } else { + result_ = "Not Reachable"; + } + + _reply->deleteLater(); + + emit signalProxyConnectionTestResult(result_); +} |