Prechádzať zdrojové kódy

【修复】chunk 模式获取 chunk_sz = 0 时,webclient_recv 函数返回错误问题

Signed-off-by: chenyong <1521761801@qq.com>
chenyong 7 rokov pred
rodič
commit
a028b1322e
1 zmenil súbory, kde vykonal 7 pridanie a 0 odobranie
  1. 7 0
      src/webclient.c

+ 7 - 0
src/webclient.c

@@ -1126,6 +1126,7 @@ static int webclient_next_chunk(struct webclient_session *session)
         /* end of chunks */
         closesocket(session->socket);
         session->socket = -1;
+        session->chunk_sz = -1;
     }
 
     return session->chunk_sz;
@@ -1150,6 +1151,12 @@ int webclient_read(struct webclient_session *session, unsigned char *buffer, siz
 
     RT_ASSERT(session);
 
+    /* get next chunk size is zero, client is already closed, return zero */
+    if (session->chunk_sz < 0)
+    {
+        return 0;
+    }
+
     if (session->socket < 0)
     {
         return -WEBCLIENT_DISCONNECT;