mirror of
https://git.gnunet.org/libmicrohttpd.git
synced 2026-09-25 04:09:31 +03:00
add assertion to guard against bad behavior described in #7196, also document that after suspending one must return MHD_YES
This commit is contained in:
@@ -3036,6 +3036,11 @@ The only safe time to suspend a connection is from the
|
||||
response object must not be shared among multiple
|
||||
connections).
|
||||
|
||||
When suspending from the @code{MHD_AccessHandlerCallback}
|
||||
you MUST afterwards return @code{MHD_YES} from the access handler
|
||||
callback (as MHD_NO would imply to both close and suspend
|
||||
the connection, which is not allowed).
|
||||
|
||||
Finally, it is an API violation to call @code{MHD_stop_daemon} while
|
||||
having suspended connections (this will at least create memory and
|
||||
socket leaks or lead to undefined behavior). You must explicitly
|
||||
|
||||
@@ -868,6 +868,7 @@ MHD_connection_close_ (struct MHD_Connection *connection,
|
||||
struct MHD_Daemon *daemon = connection->daemon;
|
||||
struct MHD_Response *resp = connection->rp.response;
|
||||
|
||||
mhd_assert (! connection->suspended);
|
||||
#ifdef MHD_USE_THREADS
|
||||
mhd_assert ( (0 == (daemon->options & MHD_USE_INTERNAL_POLLING_THREAD)) || \
|
||||
MHD_thread_ID_match_current_ (connection->pid) );
|
||||
|
||||
Reference in New Issue
Block a user