mirror of
https://git.gnunet.org/libmicrohttpd.git
synced 2026-09-26 04:09:30 +03:00
lock when modifying response object to add missing headers
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
Sun Jun 22 00:22:08 CEST 2014
|
||||
Lock on response if adding headers, needed if response
|
||||
object is shared across threads and connections. -CG
|
||||
|
||||
Thu Jun 19 17:32:32 CEST 2014
|
||||
Ensure that listen FD is bound to epoll FD even before
|
||||
MHD_run() is called if running with MHD_USE_EPOLL_LINUX_ONLY
|
||||
|
||||
@@ -2466,13 +2466,16 @@ MHD_connection_handle_idle (struct MHD_Connection *connection)
|
||||
continue;
|
||||
if (NULL == connection->response)
|
||||
break; /* try again next time */
|
||||
(void) MHD_mutex_lock_ (&connection->response->mutex);
|
||||
if (MHD_NO == build_header_response (connection))
|
||||
{
|
||||
/* oops - close! */
|
||||
(void) MHD_mutex_unlock_ (&connection->response->mutex);
|
||||
CONNECTION_CLOSE_ERROR (connection,
|
||||
"Closing connection (failed to create response header)\n");
|
||||
continue;
|
||||
}
|
||||
(void) MHD_mutex_unlock_ (&connection->response->mutex);
|
||||
connection->state = MHD_CONNECTION_HEADERS_SENDING;
|
||||
|
||||
#if HAVE_DECL_TCP_CORK
|
||||
@@ -2539,7 +2542,16 @@ MHD_connection_handle_idle (struct MHD_Connection *connection)
|
||||
(void) MHD_mutex_unlock_ (&connection->response->mutex);
|
||||
break;
|
||||
case MHD_CONNECTION_BODY_SENT:
|
||||
build_header_response (connection);
|
||||
(void) MHD_mutex_lock_ (&connection->response->mutex);
|
||||
if (MHD_NO == build_header_response (connection))
|
||||
{
|
||||
/* oops - close! */
|
||||
(void) MHD_mutex_unlock_ (&connection->response->mutex);
|
||||
CONNECTION_CLOSE_ERROR (connection,
|
||||
"Closing connection (failed to create response header)\n");
|
||||
continue;
|
||||
}
|
||||
(void) MHD_mutex_unlock_ (&connection->response->mutex);
|
||||
if ( (MHD_NO == connection->have_chunked_upload) ||
|
||||
(connection->write_buffer_send_offset ==
|
||||
connection->write_buffer_append_offset) )
|
||||
|
||||
Reference in New Issue
Block a user