From ed1bd12c9547bcde95ee9cba571959faa4cb3e80 Mon Sep 17 00:00:00 2001 From: Vladislav Ostapov Date: Thu, 14 Nov 2024 15:18:18 +0300 Subject: [PATCH] =?UTF-8?q?=D1=84=D0=B8=D0=BA=D1=81=20=D0=B1=D0=B0=D0=B3?= =?UTF-8?q?=D0=B0=20=D1=81=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9?= =?UTF-8?q?=D0=BA=D0=B0=D0=BC=D0=B8=20=D1=81=D0=B5=D1=82=D0=B8=20=D0=B2=20?= =?UTF-8?q?=D0=BE=D1=82=D0=BB=D0=B0=D0=B4=D0=BE=D1=87=D0=BD=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/terminal_api_driver.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/terminal_api_driver.cpp b/src/terminal_api_driver.cpp index a6abb7b..3742d39 100644 --- a/src/terminal_api_driver.cpp +++ b/src/terminal_api_driver.cpp @@ -63,11 +63,19 @@ public: std::string managementIp, managementGateway, mode, dataIp; unsigned int dataMtu = 1500; - TerminalNetworkSettings() = default; + TerminalNetworkSettings() { this->reset(); } TerminalNetworkSettings(const TerminalNetworkSettings& src) = default; ~TerminalNetworkSettings() = default; TerminalNetworkSettings& operator= (const TerminalNetworkSettings& src) = default; + + void reset() { + managementIp = "0.0.0.0/0"; + managementGateway = ""; + mode = "l2"; + dataIp = "0.0.0.0/0"; + dataMtu = 1500; + } }; class TerminalFirmwareVersion { @@ -157,11 +165,11 @@ private: TerminalNetworkSettings s; std::string tmp; std::lock_guard lock(this->cpApiMutex); - CP_GetNetwork(sid, "addr", &s.managementIp); - CP_GetNetwork(sid, "mask", &tmp); - s.managementIp += "/"; + CP_GetNetwork(sid, "addr", &tmp); + s.managementIp = tmp + "/"; + tmp.clear(); CP_GetNetwork(sid, "mask", &tmp); s.managementIp += std::to_string(calculateSubnetMask(tmp)); - CP_GetNetwork(sid, "gateway", &s.managementGateway); + tmp.clear(); CP_GetNetwork(sid, "gateway", &s.managementGateway); s.managementGateway = tmp; tmp.clear(); CP_GetNetwork(sid, "mode", &tmp); if (tmp == "tun") { s.mode = "l3"; @@ -431,6 +439,7 @@ public: if (readback) { std::string tmp; + s.reset(); CP_GetNetwork(sid, "addr", &s.managementIp); CP_GetNetwork(sid, "mask", &tmp); s.managementIp += "/";