* update to lighttpd 1.4.57 release hash * remove patches incorporated upstream Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>lilik-openwrt-22.03
@ -1,78 +0,0 @@ | |||
From 2a1e55dc62c72893d128400334131a56a218ee1a Mon Sep 17 00:00:00 2001 | |||
From: Glenn Strauss <gstrauss@gluelogic.com> | |||
Date: Tue, 1 Dec 2020 16:23:49 -0500 | |||
Subject: [PATCH] [mod_webdav] define _ATFILE_SOURCE if AT_FDCWD | |||
Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com> | |||
--- | |||
src/mod_webdav.c | 15 ++++++++++++--- | |||
1 file changed, 20 insertions(+), 5 deletions(-) | |||
diff --git a/src/mod_webdav.c b/src/mod_webdav.c | |||
index c3fe79a2..9c27ad8f 100644 | |||
--- a/src/mod_webdav.c | |||
+++ b/src/mod_webdav.c | |||
@@ -182,9 +182,18 @@ | |||
#include <string.h> | |||
#include <unistd.h> /* getpid() linkat() rmdir() unlinkat() */ | |||
-/* Note: filesystem access race conditions exist without _ATFILE_SOURCE */ | |||
+#ifdef AT_FDCWD | |||
#ifndef _ATFILE_SOURCE | |||
+#define _ATFILE_SOURCE | |||
+#endif | |||
+#endif | |||
+ | |||
+#ifndef AT_SYMLINK_NOFOLLOW | |||
#define AT_SYMLINK_NOFOLLOW 0 | |||
+#endif | |||
+ | |||
+/* Note: filesystem access race conditions exist without _ATFILE_SOURCE */ | |||
+#ifndef _ATFILE_SOURCE | |||
/*(trigger linkat() fail to fallback logic in mod_webdav.c)*/ | |||
#define linkat(odfd,opath,ndfd,npath,flags) -1 | |||
#endif | |||
@@ -2371,7 +2380,10 @@ webdav_delete_dir (const plugin_config * const pconf, | |||
buffer_append_string_len(&dst->rel_path, de->d_name, len); | |||
#ifndef _ATFILE_SOURCE | |||
- #ifndef _DIRENT_HAVE_D_TYPE | |||
+ #ifdef _DIRENT_HAVE_D_TYPE | |||
+ if (de->d_type == DT_UNKNOWN) | |||
+ #endif | |||
+ { | |||
struct stat st; | |||
if (0 != stat(dst->path.ptr, &st)) { | |||
dst->path.ptr[ (dst->path.used = dst_path_used) -1]='\0'; | |||
@@ -2379,6 +2391,6 @@ webdav_delete_dir (const plugin_config * const pconf, | |||
continue; /* file *just* disappeared? */ | |||
} | |||
s_isdir = S_ISDIR(st.st_mode); | |||
- #endif | |||
+ } | |||
#endif | |||
@@ -2903,7 +2902,10 @@ webdav_copymove_dir (const plugin_config * const pconf, | |||
buffer_append_string_len(&dst->rel_path, de->d_name, len); | |||
#ifndef _ATFILE_SOURCE | |||
- #ifndef _DIRENT_HAVE_D_TYPE | |||
+ #ifdef _DIRENT_HAVE_D_TYPE | |||
+ if (de->d_type == DT_UNKNOWN) | |||
+ #endif | |||
+ { | |||
if (0 != stat(src->path.ptr, &st)) { | |||
src->path.ptr[ (src->path.used = src_path_used) -1]='\0'; | |||
src->rel_path.ptr[(src->rel_path.used = src_rel_path_used)-1]='\0'; | |||
@@ -2912,7 +2914,7 @@ webdav_copymove_dir (const plugin_config * const pconf, | |||
continue; /* file *just* disappeared? */ | |||
} | |||
d_type = st.st_mode; | |||
- #endif | |||
+ } | |||
#endif | |||
if (S_ISDIR(d_type)) { /* recursive call; depth first */ | |||
-- | |||
2.28.0 | |||
@ -1,26 +0,0 @@ | |||
From 716e4d7a5d773607d87d5521f5943cff019bcd97 Mon Sep 17 00:00:00 2001 | |||
From: Glenn Strauss <gstrauss@gluelogic.com> | |||
Date: Mon, 30 Nov 2020 19:31:05 -0500 | |||
Subject: [PATCH] [core] fix lighttpd -1 one-shot with pipes | |||
Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com> | |||
--- | |||
src/server.c | 2 +- | |||
1 file changed, 1 insertion(+), 1 deletion(-) | |||
diff --git a/src/server.c b/src/server.c | |||
index 83c0241f..a781027e 100644 | |||
--- a/src/server.c | |||
+++ b/src/server.c | |||
@@ -356,7 +356,7 @@ static int server_oneshot_read_cq(connection *con, chunkqueue *cq, off_t max_byt | |||
/* temporary set con->fd to oneshot_fd (fd input) rather than outshot_fdout | |||
* (lighttpd generally assumes operation on sockets, so this is a kludge) */ | |||
int fd = con->fd; | |||
- con->fd = oneshot_fd; | |||
+ con->fd = oneshot_fdn->fd; | |||
int rc = oneshot_read_cq(con, cq, max_bytes); | |||
con->fd = fd; | |||
-- | |||
2.28.0 | |||
@ -1,89 +0,0 @@ | |||
From 233a218ab3cf449a0667438cf0b1830eeb33471b Mon Sep 17 00:00:00 2001 | |||
From: Glenn Strauss <gstrauss@gluelogic.com> | |||
Date: Thu, 3 Dec 2020 17:16:52 -0500 | |||
Subject: [PATCH] [build] fix meson.build when building all TLS mods | |||
x-ref: | |||
"[lighttpd] -mod-openssl fails" | |||
https://github.com/openwrt/packages/issues/14121 | |||
"[lighttpd] -mod-wolfssl fails" | |||
https://github.com/openwrt/packages/issues/14122 | |||
Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com> | |||
--- | |||
src/meson.build | 20 +++++++++++++------- | |||
1 file changed, 13 insertions(+), 7 deletions(-) | |||
diff --git a/src/meson.build b/src/meson.build | |||
index 71e4ec90..2d6ee2df 100644 | |||
--- a/src/meson.build | |||
+++ b/src/meson.build | |||
@@ -432,15 +432,20 @@ if get_option('with_mysql') | |||
endif | |||
libssl = [] | |||
-libx509 = [] | |||
libcrypto = [] | |||
+libsslcrypto = [] | |||
libgnutls = [] | |||
+libmbedtls = [] | |||
+libmbedcrypto = [] | |||
+libmbedx509 = [] | |||
+libwolfssl = [] | |||
if get_option('with_openssl') | |||
# manual search: | |||
# header: openssl/ssl.h | |||
# function: SSL_new (-lssl) | |||
# function: BIO_f_base64 (-lcrypto) | |||
libssl = [ dependency('libssl') ] | |||
+ libsslcrypto = [ dependency('libcrypto') ] | |||
libcrypto = [ dependency('libcrypto') ] | |||
conf_data.set('HAVE_OPENSSL_SSL_H', true) | |||
conf_data.set('HAVE_LIBSSL', true) | |||
@@ -449,7 +454,7 @@ if get_option('with_wolfssl') | |||
# manual search: | |||
# header: wolfssl/ssl.h | |||
# function: wolfSSL_Init (-lwolfssl) | |||
- libssl = [ dependency('wolfssl') ] | |||
+ libwolfssl = [ dependency('wolfssl') ] | |||
libcrypto = [ dependency('wolfssl') ] | |||
conf_data.set('HAVE_WOLFSSL_SSL_H', true) | |||
endif | |||
@@ -459,8 +464,9 @@ if get_option('with_mbedtls') | |||
# function: mbedtls_cipher_info_from_type (-lmbedtls) | |||
# function: mbedtls_x509_get_name (-lmbedx509) | |||
# function: mbedtls_base64_encode (-lmbedcrypto) | |||
- libssl = [ compiler.find_library('mbedtls') ] | |||
- libx509 = [ compiler.find_library('mbedx509') ] | |||
+ libmbedtls = [ compiler.find_library('mbedtls') ] | |||
+ libmbedx509 = [ compiler.find_library('mbedx509') ] | |||
+ libmbedcrypto = [ compiler.find_library('mbedcrypto') ] | |||
libcrypto = [ compiler.find_library('mbedcrypto') ] | |||
conf_data.set('HAVE_LIBMBEDCRYPTO', true) | |||
endif | |||
@@ -1070,19 +1076,19 @@ endif | |||
if get_option('with_openssl') | |||
modules += [ | |||
- [ 'mod_openssl', [ 'mod_openssl.c' ], libssl + libcrypto ], | |||
+ [ 'mod_openssl', [ 'mod_openssl.c' ], libssl + libsslcrypto ], | |||
] | |||
endif | |||
if get_option('with_wolfssl') | |||
modules += [ | |||
- [ 'mod_wolfssl', [ 'mod_wolfssl.c' ], libcrypto ], | |||
+ [ 'mod_wolfssl', [ 'mod_wolfssl.c' ], libwolfssl ], | |||
] | |||
endif | |||
if get_option('with_mbedtls') | |||
modules += [ | |||
- [ 'mod_mbedtls', [ 'mod_mbedtls.c' ], libssl + libx509 + libcrypto ], | |||
+ [ 'mod_mbedtls', [ 'mod_mbedtls.c' ], libmbedtls + libmbedx509 + libmbedcrypto ], | |||
] | |||
endif | |||
-- | |||
2.28.0 | |||
@ -1,32 +0,0 @@ | |||
From a27e55b2dd0887f462c36ff788dde5c5de20a154 Mon Sep 17 00:00:00 2001 | |||
From: Glenn Strauss <gstrauss@gluelogic.com> | |||
Date: Sat, 5 Dec 2020 11:19:03 -0500 | |||
Subject: [PATCH] [core] add missing mod_wolfssl to ssl compat list | |||
add missing mod_wolfssl to ssl compat module list | |||
x-ref: | |||
"[lighttpd] -mod-wolfssl fails (requires dependency on -mod-openssl?)" | |||
https://github.com/openwrt/packages/issues/14139 | |||
Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com> | |||
--- | |||
src/configfile.c | 2 ++ | |||
1 file changed, 2 insertions(+) | |||
diff --git a/src/configfile.c b/src/configfile.c | |||
index da444154..c7739c4f 100644 | |||
--- a/src/configfile.c | |||
+++ b/src/configfile.c | |||
@@ -345,6 +345,8 @@ static void config_compat_module_load (server *srv) { | |||
append_mod_openssl = 0; | |||
else if (buffer_eq_slen(m, CONST_STR_LEN("mod_openssl"))) | |||
append_mod_openssl = 0; | |||
+ else if (buffer_eq_slen(m, CONST_STR_LEN("mod_wolfssl"))) | |||
+ append_mod_openssl = 0; | |||
else if (buffer_eq_slen(m, CONST_STR_LEN("mod_authn_file"))) | |||
append_mod_authn_file = 0; | |||
else if (buffer_eq_slen(m, CONST_STR_LEN("mod_authn_ldap"))) | |||
-- | |||
2.28.0 | |||
@ -1,55 +0,0 @@ | |||
From a43420ba07645acb71f31e95b9c7b4e894794afd Mon Sep 17 00:00:00 2001 | |||
From: Glenn Strauss <gstrauss@gluelogic.com> | |||
Date: Sun, 6 Dec 2020 22:50:49 -0500 | |||
Subject: [PATCH] [mod_wolfssl] add complex preproc logic for SNI | |||
add complex preproc logic for SNI detection | |||
- HAVE_SNI is not sufficient | |||
- HAVE_LIGHTY is not sufficient (in wolfssl <= 4.5.0) | |||
Instead, use more complex logic wrapping calls to SNI_Callback() | |||
in wolfssl. | |||
x-ref: | |||
"[lighttpd] -mod-wolfssl inhibited by missing library functionality" | |||
https://github.com/openwrt/packages/issues/14142 | |||
"put all SNI code behind simpler preprocessor directive HAVE_SNI" | |||
https://github.com/wolfSSL/wolfssl/pull/3538 | |||
Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com> | |||
--- | |||
src/mod_wolfssl.c | 15 ++++++++++++--- | |||
1 file changed, 12 insertions(+), 3 deletions(-) | |||
diff --git a/src/mod_wolfssl.c b/src/mod_wolfssl.c | |||
index a22b0ebe..70f7488b 100644 | |||
--- a/src/mod_wolfssl.c | |||
+++ b/src/mod_wolfssl.c | |||
@@ -2041,13 +2041,22 @@ network_init_ssl (server *srv, plugin_config_socket *s, plugin_data *p) | |||
* && (HAVE_STUNNEL || WOLFSSL_NGINX || HAVE_LIGHTY))) | |||
* and sniRecvCb sniRecvCbArg are hidden by *different* set of defines | |||
* in wolfssl/internal.h) | |||
- * Note: SNI callbacks disabled if wolfSSL is not built OPENSSL_ALL ! */ | |||
- #ifdef OPENSSL_ALL /* regretable */ | |||
+ * Note: wolfSSL SNI callbacks members not present unless wolfSSL is | |||
+ * built OPENSSL_ALL or some additional combination of preprocessor | |||
+ * defines. The following should work with more recent wolfSSL versions | |||
+ * (and HAVE_LIGHTY is not sufficient in wolfssl <= 4.5.0) */ | |||
+ #if defined(OPENSSL_ALL) \ | |||
+ || (defined(OPENSSL_EXTRA) \ | |||
+ && (defined(HAVE_STUNNEL) \ | |||
+ || defined(WOLFSSL_NGINX) \ | |||
+ || defined(WOLFSSL_HAPROXY))) | |||
+ #else | |||
+ #undef HAVE_SNI | |||
+ #endif | |||
#ifdef HAVE_SNI | |||
wolfSSL_CTX_set_servername_callback( | |||
s->ssl_ctx, network_ssl_servername_callback); | |||
wolfSSL_CTX_set_servername_arg(s->ssl_ctx, srv); | |||
- #endif /* regretable */ | |||
#else | |||
log_error(srv->errh, __FILE__, __LINE__, | |||
"SSL: WARNING: SNI callbacks *crippled* in wolfSSL library build"); | |||
-- | |||
2.28.0 | |||