diff --git a/examples/lws_echo/CMakeLists.txt b/examples/lws_echo/CMakeLists.txt new file mode 100644 index 00000000000..d959489f6ed --- /dev/null +++ b/examples/lws_echo/CMakeLists.txt @@ -0,0 +1,37 @@ +# ############################################################################## +# apps/examples/lws_echo/CMakeLists.txt +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed to the Apache Software Foundation (ASF) under one or more contributor +# license agreements. See the NOTICE file distributed with this work for +# additional information regarding copyright ownership. The ASF licenses this +# file to you under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +# +# ############################################################################## + +if(CONFIG_EXAMPLES_LWS_ECHO) + nuttx_add_application( + NAME + ${CONFIG_EXAMPLES_LWS_ECHO_PROGNAME} + PRIORITY + ${CONFIG_EXAMPLES_LWS_ECHO_PRIORITY} + STACKSIZE + ${CONFIG_EXAMPLES_LWS_ECHO_STACKSIZE} + MODULE + ${CONFIG_EXAMPLES_LWS_ECHO} + DEPENDS + libwebsockets + SRCS + lws_echo_main.c) +endif() diff --git a/examples/lws_echo/Kconfig b/examples/lws_echo/Kconfig new file mode 100644 index 00000000000..b58daa24e07 --- /dev/null +++ b/examples/lws_echo/Kconfig @@ -0,0 +1,31 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +config EXAMPLES_LWS_ECHO + tristate "libwebsockets WebSocket echo server" + default n + depends on NETUTILS_LIBWEBSOCKETS && NETUTILS_LIBWEBSOCKETS_SERVER + ---help--- + Simple WebSocket echo server using libwebsockets without TLS. + +if EXAMPLES_LWS_ECHO + +config EXAMPLES_LWS_ECHO_PROGNAME + string "Program name" + default "lws_echo" + +config EXAMPLES_LWS_ECHO_PRIORITY + int "Task priority" + default 100 + +config EXAMPLES_LWS_ECHO_STACKSIZE + int "Stack size" + default 16384 + +config EXAMPLES_LWS_ECHO_PORT + int "WebSocket server TCP port" + default 9000 + +endif diff --git a/examples/lws_echo/Make.defs b/examples/lws_echo/Make.defs new file mode 100644 index 00000000000..b0a46ccd58e --- /dev/null +++ b/examples/lws_echo/Make.defs @@ -0,0 +1,25 @@ +############################################################################ +# apps/examples/lws_echo/Make.defs +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. The +# ASF licenses this file to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance with the +# License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +############################################################################ + +ifneq ($(CONFIG_EXAMPLES_LWS_ECHO),) +CONFIGURED_APPS += $(APPDIR)/examples/lws_echo +endif diff --git a/examples/lws_echo/Makefile b/examples/lws_echo/Makefile new file mode 100644 index 00000000000..48da9321650 --- /dev/null +++ b/examples/lws_echo/Makefile @@ -0,0 +1,32 @@ +############################################################################ +# apps/examples/lws_echo/Makefile +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. The +# ASF licenses this file to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance with the +# License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +############################################################################ + +include $(APPDIR)/Make.defs + +PROGNAME = $(CONFIG_EXAMPLES_LWS_ECHO_PROGNAME) +PRIORITY = $(CONFIG_EXAMPLES_LWS_ECHO_PRIORITY) +STACKSIZE = $(CONFIG_EXAMPLES_LWS_ECHO_STACKSIZE) +MODULE = $(CONFIG_EXAMPLES_LWS_ECHO) + +MAINSRC = lws_echo_main.c + +include $(APPDIR)/Application.mk diff --git a/examples/lws_echo/lws_echo_main.c b/examples/lws_echo/lws_echo_main.c new file mode 100644 index 00000000000..48bf644f011 --- /dev/null +++ b/examples/lws_echo/lws_echo_main.c @@ -0,0 +1,203 @@ +/**************************************************************************** + * apps/examples/lws_echo/lws_echo_main.c + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#ifndef CONFIG_EXAMPLES_LWS_ECHO_PORT +# define CONFIG_EXAMPLES_LWS_ECHO_PORT 9000 +#endif + +#define LWS_ECHO_IOBUF_SIZE 256 + +/**************************************************************************** + * Private Types + ****************************************************************************/ + +struct lws_echo_session_s +{ + unsigned char buf[LWS_PRE + LWS_ECHO_IOBUF_SIZE]; + size_t len; + int pending; +}; + +/**************************************************************************** + * Private Function Prototypes + ****************************************************************************/ + +static int callback_echo(struct lws *wsi, + enum lws_callback_reasons reason, + void *user, void *in, size_t len); + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +static const struct lws_protocols g_protocols[] = +{ + { + "echo-protocol", + callback_echo, + sizeof(struct lws_echo_session_s), + LWS_ECHO_IOBUF_SIZE, + 0, NULL, 0 + }, + LWS_PROTOCOL_LIST_TERM +}; + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: callback_echo + * + * Description: + * libwebsockets protocol callback for the echo server. + * + * Input Parameters: + * wsi - Websocket instance. + * reason - Callback reason. + * user - Per-session data. + * in - Received data. + * len - Length of received data. + * + * Returned Value: + * Zero on success; non-zero on failure. + * + ****************************************************************************/ + +static int callback_echo(struct lws *wsi, + enum lws_callback_reasons reason, + void *user, void *in, size_t len) +{ + struct lws_echo_session_s *pss = (struct lws_echo_session_s *)user; + + switch (reason) + { + case LWS_CALLBACK_ESTABLISHED: + printf("lws_echo: client connected\n"); + pss->pending = 0; + break; + + case LWS_CALLBACK_RECEIVE: + if (len > sizeof(pss->buf) - LWS_PRE) + { + len = sizeof(pss->buf) - LWS_PRE; + } + + memcpy(&pss->buf[LWS_PRE], in, len); + pss->len = len; + pss->pending = 1; + lws_callback_on_writable(wsi); + break; + + case LWS_CALLBACK_SERVER_WRITEABLE: + if (!pss->pending) + { + break; + } + + lws_write(wsi, &pss->buf[LWS_PRE], pss->len, LWS_WRITE_TEXT); + pss->pending = 0; + break; + + case LWS_CALLBACK_CLOSED: + printf("lws_echo: client disconnected\n"); + break; + + default: + break; + } + + return 0; +} + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: main + * + * Description: + * Start a libwebsockets WebSocket echo server. + * + * Input Parameters: + * Standard argc and argv. + * + * Returned Value: + * Zero on success; non-zero on failure. + * + ****************************************************************************/ + +int main(int argc, FAR char *argv[]) +{ + struct lws_context_creation_info info; + struct lws_context *context; + int n; + + lws_set_log_level(LLL_USER | LLL_ERR | LLL_WARN | LLL_NOTICE, NULL); + + printf("lws_echo: starting WebSocket echo server on port %d\n", + CONFIG_EXAMPLES_LWS_ECHO_PORT); + printf("lws_echo: connect with ws://:%d " + "(subprotocol echo-protocol)\n", + CONFIG_EXAMPLES_LWS_ECHO_PORT); + + memset(&info, 0, sizeof(info)); + info.port = CONFIG_EXAMPLES_LWS_ECHO_PORT; + info.protocols = g_protocols; + info.vhost_name = "localhost"; + info.options = 0; + + context = lws_create_context(&info); + if (context == NULL) + { + printf("lws_echo: ERROR creating context\n"); + return 1; + } + + printf("lws_echo: server running\n"); + + n = 0; + while (n >= 0) + { + n = lws_service(context, 100); + } + + lws_context_destroy(context); + printf("lws_echo: server stopped\n"); + + return 0; +} diff --git a/netutils/libwebsockets/CMakeLists.txt b/netutils/libwebsockets/CMakeLists.txt index 7977f931179..8f308e2929f 100644 --- a/netutils/libwebsockets/CMakeLists.txt +++ b/netutils/libwebsockets/CMakeLists.txt @@ -21,17 +21,24 @@ if(CONFIG_NETUTILS_LIBWEBSOCKETS) # ############################################################################ - # Config and Fetch MbedTLS lib + # Config and Fetch libwebsockets # ############################################################################ set(LIBWEBSOCKETS_DIR ${CMAKE_CURRENT_LIST_DIR}/libwebsockets) - if(NOT EXISTS ${LIBWEBSOCKETS_DIR}) + # Match Makefile: strip kconfig quotes; default when olddefconfig has not run + set(LWS_VERSION ${CONFIG_NETUTILS_LIBWEBSOCKETS_VERSION}) + string(REGEX REPLACE "^\"(.*)\"$" "\\1" LWS_VERSION "${LWS_VERSION}") + if(NOT LWS_VERSION) + set(LWS_VERSION "4.3.1") + endif() + + if(NOT EXISTS "${LIBWEBSOCKETS_DIR}/lib/plat/unix/unix-caps.c") set(LIBWEBSOCKETS_URL "https://github.com/warmcat/libwebsockets/archive") FetchContent_Declare( libwebsockets_fetch - URL ${LIBWEBSOCKETS_URL}/v${CONFIG_NETUTILS_LIBWEBSOCKETS_VERSION}.zip - SOURCE_DIR ${LIBWEBSOCKETS_DIR} BINARY_DIR + URL ${LIBWEBSOCKETS_URL}/v${LWS_VERSION}.zip SOURCE_DIR + ${LIBWEBSOCKETS_DIR} BINARY_DIR ${CMAKE_BINARY_DIR}/apps/netutils/libwebsockets/libwebsockets DOWNLOAD_NO_PROGRESS true TIMEOUT 30) @@ -52,21 +59,31 @@ if(CONFIG_NETUTILS_LIBWEBSOCKETS) # Flags # ############################################################################ - string(REGEX MATCHALL "[0-9]" versions - "${CONFIG_NETUTILS_LIBWEBSOCKETS_VERSION}") - list(GET versions 0 VERSION_MAJOR) - list(GET versions 1 VERSION_MINOR) - list(GET versions 2 VERSION_PATCH) + string(REPLACE "." ";" LWS_VERSION_PARTS "${LWS_VERSION}") + list(GET LWS_VERSION_PARTS 0 VERSION_MAJOR) + list(LENGTH LWS_VERSION_PARTS LWS_VERSION_PARTS_LEN) + if(LWS_VERSION_PARTS_LEN GREATER 1) + list(GET LWS_VERSION_PARTS 1 VERSION_MINOR) + else() + set(VERSION_MINOR 0) + endif() + if(LWS_VERSION_PARTS_LEN GREATER 2) + list(GET LWS_VERSION_PARTS 2 VERSION_PATCH) + else() + set(VERSION_PATCH 0) + endif() + set(FLAGS -DLWS_LIBRARY_VERSION_MAJOR=${VERSION_MAJOR} -DLWS_LIBRARY_VERSION_MINOR=${VERSION_MINOR} -DLWS_LIBRARY_VERSION_PATCH=${VERSION_PATCH} -DLWS_LIBRARY_VERSION_PATCH_ELABORATED=${VERSION_PATCH}-unknown - -DLWS_LIBRARY_VERSION="${CONFIG_NETUTILS_LIBWEBSOCKETS_VERSION}-unknown" - -Wno-shadow) + -DLWS_LIBRARY_VERSION="${LWS_VERSION}-unknown" + -Wno-shadow + -Wno-format) set(INCDIR - . + ${CMAKE_CURRENT_LIST_DIR} ${LIBWEBSOCKETS_DIR}/lib/core ${LIBWEBSOCKETS_DIR}/lib/plat/unix ${LIBWEBSOCKETS_DIR}/lib/event-libs @@ -78,9 +95,7 @@ if(CONFIG_NETUTILS_LIBWEBSOCKETS) ${LIBWEBSOCKETS_DIR}/lib/roles/h1 ${LIBWEBSOCKETS_DIR}/lib/roles/h2 ${LIBWEBSOCKETS_DIR}/lib/roles/ws - ${LIBWEBSOCKETS_DIR}/lib/tls - ${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/wrapper/include - ${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/wrapper/include/internal) + ${LIBWEBSOCKETS_DIR}/lib/tls) set(CSRCS ${LIBWEBSOCKETS_DIR}/lib/plat/unix/unix-caps.c @@ -146,7 +161,21 @@ if(CONFIG_NETUTILS_LIBWEBSOCKETS) ${LIBWEBSOCKETS_DIR}/lib/roles/raw-skt/ops-raw-skt.c ${LIBWEBSOCKETS_DIR}/lib/roles/raw-file/ops-raw-file.c ${LIBWEBSOCKETS_DIR}/lib/roles/http/client/client-http.c - ${LIBWEBSOCKETS_DIR}/lib/event-libs/poll/poll.c + ${LIBWEBSOCKETS_DIR}/lib/event-libs/poll/poll.c) + + if(CONFIG_NETUTILS_LIBWEBSOCKETS_SERVER) + list(APPEND INCDIR ${LIBWEBSOCKETS_DIR}/lib/roles/http/server) + list(APPEND CSRCS ${LIBWEBSOCKETS_DIR}/lib/roles/ws/server-ws.c + ${LIBWEBSOCKETS_DIR}/lib/roles/http/server/server.c + ${LIBWEBSOCKETS_DIR}/lib/roles/listen/ops-listen.c) + endif() + + if(CONFIG_NETUTILS_LIBWEBSOCKETS_TLS) + list(APPEND INCDIR ${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/wrapper/include + ${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/wrapper/include/internal) + list( + APPEND + CSRCS ${LIBWEBSOCKETS_DIR}/lib/tls/tls.c ${LIBWEBSOCKETS_DIR}/lib/tls/tls-network.c ${LIBWEBSOCKETS_DIR}/lib/tls/tls-sessions.c @@ -157,6 +186,7 @@ if(CONFIG_NETUTILS_LIBWEBSOCKETS) ${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/mbedtls-ssl.c ${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/mbedtls-session.c ${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/mbedtls-client.c) + endif() if(CONFIG_NETUTILS_MQTTC) list(APPEND INCDIR ${LIBWEBSOCKETS_DIR}/lib/roles/mqtt) @@ -178,7 +208,8 @@ if(CONFIG_NETUTILS_LIBWEBSOCKETS) set_property( TARGET nuttx APPEND - PROPERTY NUTTX_INCLUDE_DIRECTORIES ${LIBWEBSOCKETS_DIR}/include) + PROPERTY NUTTX_INCLUDE_DIRECTORIES ${LIBWEBSOCKETS_DIR}/include + ${CMAKE_CURRENT_LIST_DIR}) nuttx_add_library(libwebsockets STATIC) target_sources(libwebsockets PRIVATE ${CSRCS}) diff --git a/netutils/libwebsockets/Kconfig b/netutils/libwebsockets/Kconfig index 07686db68e8..36c904906df 100644 --- a/netutils/libwebsockets/Kconfig +++ b/netutils/libwebsockets/Kconfig @@ -6,7 +6,7 @@ config NETUTILS_LIBWEBSOCKETS bool "libwebsockets library (current version)" default n - depends on NET && OPENSSL_MBEDTLS_WRAPPER + depends on NET ---help--- Enables the libwebsockets library. @@ -16,4 +16,20 @@ config NETUTILS_LIBWEBSOCKETS_VERSION string "Version number" default "4.3.1" +config NETUTILS_LIBWEBSOCKETS_SERVER + bool "Enable server support" + default n + ---help--- + Enable WebSocket/HTTP server support in libwebsockets. + When disabled, only client-side code is built. + +config NETUTILS_LIBWEBSOCKETS_TLS + bool "Enable TLS support" + default y + depends on OPENSSL_MBEDTLS_WRAPPER + ---help--- + Enable TLS in libwebsockets via the OpenSSL-mbedTLS + wrapper. Requires CONFIG_OPENSSL_MBEDTLS_WRAPPER. + When disabled, only plain ws:// connections are supported. + endif diff --git a/netutils/libwebsockets/Make.defs b/netutils/libwebsockets/Make.defs index 13fe3849c63..58ebdbb3e17 100644 --- a/netutils/libwebsockets/Make.defs +++ b/netutils/libwebsockets/Make.defs @@ -25,7 +25,9 @@ CONFIGURED_APPS += $(APPDIR)/netutils/libwebsockets # Allows `.h>` import. -CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/netutils/libwebsockets/libwebsockets/include -CXXFLAGS += ${INCDIR_PREFIX}$(APPDIR)/netutils/libwebsockets/libwebsockets/include +CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/netutils/libwebsockets +CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/netutils/libwebsockets/libwebsockets/include +CXXFLAGS += ${INCDIR_PREFIX}$(APPDIR)/netutils/libwebsockets +CXXFLAGS += ${INCDIR_PREFIX}$(APPDIR)/netutils/libwebsockets/libwebsockets/include endif diff --git a/netutils/libwebsockets/Makefile b/netutils/libwebsockets/Makefile index ad8c0c5e6c8..ff28433cee0 100644 --- a/netutils/libwebsockets/Makefile +++ b/netutils/libwebsockets/Makefile @@ -35,7 +35,8 @@ CFLAGS += \ -DLWS_LIBRARY_VERSION_MINOR=$(call word-dot,$(LIBWEBSOCKETS_VERSION),2) \ -DLWS_LIBRARY_VERSION_PATCH=$(call word-dot,$(LIBWEBSOCKETS_VERSION),3) \ -DLWS_LIBRARY_VERSION_PATCH_ELABORATED=$(call word-dot,$(LIBWEBSOCKETS_VERSION),3)-unknown \ - -DLWS_LIBRARY_VERSION=\"$(LIBWEBSOCKETS_VERSION)-unknown\" + -DLWS_LIBRARY_VERSION=\"$(LIBWEBSOCKETS_VERSION)-unknown\" \ + -Wno-shadow -Wno-format CFLAGS += \ -I. \ @@ -118,6 +119,16 @@ CSRCS += \ $(LIBWEBSOCKETS_UNPACK)/lib/roles/http/client/client-http.c \ $(LIBWEBSOCKETS_UNPACK)/lib/event-libs/poll/poll.c +ifneq ($(CONFIG_NETUTILS_LIBWEBSOCKETS_SERVER),) +CSRCS += \ + $(LIBWEBSOCKETS_UNPACK)/lib/roles/ws/server-ws.c \ + $(LIBWEBSOCKETS_UNPACK)/lib/roles/http/server/server.c \ + $(LIBWEBSOCKETS_UNPACK)/lib/roles/listen/ops-listen.c + +CFLAGS += -I$(LIBWEBSOCKETS_UNPACK)/lib/roles/http/server +endif + +ifneq ($(CONFIG_NETUTILS_LIBWEBSOCKETS_TLS),) CSRCS += \ $(LIBWEBSOCKETS_UNPACK)/lib/tls/tls.c \ $(LIBWEBSOCKETS_UNPACK)/lib/tls/tls-network.c \ @@ -128,7 +139,8 @@ CSRCS += \ $(LIBWEBSOCKETS_UNPACK)/lib/tls/mbedtls/mbedtls-x509.c \ $(LIBWEBSOCKETS_UNPACK)/lib/tls/mbedtls/mbedtls-ssl.c \ $(LIBWEBSOCKETS_UNPACK)/lib/tls/mbedtls/mbedtls-session.c \ - $(LIBWEBSOCKETS_UNPACK)/lib/tls/mbedtls/mbedtls-client.c \ + $(LIBWEBSOCKETS_UNPACK)/lib/tls/mbedtls/mbedtls-client.c +endif ifneq ($(CONFIG_NETUTILS_MQTTC),) CFLAGS += -I$(LIBWEBSOCKETS_UNPACK)/lib/roles/mqtt diff --git a/netutils/libwebsockets/lws_config.h b/netutils/libwebsockets/lws_config.h index 3fe970b4772..02fb9ef2c53 100644 --- a/netutils/libwebsockets/lws_config.h +++ b/netutils/libwebsockets/lws_config.h @@ -106,7 +106,7 @@ #define LWS_HAVE_MALLOC_H /* #define LWS_HAVE_MALLOC_TRIM */ #define LWS_HAVE_MALLOC_USABLE_SIZE -#ifdef CONFIG_CRYPTO_MBEDTLS +#ifdef CONFIG_NETUTILS_LIBWEBSOCKETS_TLS #define LWS_HAVE_mbedtls_md_setup #define LWS_HAVE_mbedtls_net_init #define LWS_HAVE_mbedtls_rsa_complete @@ -187,8 +187,10 @@ /* #undef LWS_NO_CLIENT */ #define LWS_NO_DAEMONIZE +#ifdef CONFIG_NETUTILS_LIBWEBSOCKETS_TLS #define LWS_OPENSSL_CLIENT_CERTS "/etc/ssl/certs" #define LWS_OPENSSL_SUPPORT +#endif /* #undef LWS_PLAT_OPTEE */ #define LWS_PLAT_UNIX /* #undef LWS_PLAT_FREERTOS */ @@ -281,7 +283,7 @@ /* #undef LWS_WITH_SDEVENT */ #define LWS_WITH_LWSAC #define LWS_LOGS_TIMESTAMP -#ifdef CONFIG_CRYPTO_MBEDTLS +#ifdef CONFIG_NETUTILS_LIBWEBSOCKETS_TLS #define LWS_WITH_MBEDTLS #endif /* #undef LWS_WITH_MINIZ */ @@ -292,7 +294,9 @@ #define LWS_WITH_CACHE_NSCOOKIEJAR #define LWS_WITH_CLIENT #define LWS_WITHOUT_EXTENSIONS -/* #undef LWS_WITH_SERVER */ +#ifdef CONFIG_NETUTILS_LIBWEBSOCKETS_SERVER +#define LWS_WITH_SERVER +#endif /* #undef LWS_WITH_SPAWN */ @@ -355,7 +359,7 @@ /* #undef LWS_WITH_SYS_NTPCLIENT */ #define LWS_WITH_SYS_STATE /* #undef LWS_WITH_THREADPOOL */ -#ifdef CONFIG_CRYPTO_MBEDTLS +#ifdef CONFIG_NETUTILS_LIBWEBSOCKETS_TLS #define LWS_WITH_TLS /* #undef LWS_WITH_TLS_JIT_TRUST */ #define LWS_WITH_TLS_SESSIONS