libwebsockets: Fix -Werror=enum-int-mismatch in lws_tls_server_abort_connection()
authorOskari Rauta <oskari.rauta@gmail.com>
Sun, 28 May 2023 06:33:08 +0000 (09:33 +0300)
committerRosen Penev <rosenp@gmail.com>
Sat, 1 Jul 2023 11:48:25 +0000 (04:48 -0700)
with gcc 13 libwebsockets fails with -Werror=enum-int-mismatch with both
SSL variants. These 2 patches work out that issue. Problem is mentioned
as a issue in openwrt/packages#20949 and instead of overriding issue
with appropriate CFLAGS, this approach was suggested for me as it's
been made as a PR (for openssl) at warmcat/libwebsockets#2824

Second patch for mbedtls, was made by me using same approach
as was used of openssl.

Eventually these propably will be merged into libwebsockets mainstream.

Signed-off-by: Oskari Rauta <oskari.rauta@gmail.com>
libs/libwebsockets/Makefile
libs/libwebsockets/patches/010-fix-enum-int-mismatch-openssl.patch [new file with mode: 0644]
libs/libwebsockets/patches/011-fix-enum-int-mismatch-mbedtls.patch [new file with mode: 0644]

index c71510b01d56792aef6c6c0f209e9a140134c6a9..34e7abd3d730604ab94f76ca1f2831294365a8f7 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libwebsockets
 PKG_VERSION:=4.3.2
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
diff --git a/libs/libwebsockets/patches/010-fix-enum-int-mismatch-openssl.patch b/libs/libwebsockets/patches/010-fix-enum-int-mismatch-openssl.patch
new file mode 100644 (file)
index 0000000..5f2ee86
--- /dev/null
@@ -0,0 +1,26 @@
+From 722e44cb5b74cae206f47a6dc0d985eba8ed1b2e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 26 Jan 2023 17:17:49 -0800
+Subject: [PATCH] Fix -Werror=enum-int-mismatch in
+ lws_tls_server_abort_connection()
+
+GCC 13 is findinf this function signature mismatch.
+
+../git/lib/tls/openssl/openssl-server.c:713:1: error: conflicting types for 'lws_tls_server_abort_connection' due to enum/integer mismatch; have 'int(struct lws *)' [-Werror=enum-int-mismatch]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/tls/openssl/openssl-server.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/lib/tls/openssl/openssl-server.c
++++ b/lib/tls/openssl/openssl-server.c
+@@ -709,7 +709,7 @@ lws_tls_server_new_nonblocking(struct lw
+       return 0;
+ }
+-int
++enum lws_ssl_capable_status
+ lws_tls_server_abort_connection(struct lws *wsi)
+ {
+       if (wsi->tls.use_ssl)
diff --git a/libs/libwebsockets/patches/011-fix-enum-int-mismatch-mbedtls.patch b/libs/libwebsockets/patches/011-fix-enum-int-mismatch-mbedtls.patch
new file mode 100644 (file)
index 0000000..ce4d44a
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/lib/tls/mbedtls/mbedtls-server.c
++++ b/lib/tls/mbedtls/mbedtls-server.c
+@@ -264,11 +264,7 @@ lws_tls_server_new_nonblocking(struct lw
+       return 0;
+ }
+-#if defined(LWS_AMAZON_RTOS)
+ enum lws_ssl_capable_status
+-#else
+-int
+-#endif
+ lws_tls_server_abort_connection(struct lws *wsi)
+ {
+       if (wsi->tls.use_ssl)