From 40fe3253be0882203d72e7708851149ba5db1d84 Mon Sep 17 00:00:00 2001 From: Lammert Bies Date: Sat, 10 Dec 2016 09:58:26 +0100 Subject: [PATCH] Moved ssl_locking_callback to own file --- Makefile | 1 + src/httplib_ssl_locking_callback.c | 51 ++++++++++++++++++++++++++++++ src/libhttp.c | 11 ------- 3 files changed, 52 insertions(+), 11 deletions(-) create mode 100644 src/httplib_ssl_locking_callback.c diff --git a/Makefile b/Makefile index 4302b9e7..8d200fad 100644 --- a/Makefile +++ b/Makefile @@ -69,6 +69,7 @@ LIB_SOURCES = src/libhttp.c \ src/httplib_set_sock_timeout.c \ src/httplib_set_tcp_nodelay.c \ src/httplib_ssl_get_protocol.c \ + src/httplib_ssl_locking_callback.c \ src/httplib_ssl_use_pem_file.c \ src/httplib_start.c \ src/httplib_stop.c \ diff --git a/src/httplib_ssl_locking_callback.c b/src/httplib_ssl_locking_callback.c new file mode 100644 index 00000000..41342b4e --- /dev/null +++ b/src/httplib_ssl_locking_callback.c @@ -0,0 +1,51 @@ +/* + * 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 XX_httplib_ssl_locking_callback( int mode, int mutex_num, const char *file, int line ); + * + * The function XX_httplib_ssl_locking_callback() is used for locking and + * unlocking mutexes from the SSL routines. + */ + +#if !defined(NO_SSL) + +void XX_httplib_ssl_locking_callback( int mode, int mutex_num, const char *file, int line ) { + + (void)line; + (void)file; + + if ( mode & 1 ) pthread_mutex_lock( & XX_httplib_ssl_mutexes[mutex_num] ); + else pthread_mutex_unlock( & XX_httplib_ssl_mutexes[mutex_num] ); + +} /* XX_httplib_ssl_locking_callback */ + +#endif /* !NO_SSL */ diff --git a/src/libhttp.c b/src/libhttp.c index 32ff2460..6dbaa616 100644 --- a/src/libhttp.c +++ b/src/libhttp.c @@ -8636,15 +8636,4 @@ void XX_httplib_ssl_get_client_cert_info( struct mg_connection *conn ) { } /* XX_httplib_ssl_get_client_cert_info */ - -void XX_httplib_ssl_locking_callback( int mode, int mutex_num, const char *file, int line ) { - - (void)line; - (void)file; - - if ( mode & 1 ) pthread_mutex_lock( & XX_httplib_ssl_mutexes[mutex_num] ); - else pthread_mutex_unlock( & XX_httplib_ssl_mutexes[mutex_num] ); - -} /* XX_httplib_ssl_locking_callback */ - #endif /* !NO_SSL */