From 7ca5962d2ddb69e0bc422f173aac80f98d3f1f2f Mon Sep 17 00:00:00 2001
From: Sergey Lyubka <valenok@gmail.com>
Date: Tue, 16 Jul 2013 17:17:36 +0100
Subject: [PATCH] in pull_all() and read_request(), respect ctx->stop_flag()

---
 mongoose.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/mongoose.c b/mongoose.c
index b92b0abbf..27d271eae 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -1528,7 +1528,7 @@ static int pull(FILE *fp, struct mg_connection *conn, char *buf, int len) {
 static int pull_all(FILE *fp, struct mg_connection *conn, char *buf, int len) {
   int n, nread = 0;
 
-  while (len > 0) {
+  while (len > 0 && conn->ctx->stop_flag == 0) {
     n = pull(fp, conn, buf + nread, len);
     if (n < 0) {
       nread = n;  // Propagate the error
@@ -3052,7 +3052,8 @@ static int read_request(FILE *fp, struct mg_connection *conn,
   int request_len, n = 0;
 
   request_len = get_request_len(buf, *nread);
-  while (*nread < bufsiz && request_len == 0 &&
+  while (conn->ctx->stop_flag == 0 &&
+         *nread < bufsiz && request_len == 0 &&
          (n = pull(fp, conn, buf + *nread, bufsiz - *nread)) > 0) {
     *nread += n;
     assert(*nread <= bufsiz);
-- 
GitLab