mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-20 11:19:56 +00:00
Stop reading if connection is closing
CL: none PUBLISHED_FROM=3b74ca02e2960bbbf130f6d95aef679f2917e824
This commit is contained in:
1 parent
93286836f9
commit
3130e59244
3 files changed
+9
-5
No files matched your search
+4
-2
@@ -2895,7 +2895,7 @@ static int mg_do_recv(struct mg_connection *nc) {
|
||||
} else {
|
||||
res = mg_recv_tcp(nc, buf, len);
|
||||
}
|
||||
} while (res > 0);
|
||||
} while (res > 0 && !(nc->flags & (MG_F_CLOSE_IMMEDIATELY | MG_F_UDP)));
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -3012,7 +3012,9 @@ static int mg_recv_udp(struct mg_connection *nc, char *buf, size_t len) {
|
||||
mg_hexdump_connection(nc, nc->mgr->hexdump_file, buf, n, MG_EV_RECV);
|
||||
}
|
||||
#endif
|
||||
mg_call(nc, NULL, nc->user_data, MG_EV_RECV, &n);
|
||||
if (n != 0) {
|
||||
mg_call(nc, NULL, nc->user_data, MG_EV_RECV, &n);
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
|
||||
+4
-2
@@ -578,7 +578,7 @@ static int mg_do_recv(struct mg_connection *nc) {
|
||||
} else {
|
||||
res = mg_recv_tcp(nc, buf, len);
|
||||
}
|
||||
} while (res > 0);
|
||||
} while (res > 0 && !(nc->flags & (MG_F_CLOSE_IMMEDIATELY | MG_F_UDP)));
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -695,7 +695,9 @@ static int mg_recv_udp(struct mg_connection *nc, char *buf, size_t len) {
|
||||
mg_hexdump_connection(nc, nc->mgr->hexdump_file, buf, n, MG_EV_RECV);
|
||||
}
|
||||
#endif
|
||||
mg_call(nc, NULL, nc->user_data, MG_EV_RECV, &n);
|
||||
if (n != 0) {
|
||||
mg_call(nc, NULL, nc->user_data, MG_EV_RECV, &n);
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
|
||||
+1
-1
@@ -5665,7 +5665,7 @@ static const char *test_socks(void) {
|
||||
mbuf_resize(&c->recv_mbuf, 10000000);
|
||||
|
||||
/* Run event loop. Use more cycles to let file download complete. */
|
||||
poll_until(&mgr, 10, c_str_ne, status, (void *) "");
|
||||
poll_until(&mgr, 15, c_str_ne, status, (void *) "");
|
||||
ASSERT_STREQ(status, "success");
|
||||
|
||||
mg_mgr_free(&mgr);
|
||||
|
||||
Reference in new issue
Block a user