libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit 1fe4a6c7025cb91f3410459a7a92d75fbbcd0df7
parent 8bb4ce7621be4e6bcd4bcdc7513b7c94fcded3b4
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date:   Sat, 23 Apr 2016 16:16:03 +0000

test_quiesce: do not violate our API

Diffstat:
MChangeLog | 3+++
Msrc/testcurl/test_quiesce.c | 9+++++++--
2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,6 @@ +Sat Apr 23 16:06:30 CET 2016 + Improved test_quiesce test. -EG + Sat Apr 23 15:39:38 CET 2016 Notify other threads in MHD_quiesce_daemon() so listen socket FD is removed from awaiting select() and poll(). -EG diff --git a/src/testcurl/test_quiesce.c b/src/testcurl/test_quiesce.c @@ -150,8 +150,13 @@ ServeOneRequest(void *param) MHD_SYS_select_ (max + 1, &rs, &ws, &es, &tv); MHD_run (d); } + fd = MHD_quiesce_daemon (d); + if (MHD_INVALID_SOCKET == fd) + { + MHD_stop_daemon (d); + return "MHD_quiesce_daemon() failed in ServeOneRequest()"; + } MHD_stop_daemon (d); - MHD_socket_close_(fd); return done ? NULL : "Requests was not served by ServeOneRequest()"; } @@ -429,7 +434,6 @@ testExternalGet () MHD_stop_daemon (d); return 2; } - MHD_socket_close_ (fd); c = setupCURL (&cbc); multi = curl_multi_init (); mret = curl_multi_add_handle (multi, c); @@ -450,6 +454,7 @@ testExternalGet () curl_multi_cleanup (multi); } MHD_stop_daemon (d); + MHD_socket_close_ (fd); if (cbc.pos != strlen ("/hello_world")) return 8192; if (0 != strncmp ("/hello_world", cbc.buf, strlen ("/hello_world")))