mirror of
https://github.com/cesanta/mongoose.git
synced 2024-11-24 11:09:01 +08:00
Stop reading if connection is closing
CL: none PUBLISHED_FROM=3b74ca02e2960bbbf130f6d95aef679f2917e824
This commit is contained in:
parent
93286836f9
commit
3130e59244
@ -2895,7 +2895,7 @@ static int mg_do_recv(struct mg_connection *nc) {
|
|||||||
} else {
|
} else {
|
||||||
res = mg_recv_tcp(nc, buf, len);
|
res = mg_recv_tcp(nc, buf, len);
|
||||||
}
|
}
|
||||||
} while (res > 0);
|
} while (res > 0 && !(nc->flags & (MG_F_CLOSE_IMMEDIATELY | MG_F_UDP)));
|
||||||
return res;
|
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);
|
mg_hexdump_connection(nc, nc->mgr->hexdump_file, buf, n, MG_EV_RECV);
|
||||||
}
|
}
|
||||||
#endif
|
#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:
|
out:
|
||||||
|
@ -578,7 +578,7 @@ static int mg_do_recv(struct mg_connection *nc) {
|
|||||||
} else {
|
} else {
|
||||||
res = mg_recv_tcp(nc, buf, len);
|
res = mg_recv_tcp(nc, buf, len);
|
||||||
}
|
}
|
||||||
} while (res > 0);
|
} while (res > 0 && !(nc->flags & (MG_F_CLOSE_IMMEDIATELY | MG_F_UDP)));
|
||||||
return res;
|
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);
|
mg_hexdump_connection(nc, nc->mgr->hexdump_file, buf, n, MG_EV_RECV);
|
||||||
}
|
}
|
||||||
#endif
|
#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:
|
out:
|
||||||
|
@ -5665,7 +5665,7 @@ static const char *test_socks(void) {
|
|||||||
mbuf_resize(&c->recv_mbuf, 10000000);
|
mbuf_resize(&c->recv_mbuf, 10000000);
|
||||||
|
|
||||||
/* Run event loop. Use more cycles to let file download complete. */
|
/* 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");
|
ASSERT_STREQ(status, "success");
|
||||||
|
|
||||||
mg_mgr_free(&mgr);
|
mg_mgr_free(&mgr);
|
||||||
|
Loading…
Reference in New Issue
Block a user