mirror of
https://github.com/Telecominfraproject/wlan-cloud-ucentralgw.git
synced 2025-11-02 19:57:49 +00:00
Compare commits
3 Commits
schema_syn
...
v2.5.1-RC1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b005b57137 | ||
|
|
2bae52e67e | ||
|
|
7766fe08cd |
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user