From f352235ccd001f2a97f320bb6dfc0431377c6e46 Mon Sep 17 00:00:00 2001 From: csoler Date: Sat, 18 Dec 2021 16:45:53 +0100 Subject: [PATCH] fixed a few bugs --- libretroshare/src/tor/AddOnionCommand.cpp | 2 +- libretroshare/src/tor/TorControl.cpp | 2 +- libretroshare/src/tor/TorControl.h | 2 +- .../src/TorControl/TorControlWindow.cpp | 19 +++++------------- .../src/gui/statusbar/torstatus.cpp | 20 +++++++++---------- 5 files changed, 18 insertions(+), 27 deletions(-) diff --git a/libretroshare/src/tor/AddOnionCommand.cpp b/libretroshare/src/tor/AddOnionCommand.cpp index 8b0f488fa..199ab4650 100644 --- a/libretroshare/src/tor/AddOnionCommand.cpp +++ b/libretroshare/src/tor/AddOnionCommand.cpp @@ -38,7 +38,7 @@ using namespace Tor; AddOnionCommand::AddOnionCommand(HiddenService *service) - : m_service(service) + : m_service(service), mSucceeded([](){}), mFailed([](int){}) { assert(m_service); } diff --git a/libretroshare/src/tor/TorControl.cpp b/libretroshare/src/tor/TorControl.cpp index f5c9dc2f6..1baa0ac5c 100644 --- a/libretroshare/src/tor/TorControl.cpp +++ b/libretroshare/src/tor/TorControl.cpp @@ -487,7 +487,7 @@ void TorControl::getTorInfo() void TorControl::getTorInfoReply(TorControlCommand *sender) { GetConfCommand *command = dynamic_cast(sender); - if (!command || !isConnected()) + if (!command)// || !isConnected()) return; std::list listenAddresses = splitQuotedStrings(command->get("net/listeners/socks").front(), ' '); diff --git a/libretroshare/src/tor/TorControl.h b/libretroshare/src/tor/TorControl.h index 8d26e20dd..d9f550f6b 100644 --- a/libretroshare/src/tor/TorControl.h +++ b/libretroshare/src/tor/TorControl.h @@ -97,7 +97,7 @@ public: void setAuthPassword(const ByteArray& password); /* Connection */ - bool isConnected() const { return status() == Authenticated; } + bool isConnected() const { return status() >= Authenticated; } void connect(const std::string &address, uint16_t port); void authenticate(); diff --git a/retroshare-gui/src/TorControl/TorControlWindow.cpp b/retroshare-gui/src/TorControl/TorControlWindow.cpp index 31a2aa78c..135a467fc 100644 --- a/retroshare-gui/src/TorControl/TorControlWindow.cpp +++ b/retroshare-gui/src/TorControl/TorControlWindow.cpp @@ -53,21 +53,13 @@ TorControlDialog::TorControlDialog(QWidget *) void TorControlDialog::handleEvent_main_thread(std::shared_ptr event) { - if(event->mType != RsEventType::TOR_MANAGER) return; + if(event->mType != RsEventType::TOR_MANAGER) return; - const RsTorManagerEvent *fe = dynamic_cast(event.get()); - if(!fe) - return; + const RsTorManagerEvent *fe = dynamic_cast(event.get()); + if(!fe) + return; - switch (fe->mTorManagerEventType) - { - case RsTorManagerEventCode::BOOTSTRAP_STATUS_CHANGED: - case RsTorManagerEventCode::TOR_CONNECTIVITY_CHANGED: - case RsTorManagerEventCode::TOR_STATUS_CHANGED: statusChanged(fe->mTorStatus,fe->mTorConnectivityStatus); - break; - default: - break; - } + statusChanged(fe->mTorStatus,fe->mTorConnectivityStatus); } void TorControlDialog::onIncomingConnection() @@ -112,7 +104,6 @@ void TorControlDialog::statusChanged(RsTorStatus torstatus, RsTorConnectivitySta std::cerr << "Tor control status: " << tor_control_status_str.toStdString() << std::endl; std::cerr << "Tor status: " << torstatus_str.toStdString() << std::endl; - std::cerr << "Bootstrap status map: " << std::endl; for(auto it(qvm.begin());it!=qvm.end();++it) diff --git a/retroshare-gui/src/gui/statusbar/torstatus.cpp b/retroshare-gui/src/gui/statusbar/torstatus.cpp index c141ef0ce..fdde22337 100644 --- a/retroshare-gui/src/gui/statusbar/torstatus.cpp +++ b/retroshare-gui/src/gui/statusbar/torstatus.cpp @@ -100,12 +100,12 @@ void TorStatus::getTorStatus() switch(tor_control_status) { default: - case RsTorConnectivityStatus::ERROR : tor_control_ok = false ; tor_control_status_str = "Error" ; break ; - case RsTorConnectivityStatus::NOT_CONNECTED: tor_control_ok = false ; tor_control_status_str = "Not connected" ; break ; - case RsTorConnectivityStatus::CONNECTING: tor_control_ok = false ; tor_control_status_str = "Connecting" ; break ; - case RsTorConnectivityStatus::AUTHENTICATING: tor_control_ok = false ; tor_control_status_str = "Authenticating" ; break ; - case RsTorConnectivityStatus::AUTHENTICATED: tor_control_ok = false ; tor_control_status_str = "Connected" ; break ; - case RsTorConnectivityStatus::HIDDEN_SERVICE_READY: tor_control_ok = true ; tor_control_status_str = "Hidden service ready" ; break ; + case RsTorConnectivityStatus::ERROR : tor_control_ok = false ; tor_control_status_str = "Error" ; break ; + case RsTorConnectivityStatus::NOT_CONNECTED: tor_control_ok = false ; tor_control_status_str = "Not connected" ; break ; + case RsTorConnectivityStatus::CONNECTING: tor_control_ok = false ; tor_control_status_str = "Connecting" ; break ; + case RsTorConnectivityStatus::AUTHENTICATING: tor_control_ok = false ; tor_control_status_str = "Authenticating" ; break ; + case RsTorConnectivityStatus::AUTHENTICATED: tor_control_ok = false ; tor_control_status_str = "Connected" ; break ; + case RsTorConnectivityStatus::HIDDEN_SERVICE_READY: tor_control_ok = true ; tor_control_status_str = "Hidden service ready" ; break ; } switch(torstatus) @@ -141,12 +141,12 @@ void TorStatus::getTorStatus() if(!_updated) { RsPeerDetails pd; - uint32_t hiddentype; - if (rsPeers->getPeerDetails(rsPeers->getOwnId(), pd)) { + uint32_t hiddentype = RS_HIDDEN_TYPE_UNKNOWN; + + if (rsPeers->getPeerDetails(rsPeers->getOwnId(), pd)) + { if(pd.netMode == RS_NETMODE_HIDDEN) - { hiddentype = pd.hiddenType; - } } std::string proxyaddr; uint16_t proxyport;