diff --git a/Makefile b/Makefile index 750f2669..573f478d 100644 --- a/Makefile +++ b/Makefile @@ -87,6 +87,7 @@ LIB_SOURCES = src/libhttp.c \ src/httplib_log_access.c \ src/httplib_master_thread.c \ src/httplib_mkcol.c \ + src/httplib_must_hide_file.c \ src/httplib_parse_http_headers.c \ src/httplib_parse_http_message.c \ src/httplib_parse_net.c \ diff --git a/src/httplib_must_hide_file.c b/src/httplib_must_hide_file.c new file mode 100644 index 00000000..3c9e3bdc --- /dev/null +++ b/src/httplib_must_hide_file.c @@ -0,0 +1,42 @@ +/* + * 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" + + + +int XX_httplib_must_hide_file( struct mg_connection *conn, const char *path ) { + + if (conn && conn->ctx) { + const char *pw_pattern = "**" PASSWORDS_FILE_NAME "$"; + const char *pattern = conn->ctx->config[HIDE_FILES]; + return XX_httplib_match_prefix(pw_pattern, strlen(pw_pattern), path) > 0 + || (pattern != NULL + && XX_httplib_match_prefix(pattern, strlen(pattern), path) > 0); + } + return 0; + +} /* XX_httplib_must_hide_file */ diff --git a/src/libhttp.c b/src/libhttp.c index e37381b0..cee1890b 100644 --- a/src/libhttp.c +++ b/src/libhttp.c @@ -4550,17 +4550,3 @@ int WINCDECL XX_httplib_compare_dir_entries( const void *p1, const void *p2 ) { return (query_string[1] == 'd') ? -cmp_result : cmp_result; } /* XX_httplib_compare_dir_entries */ - - -int XX_httplib_must_hide_file( struct mg_connection *conn, const char *path ) { - - if (conn && conn->ctx) { - const char *pw_pattern = "**" PASSWORDS_FILE_NAME "$"; - const char *pattern = conn->ctx->config[HIDE_FILES]; - return XX_httplib_match_prefix(pw_pattern, strlen(pw_pattern), path) > 0 - || (pattern != NULL - && XX_httplib_match_prefix(pattern, strlen(pattern), path) > 0); - } - return 0; - -} /* XX_httplib_must_hide_file */