mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-09 00:00:04 +01:00
freertos: rename esp32 plat to freertos
This commit is contained in:
parent
5303837502
commit
0fa5563d18
54 changed files with 243 additions and 224 deletions
|
@ -75,6 +75,8 @@ option(LWS_STATIC_PIC "Build the static version of the library with position-ind
|
|||
option(LWS_WITH_ESP32 "Build for ESP32" OFF)
|
||||
option(LWS_WITH_ESP32_HELPER "Build ESP32 helper" OFF)
|
||||
option(LWS_PLAT_OPTEE "Build for OPTEE" OFF)
|
||||
option(LWS_PLAT_FREERTOS "Build for FreeRTOS" OFF)
|
||||
|
||||
#
|
||||
# Client / Server / Test Apps build control
|
||||
#
|
||||
|
@ -151,7 +153,11 @@ else()
|
|||
set(LWS_WITH_ESP32_HELPER OFF)
|
||||
endif()
|
||||
|
||||
if (WIN32 OR LWS_WITH_ESP32)
|
||||
if (LWS_WITH_ESP32)
|
||||
set(LWS_PLAT_FREERTOS 1)
|
||||
endif()
|
||||
|
||||
if (WIN32 OR LWS_PLAT_FREERTOS)
|
||||
message(STATUS "No LWS_WITH_DIR and LWS_WITH_DIR")
|
||||
set(LWS_WITH_DIR OFF)
|
||||
set(LWS_WITH_LEJP_CONF OFF)
|
||||
|
@ -243,11 +249,11 @@ endif()
|
|||
|
||||
# microsoft... that's why you can't have nice things
|
||||
|
||||
if (WIN32 OR LWS_WITH_ESP32)
|
||||
if (WIN32 OR LWS_PLAT_FREERTOS)
|
||||
set(LWS_UNIX_SOCK 0)
|
||||
endif()
|
||||
|
||||
if (LWS_WITH_ESP32)
|
||||
if (LWS_PLAT_FREERTOS)
|
||||
set(LWS_WITH_LWSAC 0)
|
||||
set(LWS_WITH_FTS 0)
|
||||
endif()
|
||||
|
@ -345,10 +351,10 @@ if (LWS_WITH_MBEDTLS)
|
|||
include_directories(lib/tls/mbedtls/wrapper/include)
|
||||
endif()
|
||||
|
||||
include_directories(include plugins lib/core lib/core-net lib/event-libs include/abstract lib/tls lib/roles lib/event-libs/libuv lib/event-libs/poll lib/event-libs/libevent lib/event-libs/libev lib/jose/jwe lib/jose/jws lib/jose lib/misc lib/roles/http lib/roles/http/compression lib/roles/h1 lib/roles/h2 lib/roles/ws lib/roles/cgi lib/roles/dbus lib/roles/raw-proxy)
|
||||
include_directories(include plugins lib/core lib/core-net lib/event-libs include/abstract lib/tls lib/roles lib/event-libs/libuv lib/event-libs/poll lib/event-libs/libevent lib/event-libs/libev lib/jose/jwe lib/jose/jws lib/jose lib/misc lib/roles/http lib/roles/http/compression lib/roles/h1 lib/roles/h2 lib/roles/ws lib/roles/cgi lib/roles/dbus lib/roles/raw-proxy lib/abstract)
|
||||
|
||||
if (LWS_WITH_ESP32)
|
||||
include_directories(lib/plat/esp32)
|
||||
if (LWS_PLAT_FREERTOS)
|
||||
include_directories(lib/plat/freertos lib/plat/freertos/esp32)
|
||||
else()
|
||||
if (WIN32)
|
||||
include_directories(lib/plat/windows)
|
||||
|
@ -411,7 +417,7 @@ if (LWS_WITH_GENERIC_SESSIONS)
|
|||
set(LWS_WITH_STRUCT_SQLITE3 1)
|
||||
endif()
|
||||
|
||||
if (LWS_WITH_ESP32)
|
||||
if (LWS_PLAT_FREERTOS)
|
||||
set(LWS_WITH_SHARED OFF)
|
||||
set(LWS_WITH_MBEDTLS ON)
|
||||
# set(LWS_WITHOUT_CLIENT ON)
|
||||
|
@ -536,7 +542,7 @@ endif()
|
|||
if (LWS_WITH_SSL AND NOT LWS_WITH_WOLFSSL AND NOT LWS_WITH_MBEDTLS)
|
||||
if ("${LWS_OPENSSL_LIBRARIES}" STREQUAL "" OR "${LWS_OPENSSL_INCLUDE_DIRS}" STREQUAL "")
|
||||
else()
|
||||
if (NOT LWS_WITH_ESP32)
|
||||
if (NOT LWS_PLAT_FREERTOS)
|
||||
set(OPENSSL_LIBRARIES ${LWS_OPENSSL_LIBRARIES})
|
||||
endif()
|
||||
set(OPENSSL_INCLUDE_DIRS ${LWS_OPENSSL_INCLUDE_DIRS})
|
||||
|
@ -566,7 +572,7 @@ if (LWS_WITH_SSL AND LWS_WITH_WOLFSSL)
|
|||
endif()
|
||||
|
||||
if (LWS_WITH_SSL AND LWS_WITH_MBEDTLS)
|
||||
if ("${LWS_MBEDTLS_LIBRARIES}" STREQUAL "" OR "${LWS_MBEDTLS_INCLUDE_DIRS}" STREQUAL "" AND NOT LWS_WITH_ESP32)
|
||||
if ("${LWS_MBEDTLS_LIBRARIES}" STREQUAL "" OR "${LWS_MBEDTLS_INCLUDE_DIRS}" STREQUAL "" AND NOT LWS_PLAT_FREERTOS)
|
||||
|
||||
find_path(LWS_MBEDTLS_INCLUDE_DIRS mbedtls/ssl.h)
|
||||
|
||||
|
@ -1053,7 +1059,7 @@ endif()
|
|||
if (LWS_ROLE_H1 OR LWS_ROLE_H2)
|
||||
list(APPEND SOURCES
|
||||
lib/roles/http/header.c
|
||||
lib/roles/http/server/parsers.c)
|
||||
lib/roles/http/parsers.c)
|
||||
if (LWS_WITH_HTTP_STREAM_COMPRESSION)
|
||||
list(APPEND SOURCES
|
||||
lib/roles/http/compression/stream.c
|
||||
|
@ -1319,29 +1325,31 @@ else()
|
|||
)
|
||||
endif()
|
||||
else()
|
||||
if (LWS_WITH_ESP32)
|
||||
if (LWS_PLAT_FREERTOS)
|
||||
list(APPEND SOURCES
|
||||
lib/plat/esp32/esp32-fds.c
|
||||
lib/plat/esp32/esp32-init.c
|
||||
lib/plat/esp32/esp32-misc.c
|
||||
lib/plat/esp32/esp32-pipe.c
|
||||
lib/plat/esp32/esp32-service.c
|
||||
lib/plat/esp32/esp32-sockets.c
|
||||
lib/plat/freertos/freertos-fds.c
|
||||
lib/plat/freertos/freertos-init.c
|
||||
lib/plat/freertos/freertos-misc.c
|
||||
lib/plat/freertos/freertos-pipe.c
|
||||
lib/plat/freertos/freertos-service.c
|
||||
lib/plat/freertos/freertos-sockets.c
|
||||
lib/misc/romfs.c)
|
||||
if (LWS_WITH_ESP32_HELPER)
|
||||
list(APPEND SOURCES lib/plat/esp32/esp32-helpers.c)
|
||||
list(APPEND SOURCES lib/plat/freertos/esp32/esp32-helpers.c)
|
||||
endif()
|
||||
if (LWS_WITH_FILE_OPS)
|
||||
list(APPEND SOURCES lib/plat/esp32/esp32-file.c)
|
||||
list(APPEND SOURCES lib/plat/freertos/freertos-file.c)
|
||||
endif()
|
||||
else()
|
||||
set(LWS_PLAT_UNIX 1)
|
||||
list(APPEND SOURCES
|
||||
lib/plat/unix/unix-caps.c
|
||||
lib/plat/unix/unix-file.c
|
||||
lib/plat/unix/unix-misc.c
|
||||
lib/plat/unix/unix-init.c
|
||||
)
|
||||
if (LWS_WITH_FILE_OPS)
|
||||
list(APPEND SOURCES lib/plat/unix/unix-file.c)
|
||||
endif()
|
||||
if (LWS_WITH_NETWORK)
|
||||
list(APPEND SOURCES
|
||||
lib/plat/unix/unix-pipe.c
|
||||
|
@ -1514,7 +1522,7 @@ if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR COMPILER_IS_CLANG)
|
|||
set(CMAKE_C_FLAGS "-Wtype-limits ${CMAKE_C_FLAGS}" )
|
||||
endif()
|
||||
|
||||
if (UNIX AND NOT LWS_WITH_ESP32)
|
||||
if (UNIX AND NOT LWS_PLAT_FREERTOS)
|
||||
set(CMAKE_C_FLAGS "-Wall -Wsign-compare -Wuninitialized -Werror ${VISIBILITY_FLAG} -Wundef ${GCOV_FLAGS} ${CMAKE_C_FLAGS} ${ASAN_FLAGS}" )
|
||||
else()
|
||||
set(CMAKE_C_FLAGS "-Wall -Wsign-compare -Wuninitialized -Werror ${VISIBILITY_FLAG} ${GCOV_FLAGS} ${CMAKE_C_FLAGS}" )
|
||||
|
@ -1750,19 +1758,19 @@ if (LWS_WITH_SSL)
|
|||
if (NOT chose_ssl)
|
||||
if (NOT OPENSSL_FOUND AND NOT LWS_WITH_BORINGSSL)
|
||||
# TODO: Add support for STATIC also.
|
||||
if (NOT LWS_WITH_ESP32)
|
||||
if (NOT LWS_PLAT_FREERTOS)
|
||||
find_package(OpenSSL REQUIRED)
|
||||
endif()
|
||||
set(OPENSSL_INCLUDE_DIRS "${OPENSSL_INCLUDE_DIR}")
|
||||
endif()
|
||||
|
||||
message("OpenSSL include dir: ${OPENSSL_INCLUDE_DIRS}")
|
||||
if (NOT LWS_WITH_ESP32)
|
||||
if (NOT LWS_PLAT_FREERTOS)
|
||||
message("OpenSSL libraries: ${OPENSSL_LIBRARIES}")
|
||||
endif()
|
||||
|
||||
include_directories("${OPENSSL_INCLUDE_DIRS}")
|
||||
if (NOT LWS_WITH_ESP32)
|
||||
if (NOT LWS_PLAT_FREERTOS)
|
||||
list(APPEND LIB_LIST ${OPENSSL_LIBRARIES})
|
||||
endif()
|
||||
|
||||
|
@ -1929,7 +1937,7 @@ CHECK_FUNCTION_EXISTS(EC_POINT_get_affine_coordinates LWS_HAVE_EC_POINT_get_affi
|
|||
endif()
|
||||
if (LWS_WITH_MBEDTLS)
|
||||
set(LWS_HAVE_TLS_CLIENT_METHOD 1)
|
||||
if (NOT LWS_WITH_ESP32)
|
||||
if (NOT LWS_PLAT_FREERTOS)
|
||||
# not supported in esp-idf openssl wrapper yet, but is in our version
|
||||
set(LWS_HAVE_X509_VERIFY_PARAM_set1_host 1)
|
||||
endif()
|
||||
|
@ -1987,7 +1995,7 @@ set(GENCERTS 0)
|
|||
if (LWS_WITH_SSL AND OPENSSL_EXECUTABLE AND NOT LWS_WITHOUT_TEST_SERVER AND NOT LWS_WITHOUT_SERVER AND NOT LWS_WITHOUT_TESTAPPS)
|
||||
set(GENCERTS 1)
|
||||
endif()
|
||||
if (LWS_WITH_ESP32)
|
||||
if (LWS_PLAT_FREERTOS)
|
||||
set(GENCERTS 1)
|
||||
endif()
|
||||
message(" GENCERTS = ${GENCERTS}")
|
||||
|
@ -2737,7 +2745,7 @@ message(" LWS_WITH_GENERIC_SESSIONS = ${LWS_WITH_GENERIC_SESSIONS}")
|
|||
message(" LWS_STATIC_PIC = ${LWS_STATIC_PIC}")
|
||||
message(" LWS_WITH_RANGES = ${LWS_WITH_RANGES}")
|
||||
message(" LWS_PLAT_OPTEE = ${LWS_PLAT_OPTEE}")
|
||||
message(" LWS_WITH_ESP32 = ${LWS_WITH_ESP32}")
|
||||
message(" LWS_PLAT_FREERTOS = ${LWS_PLAT_FREERTOS}")
|
||||
message(" LWS_WITH_ZIP_FOPS = ${LWS_WITH_ZIP_FOPS}")
|
||||
message(" LWS_AVOID_SIGPIPE_IGN = ${LWS_AVOID_SIGPIPE_IGN}")
|
||||
message(" LWS_WITH_STATS = ${LWS_WITH_STATS}")
|
||||
|
|
|
@ -81,6 +81,7 @@
|
|||
#cmakedefine LWS_OPENSSL_SUPPORT
|
||||
#cmakedefine LWS_PLAT_OPTEE
|
||||
#cmakedefine LWS_PLAT_UNIX
|
||||
#cmakedefine LWS_PLAT_FREERTOS
|
||||
#cmakedefine LWS_ROLE_CGI
|
||||
#cmakedefine LWS_ROLE_DBUS
|
||||
#cmakedefine LWS_ROLE_H1
|
||||
|
|
|
@ -133,14 +133,14 @@ typedef unsigned long long lws_intptr_t;
|
|||
#define LWS_O_CREAT O_CREAT
|
||||
#define LWS_O_TRUNC O_TRUNC
|
||||
|
||||
#if !defined(LWS_PLAT_OPTEE) && !defined(OPTEE_TA) && !defined(LWS_WITH_ESP32)
|
||||
#if !defined(LWS_PLAT_OPTEE) && !defined(OPTEE_TA) && !defined(LWS_PLAT_FREERTOS)
|
||||
#include <poll.h>
|
||||
#include <netdb.h>
|
||||
#define LWS_INVALID_FILE -1
|
||||
#define LWS_SOCK_INVALID (-1)
|
||||
#else
|
||||
#define getdtablesize() (30)
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
#define LWS_INVALID_FILE NULL
|
||||
#define LWS_SOCK_INVALID (-1)
|
||||
#else
|
||||
|
@ -237,7 +237,7 @@ typedef unsigned long long lws_intptr_t;
|
|||
#endif /* not USE_OLD_CYASSL */
|
||||
#else
|
||||
#if defined(LWS_WITH_MBEDTLS)
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
/* this filepath is passed to us but without quotes or <> */
|
||||
#if !defined(LWS_AMAZON_RTOS)
|
||||
/* AMAZON RTOS has its own setting via MTK_MBEDTLS_CONFIG_FILE */
|
||||
|
@ -351,8 +351,11 @@ struct lws_pollfd {
|
|||
#else
|
||||
|
||||
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
#include <libwebsockets/lws-freertos.h>
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#include <libwebsockets/lws-esp32.h>
|
||||
#endif
|
||||
#else
|
||||
typedef int lws_sockfd_type;
|
||||
typedef int lws_filefd_type;
|
||||
|
@ -549,7 +552,9 @@ struct lws;
|
|||
#include <libwebsockets/lws-sha1-base64.h>
|
||||
#include <libwebsockets/lws-x509.h>
|
||||
#include <libwebsockets/lws-cgi.h>
|
||||
#if defined(LWS_WITH_FILE_OPS)
|
||||
#include <libwebsockets/lws-vfs.h>
|
||||
#endif
|
||||
#include <libwebsockets/lws-lejp.h>
|
||||
#include <libwebsockets/lws-stats.h>
|
||||
#include <libwebsockets/lws-struct.h>
|
||||
|
|
|
@ -79,7 +79,7 @@ typedef union {
|
|||
lws_filefd_type filefd;
|
||||
} lws_sock_file_fd_type;
|
||||
|
||||
#if !defined(LWS_WITH_ESP32) && !defined(LWS_PLAT_OPTEE)
|
||||
#if !defined(LWS_PLAT_FREERTOS) && !defined(LWS_PLAT_OPTEE)
|
||||
struct lws_udp {
|
||||
struct sockaddr sa;
|
||||
socklen_t salen;
|
||||
|
|
|
@ -20,108 +20,10 @@
|
|||
* 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.
|
||||
*/
|
||||
|
||||
typedef int lws_sockfd_type;
|
||||
typedef int lws_filefd_type;
|
||||
|
||||
/*
|
||||
* Later lwip (at least 2.1.12) already defines these in its own headers
|
||||
* protected by the same test as used here... if POLLIN / POLLOUT already exist
|
||||
* then assume no need to declare those and struct pollfd.
|
||||
*
|
||||
* Older lwip needs these declarations done here.
|
||||
* This is only included from libwebsockets.h if LWS_WITH_ESP32
|
||||
*/
|
||||
|
||||
#if !defined(POLLIN) && !defined(POLLOUT)
|
||||
|
||||
struct pollfd {
|
||||
lws_sockfd_type fd; /**< fd related to */
|
||||
short events; /**< which POLL... events to respond to */
|
||||
short revents; /**< which POLL... events occurred */
|
||||
};
|
||||
#define POLLIN 0x0001
|
||||
#define POLLPRI 0x0002
|
||||
#define POLLOUT 0x0004
|
||||
#define POLLERR 0x0008
|
||||
#define POLLHUP 0x0010
|
||||
#define POLLNVAL 0x0020
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(LWS_AMAZON_RTOS)
|
||||
#include <FreeRTOS.h>
|
||||
#include <event_groups.h>
|
||||
#include <string.h>
|
||||
#include "timers.h"
|
||||
#else /* LWS_AMAZON_RTOS */
|
||||
#include <freertos/FreeRTOS.h>
|
||||
#include <freertos/event_groups.h>
|
||||
#include <string.h>
|
||||
#include "esp_wifi.h"
|
||||
#include "esp_system.h"
|
||||
#include "esp_event.h"
|
||||
#include "esp_event_loop.h"
|
||||
#include "nvs.h"
|
||||
#include "driver/gpio.h"
|
||||
#include "esp_spi_flash.h"
|
||||
#include "freertos/timers.h"
|
||||
#endif /* LWS_AMAZON_RTOS */
|
||||
|
||||
#if !defined(CONFIG_FREERTOS_HZ)
|
||||
#define CONFIG_FREERTOS_HZ 100
|
||||
#endif
|
||||
|
||||
typedef TimerHandle_t uv_timer_t;
|
||||
typedef void uv_cb_t(uv_timer_t *);
|
||||
typedef void * uv_handle_t;
|
||||
|
||||
struct timer_mapping {
|
||||
uv_cb_t *cb;
|
||||
uv_timer_t *t;
|
||||
};
|
||||
|
||||
#define UV_VERSION_MAJOR 1
|
||||
|
||||
#define lws_uv_getloop(a, b) (NULL)
|
||||
|
||||
static LWS_INLINE void uv_timer_init(void *l, uv_timer_t *t)
|
||||
{
|
||||
(void)l;
|
||||
*t = NULL;
|
||||
}
|
||||
|
||||
extern void esp32_uvtimer_cb(TimerHandle_t t);
|
||||
|
||||
static LWS_INLINE void uv_timer_start(uv_timer_t *t, uv_cb_t *cb, int first, int rep)
|
||||
{
|
||||
struct timer_mapping *tm = (struct timer_mapping *)malloc(sizeof(*tm));
|
||||
|
||||
if (!tm)
|
||||
return;
|
||||
|
||||
tm->t = t;
|
||||
tm->cb = cb;
|
||||
|
||||
*t = xTimerCreate("x", pdMS_TO_TICKS(first), !!rep, tm,
|
||||
(TimerCallbackFunction_t)esp32_uvtimer_cb);
|
||||
xTimerStart(*t, 0);
|
||||
}
|
||||
|
||||
static LWS_INLINE void uv_timer_stop(uv_timer_t *t)
|
||||
{
|
||||
xTimerStop(*t, 0);
|
||||
}
|
||||
|
||||
static LWS_INLINE void uv_close(uv_handle_t *h, void *v)
|
||||
{
|
||||
free(pvTimerGetTimerID((uv_timer_t)h));
|
||||
xTimerDelete(*(uv_timer_t *)h, 0);
|
||||
}
|
||||
|
||||
|
||||
#if !defined(LWS_AMAZON_RTOS)
|
||||
|
||||
/* ESP32 helper declarations */
|
||||
|
||||
#include <mdns.h>
|
||||
|
|
75
include/libwebsockets/lws-freertos.h
Normal file
75
include/libwebsockets/lws-freertos.h
Normal file
|
@ -0,0 +1,75 @@
|
|||
/*
|
||||
* libwebsockets - small server side websockets and web server implementation
|
||||
*
|
||||
* Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com>
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This is included from libwebsockets.h if LWS_PLAT_FREERTOS
|
||||
*/
|
||||
|
||||
typedef int lws_sockfd_type;
|
||||
typedef int lws_filefd_type;
|
||||
|
||||
/*
|
||||
* Later lwip (at least 2.1.12) already defines these in its own headers
|
||||
* protected by the same test as used here... if POLLIN / POLLOUT already exist
|
||||
* then assume no need to declare those and struct pollfd.
|
||||
*
|
||||
* Older lwip needs these declarations done here.
|
||||
*/
|
||||
|
||||
#if !defined(POLLIN) && !defined(POLLOUT)
|
||||
|
||||
struct pollfd {
|
||||
lws_sockfd_type fd; /**< fd related to */
|
||||
short events; /**< which POLL... events to respond to */
|
||||
short revents; /**< which POLL... events occurred */
|
||||
};
|
||||
#define POLLIN 0x0001
|
||||
#define POLLPRI 0x0002
|
||||
#define POLLOUT 0x0004
|
||||
#define POLLERR 0x0008
|
||||
#define POLLHUP 0x0010
|
||||
#define POLLNVAL 0x0020
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(LWS_AMAZON_RTOS)
|
||||
#include <FreeRTOS.h>
|
||||
#include <event_groups.h>
|
||||
#include <string.h>
|
||||
#include "timers.h"
|
||||
#else /* LWS_AMAZON_RTOS */
|
||||
#include <freertos/FreeRTOS.h>
|
||||
#include <freertos/event_groups.h>
|
||||
#include <string.h>
|
||||
#include "esp_wifi.h"
|
||||
#include "esp_system.h"
|
||||
#include "esp_event.h"
|
||||
#include "esp_event_loop.h"
|
||||
#include "nvs.h"
|
||||
#include "driver/gpio.h"
|
||||
#include "esp_spi_flash.h"
|
||||
#include "freertos/timers.h"
|
||||
#endif /* LWS_AMAZON_RTOS */
|
||||
|
||||
#if !defined(CONFIG_FREERTOS_HZ)
|
||||
#define CONFIG_FREERTOS_HZ 100
|
||||
#endif
|
|
@ -78,7 +78,7 @@ lws_get_peer_simple(struct lws *wsi, char *name, int namelen);
|
|||
#define LWS_ITOSA_BUSY -3 /* only returned by lws_socket_bind() on
|
||||
EADDRINUSE */
|
||||
|
||||
#if !defined(LWS_WITH_ESP32) && !defined(LWS_PLAT_OPTEE)
|
||||
#if !defined(LWS_PLAT_FREERTOS) && !defined(LWS_PLAT_OPTEE)
|
||||
/**
|
||||
* lws_interface_to_sa() - Convert interface name or IP to sockaddr struct
|
||||
*
|
||||
|
|
|
@ -189,7 +189,7 @@ lws_libuv_static_refcount_del(uv_handle_t *);
|
|||
|
||||
#endif /* LWS_WITH_LIBUV */
|
||||
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
#define lws_libuv_static_refcount_add(_a, _b)
|
||||
#define lws_libuv_static_refcount_del NULL
|
||||
#endif
|
||||
|
|
|
@ -37,7 +37,7 @@ struct lws_seq_test_sequencer {
|
|||
|
||||
struct lws_context *context;
|
||||
struct lws_vhost *vhost;
|
||||
lws_seq_t *unit_test_seq;
|
||||
struct lws_sequencer *unit_test_seq;
|
||||
|
||||
/* holds the per-test token for the unit-test transport to consume */
|
||||
lws_token_map_t uttt[4];
|
||||
|
@ -235,7 +235,7 @@ int
|
|||
lws_abs_unit_test_sequencer(const lws_test_sequencer_args_t *args)
|
||||
{
|
||||
struct lws_seq_test_sequencer *s;
|
||||
lws_seq_t *seq;
|
||||
struct lws_sequencer *seq;
|
||||
lws_seq_info_t i;
|
||||
|
||||
memset(&i, 0, sizeof(i));
|
||||
|
|
|
@ -35,7 +35,7 @@ typedef struct lws_abstxp_unit_test_priv {
|
|||
char note[128];
|
||||
struct lws_abs *abs;
|
||||
|
||||
lws_seq_t *seq;
|
||||
struct lws_sequencer *seq;
|
||||
lws_unit_test_t *current_test;
|
||||
lws_unit_test_packet_t *expect;
|
||||
lws_unit_test_packet_test_cb result_cb;
|
||||
|
@ -419,7 +419,7 @@ static int
|
|||
lws_atcut_create(lws_abs_t *ai)
|
||||
{
|
||||
abs_unit_test_priv_t *priv;
|
||||
lws_seq_t *seq;
|
||||
struct lws_sequencer *seq;
|
||||
lws_seq_info_t i;
|
||||
seq_priv_t *s;
|
||||
|
||||
|
|
|
@ -400,7 +400,7 @@ lws_create_adopt_udp(struct lws_vhost *vhost, int port, int flags,
|
|||
lws_snprintf(buf, sizeof(buf), "%u", port);
|
||||
n = getaddrinfo(NULL, buf, &h, &r);
|
||||
if (n) {
|
||||
#ifndef LWS_WITH_ESP32
|
||||
#if !defined(LWS_PLAT_FREERTOS)
|
||||
lwsl_info("%s: getaddrinfo error: %s\n", __func__, gai_strerror(n));
|
||||
#else
|
||||
lwsl_info("%s: getaddrinfo error: %s\n", __func__, strerror(n));
|
||||
|
|
|
@ -264,7 +264,7 @@ __lws_close_free_wsi(struct lws *wsi, enum lws_close_status reason,
|
|||
wsi->socket_is_permanently_unusable = 1;
|
||||
goto just_kill_connection;
|
||||
}
|
||||
#if defined(LWS_ROLE_H1) || defined(LWS_ROLE_H2)
|
||||
#if defined(LWS_WITH_FILE_OPS) && (defined(LWS_ROLE_H1) || defined(LWS_ROLE_H2))
|
||||
if (lwsi_role_http(wsi) && lwsi_role_server(wsi) &&
|
||||
wsi->http.fop_fd != NULL)
|
||||
lws_vfs_file_close(&wsi->http.fop_fd);
|
||||
|
@ -421,7 +421,7 @@ just_kill_connection:
|
|||
* This causes problems on WINCE / ESP32 with disconnection
|
||||
* when the events are half closing connection
|
||||
*/
|
||||
#if !defined(_WIN32_WCE) && !defined(LWS_WITH_ESP32)
|
||||
#if !defined(_WIN32_WCE) && !defined(LWS_PLAT_FREERTOS)
|
||||
/* libuv: no event available to guarantee completion */
|
||||
if (!wsi->socket_is_permanently_unusable &&
|
||||
lws_socket_is_valid(wsi->desc.sockfd) &&
|
||||
|
|
|
@ -127,9 +127,7 @@ lws_callback_ws_proxy(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
case LWS_CALLBACK_CLIENT_CLOSED:
|
||||
lwsl_user("%s: client closed: parent %p\n", __func__, wsi->parent);
|
||||
if (wsi->parent)
|
||||
lws_set_timeout(wsi->parent,
|
||||
PENDING_TIMEOUT_KILLED_BY_PROXY_CLIENT_CLOSE,
|
||||
LWS_TO_KILL_ASYNC);
|
||||
lws_set_timeout(wsi->parent, 1, LWS_TO_KILL_ASYNC);
|
||||
break;
|
||||
|
||||
case LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER:
|
||||
|
@ -587,9 +585,8 @@ lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
if (!lws_get_parent(wsi))
|
||||
break;
|
||||
lwsl_err("%s: LWS_CALLBACK_CLOSED_CLIENT_HTTP\n", __func__);
|
||||
lws_set_timeout(lws_get_parent(wsi),
|
||||
PENDING_TIMEOUT_KILLED_BY_PROXY_CLIENT_CLOSE,
|
||||
LWS_TO_KILL_ASYNC);
|
||||
lws_set_timeout(lws_get_parent(wsi), LWS_TO_KILL_ASYNC,
|
||||
PENDING_TIMEOUT_KILLED_BY_PROXY_CLIENT_CLOSE);
|
||||
break;
|
||||
|
||||
case LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER:
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
#include "private-lib-core.h"
|
||||
|
||||
#if !defined(LWS_WITH_ESP32) && !defined(LWS_PLAT_OPTEE)
|
||||
#if !defined(LWS_PLAT_FREERTOS) && !defined(LWS_PLAT_OPTEE)
|
||||
static int
|
||||
interface_to_sa(struct lws_vhost *vh, const char *ifname,
|
||||
struct sockaddr_in *addr, size_t addrlen, int allow_ipv6)
|
||||
|
@ -77,7 +77,7 @@ lws_get_addresses(struct lws_vhost *vh, void *ads, char *name,
|
|||
memset(&ai, 0, sizeof ai);
|
||||
ai.ai_family = PF_UNSPEC;
|
||||
ai.ai_socktype = SOCK_STREAM;
|
||||
#if !defined(LWS_WITH_ESP32)
|
||||
#if !defined(LWS_PLAT_FREERTOS)
|
||||
if (getnameinfo((struct sockaddr *)ads,
|
||||
sizeof(struct sockaddr_in),
|
||||
name, name_len, NULL, 0, 0))
|
||||
|
@ -222,7 +222,7 @@ lws_socket_bind(struct lws_vhost *vhost, lws_sockfd_type sockfd, int port,
|
|||
socklen_t len = sizeof(struct sockaddr_storage);
|
||||
#endif
|
||||
int n;
|
||||
#if !defined(LWS_WITH_ESP32) && !defined(LWS_PLAT_OPTEE)
|
||||
#if !defined(LWS_PLAT_FREERTOS) && !defined(LWS_PLAT_OPTEE)
|
||||
int m;
|
||||
#endif
|
||||
struct sockaddr_storage sin;
|
||||
|
@ -251,7 +251,7 @@ lws_socket_bind(struct lws_vhost *vhost, lws_sockfd_type sockfd, int port,
|
|||
|
||||
} else
|
||||
#endif
|
||||
#if defined(LWS_WITH_IPV6) && !defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_WITH_IPV6) && !defined(LWS_PLAT_FREERTOS)
|
||||
if (ipv6_allowed && LWS_IPV6_ENABLED(vhost)) {
|
||||
v = (struct sockaddr *)&serv_addr6;
|
||||
n = sizeof(struct sockaddr_in6);
|
||||
|
@ -283,7 +283,7 @@ lws_socket_bind(struct lws_vhost *vhost, lws_sockfd_type sockfd, int port,
|
|||
serv_addr4.sin_addr.s_addr = INADDR_ANY;
|
||||
serv_addr4.sin_family = AF_INET;
|
||||
|
||||
#if !defined(LWS_WITH_ESP32) && !defined(LWS_PLAT_OPTEE)
|
||||
#if !defined(LWS_PLAT_FREERTOS) && !defined(LWS_PLAT_OPTEE)
|
||||
if (iface) {
|
||||
m = interface_to_sa(vhost, iface,
|
||||
(struct sockaddr_in *)v, n, 0);
|
||||
|
|
|
@ -206,7 +206,7 @@ int lws_issue_raw(struct lws *wsi, unsigned char *buf, size_t len)
|
|||
lws_stats_bump(pt, LWSSTATS_C_WRITE_PARTIALS, 1);
|
||||
lws_stats_bump(pt, LWSSTATS_B_PARTIALS_ACCEPTED_PARTS, m);
|
||||
|
||||
#if !defined(LWS_WITH_ESP32) && !defined(LWS_PLAT_OPTEE)
|
||||
#if !defined(LWS_PLAT_FREERTOS) && !defined(LWS_PLAT_OPTEE)
|
||||
if (lws_wsi_is_udp(wsi)) {
|
||||
/* stash original destination for fulfilling UDP partials */
|
||||
wsi->udp->sa_pending = wsi->udp->sa;
|
||||
|
@ -261,7 +261,7 @@ lws_ssl_capable_read_no_ssl(struct lws *wsi, unsigned char *buf, int len)
|
|||
|
||||
errno = 0;
|
||||
if (lws_wsi_is_udp(wsi)) {
|
||||
#if !defined(LWS_WITH_ESP32) && !defined(LWS_PLAT_OPTEE)
|
||||
#if !defined(LWS_PLAT_FREERTOS) && !defined(LWS_PLAT_OPTEE)
|
||||
wsi->udp->salen = sizeof(wsi->udp->sa);
|
||||
n = recvfrom(wsi->desc.sockfd, (char *)buf, len, 0,
|
||||
&wsi->udp->sa, &wsi->udp->salen);
|
||||
|
@ -308,7 +308,7 @@ lws_ssl_capable_write_no_ssl(struct lws *wsi, unsigned char *buf, int len)
|
|||
#endif
|
||||
|
||||
if (lws_wsi_is_udp(wsi)) {
|
||||
#if !defined(LWS_WITH_ESP32) && !defined(LWS_PLAT_OPTEE)
|
||||
#if !defined(LWS_PLAT_FREERTOS) && !defined(LWS_PLAT_OPTEE)
|
||||
if (lws_has_buffered_out(wsi))
|
||||
n = sendto(wsi->desc.sockfd, (const char *)buf,
|
||||
len, 0, &wsi->udp->sa_pending,
|
||||
|
@ -343,7 +343,7 @@ LWS_VISIBLE int
|
|||
lws_ssl_pending_no_ssl(struct lws *wsi)
|
||||
{
|
||||
(void)wsi;
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
return 100;
|
||||
#else
|
||||
return 0;
|
||||
|
|
|
@ -513,7 +513,7 @@ struct lws_vhost {
|
|||
void *user;
|
||||
|
||||
int listen_port;
|
||||
#if !defined(LWS_WITH_ESP32) && !defined(OPTEE_TA) && !defined(WIN32)
|
||||
#if !defined(LWS_PLAT_FREERTOS) && !defined(OPTEE_TA) && !defined(WIN32)
|
||||
int bind_iface;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -392,8 +392,10 @@ next:
|
|||
|
||||
context->protocol_init_done = 1;
|
||||
|
||||
#if defined(LWS_WITH_SERVER)
|
||||
if (any)
|
||||
lws_tls_check_all_cert_lifetimes(context);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -468,8 +470,7 @@ lws_create_vhost(struct lws_context *context,
|
|||
lwsl_info("%s set to only support RAW\n", vh->name);
|
||||
|
||||
vh->iface = info->iface;
|
||||
#if !defined(LWS_WITH_ESP32) && \
|
||||
!defined(OPTEE_TA) && !defined(WIN32)
|
||||
#if !defined(LWS_PLAT_FREERTOS) && !defined(OPTEE_TA) && !defined(WIN32)
|
||||
vh->bind_iface = info->bind_iface;
|
||||
#endif
|
||||
|
||||
|
@ -753,6 +754,7 @@ lws_create_vhost(struct lws_context *context,
|
|||
lwsl_err("%s: lws_context_init_client_ssl failed\n", __func__);
|
||||
goto bail1;
|
||||
}
|
||||
#if defined(LWS_WITH_SERVER)
|
||||
lws_context_lock(context, "create_vhost");
|
||||
n = _lws_vhost_init_server(info, vh);
|
||||
lws_context_unlock(context);
|
||||
|
@ -760,6 +762,7 @@ lws_create_vhost(struct lws_context *context,
|
|||
lwsl_err("init server failed\n");
|
||||
goto bail1;
|
||||
}
|
||||
#endif
|
||||
|
||||
while (1) {
|
||||
if (!(*vh1)) {
|
||||
|
|
|
@ -86,7 +86,7 @@ _realloc(void *ptr, size_t size, const char *reason)
|
|||
void *v;
|
||||
|
||||
if (size) {
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
lwsl_notice("%s: size %lu: %s (free heap %d)\n", __func__,
|
||||
#if defined(LWS_AMAZON_RTOS)
|
||||
(unsigned long)size, reason, (unsigned int)xPortGetFreeHeapSize() - (int)size);
|
||||
|
|
|
@ -168,7 +168,7 @@ lws_create_context(const struct lws_context_creation_info *info)
|
|||
lws_mutex_refcount_init(&context->mr);
|
||||
#endif
|
||||
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
#if defined(LWS_AMAZON_RTOS)
|
||||
context->last_free_heap = xPortGetFreeHeapSize();
|
||||
#else
|
||||
|
@ -876,7 +876,7 @@ lws_context_destroy(struct lws_context *context)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
#if defined(LWS_AMAZON_RTOS)
|
||||
context->last_free_heap = xPortGetFreeHeapSize();
|
||||
#else
|
||||
|
|
|
@ -69,7 +69,7 @@ lws_hex_to_byte_array(const char *h, uint8_t *dest, int max)
|
|||
|
||||
#if !defined(LWS_PLAT_OPTEE)
|
||||
|
||||
#if !defined(LWS_AMAZON_RTOS)
|
||||
#if defined(LWS_WITH_FILE_OPS)
|
||||
int lws_open(const char *__file, int __oflag, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
|
|
@ -110,8 +110,8 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#include "private-lib-plat-esp32.h"
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
#include "private-lib-plat-freertos.h"
|
||||
#else
|
||||
#if defined(WIN32) || defined(_WIN32)
|
||||
#include "private-lib-plat-windows.h"
|
||||
|
@ -361,7 +361,7 @@ struct lws_context {
|
|||
char worst_latency_info[256];
|
||||
#endif
|
||||
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
unsigned long time_last_state_dump;
|
||||
uint32_t last_free_heap;
|
||||
#endif
|
||||
|
@ -429,7 +429,7 @@ void
|
|||
lws_vhost_destroy1(struct lws_vhost *vh);
|
||||
|
||||
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
LWS_EXTERN int
|
||||
lws_find_string_in_file(const char *filename, const char *str, int stringlen);
|
||||
#endif
|
||||
|
|
|
@ -71,7 +71,7 @@ bail:
|
|||
|
||||
#else
|
||||
|
||||
#if !defined(_WIN32) && !defined(LWS_WITH_ESP32)
|
||||
#if !defined(_WIN32) && !defined(LWS_PLAT_FREERTOS)
|
||||
|
||||
#include <dirent.h>
|
||||
|
||||
|
|
|
@ -35,19 +35,7 @@ lws_now_usecs(void)
|
|||
LWS_VISIBLE int
|
||||
lws_get_random(struct lws_context *context, void *buf, int len)
|
||||
{
|
||||
#if defined(LWS_AMAZON_RTOS)
|
||||
int n;
|
||||
|
||||
n = mbedtls_ctr_drbg_random(&context->mcdc, buf, len);
|
||||
if (!n)
|
||||
return len;
|
||||
|
||||
/* failed */
|
||||
|
||||
lwsl_err("%s: mbedtls_ctr_drbg_random returned 0x%x\n", __func__, n);
|
||||
|
||||
return 0;
|
||||
#else
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
uint8_t *pb = buf;
|
||||
|
||||
while (len) {
|
||||
|
@ -65,6 +53,18 @@ lws_get_random(struct lws_context *context, void *buf, int len)
|
|||
}
|
||||
|
||||
return pb - (uint8_t *)buf;
|
||||
#else
|
||||
int n;
|
||||
|
||||
n = mbedtls_ctr_drbg_random(&context->mcdc, buf, len);
|
||||
if (!n)
|
||||
return len;
|
||||
|
||||
/* failed */
|
||||
|
||||
lwsl_err("%s: mbedtls_ctr_drbg_random returned 0x%x\n", __func__, n);
|
||||
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -89,11 +89,3 @@ lws_plat_recommended_rsa_bits(void)
|
|||
*/
|
||||
return 2048;
|
||||
}
|
||||
|
||||
void esp32_uvtimer_cb(TimerHandle_t t)
|
||||
{
|
||||
struct timer_mapping *p = pvTimerGetTimerID(t);
|
||||
|
||||
p->cb(p->t);
|
||||
}
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
* IN THE SOFTWARE.
|
||||
*
|
||||
* Included from lib/private-lib-core.h if LWS_WITH_ESP32
|
||||
* Included from lib/private-lib-core.h if LWS_PLAT_FREERTOS
|
||||
*/
|
||||
|
||||
#define MSG_NOSIGNAL 0
|
|
@ -66,6 +66,7 @@ lws_sul_plat_unix(lws_sorted_usec_list_t *sul)
|
|||
|
||||
lws_check_deferred_free(context, 0, 0);
|
||||
|
||||
#if defined(LWS_WITH_SERVER)
|
||||
lws_context_lock(context, "periodic checks");
|
||||
lws_start_foreach_llp(struct lws_vhost **, pv,
|
||||
context->no_listener_vhost_list) {
|
||||
|
@ -80,6 +81,7 @@ lws_sul_plat_unix(lws_sorted_usec_list_t *sul)
|
|||
}
|
||||
} lws_end_foreach_llp(pv, no_listener_vhost_list);
|
||||
lws_context_unlock(context);
|
||||
#endif
|
||||
|
||||
#if defined(LWS_ROLE_CGI)
|
||||
role_ops_cgi.periodic_checks(context, 0, now);
|
||||
|
@ -132,8 +134,11 @@ lws_plat_init(struct lws_context *context,
|
|||
lwsl_info(" mem: platform fd map: %5lu B\n",
|
||||
(unsigned long)(sizeof(struct lws *) * context->max_fds));
|
||||
#endif
|
||||
#if defined(LWS_WITH_FILE_OPS)
|
||||
fd = lws_open(SYSTEM_RANDOM_FILEPATH, O_RDONLY);
|
||||
|
||||
#else
|
||||
fd = open(SYSTEM_RANDOM_FILEPATH, O_RDONLY);
|
||||
#endif
|
||||
context->fd_random = fd;
|
||||
if (context->fd_random < 0) {
|
||||
lwsl_err("Unable to open random device %s %d\n",
|
||||
|
|
|
@ -507,6 +507,8 @@ try_pollout:
|
|||
return LWS_HPI_RET_HANDLED;
|
||||
}
|
||||
|
||||
#if defined(LWS_WITH_FILE_OPS)
|
||||
|
||||
/* >0 == completion, <0 == error
|
||||
*
|
||||
* We'll get a LWS_CALLBACK_HTTP_FILE_COMPLETION callback when
|
||||
|
@ -516,6 +518,7 @@ try_pollout:
|
|||
n = lws_serve_http_file_fragment(wsi);
|
||||
if (n < 0)
|
||||
goto fail;
|
||||
#endif
|
||||
|
||||
return LWS_HPI_RET_HANDLED;
|
||||
|
||||
|
|
|
@ -689,7 +689,9 @@ int lws_h2_do_pps_send(struct lws *wsi)
|
|||
/* this is the end of the preface dance then? */
|
||||
if (lwsi_state(wsi) == LRS_H2_AWAIT_SETTINGS) {
|
||||
lwsi_set_state(wsi, LRS_ESTABLISHED);
|
||||
#if defined(LWS_WITH_FILE_OPS)
|
||||
wsi->http.fop_fd = NULL;
|
||||
#endif
|
||||
if (lws_is_ssl(lws_get_network_wsi(wsi)))
|
||||
break;
|
||||
/*
|
||||
|
@ -718,10 +720,10 @@ int lws_h2_do_pps_send(struct lws *wsi)
|
|||
#if defined(LWS_WITH_SERVER_STATUS)
|
||||
wsi->vhost->conn_stats.h2_trans++;
|
||||
#endif
|
||||
|
||||
#if defined(LWS_WITH_SERVER)
|
||||
if (lws_http_action(h2n->swsi))
|
||||
goto bail;
|
||||
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -1275,8 +1277,9 @@ lws_h2_parse_end_of_frame(struct lws *wsi)
|
|||
struct lws_h2_protocol_send *pps;
|
||||
|
||||
/* migrate original client ask on to substream 1 */
|
||||
|
||||
#if defined(LWS_WITH_FILE_OPS)
|
||||
wsi->http.fop_fd = NULL;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* we need to treat the headers from the upgrade as the
|
||||
|
|
|
@ -805,6 +805,7 @@ lws_h2_dump_waiting_children(struct lws *wsi)
|
|||
#endif
|
||||
}
|
||||
|
||||
#if defined(LWS_WITH_SERVER)
|
||||
static int
|
||||
lws_h2_bind_for_post_before_action(struct lws *wsi)
|
||||
{
|
||||
|
@ -846,6 +847,7 @@ lws_h2_bind_for_post_before_action(struct lws *wsi)
|
|||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* we are the 'network wsi' for potentially many muxed child wsi with
|
||||
|
@ -999,6 +1001,7 @@ rops_perform_user_POLLOUT_h2(struct lws *wsi)
|
|||
goto next_child;
|
||||
}
|
||||
|
||||
#if defined(LWS_WITH_SERVER)
|
||||
if (lwsi_state(w) == LRS_DEFERRING_ACTION) {
|
||||
|
||||
/*
|
||||
|
@ -1041,6 +1044,8 @@ rops_perform_user_POLLOUT_h2(struct lws *wsi)
|
|||
goto next_child;
|
||||
}
|
||||
|
||||
#if defined(LWS_WITH_FILE_OPS)
|
||||
|
||||
if (lwsi_state(w) == LRS_ISSUING_FILE) {
|
||||
|
||||
((volatile struct lws *)w)->leave_pollout_active = 0;
|
||||
|
@ -1075,6 +1080,8 @@ rops_perform_user_POLLOUT_h2(struct lws *wsi)
|
|||
|
||||
goto next_child;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(LWS_ROLE_WS)
|
||||
|
||||
|
|
|
@ -429,7 +429,7 @@ create_new_conn:
|
|||
wsi->ipv6 = LWS_IPV6_ENABLED(wsi->vhost);
|
||||
#ifdef LWS_WITH_IPV6
|
||||
if (wsi->stash)
|
||||
iface = wsi->stash->iface;
|
||||
iface = wsi->stash->cis[CIS_IFACE];
|
||||
else
|
||||
iface = lws_hdr_simple_ptr(wsi, _WSI_TOKEN_CLIENT_IFACE);
|
||||
|
||||
|
|
|
@ -367,7 +367,7 @@ start_ws_handshake:
|
|||
* So this is it, we are an h2 master client connection
|
||||
* now, not an h1 client connection.
|
||||
*/
|
||||
#if defined (LWS_WITH_TLS)
|
||||
#if defined(LWS_WITH_TLS) && defined(LWS_WITH_SERVER)
|
||||
lws_tls_server_conn_alpn(wsi);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ enum http_conn_type {
|
|||
* other APIs to get information out of it.
|
||||
*/
|
||||
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
typedef uint16_t ah_data_idx_t;
|
||||
#else
|
||||
typedef uint32_t ah_data_idx_t;
|
||||
|
@ -228,9 +228,11 @@ struct _lws_http_mode_related {
|
|||
struct allocated_headers *ah;
|
||||
struct lws *ah_wait_list;
|
||||
|
||||
#if defined(LWS_WITH_FILE_OPS)
|
||||
lws_filepos_t filepos;
|
||||
lws_filepos_t filelen;
|
||||
lws_fop_fd_t fop_fd;
|
||||
#endif
|
||||
|
||||
#if defined(LWS_WITH_RANGES)
|
||||
struct lws_range_parsing range;
|
||||
|
|
|
@ -31,7 +31,9 @@ const char * const method_names[] = {
|
|||
#endif
|
||||
};
|
||||
|
||||
#if defined(LWS_WITH_FILE_OPS)
|
||||
static const char * const intermediates[] = { "private", "public" };
|
||||
#endif
|
||||
|
||||
/*
|
||||
* return 0: all done
|
||||
|
@ -182,7 +184,7 @@ done_list:
|
|||
lwsl_err("ERROR opening socket\n");
|
||||
return 1;
|
||||
}
|
||||
#if !defined(LWS_WITH_ESP32)
|
||||
#if !defined(LWS_PLAT_FREERTOS)
|
||||
#if (defined(WIN32) || defined(_WIN32)) && defined(SO_EXCLUSIVEADDRUSE)
|
||||
/*
|
||||
* only accept that we are the only listener on the port
|
||||
|
@ -456,6 +458,7 @@ lws_get_mimetype(const char *file, const struct lws_http_mount *m)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
#if defined(LWS_WITH_FILE_OPS)
|
||||
static lws_fop_flags_t
|
||||
lws_vfs_prepare_flags(struct lws *wsi)
|
||||
{
|
||||
|
@ -473,7 +476,6 @@ lws_vfs_prepare_flags(struct lws *wsi)
|
|||
return f;
|
||||
}
|
||||
|
||||
#if !defined(LWS_AMAZON_RTOS)
|
||||
static int
|
||||
lws_http_serve(struct lws *wsi, char *uri, const char *origin,
|
||||
const struct lws_http_mount *m)
|
||||
|
@ -495,7 +497,7 @@ lws_http_serve(struct lws *wsi, char *uri, const char *origin,
|
|||
char path[256], sym[2048];
|
||||
unsigned char *p = (unsigned char *)sym + 32 + LWS_PRE, *start = p;
|
||||
unsigned char *end = p + sizeof(sym) - 32 - LWS_PRE;
|
||||
#if !defined(WIN32) && !defined(LWS_WITH_ESP32)
|
||||
#if !defined(WIN32) && !defined(LWS_PLAT_FREERTOS)
|
||||
size_t len;
|
||||
#endif
|
||||
int n;
|
||||
|
@ -535,7 +537,7 @@ lws_http_serve(struct lws *wsi, char *uri, const char *origin,
|
|||
/* if it can't be statted, don't try */
|
||||
if (fflags & LWS_FOP_FLAG_VIRTUAL)
|
||||
break;
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
break;
|
||||
#endif
|
||||
#if !defined(WIN32)
|
||||
|
@ -560,7 +562,7 @@ lws_http_serve(struct lws *wsi, char *uri, const char *origin,
|
|||
wsi->http.fop_fd->mod_time = (uint32_t)st.st_mtime;
|
||||
fflags |= LWS_FOP_FLAG_MOD_TIME_VALID;
|
||||
|
||||
#if !defined(WIN32) && !defined(LWS_WITH_ESP32)
|
||||
#if !defined(WIN32) && !defined(LWS_PLAT_FREERTOS)
|
||||
if ((S_IFMT & st.st_mode) == S_IFLNK) {
|
||||
len = readlink(path, sym, sizeof(sym) - 1);
|
||||
if (len) {
|
||||
|
@ -791,7 +793,7 @@ lws_find_mount(struct lws *wsi, const char *uri_ptr, int uri_len)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if !defined(LWS_WITH_ESP32)
|
||||
#if !defined(LWS_PLAT_FREERTOS) && defined(LWS_WITH_FILE_OPS)
|
||||
static int
|
||||
lws_find_string_in_file(const char *filename, const char *string, int stringlen)
|
||||
{
|
||||
|
@ -944,9 +946,12 @@ lws_http_get_uri_and_method(struct lws *wsi, char **puri_ptr, int *puri_len)
|
|||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
enum lws_check_basic_auth_results
|
||||
lws_check_basic_auth(struct lws *wsi, const char *basic_auth_login_file)
|
||||
{
|
||||
#if defined(LWS_WITH_FILE_OPS)
|
||||
char b64[160], plain[(sizeof(b64) * 3) / 4], *pcolon;
|
||||
int m, ml, fi;
|
||||
|
||||
|
@ -1012,6 +1017,9 @@ lws_check_basic_auth(struct lws *wsi, const char *basic_auth_login_file)
|
|||
lws_hdr_simple_ptr(wsi, WSI_TOKEN_HTTP_AUTHORIZATION));
|
||||
|
||||
return LCBA_CONTINUE;
|
||||
#else
|
||||
return LCBA_FAILED_AUTH;
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(LWS_WITH_HTTP_PROXY)
|
||||
|
@ -1580,7 +1588,7 @@ lws_http_action(struct lws *wsi)
|
|||
wsi->cache_intermediaries = hit->cache_intermediaries;
|
||||
|
||||
m = 1;
|
||||
#if !defined(LWS_AMAZON_RTOS)
|
||||
#if defined(LWS_WITH_FILE_OPS)
|
||||
if (hit->origin_protocol == LWSMPRO_FILE)
|
||||
m = lws_http_serve(wsi, s, hit->origin, hit);
|
||||
#endif
|
||||
|
@ -2048,7 +2056,9 @@ raw_transition:
|
|||
lwsl_info("%s: %p: No upgrade\n", __func__, wsi);
|
||||
|
||||
lwsi_set_state(wsi, LRS_ESTABLISHED);
|
||||
#if defined(LWS_WITH_FILE_OPS)
|
||||
wsi->http.fop_fd = NULL;
|
||||
#endif
|
||||
|
||||
#if defined(LWS_WITH_HTTP_STREAM_COMPRESSION)
|
||||
lws_http_compression_validate(wsi);
|
||||
|
@ -2305,7 +2315,7 @@ lws_http_transaction_completed(struct lws *wsi)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#if !defined(LWS_AMAZON_RTOS)
|
||||
#if defined(LWS_WITH_FILE_OPS)
|
||||
LWS_VISIBLE int
|
||||
lws_serve_http_file(struct lws *wsi, const char *file, const char *content_type,
|
||||
const char *other_headers, int other_headers_len)
|
||||
|
@ -2596,6 +2606,8 @@ lws_serve_http_file(struct lws *wsi, const char *file, const char *content_type,
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(LWS_WITH_FILE_OPS)
|
||||
|
||||
LWS_VISIBLE int lws_serve_http_file_fragment(struct lws *wsi)
|
||||
{
|
||||
struct lws_context *context = wsi->context;
|
||||
|
@ -2871,6 +2883,8 @@ file_had_it:
|
|||
return -1;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(LWS_WITH_SERVER)
|
||||
LWS_VISIBLE void
|
||||
lws_server_get_canonical_hostname(struct lws_context *context,
|
||||
|
@ -2879,7 +2893,7 @@ lws_server_get_canonical_hostname(struct lws_context *context,
|
|||
if (lws_check_opt(info->options,
|
||||
LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME))
|
||||
return;
|
||||
#if !defined(LWS_WITH_ESP32)
|
||||
#if !defined(LWS_PLAT_FREERTOS)
|
||||
/* find canonical hostname */
|
||||
gethostname((char *)context->canonical_hostname,
|
||||
sizeof(context->canonical_hostname) - 1);
|
||||
|
|
|
@ -165,7 +165,7 @@ rops_adoption_bind_raw_skt(struct lws *wsi, int type, const char *vh_prot_name)
|
|||
(type & _LWS_ADOPT_FINISH))
|
||||
return 0; /* no match */
|
||||
|
||||
#if !defined(LWS_WITH_ESP32) && !defined(LWS_PLAT_OPTEE)
|
||||
#if !defined(LWS_PLAT_FREERTOS) && !defined(LWS_PLAT_OPTEE)
|
||||
if (type & LWS_ADOPT_FLAG_UDP)
|
||||
/*
|
||||
* these can be >128 bytes, so just alloc for UDP
|
||||
|
|
|
@ -661,7 +661,7 @@ check_accept:
|
|||
wsi->ws->rx_ubuf_alloc = n;
|
||||
lwsl_info("Allocating client RX buffer %d\n", n);
|
||||
|
||||
#if !defined(LWS_WITH_ESP32)
|
||||
#if !defined(LWS_PLAT_FREERTOS)
|
||||
if (setsockopt(wsi->desc.sockfd, SOL_SOCKET, SO_SNDBUF,
|
||||
(const char *)&n, sizeof n)) {
|
||||
lwsl_warn("Failed to set SNDBUF to %d", n);
|
||||
|
|
|
@ -903,7 +903,7 @@ lws_server_init_wsi_for_ws(struct lws *wsi)
|
|||
wsi->ws->rx_ubuf_alloc = n;
|
||||
lwsl_debug("Allocating RX buffer %d\n", n);
|
||||
|
||||
#if !defined(LWS_WITH_ESP32)
|
||||
#if !defined(LWS_PLAT_FREERTOS)
|
||||
if (!wsi->h2_stream_carries_ws)
|
||||
if (setsockopt(wsi->desc.sockfd, SOL_SOCKET, SO_SNDBUF,
|
||||
(const char *)&n, sizeof n)) {
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
* same whether you are using openssl or mbedtls hash functions underneath.
|
||||
*/
|
||||
#include "private-lib-core.h"
|
||||
#include "../../jose/private-lib-jose.h"
|
||||
#include "private-lib-jose.h"
|
||||
|
||||
static int operation_map[] = { MBEDTLS_AES_ENCRYPT, MBEDTLS_AES_DECRYPT };
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, int len)
|
|||
|
||||
errno = 0;
|
||||
n = SSL_read(wsi->tls.ssl, buf, len);
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
if (!n && errno == LWS_ENOTCONN) {
|
||||
lwsl_debug("%p: SSL_read ENOTCONN\n", wsi);
|
||||
return LWS_SSL_CAPABLE_ERROR;
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
//#include "private-lib-core.h"
|
||||
#include <lws_config.h>
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
/* AMAZON RTOS has its own setting via MTK_MBEDTLS_CONFIG_FILE */
|
||||
#if !defined(LWS_AMAZON_RTOS)
|
||||
#undef MBEDTLS_CONFIG_FILE
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
* same whether you are using openssl or mbedtls hash functions underneath.
|
||||
*/
|
||||
#include "private-lib-core.h"
|
||||
#include "../../jose/private-lib-jose.h"
|
||||
#include "private-lib-jose.h"
|
||||
|
||||
/*
|
||||
* Care: many openssl apis return 1 for success. These are translated to the
|
||||
|
|
|
@ -186,7 +186,7 @@ lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, int len)
|
|||
errno = 0;
|
||||
ERR_clear_error();
|
||||
n = SSL_read(wsi->tls.ssl, buf, len);
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
if (!n && errno == LWS_ENOTCONN) {
|
||||
lwsl_debug("%p: SSL_read ENOTCONN\n", wsi);
|
||||
return LWS_SSL_CAPABLE_ERROR;
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
#define OPENSSL_NO_TLSEXT
|
||||
#endif /* not USE_OLD_CYASSL */
|
||||
#else /* WOLFSSL */
|
||||
#if defined(LWS_WITH_ESP32)
|
||||
#if defined(LWS_PLAT_FREERTOS)
|
||||
#define OPENSSL_NO_TLSEXT
|
||||
#if !defined(LWS_AMAZON_RTOS)
|
||||
/* AMAZON RTOS has its own setting via MTK_MBEDTLS_CONFIG_FILE */
|
||||
|
@ -73,7 +73,11 @@
|
|||
#include <mbedtls/x509_csr.h>
|
||||
#include <mbedtls/ecp.h>
|
||||
#include <mbedtls/ecdsa.h>
|
||||
#if defined(LWS_AMAZON_LINUX)
|
||||
#include "ssl.h" /* wrapper !!!! */
|
||||
#else
|
||||
#include "openssl/ssl.h" /* wrapper !!!! */
|
||||
#endif
|
||||
#else
|
||||
#include <openssl/ssl.h>
|
||||
#include <openssl/evp.h>
|
||||
|
|
|
@ -65,7 +65,7 @@ lws_ssl_remove_wsi_from_buffered_list(struct lws *wsi)
|
|||
lws_pt_unlock(pt);
|
||||
}
|
||||
|
||||
|
||||
#if defined(LWS_WITH_SERVER)
|
||||
int
|
||||
lws_tls_check_cert_lifetime(struct lws_vhost *v)
|
||||
{
|
||||
|
@ -113,7 +113,6 @@ lws_tls_check_all_cert_lifetimes(struct lws_context *context)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* LWS_TLS_EXTANT_NO : skip adding the cert
|
||||
* LWS_TLS_EXTANT_YES : use the cert and private key paths normally
|
||||
|
@ -161,7 +160,6 @@ lws_tls_generic_cert_checks(struct lws_vhost *vhost, const char *cert,
|
|||
return LWS_TLS_EXTANT_YES;
|
||||
}
|
||||
|
||||
#if defined(LWS_WITH_SERVER)
|
||||
/*
|
||||
* update the cert for every vhost using the given path
|
||||
*/
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include "private-lib-tls.h"
|
||||
|
||||
#if !defined(LWS_PLAT_OPTEE) && !defined(OPTEE_DEV_KIT)
|
||||
#if defined(LWS_WITH_ESP32) && !defined(LWS_AMAZON_RTOS)
|
||||
#if defined(LWS_PLAT_FREERTOS) && !defined(LWS_AMAZON_RTOS)
|
||||
int alloc_file(struct lws_context *context, const char *filename, uint8_t **buf,
|
||||
lws_filepos_t *amount)
|
||||
{
|
||||
|
@ -229,7 +229,7 @@ bail:
|
|||
|
||||
#endif
|
||||
|
||||
#if !defined(LWS_WITH_ESP32) && !defined(LWS_PLAT_OPTEE) && !defined(OPTEE_DEV_KIT)
|
||||
#if !defined(LWS_PLAT_FREERTOS) && !defined(LWS_PLAT_OPTEE) && !defined(OPTEE_DEV_KIT)
|
||||
|
||||
|
||||
static int
|
||||
|
@ -286,7 +286,7 @@ lws_tls_use_any_upgrade_check_extant(const char *name)
|
|||
|
||||
int n;
|
||||
|
||||
#if !defined(LWS_WITH_ESP32)
|
||||
#if !defined(LWS_PLAT_FREERTOS)
|
||||
char buf[256];
|
||||
|
||||
lws_snprintf(buf, sizeof(buf) - 1, "%s.upd", name);
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
int
|
||||
test1(void)
|
||||
{
|
||||
lws_dsh_t *dsh;
|
||||
struct lws_dsh *dsh;
|
||||
size_t size;
|
||||
void *a1;
|
||||
|
||||
|
@ -94,7 +94,7 @@ bail:
|
|||
int
|
||||
test2(void)
|
||||
{
|
||||
lws_dsh_t *dsh, *dsh2;
|
||||
struct lws_dsh *dsh, *dsh2;
|
||||
lws_dll2_owner_t owner;
|
||||
uint8_t blob[4096];
|
||||
|
||||
|
@ -173,7 +173,7 @@ bail:
|
|||
int
|
||||
test3(void)
|
||||
{
|
||||
lws_dsh_t *dsh, *dsh2;
|
||||
struct lws_dsh *dsh, *dsh2;
|
||||
lws_dll2_owner_t owner;
|
||||
uint8_t blob[4096];
|
||||
|
||||
|
@ -245,7 +245,7 @@ int
|
|||
test4(void)
|
||||
{
|
||||
uint8_t blob[4096];
|
||||
lws_dsh_t *dsh;
|
||||
struct lws_dsh *dsh;
|
||||
size_t size;
|
||||
void *a1;
|
||||
|
||||
|
|
|
@ -324,7 +324,7 @@ main(int argc, const char **argv)
|
|||
int n = 1, logs = LLL_USER | LLL_ERR | LLL_WARN | LLL_NOTICE;
|
||||
struct lws_context_creation_info info;
|
||||
struct lws_context *context;
|
||||
lws_seq_t *seq;
|
||||
struct lws_sequencer *seq;
|
||||
struct lws_vhost *vh;
|
||||
lws_seq_info_t i;
|
||||
struct myseq *s;
|
||||
|
|
Loading…
Add table
Reference in a new issue