From 3fb3f241ee5ca427bd2aae4dff643e2ad0bd5159 Mon Sep 17 00:00:00 2001 From: Lammert Bies Date: Fri, 9 Dec 2016 01:40:12 +0100 Subject: [PATCH] Moved ssl_get_protocol to own file --- Makefile | 1 + src/httplib_ssl_get_protocol.c | 53 ++++++++++++++++++++++++++++++++++ src/libhttp.c | 14 --------- 3 files changed, 54 insertions(+), 14 deletions(-) create mode 100644 src/httplib_ssl_get_protocol.c diff --git a/Makefile b/Makefile index d01ca4f6..92031451 100644 --- a/Makefile +++ b/Makefile @@ -66,6 +66,7 @@ LIB_SOURCES = src/libhttp.c \ src/httplib_set_ssl_option.c \ src/httplib_set_sock_timeout.c \ src/httplib_set_tcp_nodelay.c \ + src/httplib_ssl_get_protocol.c \ src/httplib_start.c \ src/httplib_stop.c \ src/httplib_uninitialize_ssl.c \ diff --git a/src/httplib_ssl_get_protocol.c b/src/httplib_ssl_get_protocol.c new file mode 100644 index 00000000..a0182a36 --- /dev/null +++ b/src/httplib_ssl_get_protocol.c @@ -0,0 +1,53 @@ +/* + * 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" + + + +/* + * long XX_httplib_ssl_get_protocol( int version_id ); + * + * The function XX_httplib_ssl_get_protocol() returns a bit mask with the + * supported SSH protocols based on the version number passed as a parameter. + */ + +#if !defined(NO_SSL) + +long XX_httplib_ssl_get_protocol( int version_id ) { + + long ret = SSL_OP_ALL; + + if (version_id > 0) ret |= SSL_OP_NO_SSLv2; + if (version_id > 1) ret |= SSL_OP_NO_SSLv3; + if (version_id > 2) ret |= SSL_OP_NO_TLSv1; + if (version_id > 3) ret |= SSL_OP_NO_TLSv1_1; + + return ret; + +} /* XX_httplib_ssl_get_protocol */ + +#endif /* !NO_SSL */ diff --git a/src/libhttp.c b/src/libhttp.c index eff76f3c..6586307d 100644 --- a/src/libhttp.c +++ b/src/libhttp.c @@ -8755,18 +8755,4 @@ int XX_httplib_ssl_use_pem_file( struct mg_context *ctx, const char *pem ) { } /* XX_httplib_ssl_use_pem_file */ - -long XX_httplib_ssl_get_protocol( int version_id ) { - - long ret = SSL_OP_ALL; - - if (version_id > 0) ret |= SSL_OP_NO_SSLv2; - if (version_id > 1) ret |= SSL_OP_NO_SSLv3; - if (version_id > 2) ret |= SSL_OP_NO_TLSv1; - if (version_id > 3) ret |= SSL_OP_NO_TLSv1_1; - - return ret; - -} /* XX_httplib_ssl_get_protocol */ - #endif /* !NO_SSL */