@@ -605,10 +605,16 @@ namespace OpenWifi {
605605 void AP_WS_Connection::ProcessWSFinalPayload () {
606606 auto IncomingSize = IncomingFrame_.size ();
607607
608+ if (IncomingSize == 0 ) {
609+ poco_warning (Logger_,
610+ fmt::format (" ProcessWSFrame({}): Final Acc. Frame received but empty" ,
611+ CId_));
612+ return ;
613+ }
608614 IncomingFrame_.append (0 );
609615
610616 poco_trace (Logger_,
611- fmt::format (" ProcessWSFrame({}): Final Frame received (len={}, Msg={}" ,
617+ fmt::format (" ProcessWSFrame({}): Final Acc. Frame received (len={}, Msg={}" ,
612618 CId_, IncomingSize, IncomingFrame_.begin ()));
613619
614620 Poco::JSON ::Parser parser;
@@ -676,7 +682,7 @@ namespace OpenWifi {
676682 State_.MessageCount ++;
677683 State_.LastContact = Utils::Now ();
678684 poco_trace (Logger_,
679- fmt::format (" FRAME({}): Frame {} rx (len={}, flags={}, acc.len={})" ,
685+ fmt::format (" FRAME({}): Frame rx (op={} len={}, flags={}, acc.len={})" ,
680686 CId_, Op, IncomingSize, flags, IncomingFrame_.size ()));
681687
682688 switch (Op) {
@@ -698,7 +704,8 @@ namespace OpenWifi {
698704 PingDetails.set (" locale" , State_.locale );
699705 PingObject.set (uCentralProtocol::PING , PingDetails);
700706 poco_trace (Logger_,fmt::format (" Sending PING for {}" , SerialNumber_));
701- KafkaManager ()->PostMessage (KafkaTopics::CONNECTION , SerialNumber_,PingObject);
707+ KafkaManager ()->PostMessage (KafkaTopics::CONNECTION , SerialNumber_,
708+ PingObject);
702709 }
703710 return ;
704711 } break ;
@@ -721,7 +728,8 @@ namespace OpenWifi {
721728 case Poco::Net::WebSocket::FRAME_OP_TEXT : {
722729 poco_trace (Logger_,
723730 fmt::format (" TEXT({}): Frame received (len={}, flags={}). Msg={}" ,
724- CId_, IncomingSize, flags, CurrentFrame.begin ()));
731+ CId_, IncomingSize, flags,
732+ CurrentFrame.begin () == nullptr ? " " : CurrentFrame.begin ()));
725733 } break ;
726734
727735 case Poco::Net::WebSocket::FRAME_OP_CLOSE : {
@@ -738,7 +746,7 @@ namespace OpenWifi {
738746 }
739747 }
740748
741- // Check for final frame and process accumlated payload
749+ // Check for final frame and process accumulated payload
742750 if (!KillConnection && (flags & Poco::Net::WebSocket::FRAME_FLAG_FIN ) != 0 ) {
743751 ProcessWSFinalPayload ();
744752 }
0 commit comments