From e61fec35e2b5017addc1aeec21b97978ae7873de Mon Sep 17 00:00:00 2001 From: Lammert Bies Date: Sat, 10 Dec 2016 21:39:35 +0100 Subject: [PATCH] Moved connection locking to own file --- Makefile | 1 + src/httplib_lock_unlock_connection.c | 56 ++++++++++++++++++++++++++++ src/libhttp.c | 12 ------ 3 files changed, 57 insertions(+), 12 deletions(-) create mode 100644 src/httplib_lock_unlock_connection.c diff --git a/Makefile b/Makefile index f7fc4247..2ecdeb82 100644 --- a/Makefile +++ b/Makefile @@ -69,6 +69,7 @@ LIB_SOURCES = src/libhttp.c \ src/httplib_initialize_ssl.c \ src/httplib_is_websocket_protocol.c \ src/httplib_load_dll.c \ + src/httplib_lock_unlock_connection.c \ src/httplib_lock_unlock_context.c \ src/httplib_log_access.c \ src/httplib_master_thread.c \ diff --git a/src/httplib_lock_unlock_connection.c b/src/httplib_lock_unlock_connection.c new file mode 100644 index 00000000..ecc5886b --- /dev/null +++ b/src/httplib_lock_unlock_connection.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2016 Lammert Bies + * Copyright (c) 2013-2016 the Civetweb developers + * Copyright (c) 2004-2013 Sergey Lyubka + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + + +#include "libhttp-private.h" + + + +/* + * void mg_lock_connection( struct mg_connection *conn ); + * + * The function mg_lock_connection() puts a lock on a connection. + */ + +void mg_lock_connection( struct mg_connection *conn ) { + + if ( conn != NULL ) pthread_mutex_lock( & conn->mutex ); + +} /* mg_lock_connection */ + + + +/* + * void mg_unlock_connection( struct mg_connection *conn ); + * + * The function mg_unlock_connection() removes the current lock from a + * connection. + */ + +void mg_unlock_connection( struct mg_connection *conn ) { + + if ( conn != NULL ) pthread_mutex_unlock( & conn->mutex ); + +} /* mg_unlock_connection */ diff --git a/src/libhttp.c b/src/libhttp.c index 4ea00ff8..beeff483 100644 --- a/src/libhttp.c +++ b/src/libhttp.c @@ -6483,15 +6483,3 @@ void XX_httplib_handle_propfind( struct mg_connection *conn, const char *path, s } /* XX_httplib_handle_propfind */ #endif - -void mg_lock_connection( struct mg_connection *conn ) { - - if ( conn != NULL ) pthread_mutex_lock( & conn->mutex ); - -} /* mg_lock_connection */ - -void mg_unlock_connection( struct mg_connection *conn ) { - - if ( conn != NULL ) pthread_mutex_unlock( & conn->mutex ); - -} /* mg_unlock_connection */