Parcourir la source

Merge pull request #45 from Lawlieta/master

【修复】chunk 模式获取 chunk_sz = 0 时,webclient_recv 函数返回错误问题
朱天龙 (Armink) il y a 7 ans
Parent
commit
189d399c72
1 fichiers modifiés avec 7 ajouts et 0 suppressions
  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;