From 2a17655116add44e1dd67df2be58b6dfa51402a7 Mon Sep 17 00:00:00 2001 From: stephb9959 Date: Sun, 27 Nov 2022 14:32:23 -0800 Subject: [PATCH] https://telecominfraproject.atlassian.net/browse/WIFI-11755 Signed-off-by: stephb9959 --- Dockerfile | 2 +- src/framework/MicroService.cpp | 5 +++-- src/framework/ow_constants.h | 2 ++ src/framework/utils.cpp | 29 +++++++++++++++++++++++++++++ src/framework/utils.h | 4 +++- 5 files changed, 38 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index c1710d8..77f5044 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ ARG DEBIAN_VERSION=11.5-slim -ARG POCO_VERSION=poco-tip-v1 +ARG POCO_VERSION=poco-tip-v2 ARG CPPKAFKA_VERSION=tip-v1 ARG JSON_VALIDATOR_VERSION=2.1.0 diff --git a/src/framework/MicroService.cpp b/src/framework/MicroService.cpp index 366db7f..721da32 100644 --- a/src/framework/MicroService.cpp +++ b/src/framework/MicroService.cpp @@ -245,7 +245,7 @@ namespace OpenWifi { Poco::Logger::root().setChannel(Splitter); } } - + Poco::Logger::root().information(fmt::format("Enabled console logs: asynch={} websocket={}",UseAsync,DisableWebSocketLogging)); } void MicroService::SetColorConsoleLogs(bool UseAsync, bool DisableWebSocketLogging, const std::string & FormatterPattern) { @@ -274,7 +274,7 @@ namespace OpenWifi { Poco::Logger::root().setChannel(Splitter); } } - + Poco::Logger::root().information(fmt::format("Enabled color console logs: asynch={} websocket={}",UseAsync,DisableWebSocketLogging)); } void MicroService::SetSQLLogs([[maybe_unused]] bool UseAsync,[[maybe_unused]] bool DisableWebSocketLogging,[[maybe_unused]] const std::string & FormatterPattern) { @@ -327,6 +327,7 @@ namespace OpenWifi { Poco::Logger::root().setChannel(Splitter); } } + Poco::Logger::root().information(fmt::format("Enabled file logs: asynch={} websocket={}",UseAsync,DisableWebSocketLogging)); } void DaemonPostInitialization(Poco::Util::Application &self); diff --git a/src/framework/ow_constants.h b/src/framework/ow_constants.h index a3abd85..803c330 100644 --- a/src/framework/ow_constants.h +++ b/src/framework/ow_constants.h @@ -229,6 +229,8 @@ namespace OpenWifi::RESTAPI::Errors { static const struct msg ApiKeyDoesNotExist{1150,"API Key does not exist."}; static const struct msg DeviceIsRestricted{1151,"Device is protected by regulation. This function is not allowed."}; + static const struct msg InvalidURI{1152,"Invalid URI."}; + static const struct msg InvalidScriptSelection{1153,"Only script or scriptId must be specified. Not both."}; } diff --git a/src/framework/utils.cpp b/src/framework/utils.cpp index 25fcd63..2b0e16f 100644 --- a/src/framework/utils.cpp +++ b/src/framework/utils.cpp @@ -487,6 +487,25 @@ void ReplaceVariables( std::string & Content , const Types::StringPairVec & P) { return false; } +[[nodiscard]] bool wgetfile(const Poco::URI &uri, const std::string &FileName) { + try { + Poco::Net::HTTPSClientSession session(uri.getHost(), uri.getPort()); + + // send request + Poco::Net::HTTPRequest req(Poco::Net::HTTPRequest::HTTP_GET, uri.getPath(), Poco::Net::HTTPMessage::HTTP_1_1); + session.sendRequest(req); + + Poco::Net::HTTPResponse res; + std::istream &is = session.receiveResponse(res); + std::fstream os(FileName,std::ios_base::trunc | std::ios_base::binary | std::ios_base::out); + Poco::StreamCopier::copyStream(is,os); + return true; + } catch (...) { + + } + return false; +} + bool ExtractBase64CompressedData(const std::string &CompressedData, std::string &UnCompressedData, uint64_t compress_sz ) { std::istringstream ifs(CompressedData); @@ -531,4 +550,14 @@ bool ExtractBase64CompressedData(const std::string &CompressedData, return "*******"; } + [[nodiscard]] bool ValidateURI(const std::string &uri) { + try { + Poco::URI u(uri); + return true; + } catch (...) { + + } + return false; + } + } diff --git a/src/framework/utils.h b/src/framework/utils.h index 35fca16..a313f18 100644 --- a/src/framework/utils.h +++ b/src/framework/utils.h @@ -115,8 +115,10 @@ namespace OpenWifi::Utils { [[nodiscard]] std::string BinaryFileToHexString(const Poco::File &F); [[nodiscard]] std::string SecondsToNiceText(uint64_t Seconds); [[nodiscard]] bool wgets(const std::string &URL, std::string &Response); - [[nodiscard]] bool IsAlphaNumeric(const std::string &s); + [[nodiscard]] bool wgetfile(const Poco::URI &uri, const std::string &FileName); + [[nodiscard]] bool IsAlphaNumeric(const std::string &s); [[nodiscard]] std::string SanitizeToken(const std::string &Token); + [[nodiscard]] bool ValidateURI(const std::string &uri); template< typename T > std::string int_to_hex( T i )