ithewei пре 4 година
родитељ
комит
740b2dbe5f
2 измењених фајлова са 3 додато и 1 уклоњено
  1. 2 1
      http/WebSocketParser.cpp
  2. 1 0
      http/WebSocketParser.h

+ 2 - 1
http/WebSocketParser.cpp

@@ -18,7 +18,7 @@ static int on_frame_header(websocket_parser* parser) {
         wp->message.reserve(reserve_length);
     }
     if (wp->state == WS_FRAME_BEGIN ||
-        wp->state == WS_FRAME_END) {
+        wp->state == WS_FRAME_FIN) {
         wp->message.clear();
     }
     wp->state = WS_FRAME_HEADER;
@@ -41,6 +41,7 @@ static int on_frame_end(websocket_parser* parser) {
     WebSocketParser* wp = (WebSocketParser*)parser->data;
     wp->state = WS_FRAME_END;
     if (wp->parser->flags & WS_FIN) {
+        wp->state = WS_FRAME_FIN;
         if (wp->onMessage) {
             wp->onMessage(wp->opcode, wp->message);
         }

+ 1 - 0
http/WebSocketParser.h

@@ -12,6 +12,7 @@ enum websocket_parser_state {
     WS_FRAME_HEADER,
     WS_FRAME_BODY,
     WS_FRAME_END,
+    WS_FRAME_FIN,
 };
 
 struct websocket_parser_settings;