diff --git a/src/webclient.c b/src/webclient.c index 55de69a..5497dd1 100644 --- a/src/webclient.c +++ b/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;