Compare commits

...

3 Commits

Author SHA1 Message Date
stephb9959
b005b57137 Fixing https://telecominfraproject.atlassian.net/browse/WIFI-7812 2022-04-28 14:28:19 -07:00
TIP Automation User
2bae52e67e Chg: update image tag in helm values to v2.5.0 2022-03-30 13:48:16 +00:00
TIP Automation User
7766fe08cd Chg: update image tag in helm values to v2.5.0-RC1 2022-02-11 16:02:37 +00:00
3 changed files with 31 additions and 12 deletions

View File

@@ -9,7 +9,7 @@ fullnameOverride: ""
images: images:
owgw: owgw:
repository: tip-tip-wlan-cloud-ucentral.jfrog.io/owgw repository: tip-tip-wlan-cloud-ucentral.jfrog.io/owgw
tag: master tag: v2.5.0
pullPolicy: Always pullPolicy: Always
# regcred: # regcred:
# registry: tip-tip-wlan-cloud-ucentral.jfrog.io # registry: tip-tip-wlan-cloud-ucentral.jfrog.io

View File

@@ -258,20 +258,34 @@ namespace OpenWifi {
} }
bool WSConnection::ExtractBase64CompressedData(const std::string &CompressedData, bool WSConnection::ExtractBase64CompressedData(const std::string &CompressedData,
std::string &UnCompressedData) { std::string &UnCompressedData, uint64_t compress_sz) {
std::istringstream ifs(CompressedData); std::istringstream ifs(CompressedData);
Poco::Base64Decoder b64in(ifs); Poco::Base64Decoder b64in(ifs);
std::ostringstream ofs; std::ostringstream ofs;
Poco::StreamCopier::copyStream(b64in, ofs); Poco::StreamCopier::copyStream(b64in, ofs);
unsigned long MaxSize = ofs.str().size() * 10; int factor = 20;
std::vector<uint8_t> UncompressedBuffer(MaxSize); unsigned long MaxSize = compress_sz ? (unsigned long) (compress_sz + 5000) : (unsigned long) (ofs.str().size() * factor);
unsigned long FinalSize = MaxSize; while(true) {
if (uncompress((uint8_t *)&UncompressedBuffer[0], &FinalSize, (uint8_t *)ofs.str().c_str(), std::vector<uint8_t> UncompressedBuffer(MaxSize);
ofs.str().size()) == Z_OK) { unsigned long FinalSize = MaxSize;
UncompressedBuffer[FinalSize] = 0; auto status = uncompress((uint8_t *)&UncompressedBuffer[0], &FinalSize,
UnCompressedData = (char *)&UncompressedBuffer[0]; (uint8_t *)ofs.str().c_str(), ofs.str().size());
return true; if(status==Z_OK) {
UncompressedBuffer[FinalSize] = 0;
UnCompressedData = (char *)&UncompressedBuffer[0];
return true;
}
if(status==Z_BUF_ERROR) {
if(factor<300) {
factor+=10;
MaxSize = ofs.str().size() * factor;
continue;
} else {
return false;
}
}
return false;
} }
return false; return false;
} }
@@ -300,9 +314,13 @@ namespace OpenWifi {
auto ParamsObj = Doc->get(uCentralProtocol::PARAMS).extract<Poco::JSON::Object::Ptr>(); auto ParamsObj = Doc->get(uCentralProtocol::PARAMS).extract<Poco::JSON::Object::Ptr>();
if (ParamsObj->has(uCentralProtocol::COMPRESS_64)) { if (ParamsObj->has(uCentralProtocol::COMPRESS_64)) {
std::string UncompressedData; std::string UncompressedData;
uint64_t compress_sz = 0 ;
if(ParamsObj->has("compress_sz")) {
compress_sz = ParamsObj->get("compress_sz");
}
try { try {
if (ExtractBase64CompressedData( if (ExtractBase64CompressedData(
ParamsObj->get(uCentralProtocol::COMPRESS_64).toString(), UncompressedData)) { ParamsObj->get(uCentralProtocol::COMPRESS_64).toString(), UncompressedData, compress_sz)) {
poco_trace(Logger(),Poco::format("EVENT(%s): Found compressed payload expanded to '%s'.", poco_trace(Logger(),Poco::format("EVENT(%s): Found compressed payload expanded to '%s'.",
CId_, UncompressedData)); CId_, UncompressedData));
Poco::JSON::Parser Parser; Poco::JSON::Parser Parser;

View File

@@ -31,7 +31,8 @@ namespace OpenWifi {
void OnSocketShutdown(const Poco::AutoPtr<Poco::Net::ShutdownNotification>& pNf); void OnSocketShutdown(const Poco::AutoPtr<Poco::Net::ShutdownNotification>& pNf);
void OnSocketError(const Poco::AutoPtr<Poco::Net::ErrorNotification>& pNf); void OnSocketError(const Poco::AutoPtr<Poco::Net::ErrorNotification>& pNf);
bool LookForUpgrade(uint64_t UUID); bool LookForUpgrade(uint64_t UUID);
static bool ExtractBase64CompressedData(const std::string & CompressedData, std::string & UnCompressedData); static bool ExtractBase64CompressedData(const std::string &CompressedData,
std::string &UnCompressedData, uint64_t compress_sz);
void LogException(const Poco::Exception &E); void LogException(const Poco::Exception &E);
inline Poco::Logger & Logger() { return Logger_; } inline Poco::Logger & Logger() { return Logger_; }
bool SetWebSocketTelemetryReporting(uint64_t interval, uint64_t TelemetryWebSocketTimer); bool SetWebSocketTelemetryReporting(uint64_t interval, uint64_t TelemetryWebSocketTimer);