fix mg_send() failing on 0 length

This commit is contained in:
Sergio R. Caprile committed 2025-11-19 17:02:28 -03:00
1 parent b503915ca5
commit 236724ea29
5 files changed
+20 -8

No files matched your search

+1
View File
@@ -413,6 +413,7 @@ static void test_http_server(struct mg_mgr *mgr) {
mg_mprintf("./mip_curl.sh http://%M:12347", mg_print_ip4, &mgr->ifp->ip);
#endif
ASSERT(c != NULL);
ASSERT (mg_send(c, "NADA", 0)); // check mg_send allows len=0
pthread_create(&thread_id, NULL, poll_thread,
mgr); // simpler this way, no concurrency anyway
MG_DEBUG(("CURL"));
+11
View File
@@ -2977,6 +2977,14 @@ static void eZ(struct mg_connection *c, int ev, void *ev_data) {
(void) ev_data;
}
static void eS(struct mg_connection *c, int ev, void *ev_data) {
if (ev == MG_EV_HTTP_MSG) {
ASSERT (mg_send(c, "NADA", 0));
mg_http_reply(c, 200, "", "abcd");
}
(void) ev_data;
}
// Do not delete chunks as they arrive
static void eh4(struct mg_connection *c, int ev, void *ev_data) {
uint32_t *crc = (uint32_t *) c->fn_data;
@@ -3012,6 +3020,9 @@ static void test_http_chunked_case(mg_event_handler_t s, mg_event_handler_t c,
}
static void test_http_chunked(void) {
// test mg_send allows calls with 0 length
test_http_chunked_case(eS, eh4, 1, "abcd");
// Non-chunked encoding
test_http_chunked_case(eY, eh4, 1, "abcd"); // Chunks not deleted
test_http_chunked_case(eY, eh4, 2, "abcdabcd");