From 78d8bf5547cb09457e538bf464847ba9017d4966 Mon Sep 17 00:00:00 2001 From: Arnold <40414978+PatriceJiang@users.noreply.github.com> Date: Mon, 4 Nov 2019 16:09:02 +0800 Subject: [PATCH] compile libwebsockets with server (#72) --- .../include/websockets/libwebsockets.h | 2177 +++++++++++++--- .../arm64-v8a/include/websockets/lws_config.h | 71 +- android/arm64-v8a/libwebsockets.a | Bin 218044 -> 379906 bytes .../include/websockets/libwebsockets.h | 2177 +++++++++++++--- .../include/websockets/lws_config.h | 71 +- android/armeabi-v7a/libwebsockets.a | Bin 117336 -> 217178 bytes .../x86/include/websockets/libwebsockets.h | 2177 +++++++++++++--- android/x86/include/websockets/lws_config.h | 71 +- android/x86/libwebsockets.a | Bin 185556 -> 296770 bytes ios/include/websockets/libwebsockets.h | 2183 ++++++++++++++--- ios/include/websockets/lws_config.h | 165 +- ios/libs/libwebsockets.a | Bin 511344 -> 921752 bytes mac/include/websockets/libwebsockets.h | 2183 ++++++++++++++--- mac/include/websockets/lws_config.h | 67 +- mac/libs/libwebsockets.a | Bin 141128 -> 244416 bytes win32/include/websockets/libwebsockets.h | 2179 +++++++++++++--- win32/include/websockets/lws_config.h | 67 +- win32/libs/websockets.dll | Bin 119296 -> 175616 bytes win32/libs/websockets.lib | Bin 42806 -> 66876 bytes 19 files changed, 11739 insertions(+), 1849 deletions(-) diff --git a/android/arm64-v8a/include/websockets/libwebsockets.h b/android/arm64-v8a/include/websockets/libwebsockets.h index 7efeba1f..460c7326 100644 --- a/android/arm64-v8a/include/websockets/libwebsockets.h +++ b/android/arm64-v8a/include/websockets/libwebsockets.h @@ -27,84 +27,31 @@ #ifdef __cplusplus #include #include -#ifdef MBED_OPERATORS -#include "mbed-drivers/mbed.h" -#include "sal-iface-eth/EthernetInterface.h" -#include "sockets/TCPListener.h" -#include "sal-stack-lwip/lwipv4_init.h" - -namespace { -} -using namespace mbed::Sockets::v0; - - -struct sockaddr_in; -struct lws; - -class lws_conn { - public: - lws_conn(): - ts(NULL), - wsi(NULL), - writeable(1), - awaiting_on_writeable(0) - { - } - -public: - void set_wsi(struct lws *_wsi) { wsi = _wsi; } - int actual_onRX(Socket *s); - void onRX(Socket *s); - void onError(Socket *s, socket_error_t err); - void onDisconnect(TCPStream *s); - void onSent(Socket *s, uint16_t len); - void serialized_writeable(struct lws *wsi); - -public: - TCPStream *ts; - -public: - struct lws *wsi; - char writeable; - char awaiting_on_writeable; -}; - -class lws_conn_listener : lws_conn { -public: - lws_conn_listener(): - srv(SOCKET_STACK_LWIP_IPV4) - { - srv.setOnError(TCPStream::ErrorHandler_t(this, - &lws_conn_listener::onError)); - } - - void start(const uint16_t port); /**< start listening */ - -protected: - void onRX(Socket *s); /**< incoming data ready */ - void onError(Socket *s, socket_error_t err); /**< if error occurs */ - void onIncoming(TCPListener *s, void *impl); /**< new connection */ - void onDisconnect(TCPStream *s); /**< disconnection */ - -public: - TCPListener srv; -}; - -#endif - +# extern "C" { #else #include #endif -#if defined(MBED_OPERATORS) || defined(LWS_WITH_ESP8266) +#include "lws_config.h" + +/* + * CARE: everything using cmake defines needs to be below here + */ + +#if defined(LWS_WITH_ESP8266) struct sockaddr_in; #define LWS_POSIX 0 #else #define LWS_POSIX 1 #endif -#include "lws_config.h" +#if defined(LWS_HAS_INTPTR_T) +#include +#define lws_intptr_t intptr_t +#else +typedef unsigned long long lws_intptr_t; +#endif #if defined(WIN32) || defined(_WIN32) #ifndef WIN32_LEAN_AND_MEAN @@ -125,7 +72,7 @@ struct sockaddr_in; // Visual studio older than 2015 and WIN_CE has only _stricmp #if (defined(_MSC_VER) && _MSC_VER < 1900) || defined(_WIN32_WCE) #define strcasecmp _stricmp -#else +#elif !defined(__MINGW32__) #define strcasecmp stricmp #endif #define getdtablesize() 30000 @@ -134,6 +81,7 @@ struct sockaddr_in; #define LWS_VISIBLE #define LWS_WARN_UNUSED_RESULT #define LWS_WARN_DEPRECATED +#define LWS_FORMAT(string_index) #ifdef LWS_DLL #ifdef LWS_INTERNAL @@ -147,8 +95,11 @@ struct sockaddr_in; #define LWS_INVALID_FILE INVALID_HANDLE_VALUE #define LWS_O_RDONLY _O_RDONLY +#define LWS_O_WRONLY _O_WRONLY +#define LWS_O_CREAT _O_CREAT +#define LWS_O_TRUNC _O_TRUNC -#if !defined(_MSC_VER) || _MSC_VER < 1900 /* Visual Studio 2015 already defines this in */ +#if !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER < 1900) /* Visual Studio 2015 already defines this in */ #define lws_snprintf _snprintf #endif @@ -156,8 +107,15 @@ struct sockaddr_in; #define __func__ __FUNCTION__ #endif +#if !defined(__MINGW32__) &&(!defined(_MSC_VER) || _MSC_VER < 1900) && !defined(snprintf) +#define snprintf(buf,len, format,...) _snprintf_s(buf, len,len, format, __VA_ARGS__) +#endif + #else /* NOT WIN32 */ #include +#if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) +#include +#endif #if defined(__NetBSD__) || defined(__FreeBSD__) #include @@ -165,14 +123,21 @@ struct sockaddr_in; #define LWS_INLINE inline #define LWS_O_RDONLY O_RDONLY +#define LWS_O_WRONLY O_WRONLY +#define LWS_O_CREAT O_CREAT +#define LWS_O_TRUNC O_TRUNC -#if !defined(MBED_OPERATORS) && !defined(LWS_WITH_ESP8266) +#if !defined(LWS_WITH_ESP8266) && !defined(OPTEE_TA) && !defined(LWS_WITH_ESP32) #include #include #define LWS_INVALID_FILE -1 #else -#define getdtablesize() (20) +#define getdtablesize() (30) +#if defined(LWS_WITH_ESP32) #define LWS_INVALID_FILE NULL +#else +#define LWS_INVALID_FILE NULL +#endif #endif #if defined(__GNUC__) @@ -186,10 +151,12 @@ struct sockaddr_in; #define LWS_VISIBLE __attribute__((visibility("default"))) #define LWS_WARN_DEPRECATED __attribute__ ((deprecated)) +#define LWS_FORMAT(string_index) __attribute__ ((format(printf, string_index, string_index+1))) #else #define LWS_VISIBLE #define LWS_WARN_UNUSED_RESULT #define LWS_WARN_DEPRECATED +#define LWS_FORMAT(string_index) #endif #if defined(__ANDROID__) @@ -199,15 +166,18 @@ struct sockaddr_in; #endif -#ifdef LWS_USE_LIBEV +#ifdef LWS_WITH_LIBEV #include -#endif /* LWS_USE_LIBEV */ -#ifdef LWS_USE_LIBUV +#endif /* LWS_WITH_LIBEV */ +#ifdef LWS_WITH_LIBUV #include #ifdef LWS_HAVE_UV_VERSION_H #include #endif -#endif /* LWS_USE_LIBUV */ +#endif /* LWS_WITH_LIBUV */ +#ifdef LWS_WITH_LIBEVENT +#include +#endif /* LWS_WITH_LIBEVENT */ #ifndef LWS_EXTERN #define LWS_EXTERN extern @@ -216,9 +186,11 @@ struct sockaddr_in; #ifdef _WIN32 #define random rand #else +#if !defined(OPTEE_TA) #include #include #endif +#endif #ifdef LWS_OPENSSL_SUPPORT @@ -231,28 +203,24 @@ struct sockaddr_in; #include #endif /* not USE_OLD_CYASSL */ #else -#if defined(LWS_USE_POLARSSL) -#include -struct lws_polarssl_context { - x509_crt ca; /**< ca */ - x509_crt certificate; /**< cert */ - rsa_context key; /**< key */ -}; -typedef struct lws_polarssl_context SSL_CTX; -typedef ssl_context SSL; -#else -#if defined(LWS_USE_MBEDTLS) +#if defined(LWS_WITH_MBEDTLS) +#if defined(LWS_WITH_ESP32) +/* this filepath is passed to us but without quotes or <> */ +#undef MBEDTLS_CONFIG_FILE +#define MBEDTLS_CONFIG_FILE +#endif #include -#else +#endif #include +#if !defined(LWS_WITH_MBEDTLS) #include -#endif /* not USE_MBEDTLS */ -#endif /* not USE_POLARSSL */ +#endif #endif /* not USE_WOLFSSL */ #endif #define CONTEXT_PORT_NO_LISTEN -1 +#define CONTEXT_PORT_NO_LISTEN_SERVER -2 /** \defgroup log Logging * @@ -277,11 +245,12 @@ enum lws_log_levels { LLL_EXT = 1 << 7, LLL_CLIENT = 1 << 8, LLL_LATENCY = 1 << 9, + LLL_USER = 1 << 10, - LLL_COUNT = 10 /* set to count of valid flags */ + LLL_COUNT = 11 /* set to count of valid flags */ }; -LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...); +LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...) LWS_FORMAT(2); LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl); /** * lwsl_timestamp: generate logging timestamp string @@ -295,15 +264,18 @@ LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl LWS_VISIBLE LWS_EXTERN int lwsl_timestamp(int level, char *p, int len); +/* these guys are unconditionally included */ + #define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__) +#define lwsl_user(...) _lws_log(LLL_USER, __VA_ARGS__) #if !defined(LWS_WITH_NO_LOGS) -/* notice, warn and log are always compiled in */ +/* notice and warn are usually included by being compiled in */ #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) #endif /* - * weaker logging can be deselected at configure time using --disable-debug + * weaker logging can be deselected by telling CMake to build in RELEASE mode * that gets rid of the overhead of checking while keeping _warn and _err * active */ @@ -315,7 +287,6 @@ lwsl_timestamp(int level, char *p, int len); #ifdef _DEBUG #if defined(LWS_WITH_NO_LOGS) /* notice, warn and log are always compiled in */ -//#define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__) #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) #endif @@ -326,17 +297,9 @@ lwsl_timestamp(int level, char *p, int len); #define lwsl_ext(...) _lws_log(LLL_EXT, __VA_ARGS__) #define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__) #define lwsl_latency(...) _lws_log(LLL_LATENCY, __VA_ARGS__) -/** - * lwsl_hexdump() - helper to hexdump a buffer (DEBUG builds only) - * - * \param buf: buffer start to dump - * \param len: length of buffer to dump - */ -LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); #else /* no debug */ #if defined(LWS_WITH_NO_LOGS) -//#define lwsl_err(...) do {} while(0) #define lwsl_warn(...) do {} while(0) #define lwsl_notice(...) do {} while(0) #endif @@ -347,10 +310,44 @@ LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); #define lwsl_ext(...) do {} while(0) #define lwsl_client(...) do {} while(0) #define lwsl_latency(...) do {} while(0) -#define lwsl_hexdump(a, b) #endif +/** + * lwsl_hexdump() - helper to hexdump a buffer + * + * \param level: one of LLL_ constants + * \param buf: buffer start to dump + * \param len: length of buffer to dump + * + * If \p level is visible, does a nice hexdump -C style dump of \p buf for + * \p len bytes. This can be extremely convenient while debugging. + */ +LWS_VISIBLE LWS_EXTERN void +lwsl_hexdump_level(int level, const void *vbuf, size_t len); + +/** + * lwsl_hexdump() - helper to hexdump a buffer (DEBUG builds only) + * + * \param buf: buffer start to dump + * \param len: length of buffer to dump + * + * Calls through to lwsl_hexdump_level(LLL_DEBUG, ... for compatability. + * It's better to use lwsl_hexdump_level(level, ... directly so you can control + * the visibility. + */ +LWS_VISIBLE LWS_EXTERN void +lwsl_hexdump(const void *buf, size_t len); + +/** + * lws_is_be() - returns nonzero if the platform is Big Endian + */ +static LWS_INLINE int lws_is_be(void) { + const int probe = ~0xff; + + return *(const char *)&probe; +} + /** * lws_set_log_level() - Set the logging bitfield * \param level: OR together the LLL_ debug contexts you want output from @@ -359,7 +356,8 @@ LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); * the default stderr one. * * log level defaults to "err", "warn" and "notice" contexts enabled and - * emission on stderr. + * emission on stderr. If stderr is a tty (according to isatty()) then + * the output is coloured according to the log level using ANSI escapes. */ LWS_VISIBLE LWS_EXTERN void lws_set_log_level(int level, @@ -377,6 +375,18 @@ lws_set_log_level(int level, LWS_VISIBLE LWS_EXTERN void lwsl_emit_syslog(int level, const char *line); +/** + * lwsl_visible() - returns true if the log level should be printed + * + * \param level: one of LLL_ log level indexes + * + * This is useful if you have to do work to generate the log content, you + * can skip the work if the log level used to print it is not actually + * enabled at runtime. + */ +LWS_VISIBLE LWS_EXTERN int +lwsl_visible(int level); + ///@} @@ -423,30 +433,7 @@ struct lws_pollfd { #define LWS_POLLOUT (FD_WRITE) #else -#if defined(MBED_OPERATORS) -/* it's a class lws_conn * */ -typedef void * lws_sockfd_type; -typedef void * lws_filefd_type; -#define lws_sockfd_valid(sfd) (!!sfd) -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 -struct lws; - -void * mbed3_create_tcp_stream_socket(void); -void mbed3_delete_tcp_stream_socket(void *sockfd); -void mbed3_tcp_stream_bind(void *sock, int port, struct lws *); -void mbed3_tcp_stream_accept(void *sock, struct lws *); -#else #if defined(LWS_WITH_ESP8266) #include @@ -476,7 +463,7 @@ void esp8266_tcp_stream_accept(lws_sockfd_type fd, struct lws *wsi); #include #include "ets_sys.h" -int ets_snprintf(char *str, size_t size, const char *format, ...); +int ets_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3); #define snprintf ets_snprintf typedef os_timer_t uv_timer_t; @@ -512,6 +499,206 @@ static inline void uv_timer_stop(uv_timer_t *t) os_timer_disarm(t); } +#else +#if defined(LWS_WITH_ESP32) + +typedef int lws_sockfd_type; +typedef int lws_filefd_type; +#define lws_sockfd_valid(sfd) (sfd >= 0) +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 + +#include +#include +#include +#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" + +#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 inline void uv_timer_init(void *l, uv_timer_t *t) +{ + (void)l; + *t = NULL; +} + +extern void esp32_uvtimer_cb(TimerHandle_t t); + +static 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 inline void uv_timer_stop(uv_timer_t *t) +{ + xTimerStop(*t, 0); +} + +static inline void uv_close(uv_handle_t *h, void *v) +{ + free(pvTimerGetTimerID((uv_timer_t)h)); + xTimerDelete(*(uv_timer_t *)h, 0); +} + +/* ESP32 helper declarations */ + +#include +#include + +#define LWS_PLUGIN_STATIC +#define LWS_MAGIC_REBOOT_TYPE_ADS 0x50001ffc +#define LWS_MAGIC_REBOOT_TYPE_REQ_FACTORY 0xb00bcafe +#define LWS_MAGIC_REBOOT_TYPE_FORCED_FACTORY 0xfaceb00b +#define LWS_MAGIC_REBOOT_TYPE_FORCED_FACTORY_BUTTON 0xf0cedfac + + +/* user code provides these */ + +extern void +lws_esp32_identify_physical_device(void); + +/* lws-plat-esp32 provides these */ + +typedef void (*lws_cb_scan_done)(uint16_t count, wifi_ap_record_t *recs, void *arg); + +enum genled_state { + LWSESP32_GENLED__INIT, + LWSESP32_GENLED__LOST_NETWORK, + LWSESP32_GENLED__NO_NETWORK, + LWSESP32_GENLED__CONN_AP, + LWSESP32_GENLED__GOT_IP, + LWSESP32_GENLED__OK, +}; + +struct lws_group_member { + struct lws_group_member *next; + uint64_t last_seen; + char model[16]; + char role[16]; + char host[32]; + char mac[20]; + int width, height; + struct ip4_addr addr; + struct ip6_addr addrv6; + uint8_t flags; +}; + +#define LWS_SYSTEM_GROUP_MEMBER_ADD 1 +#define LWS_SYSTEM_GROUP_MEMBER_CHANGE 2 +#define LWS_SYSTEM_GROUP_MEMBER_REMOVE 3 + +#define LWS_GROUP_FLAG_SELF 1 + +struct lws_esp32 { + char sta_ip[16]; + char sta_mask[16]; + char sta_gw[16]; + char serial[16]; + char opts[16]; + char model[16]; + char group[16]; + char role[16]; + char ssid[4][16]; + char password[4][32]; + char active_ssid[32]; + char access_pw[16]; + char hostname[32]; + char mac[20]; + mdns_server_t *mdns; + char region; + char inet; + char conn_ap; + + enum genled_state genled; + uint64_t genled_t; + + lws_cb_scan_done scan_consumer; + void *scan_consumer_arg; + struct lws_group_member *first; + int extant_group_members; +}; + +struct lws_esp32_image { + uint32_t romfs; + uint32_t romfs_len; + uint32_t json; + uint32_t json_len; +}; + +extern struct lws_esp32 lws_esp32; +struct lws_vhost; + +extern esp_err_t +lws_esp32_event_passthru(void *ctx, system_event_t *event); +extern void +lws_esp32_wlan_config(void); +extern void +lws_esp32_wlan_start_ap(void); +extern void +lws_esp32_wlan_start_station(void); +struct lws_context_creation_info; +extern void +lws_esp32_set_creation_defaults(struct lws_context_creation_info *info); +extern struct lws_context * +lws_esp32_init(struct lws_context_creation_info *, struct lws_vhost **pvh); +extern int +lws_esp32_wlan_nvs_get(int retry); +extern esp_err_t +lws_nvs_set_str(nvs_handle handle, const char* key, const char* value); +extern void +lws_esp32_restart_guided(uint32_t type); +extern const esp_partition_t * +lws_esp_ota_get_boot_partition(void); +extern int +lws_esp32_get_image_info(const esp_partition_t *part, struct lws_esp32_image *i, char *json, int json_len); +extern int +lws_esp32_leds_network_indication(void); + +extern uint32_t lws_esp32_get_reboot_type(void); +extern uint16_t lws_esp32_sine_interp(int n); + +/* required in external code by esp32 plat (may just return if no leds) */ +extern void lws_esp32_leds_timer_cb(TimerHandle_t th); #else typedef int lws_sockfd_type; typedef int lws_filefd_type; @@ -525,6 +712,36 @@ typedef int lws_filefd_type; #define LWS_POLLOUT (POLLOUT) #endif + +#if (defined(WIN32) || defined(_WIN32)) && !defined(__MINGW32__) +/* ... */ +#define ssize_t SSIZE_T +#endif + +#if defined(WIN32) && defined(LWS_HAVE__STAT32I64) +#include +#include +#endif + +#if defined(LWS_HAVE_STDINT_H) +#include +#else +#if defined(WIN32) || defined(_WIN32) +/* !!! >:-[ */ +typedef unsigned __int32 uint32_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int8 uint8_t; +#else +typedef unsigned int uint32_t; +typedef unsigned short uint16_t; +typedef unsigned char uint8_t; +#endif +#endif + +typedef unsigned long long lws_filepos_t; +typedef long long lws_fileofs_t; +typedef uint32_t lws_fop_flags_t; + /** struct lws_pollargs - argument structure for all external poll related calls * passed in via 'in' */ struct lws_pollargs { @@ -641,6 +858,38 @@ struct lws_context; /* needed even with extensions disabled for create context */ struct lws_extension; +/*! \defgroup lwsmeta lws-meta + * + * ##lws-meta protocol + * + * The protocol wraps other muxed connections inside one tcp connection. + * + * Commands are assigned from 0x41 up (so they are valid unicode) + */ +///@{ + +enum lws_meta_commands { + LWS_META_CMD_OPEN_SUBCHANNEL = 'A', + /**< Client requests to open new subchannel + */ + LWS_META_CMD_OPEN_RESULT, + /**< Result of client request to open new subchannel */ + LWS_META_CMD_CLOSE_NOTIFY, + /**< Notification of subchannel closure */ + LWS_META_CMD_CLOSE_RQ, + /**< client requests to close a subchannel */ + LWS_META_CMD_WRITE, + /**< connection writes something to specific channel index */ + + /****** add new things just above ---^ ******/ +}; + +/* channel numbers are transported offset by 0x20 so they are valid unicode */ + +#define LWS_META_TRANSPORT_OFFSET 0x20 + +///@} + /*! \defgroup usercb User Callback * * ##User protocol callback @@ -654,6 +903,10 @@ struct lws_extension; */ ///@{ +struct lws_ssl_info { + int where; + int ret; +}; /* * NOTE: These public enums are part of the abi. If you want to add one, @@ -820,7 +1073,7 @@ enum lws_callback_reasons { LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS = 22, /**< if configured for * including OpenSSL support, this callback allows your user code - * to load extra certifcates into the server which allow it to + * to load extra certificates into the server which allow it to * verify the validity of certificates returned by clients. user * is the server's OpenSSL SSL_CTX* */ LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION = 23, @@ -874,8 +1127,7 @@ enum lws_callback_reasons { * and with in being the extension name, len is 0 and user is * valid. Note though at this time the ESTABLISHED callback hasn't * happened yet so if you initialize user content there, user - * content during this callback might not be useful for anything. - * Notice this callback comes to protocols[0]. */ + * content during this callback might not be useful for anything. */ LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED = 26, /**< When a client * connection is being prepared to start a handshake to a server, @@ -966,45 +1218,127 @@ enum lws_callback_reasons { * connection. */ LWS_CALLBACK_WS_EXT_DEFAULTS = 39, - /**< */ + /**< Gives client connections an opportunity to adjust negotiated + * extension defaults. `user` is the extension name that was + * negotiated (eg, "permessage-deflate"). `in` points to a + * buffer and `len` is the buffer size. The user callback can + * set the buffer to a string describing options the extension + * should parse. Or just ignore for defaults. */ LWS_CALLBACK_CGI = 40, - /**< */ + /**< CGI: CGI IO events on stdin / out / err are sent here on + * protocols[0]. The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. */ LWS_CALLBACK_CGI_TERMINATED = 41, - /**< */ + /**< CGI: The related CGI process ended, this is called before + * the wsi is closed. Used to, eg, terminate chunking. + * The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. The child PID that terminated is in len. */ LWS_CALLBACK_CGI_STDIN_DATA = 42, - /**< */ + /**< CGI: Data is, to be sent to the CGI process stdin, eg from + * a POST body. The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. */ LWS_CALLBACK_CGI_STDIN_COMPLETED = 43, - /**< */ + /**< CGI: no more stdin is coming. The provided + * `lws_callback_http_dummy()` handles this and the callback + * should be directed there if you use CGI. */ LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44, - /**< */ + /**< The HTTP client connection has succeeded, and is now + * connected to the server */ LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45, - /**< */ + /**< The HTTP client connection is closing */ LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46, - /**< */ + /**< This simply indicates data was received on the HTTP client + * connection. It does NOT drain or provide the data. + * This exists to neatly allow a proxying type situation, + * where this incoming data will go out on another connection. + * If the outgoing connection stalls, we should stall processing + * the incoming data. So a handler for this in that case should + * simply set a flag to indicate there is incoming data ready + * and ask for a writeable callback on the outgoing connection. + * In the writable callback he can check the flag and then get + * and drain the waiting incoming data using lws_http_client_read(). + * This will use callbacks to LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ + * to get and drain the incoming data, where it should be sent + * back out on the outgoing connection. */ LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47, - /**< */ + /**< The client transaction completed... at the moment this + * is the same as closing since transaction pipelining on + * client side is not yet supported. */ LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48, - /**< */ + /**< This is generated by lws_http_client_read() used to drain + * incoming data. In the case the incoming data was chunked, + * it will be split into multiple smaller callbacks for each + * chunk block, removing the chunk headers. If not chunked, + * it will appear all in one callback. */ LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49, - /**< */ + /**< By default, all HTTP handling is done in protocols[0]. + * However you can bind different protocols (by name) to + * different parts of the URL space using callback mounts. This + * callback occurs in the new protocol when a wsi is bound + * to that protocol. Any protocol allocation related to the + * http transaction processing should be created then. + * These specific callbacks are necessary because with HTTP/1.1, + * a single connection may perform at series of different + * transactions at different URLs, thus the lifetime of the + * protocol bind is just for one transaction, not connection. */ LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50, - /**< */ + /**< This is called when a transaction is unbound from a protocol. + * It indicates the connection completed its transaction and may + * do something different now. Any protocol allocation related + * to the http transaction processing should be destroyed. */ LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51, - /**< */ + /**< This gives the user code a chance to forbid an http access. + * `in` points to a `struct lws_process_html_args`, which + * describes the URL, and a bit mask describing the type of + * authentication required. If the callback returns nonzero, + * the transaction ends with HTTP_STATUS_UNAUTHORIZED. */ LWS_CALLBACK_PROCESS_HTML = 52, - /**< */ + /**< This gives your user code a chance to mangle outgoing + * HTML. `in` points to a `struct lws_process_html_args` + * which describes the buffer containing outgoing HTML. + * The buffer may grow up to `.max_len` (currently +128 + * bytes per buffer). + * */ LWS_CALLBACK_ADD_HEADERS = 53, - /**< */ + /**< This gives your user code a chance to add headers to a + * transaction bound to your protocol. `in` points to a + * `struct lws_process_html_args` describing a buffer and length + * you can add headers into using the normal lws apis. + * + * Only `args->p` and `args->len` are valid, and `args->p` should + * be moved on by the amount of bytes written, if any. Eg + * + * case LWS_CALLBACK_ADD_HEADERS: + * + * struct lws_process_html_args *args = + * (struct lws_process_html_args *)in; + * + * if (lws_add_http_header_by_name(wsi, + * (unsigned char *)"set-cookie:", + * (unsigned char *)cookie, cookie_len, + * (unsigned char **)&args->p, + * (unsigned char *)args->p + args->max_len)) + * return 1; + * + * break; + */ LWS_CALLBACK_SESSION_INFO = 54, - /**< */ + /**< This is only generated by user code using generic sessions. + * It's used to get a `struct lws_session_info` filled in by + * generic sessions with information about the logged-in user. + * See the messageboard sample for an example of how to use. */ LWS_CALLBACK_GS_EVENT = 55, - /**< */ + /**< Indicates an event happened to the Generic Sessions session. + * `in` contains a `struct lws_gs_event_args` describing the event. */ LWS_CALLBACK_HTTP_PMO = 56, /**< per-mount options for this connection, called before * the normal LWS_CALLBACK_HTTP when the mount has per-mount - * options + * options. */ LWS_CALLBACK_CLIENT_HTTP_WRITEABLE = 57, /**< when doing an HTTP type client connection, you can call @@ -1015,11 +1349,76 @@ enum lws_callback_reasons { * From this callback, when you have sent everything, you should let * lws know by calling lws_client_http_body_pending(wsi, 0) */ + LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION = 58, + /**< Similar to LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION + * this callback is called during OpenSSL verification of the cert + * sent from the server to the client. It is sent to protocol[0] + * callback as no protocol has been negotiated on the connection yet. + * Notice that the wsi is set because lws_client_connect_via_info was + * successful. + * + * See http://www.openssl.org/docs/ssl/SSL_CTX_set_verify.html + * to understand more detail about the OpenSSL callback that + * generates this libwebsockets callback and the meanings of the + * arguments passed. In this callback, user is the x509_ctx, + * in is the ssl pointer and len is preverify_ok. + * + * THIS IS NOT RECOMMENDED BUT if a cert validation error shall be + * overruled and cert shall be accepted as ok, + * X509_STORE_CTX_set_error((X509_STORE_CTX*)user, X509_V_OK); must be + * called and return value must be 0 to mean the cert is OK; + * returning 1 will fail the cert in any case. + * + * This also means that if you don't handle this callback then + * the default callback action of returning 0 will not accept the + * certificate in case of a validation error decided by the SSL lib. + * + * This is expected and secure behaviour when validating certificates. + * + * Note: LCCSCF_ALLOW_SELFSIGNED and + * LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK still work without this + * callback being implemented. + */ + LWS_CALLBACK_RAW_RX = 59, + /**< RAW mode connection RX */ + LWS_CALLBACK_RAW_CLOSE = 60, + /**< RAW mode connection is closing */ + LWS_CALLBACK_RAW_WRITEABLE = 61, + /**< RAW mode connection may be written */ + LWS_CALLBACK_RAW_ADOPT = 62, + /**< RAW mode connection was adopted (equivalent to 'wsi created') */ + LWS_CALLBACK_RAW_ADOPT_FILE = 63, + /**< RAW mode file was adopted (equivalent to 'wsi created') */ + LWS_CALLBACK_RAW_RX_FILE = 64, + /**< RAW mode file has something to read */ + LWS_CALLBACK_RAW_WRITEABLE_FILE = 65, + /**< RAW mode file is writeable */ + LWS_CALLBACK_RAW_CLOSE_FILE = 66, + /**< RAW mode wsi that adopted a file is closing */ + LWS_CALLBACK_SSL_INFO = 67, + /**< SSL connections only. An event you registered an + * interest in at the vhost has occurred on a connection + * using the vhost. in is a pointer to a + * struct lws_ssl_info containing information about the + * event*/ + LWS_CALLBACK_CHILD_WRITE_VIA_PARENT = 68, + /**< Child has been marked with parent_carries_io attribute, so + * lws_write directs the to this callback at the parent, + * in is a struct lws_write_passthru containing the args + * the lws_write() was called with. + */ + LWS_CALLBACK_CHILD_CLOSING = 69, + /**< Sent to parent to notify them a child is closing / being + * destroyed. in is the child wsi. + */ + LWS_CALLBACK_CGI_PROCESS_ATTACH = 70, + /**< CGI: Sent when the CGI process is spawned for the wsi. The + * len parameter is the PID of the child process */ /****** add new things just above ---^ ******/ LWS_CALLBACK_USER = 1000, - /**< user code can use any including / above without fear of clashes */ + /**< user code can use any including above without fear of clashes */ }; @@ -1042,10 +1441,99 @@ enum lws_callback_reasons { typedef int lws_callback_function(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len); + +#define LWS_CB_REASON_AUX_BF__CGI 1 +#define LWS_CB_REASON_AUX_BF__PROXY 2 +#define LWS_CB_REASON_AUX_BF__CGI_CHUNK_END 4 +#define LWS_CB_REASON_AUX_BF__CGI_HEADERS 8 ///@} -/*! \defgroup extensions +/*! \defgroup generic hash + * ## Generic Hash related functions * + * Lws provides generic hash / digest accessors that abstract the ones + * provided by whatever OpenSSL library you are linking against. + * + * It lets you use the same code if you build against mbedtls or OpenSSL + * for example. + */ +///@{ + +#ifdef LWS_OPENSSL_SUPPORT + +#if defined(LWS_WITH_MBEDTLS) +#include +#include +#include +#endif + +#define LWS_GENHASH_TYPE_SHA1 0 +#define LWS_GENHASH_TYPE_SHA256 1 +#define LWS_GENHASH_TYPE_SHA512 2 + +struct lws_genhash_ctx { + uint8_t type; +#if defined(LWS_WITH_MBEDTLS) + union { + mbedtls_sha1_context sha1; + mbedtls_sha256_context sha256; + mbedtls_sha512_context sha512; + } u; +#else + const EVP_MD *evp_type; + EVP_MD_CTX *mdctx; +#endif +}; + +/** lws_genhash_size() - get hash size in bytes + * + * \param type: one of LWS_GENHASH_TYPE_... + * + * Returns number of bytes in this type of hash + */ +LWS_VISIBLE LWS_EXTERN size_t LWS_WARN_UNUSED_RESULT +lws_genhash_size(int type); + +/** lws_genhash_init() - prepare your struct lws_genhash_ctx for use + * + * \param ctx: your struct lws_genhash_ctx + * \param type: one of LWS_GENHASH_TYPE_... + * + * Initializes the hash context for the type you requested + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_genhash_init(struct lws_genhash_ctx *ctx, int type); + +/** lws_genhash_update() - digest len bytes of the buffer starting at in + * + * \param ctx: your struct lws_genhash_ctx + * \param in: start of the bytes to digest + * \param len: count of bytes to digest + * + * Updates the state of your hash context to reflect digesting len bytes from in + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_genhash_update(struct lws_genhash_ctx *ctx, const void *in, size_t len); + +/** lws_genhash_destroy() - copy out the result digest and destroy the ctx + * + * \param ctx: your struct lws_genhash_ctx + * \param result: NULL, or where to copy the result hash + * + * Finalizes the hash and copies out the digest. Destroys any allocations such + * that ctx can safely go out of scope after calling this. + * + * NULL result is supported so that you can destroy the ctx cleanly on error + * conditions, where there is no valid result. + */ +LWS_VISIBLE LWS_EXTERN int +lws_genhash_destroy(struct lws_genhash_ctx *ctx, void *result); + +#endif + +///@} + +/*! \defgroup extensions Extension related functions * ##Extension releated functions * * Ws defines optional extensions, lws provides the ability to implement these @@ -1217,7 +1705,7 @@ lws_set_extension_option(struct lws *wsi, const char *ext_name, * client and server for how to do. */ static LWS_INLINE LWS_WARN_DEPRECATED const struct lws_extension * -lws_get_internal_extensions() { return NULL; } +lws_get_internal_extensions(void) { return NULL; } /** * lws_ext_parse_options() - deal with parsing negotiated extension options @@ -1297,8 +1785,8 @@ struct lws_protocols { * be able to consume it all without having to return to the event * loop. That is supported in lws. * - * This also controls how much may be sent at once at the moment, - * although this is likely to change. + * If .tx_packet_size is 0, this also controls how much may be sent at once + * for backwards compatibility. */ unsigned int id; /**< ignored by lws, but useful to contain user information bound @@ -1309,6 +1797,15 @@ struct lws_protocols { * capability flags based on selected protocol version, etc. */ void *user; /**< ignored by lws, but user code can pass a pointer here it can later access from the protocol callback */ + size_t tx_packet_size; + /**< 0 indicates restrict send() size to .rx_buffer_size for backwards- + * compatibility. + * If greater than zero, a single send() is restricted to this amount + * and any remainder is buffered by lws and sent afterwards also in + * these size chunks. Since that is expensive, it's preferable + * to restrict one fragment you are trying to send to match this + * size. + */ /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility */ @@ -1369,6 +1866,23 @@ lws_protocol_vh_priv_zalloc(struct lws_vhost *vhost, const struct lws_protocols LWS_VISIBLE LWS_EXTERN void * lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *prot); +/** + * lws_adjust_protocol_psds - change a vhost protocol's per session data size + * + * \param wsi: a connection with the protocol to change + * \param new_size: the new size of the per session data size for the protocol + * + * Returns user_space for the wsi, after allocating + * + * This should not be used except to initalize a vhost protocol's per session + * data size one time, before any connections are accepted. + * + * Sometimes the protocol wraps another protocol and needs to discover and set + * its per session data size at runtime. + */ +LWS_VISIBLE LWS_EXTERN void * +lws_adjust_protocol_psds(struct lws *wsi, size_t new_size); + /** * lws_finalize_startup() - drop initial process privileges * @@ -1380,6 +1894,9 @@ lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *pr LWS_VISIBLE LWS_EXTERN int lws_finalize_startup(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN int +lws_protocol_init(struct lws_context *context); + #ifdef LWS_WITH_PLUGINS /* PLUGINS implies LIBUV */ @@ -1469,10 +1986,10 @@ struct lws_gs_event_args { ///@} -/*! \defgroup context-and-vhost +/*! \defgroup context-and-vhost context and vhost related functions + * ##Context and Vhost releated functions * \ingroup lwsapi * - * ##Context and Vhost releated functions * * LWS requires that there is one context, in which you may define multiple * vhosts. Each vhost is a virtual host, with either its own listen port @@ -1543,12 +2060,42 @@ enum lws_context_options { * even if it happened without a debugger in place. You can disable * that by giving this option. */ + LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN = (1 << 19), + /**< For backwards-compatibility reasons, by default + * lws prepends "http://" to the origin you give in the client + * connection info struct. If you give this flag when you create + * the context, only the string you give in the client connect + * info for .origin (if any) will be used directly. + */ + LWS_SERVER_OPTION_FALLBACK_TO_RAW = (1 << 20), + /**< (VH) if invalid http is coming in the first line, */ + LWS_SERVER_OPTION_LIBEVENT = (1 << 21), + /**< (CTX) Use libevent event loop */ + LWS_SERVER_OPTION_ONLY_RAW = (1 << 22), + /**< (VH) All connections to this vhost / port are RAW as soon as + * the connection is accepted, no HTTP is going to be coming. + */ + LWS_SERVER_OPTION_ALLOW_LISTEN_SHARE = (1 << 23), + /**< (VH) Set to allow multiple listen sockets on one interface + + * address + port. The default is to strictly allow only one + * listen socket at a time. This is automatically selected if you + * have multiple service threads. + */ + LWS_SERVER_OPTION_CREATE_VHOST_SSL_CTX = (1 << 24), + /**< (VH) Force setting up the vhost SSL_CTX, even though the user + * code doesn't explicitly provide a cert in the info struct. It + * implies the user code is going to provide a cert at the + * LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS callback, which + * provides the vhost SSL_CTX * in the user parameter. + */ /****** add new things just above ---^ ******/ }; #define lws_check_opt(c, f) (((c) & (f)) == (f)) +struct lws_plat_file_ops; + /** struct lws_context_creation_info - parameters to create context and /or vhost with * * This is also used to create vhosts.... if LWS_SERVER_OPTION_EXPLICIT_VHOSTS @@ -1560,10 +2107,10 @@ enum lws_context_options { */ struct lws_context_creation_info { int port; - /**< VHOST: Port to listen on... you can use CONTEXT_PORT_NO_LISTEN to - * suppress listening on any port, that's what you want if you are - * not running a websocket server at all but just using it as a - * client */ + /**< VHOST: Port to listen on. Use CONTEXT_PORT_NO_LISTEN to suppress + * listening for a client. Use CONTEXT_PORT_NO_LISTEN_SERVER if you are + * writing a server but you are using \ref sock-adopt instead of the + * built-in listener */ const char *iface; /**< VHOST: NULL to bind the listen socket to all interfaces, or the * interface name, eg, "eth2" @@ -1582,23 +2129,38 @@ struct lws_context_creation_info { /**< CONTEXT: NULL or struct lws_token_limits pointer which is initialized * with a token length limit for each possible WSI_TOKEN_ */ const char *ssl_private_key_password; - /**< VHOST: NULL or the passphrase needed for the private key */ + /**< VHOST: NULL or the passphrase needed for the private key. (For + * backwards compatibility, this can also be used to pass the client + * cert passphrase when setting up a vhost client SSL context, but it is + * preferred to use .client_ssl_private_key_password for that.) */ const char *ssl_cert_filepath; /**< VHOST: If libwebsockets was compiled to use ssl, and you want * to listen using SSL, set to the filepath to fetch the - * server cert from, otherwise NULL for unencrypted */ + * server cert from, otherwise NULL for unencrypted. (For backwards + * compatibility, this can also be used to pass the client certificate + * when setting up a vhost client SSL context, but it is preferred to + * use .client_ssl_cert_filepath for that.) */ const char *ssl_private_key_filepath; /**< VHOST: filepath to private key if wanting SSL mode; - * if this is set to NULL but sll_cert_filepath is set, the + * if this is set to NULL but ssl_cert_filepath is set, the * OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY callback is called * to allow setting of the private key directly via openSSL - * library calls */ + * library calls. (For backwards compatibility, this can also be used + * to pass the client cert private key filepath when setting up a + * vhost client SSL context, but it is preferred to use + * .client_ssl_private_key_filepath for that.) */ const char *ssl_ca_filepath; - /**< VHOST: CA certificate filepath or NULL */ + /**< VHOST: CA certificate filepath or NULL. (For backwards + * compatibility, this can also be used to pass the client CA + * filepath when setting up a vhost client SSL context, + * but it is preferred to use .client_ssl_ca_filepath for that.) */ const char *ssl_cipher_list; /**< VHOST: List of valid ciphers to use (eg, * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" - * or you can leave it as NULL to get "DEFAULT" */ + * or you can leave it as NULL to get "DEFAULT" (For backwards + * compatibility, this can also be used to pass the client cipher + * list when setting up a vhost client SSL context, + * but it is preferred to use .client_ssl_cipher_list for that.)*/ const char *http_proxy_address; /**< VHOST: If non-NULL, attempts to proxy via the given address. * If proxy auth is required, use format "username:password\@server:port" */ @@ -1611,8 +2173,14 @@ struct lws_context_creation_info { unsigned int options; /**< VHOST + CONTEXT: 0, or LWS_SERVER_OPTION_... bitfields */ void *user; - /**< CONTEXT: optional user pointer that can be recovered via the context - * pointer using lws_context_user */ + /**< VHOST + CONTEXT: optional user pointer that will be associated + * with the context when creating the context (and can be retrieved by + * lws_context_user(context), or with the vhost when creating the vhost + * (and can be retrieved by lws_vhost_user(vhost)). You will need to + * use LWS_SERVER_OPTION_EXPLICIT_VHOSTS and create the vhost separately + * if you care about giving the context and vhost different user pointer + * values. + */ int ka_time; /**< CONTEXT: 0 for no TCP keepalive, otherwise apply this keepalive * timeout to all libwebsocket sockets, client or server */ @@ -1708,6 +2276,110 @@ struct lws_context_creation_info { /**< VHOST: pointer to optional linked list of per-vhost * canned headers that are added to server responses */ + const struct lws_protocol_vhost_options *reject_service_keywords; + /**< CONTEXT: Optional list of keywords and rejection codes + text. + * + * The keywords are checked for existing in the user agent string. + * + * Eg, "badrobot" "404 Not Found" + */ + void *external_baggage_free_on_destroy; + /**< CONTEXT: NULL, or pointer to something externally malloc'd, that + * should be freed when the context is destroyed. This allows you to + * automatically sync the freeing action to the context destruction + * action, so there is no need for an external free() if the context + * succeeded to create. + */ + + const char *client_ssl_private_key_password; + /**< VHOST: Client SSL context init: NULL or the passphrase needed + * for the private key */ + const char *client_ssl_cert_filepath; + /**< VHOST: Client SSL context init:T he certificate the client + * should present to the peer on connection */ + const char *client_ssl_private_key_filepath; + /**< VHOST: Client SSL context init: filepath to client private key + * if this is set to NULL but client_ssl_cert_filepath is set, you + * can handle the LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS + * callback of protocols[0] to allow setting of the private key directly + * via openSSL library calls */ + const char *client_ssl_ca_filepath; + /**< VHOST: Client SSL context init: CA certificate filepath or NULL */ + const char *client_ssl_cipher_list; + /**< VHOST: Client SSL context init: List of valid ciphers to use (eg, + * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" + * or you can leave it as NULL to get "DEFAULT" */ + + const struct lws_plat_file_ops *fops; + /**< CONTEXT: NULL, or pointer to an array of fops structs, terminated + * by a sentinel with NULL .open. + * + * If NULL, lws provides just the platform file operations struct for + * backwards compatibility. + */ + int simultaneous_ssl_restriction; + /**< CONTEXT: 0 (no limit) or limit of simultaneous SSL sessions possible.*/ + const char *socks_proxy_address; + /**< VHOST: If non-NULL, attempts to proxy via the given address. + * If proxy auth is required, use format "username:password\@server:port" */ + unsigned int socks_proxy_port; + /**< VHOST: If socks_proxy_address was non-NULL, uses this port */ +#if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) + cap_value_t caps[4]; + /**< CONTEXT: array holding Linux capabilities you want to + * continue to be available to the server after it transitions + * to a noprivileged user. Usually none are needed but for, eg, + * .bind_iface, CAP_NET_RAW is required. This gives you a way + * to still have the capability but drop root. + */ + char count_caps; + /**< CONTEXT: count of Linux capabilities in .caps[]. 0 means + * no capabilities will be inherited from root (the default) */ +#endif + int bind_iface; + /**< VHOST: nonzero to strictly bind sockets to the interface name in + * .iface (eg, "eth2"), using SO_BIND_TO_DEVICE. + * + * Requires SO_BINDTODEVICE support from your OS and CAP_NET_RAW + * capability. + * + * Notice that common things like access network interface IP from + * your local machine use your lo / loopback interface and will be + * disallowed by this. + */ + int ssl_info_event_mask; + /**< VHOST: mask of ssl events to be reported on LWS_CALLBACK_SSL_INFO + * callback for connections on this vhost. The mask values are of + * the form SSL_CB_ALERT, defined in openssl/ssl.h. The default of + * 0 means no info events will be reported. + */ + unsigned int timeout_secs_ah_idle; + /**< VHOST: seconds to allow a client to hold an ah without using it. + * 0 defaults to 10s. */ + unsigned short ip_limit_ah; + /**< CONTEXT: max number of ah a single IP may use simultaneously + * 0 is no limit. This is a soft limit: if the limit is + * reached, connections from that IP will wait in the ah + * waiting list and not be able to acquire an ah until + * a connection belonging to the IP relinquishes one it + * already has. + */ + unsigned short ip_limit_wsi; + /**< CONTEXT: max number of wsi a single IP may use simultaneously. + * 0 is no limit. This is a hard limit, connections from + * the same IP will simply be dropped once it acquires the + * amount of simultaneous wsi / accepted connections + * given here. + */ + uint32_t http2_settings[7]; + /**< CONTEXT: after context creation http2_settings[1] thru [6] have + * been set to the lws platform default values. + * VHOST: if http2_settings[0] is nonzero, the values given in + * http2_settings[1]..[6] are used instead of the lws + * platform default values. + * Just leave all at 0 if you don't care. + */ + /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility * @@ -1744,7 +2416,7 @@ struct lws_context_creation_info { * * HTTP requests are sent always to the FIRST protocol in protocol, since * at that time websocket protocol has not been negotiated. Other - * protocols after the first one never see any HTTP callack activity. + * protocols after the first one never see any HTTP callback activity. * * The server created is a simple http server by default; part of the * websocket standard is upgrading this http connection to a websocket one. @@ -1767,6 +2439,43 @@ lws_create_context(struct lws_context_creation_info *info); LWS_VISIBLE LWS_EXTERN void lws_context_destroy(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN void +lws_context_destroy2(struct lws_context *context); + +typedef int (*lws_reload_func)(void); + +/** + * lws_context_deprecate() - Deprecate the websocket context + * + * \param context: Websocket context + * \param cb: Callback notified when old context listen sockets are closed + * + * This function is used on an existing context before superceding it + * with a new context. + * + * It closes any listen sockets in the context, so new connections are + * not possible. + * + * And it marks the context to be deleted when the number of active + * connections into it falls to zero. + * + * Otherwise if you attach the deprecated context to the replacement + * context when it has been created using lws_context_attach_deprecated() + * both any deprecated and the new context will service their connections. + * + * This is aimed at allowing seamless configuration reloads. + * + * The callback cb will be called after the listen sockets are actually + * closed and may be reopened. In the callback the new context should be + * configured and created. (With libuv, socket close happens async after + * more loop events). + */ +LWS_VISIBLE LWS_EXTERN void +lws_context_deprecate(struct lws_context *context, lws_reload_func cb); + +LWS_VISIBLE LWS_EXTERN int +lws_context_is_deprecated(struct lws_context *context); + /** * lws_set_proxy() - Setups proxy to lws_context. * \param vhost: pointer to struct lws_vhost you want set proxy for @@ -1787,6 +2496,25 @@ lws_context_destroy(struct lws_context *context); LWS_VISIBLE LWS_EXTERN int lws_set_proxy(struct lws_vhost *vhost, const char *proxy); +/** + * lws_set_socks() - Setup socks to lws_context. + * \param vhost: pointer to struct lws_vhost you want set socks for + * \param socks: pointer to c string containing socks in format address:port + * + * Returns 0 if socks string was parsed and socks was setup. + * Returns -1 if socks is NULL or has incorrect format. + * + * This is only required if your OS does not provide the socks_proxy + * environment variable (eg, OSX) + * + * IMPORTANT! You should call this function right after creation of the + * lws_context and before call to connect. If you call this + * function after connect behavior is undefined. + * This function will override proxy settings made on lws_context + * creation with genenv() call. + */ +LWS_VISIBLE LWS_EXTERN int +lws_set_socks(struct lws_vhost *vhost, const char *socks); struct lws_vhost; @@ -1799,10 +2527,26 @@ struct lws_vhost; * members of the info struct. You can create many vhosts inside one context * if you created the context with the option LWS_SERVER_OPTION_EXPLICIT_VHOSTS */ -LWS_EXTERN LWS_VISIBLE struct lws_vhost * +LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_create_vhost(struct lws_context *context, struct lws_context_creation_info *info); +/** + * lws_vhost_destroy() - Destroy a vhost (virtual server context) + * + * \param vh: pointer to result of lws_create_vhost() + * + * This function destroys a vhost. Normally, if you just want to exit, + * then lws_destroy_context() will take care of everything. If you want + * to destroy an individual vhost and all connections and allocations, you + * can do it with this. + * + * If the vhost has a listen sockets shared by other vhosts, it will be given + * to one of the vhosts sharing it rather than closed. + */ +LWS_VISIBLE LWS_EXTERN void +lws_vhost_destroy(struct lws_vhost *vh); + /** * lwsws_get_config_globals() - Parse a JSON server config file * \param info: pointer to struct with parameters @@ -1869,9 +2613,24 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len); * \param context: the context * \param buf: buffer to fill with JSON * \param len: max length of buf + * \param hide_vhosts: nonzero to not provide per-vhost mount etc information + * + * Generates a JSON description of vhost state into buf */ LWS_VISIBLE LWS_EXTERN int -lws_json_dump_context(const struct lws_context *context, char *buf, int len); +lws_json_dump_context(const struct lws_context *context, char *buf, int len, + int hide_vhosts); + +/** + * lws_vhost_user() - get the user data associated with the vhost + * \param vhost: Websocket vhost + * + * This returns the optional user pointer that can be attached to + * a vhost when it was created. Lws never dereferences this pointer, it only + * sets it when the vhost is created, and returns it using this api. + */ +LWS_VISIBLE LWS_EXTERN void * +lws_vhost_user(struct lws_vhost *vhost); /** * lws_context_user() - get the user data associated with the context @@ -1909,8 +2668,8 @@ struct lws_protocol_vhost_options { * served from a filesystem, or it is a cgi etc. */ enum lws_mount_protocols { - LWSMPRO_HTTP = 0, /**< not supported yet */ - LWSMPRO_HTTPS = 1, /**< not supported yet */ + LWSMPRO_HTTP = 0, /**< http reverse proxy */ + LWSMPRO_HTTPS = 1, /**< https reverse proxy */ LWSMPRO_FILE = 2, /**< serve from filesystem directory */ LWSMPRO_CGI = 3, /**< pass to CGI to handle */ LWSMPRO_REDIR_HTTP = 4, /**< redirect to http:// url */ @@ -1956,14 +2715,27 @@ struct lws_http_mount { unsigned char origin_protocol; /**< one of enum lws_mount_protocols */ unsigned char mountpoint_len; /**< length of mountpoint string */ + + const char *basic_auth_login_file; + /**nxt; \ + } \ +} + +/** + * lws_start_foreach_llp(): linkedlist pointer iterator helper start + * + * \param type: type of iteration, eg, struct xyz ** + * \param it: iterator var name to create + * \param start: start of list + * + * This helper creates an iterator and starts a while (it) { + * loop. The iterator runs through the linked list starting at the + * address of start and ends when it gets a NULL. + * The while loop should be terminated using lws_start_foreach_llp(). + * + * This helper variant iterates using a pointer to the previous linked-list + * element. That allows you to easily delete list members by rewriting the + * previous pointer to the element's next pointer. + */ +#define lws_start_foreach_llp(type, it, start)\ +{ \ + type it = &(start); \ + while (*(it)) { + +/** + * lws_end_foreach_llp(): linkedlist pointer iterator helper end + * + * \param it: same iterator var name given when starting + * \param nxt: member name in the iterator pointing to next list element + * + * This helper is the partner for lws_start_foreach_llp() that ends the + * while loop. + */ + +#define lws_end_foreach_llp(it, nxt) \ + it = &(*(it))->nxt; \ + } \ +} + /** * lws_snprintf(): snprintf that truncates the returned length too * @@ -3620,7 +4729,7 @@ lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr, * reach the limit the reported length doesn't exceed the limit. */ LWS_VISIBLE LWS_EXTERN int -lws_snprintf(char *str, size_t size, const char *format, ...); +lws_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3); /** * lws_get_random(): fill a buffer with platform random data @@ -3636,7 +4745,7 @@ lws_snprintf(char *str, size_t size, const char *format, ...); LWS_VISIBLE LWS_EXTERN int lws_get_random(struct lws_context *context, void *buf, int len); /** - * lws_daemonize(): fill a buffer with platform random data + * lws_daemonize(): make current process run in the background * * \param _lock_path: the filepath to write the lock file * @@ -3661,6 +4770,19 @@ lws_get_library_version(void); LWS_VISIBLE LWS_EXTERN void * lws_wsi_user(struct lws *wsi); +/** + * lws_wsi_set_user() - set the user data associated with the client connection + * \param wsi: lws connection + * \param user: user data + * + * By default lws allocates this and it's not legal to externally set it + * yourself. However client connections may have it set externally when the + * connection is created... if so, this api can be used to modify it at + * runtime additionally. + */ +LWS_VISIBLE LWS_EXTERN void +lws_set_wsi_user(struct lws *wsi, void *user); + /** * lws_parse_uri: cut up prot:/ads:port/path into pieces * Notice it does so by dropping '\0' into input string @@ -3683,7 +4805,7 @@ LWS_VISIBLE LWS_EXTERN unsigned long lws_now_secs(void); /** - * lws_get_context - Allow geting lws_context from a Websocket connection + * lws_get_context - Allow getting lws_context from a Websocket connection * instance * * With this function, users can access context in the callback function. @@ -3725,6 +4847,45 @@ lws_get_parent(const struct lws *wsi); LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT lws_get_child(const struct lws *wsi); +/** + * lws_parent_carries_io() - mark wsi as needing to send messages via parent + * + * \param wsi: child lws connection + */ + +LWS_VISIBLE LWS_EXTERN void +lws_set_parent_carries_io(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void * +lws_get_opaque_parent_data(const struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void +lws_set_opaque_parent_data(struct lws *wsi, void *data); + +LWS_VISIBLE LWS_EXTERN int +lws_get_child_pending_on_writable(const struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void +lws_clear_child_pending_on_writable(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN int +lws_get_close_length(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN unsigned char * +lws_get_close_payload(struct lws *wsi); + +/** + * lws_get_network_wsi() - Returns wsi that has the tcp connection for this wsi + * + * \param wsi: wsi you have + * + * Returns wsi that has the tcp connection (which may be the incoming wsi) + * + * HTTP/1 connections will always return the incoming wsi + * HTTP/2 connections may return a different wsi that has the tcp connection + */ +LWS_VISIBLE LWS_EXTERN +struct lws *lws_get_network_wsi(struct lws *wsi); /* * \deprecated DEPRECATED Note: this is not normally needed as a user api. @@ -3732,7 +4893,7 @@ lws_get_child(const struct lws *wsi); * useful when integrating with other app poll loop service code. */ LWS_VISIBLE LWS_EXTERN int -lws_read(struct lws *wsi, unsigned char *buf, size_t len); +lws_read(struct lws *wsi, unsigned char *buf, lws_filepos_t len); /** * lws_set_allocator() - custom allocator support @@ -3742,7 +4903,7 @@ lws_read(struct lws *wsi, unsigned char *buf, size_t len); * Allows you to replace the allocator (and deallocator) used by lws */ LWS_VISIBLE LWS_EXTERN void -lws_set_allocator(void *(*realloc)(void *ptr, size_t size)); +lws_set_allocator(void *(*realloc)(void *ptr, size_t size, const char *reason)); ///@} /** \defgroup wsstatus Websocket status APIs @@ -3762,11 +4923,20 @@ lws_send_pipe_choked(struct lws *wsi); /** * lws_is_final_fragment() - tests if last part of ws message + * * \param wsi: lws connection */ LWS_VISIBLE LWS_EXTERN int lws_is_final_fragment(struct lws *wsi); +/** + * lws_is_first_fragment() - tests if first part of ws message + * + * \param wsi: lws connection + */ +LWS_VISIBLE LWS_EXTERN int +lws_is_first_fragment(struct lws *wsi); + /** * lws_get_reserved_bits() - access reserved bits of ws frame * \param wsi: lws connection @@ -3821,8 +4991,242 @@ lws_is_ssl(struct lws *wsi); */ LWS_VISIBLE LWS_EXTERN int lws_is_cgi(struct lws *wsi); + +#ifdef LWS_OPENSSL_SUPPORT +/** + * lws_get_ssl() - Return wsi's SSL context structure + * \param wsi: websocket connection + * + * Returns pointer to the SSL library's context structure + */ +LWS_VISIBLE LWS_EXTERN SSL* +lws_get_ssl(struct lws *wsi); +#endif ///@} +/** \defgroup lws_ring LWS Ringbuffer APIs + * ##lws_ring: generic ringbuffer struct + * + * Provides an abstract ringbuffer api supporting one head and one or an + * unlimited number of tails. + * + * All of the members are opaque and manipulated by lws_ring_...() apis. + * + * The lws_ring and its buffer is allocated at runtime on the heap, using + * + * - lws_ring_create() + * - lws_ring_destroy() + * + * It may contain any type, the size of the "element" stored in the ring + * buffer and the number of elements is given at creation time. + * + * When you create the ringbuffer, you can optionally provide an element + * destroy callback that frees any allocations inside the element. This is then + * automatically called for elements with no tail behind them, ie, elements + * which don't have any pending consumer are auto-freed. + * + * Whole elements may be inserted into the ringbuffer and removed from it, using + * + * - lws_ring_insert() + * - lws_ring_consume() + * + * You can find out how many whole elements are free or waiting using + * + * - lws_ring_get_count_free_elements() + * - lws_ring_get_count_waiting_elements() + * + * In addition there are special purpose optional byte-centric apis + * + * - lws_ring_next_linear_insert_range() + * - lws_ring_bump_head() + * + * which let you, eg, read() directly into the ringbuffer without needing + * an intermediate bounce buffer. + * + * The accessors understand that the ring wraps, and optimizes insertion and + * consumption into one or two memcpy()s depending on if the head or tail + * wraps. + * + * lws_ring only supports a single head, but optionally multiple tails with + * an API to inform it when the "oldest" tail has moved on. You can give + * NULL where-ever an api asks for a tail pointer, and it will use an internal + * single tail pointer for convenience. + * + * The "oldest tail", which is the only tail if you give it NULL instead of + * some other tail, is used to track which elements in the ringbuffer are + * still unread by anyone. + * + * - lws_ring_update_oldest_tail() + */ +///@{ +struct lws_ring; + +/** + * lws_ring_create(): create a new ringbuffer + * + * \param element_len: the size in bytes of one element in the ringbuffer + * \param count: the number of elements the ringbuffer can contain + * \param destroy_element: NULL, or callback to be called for each element + * that is removed from the ringbuffer due to the + * oldest tail moving beyond it + * + * Creates the ringbuffer and allocates the storage. Returns the new + * lws_ring *, or NULL if the allocation failed. + * + * If non-NULL, destroy_element will get called back for every element that is + * retired from the ringbuffer after the oldest tail has gone past it, and for + * any element still left in the ringbuffer when it is destroyed. It replaces + * all other element destruction code in your user code. + */ +LWS_VISIBLE LWS_EXTERN struct lws_ring * +lws_ring_create(size_t element_len, size_t count, + void (*destroy_element)(void *element)); + +/** + * lws_ring_destroy(): destroy a previously created ringbuffer + * + * \param ring: the struct lws_ring to destroy + * + * Destroys the ringbuffer allocation and the struct lws_ring itself. + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_destroy(struct lws_ring *ring); + +/** + * lws_ring_get_count_free_elements(): return how many elements can fit + * in the free space + * + * \param ring: the struct lws_ring to report on + * + * Returns how much room is left in the ringbuffer for whole element insertion. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_get_count_free_elements(struct lws_ring *ring); + +/** + * lws_ring_get_count_waiting_elements(): return how many elements can be consumed + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * Returns how many elements are waiting to be consumed from the perspective + * of the tail pointer given. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_get_count_waiting_elements(struct lws_ring *ring, uint32_t *tail); + +/** + * lws_ring_insert(): attempt to insert up to max_count elements from src + * + * \param ring: the struct lws_ring to report on + * \param src: the array of elements to be inserted + * \param max_count: the number of available elements at src + * + * Attempts to insert as many of the elements at src as possible, up to the + * maximum max_count. Returns the number of elements actually inserted. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_insert(struct lws_ring *ring, const void *src, size_t max_count); + +/** + * lws_ring_consume(): attempt to copy out and remove up to max_count elements + * to src + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * \param dest: the array of elements to be inserted. or NULL for no copy + * \param max_count: the number of available elements at src + * + * Attempts to copy out as many waiting elements as possible into dest, from + * the perspective of the given tail, up to max_count. If dest is NULL, the + * copying out is not done but the elements are logically consumed as usual. + * NULL dest is useful in combination with lws_ring_get_element(), where you + * can use the element direct from the ringbuffer and then call this with NULL + * dest to logically consume it. + * + * Increments the tail position according to how many elements could be + * consumed. + * + * Returns the number of elements consumed. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_consume(struct lws_ring *ring, uint32_t *tail, void *dest, + size_t max_count); + +/** + * lws_ring_get_element(): get a pointer to the next waiting element for tail + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * Points to the next element that tail would consume, directly in the + * ringbuffer. This lets you write() or otherwise use the element without + * having to copy it out somewhere first. + * + * After calling this, you must call lws_ring_consume(ring, &tail, NULL, 1) + * which will logically consume the element you used up and increment your + * tail (tail may also be NULL there if you use a single tail). + * + * Returns NULL if no waiting element, or a const void * pointing to it. + */ +LWS_VISIBLE LWS_EXTERN const void * +lws_ring_get_element(struct lws_ring *ring, uint32_t *tail); + +/** + * lws_ring_update_oldest_tail(): free up elements older than tail for reuse + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * If you are using multiple tails, you must use this API to inform the + * lws_ring when none of the tails still need elements in the fifo any more, + * by updating it when the "oldest" tail has moved on. + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_update_oldest_tail(struct lws_ring *ring, uint32_t tail); + +/** + * lws_ring_get_oldest_tail(): get current oldest available data index + * + * \param ring: the struct lws_ring to report on + * + * If you are initializing a new ringbuffer consumer, you can set its tail to + * this to start it from the oldest ringbuffer entry still available. + */ +LWS_VISIBLE LWS_EXTERN uint32_t +lws_ring_get_oldest_tail(struct lws_ring *ring); + +/** + * lws_ring_next_linear_insert_range(): used to write directly into the ring + * + * \param ring: the struct lws_ring to report on + * \param start: pointer to a void * set to the start of the next ringbuffer area + * \param bytes: pointer to a size_t set to the max length you may use from *start + * + * This provides a low-level, bytewise access directly into the ringbuffer + * allowing direct insertion of data without having to use a bounce buffer. + * + * The api reports the position and length of the next linear range that can + * be written in the ringbuffer, ie, up to the point it would wrap, and sets + * *start and *bytes accordingly. You can then, eg, directly read() into + * *start for up to *bytes, and use lws_ring_bump_head() to update the lws_ring + * with what you have done. + * + * Returns nonzero if no insertion is currently possible. + */ +LWS_VISIBLE LWS_EXTERN int +lws_ring_next_linear_insert_range(struct lws_ring *ring, void **start, + size_t *bytes); + +/** + * lws_ring_bump_head(): used to write directly into the ring + * + * \param ring: the struct lws_ring to operate on + * \param bytes: the number of bytes you inserted at the current head + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_bump_head(struct lws_ring *ring, size_t bytes); +///@} /** \defgroup sha SHA and B64 helpers * ##SHA and B64 helpers @@ -3880,7 +5284,7 @@ lws_b64_decode_string(const char *in, char *out, int out_size); * However for most cases, binding the cgi to http in and out, the default * lws implementation already does the right thing. */ -#ifdef LWS_WITH_CGI + enum lws_enum_stdinouterr { LWS_STDIN = 0, LWS_STDOUT = 1, @@ -3893,6 +5297,8 @@ enum lws_cgi_hdr_state { LCHS_LF1, LCHS_CR2, LCHS_LF2, + LHCS_RESPONSE, + LHCS_DUMP_HEADERS, LHCS_PAYLOAD, LCHS_SINGLE_0A, }; @@ -3905,13 +5311,14 @@ struct lws_cgi_args { int len; /**< length */ }; - +#ifdef LWS_WITH_CGI /** * lws_cgi: spawn network-connected cgi process * * \param wsi: connection to own the process * \param exec_array: array of "exec-name" "arg1" ... "argn" NULL - * \param script_uri_path_len: how many chars on the left of the uri are the path to the cgi + * \param script_uri_path_len: how many chars on the left of the uri are the + * path to the cgi, or -1 to spawn without URL-related env vars * \param timeout_secs: seconds script should be allowed to run * \param mp_cgienv: pvo list with per-vhost cgi options to put in env */ @@ -3935,6 +5342,16 @@ lws_cgi_write_split_stdout_headers(struct lws *wsi); */ LWS_VISIBLE LWS_EXTERN int lws_cgi_kill(struct lws *wsi); + +/** + * lws_cgi_get_stdwsi: get wsi for stdin, stdout, or stderr + * + * \param wsi: parent wsi that has cgi + * \param ch: which of LWS_STDIN, LWS_STDOUT or LWS_STDERR + */ +LWS_VISIBLE LWS_EXTERN struct lws * +lws_cgi_get_stdwsi(struct lws *wsi, enum lws_enum_stdinouterr ch); + #endif ///@} @@ -3961,24 +5378,85 @@ lws_cgi_kill(struct lws *wsi); * These provide platform-agnostic ways to deal with filesystem access in the * library and in the user code. */ + +#if defined(LWS_WITH_ESP32) +/* sdk preprocessor defs? compiler issue? gets confused with member names */ +#define LWS_FOP_OPEN _open +#define LWS_FOP_CLOSE _close +#define LWS_FOP_SEEK_CUR _seek_cur +#define LWS_FOP_READ _read +#define LWS_FOP_WRITE _write +#else +#define LWS_FOP_OPEN open +#define LWS_FOP_CLOSE close +#define LWS_FOP_SEEK_CUR seek_cur +#define LWS_FOP_READ read +#define LWS_FOP_WRITE write +#endif + +#define LWS_FOP_FLAGS_MASK ((1 << 23) - 1) +#define LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP (1 << 24) +#define LWS_FOP_FLAG_COMPR_IS_GZIP (1 << 25) +#define LWS_FOP_FLAG_MOD_TIME_VALID (1 << 26) +#define LWS_FOP_FLAG_VIRTUAL (1 << 27) + +struct lws_plat_file_ops; + +struct lws_fop_fd { + lws_filefd_type fd; + /**< real file descriptor related to the file... */ + const struct lws_plat_file_ops *fops; + /**< fops that apply to this fop_fd */ + void *filesystem_priv; + /**< ignored by lws; owned by the fops handlers */ + lws_filepos_t pos; + /**< generic "position in file" */ + lws_filepos_t len; + /**< generic "length of file" */ + lws_fop_flags_t flags; + /**< copy of the returned flags */ + uint32_t mod_time; + /**< optional "modification time of file", only valid if .open() + * set the LWS_FOP_FLAG_MOD_TIME_VALID flag */ +}; +typedef struct lws_fop_fd *lws_fop_fd_t; + +struct lws_fops_index { + const char *sig; /* NULL or vfs signature, eg, ".zip/" */ + uint8_t len; /* length of above string */ +}; + struct lws_plat_file_ops { - lws_filefd_type (*open)(struct lws *wsi, const char *filename, - unsigned long *filelen, int flags); + lws_fop_fd_t (*LWS_FOP_OPEN)(const struct lws_plat_file_ops *fops, + const char *filename, const char *vpath, + lws_fop_flags_t *flags); /**< Open file (always binary access if plat supports it) - * filelen is filled on exit to be the length of the file - * flags should be set to O_RDONLY or O_RDWR */ - int (*close)(struct lws *wsi, lws_filefd_type fd); - /**< close file */ - unsigned long (*seek_cur)(struct lws *wsi, lws_filefd_type fd, - long offset_from_cur_pos); + * vpath may be NULL, or if the fops understands it, the point at which + * the filename's virtual part starts. + * *flags & LWS_FOP_FLAGS_MASK should be set to O_RDONLY or O_RDWR. + * If the file may be gzip-compressed, + * LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP is set. If it actually is + * gzip-compressed, then the open handler should OR + * LWS_FOP_FLAG_COMPR_IS_GZIP on to *flags before returning. + */ + int (*LWS_FOP_CLOSE)(lws_fop_fd_t *fop_fd); + /**< close file AND set the pointer to NULL */ + lws_fileofs_t (*LWS_FOP_SEEK_CUR)(lws_fop_fd_t fop_fd, + lws_fileofs_t offset_from_cur_pos); /**< seek from current position */ - int (*read)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len); + int (*LWS_FOP_READ)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); /**< Read from file, on exit *amount is set to amount actually read */ - int (*write)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len); + int (*LWS_FOP_WRITE)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); /**< Write to file, on exit *amount is set to amount actually written */ + struct lws_fops_index fi[3]; + /**< vfs path signatures implying use of this fops */ + + const struct lws_plat_file_ops *next; + /**< NULL or next fops in list */ + /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility */ }; @@ -3990,84 +5468,144 @@ struct lws_plat_file_ops { */ LWS_VISIBLE LWS_EXTERN struct lws_plat_file_ops * LWS_WARN_UNUSED_RESULT lws_get_fops(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN void +lws_set_fops(struct lws_context *context, const struct lws_plat_file_ops *fops); +/** + * lws_vfs_tell() - get current file position + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT +lws_vfs_tell(lws_fop_fd_t fop_fd); +/** + * lws_vfs_get_length() - get current file total length in bytes + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT +lws_vfs_get_length(lws_fop_fd_t fop_fd); +/** + * lws_vfs_get_mod_time() - get time file last modified + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN uint32_t LWS_WARN_UNUSED_RESULT +lws_vfs_get_mod_time(lws_fop_fd_t fop_fd); +/** + * lws_vfs_file_seek_set() - seek relative to start of file + * + * \param fop_fd: fop_fd we are seeking in + * \param offset: offset from start of file + */ +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +lws_vfs_file_seek_set(lws_fop_fd_t fop_fd, lws_fileofs_t offset); +/** + * lws_vfs_file_seek_end() - seek relative to end of file + * + * \param fop_fd: fop_fd we are seeking in + * \param offset: offset from start of file + */ +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +lws_vfs_file_seek_end(lws_fop_fd_t fop_fd, lws_fileofs_t offset); + +extern struct lws_plat_file_ops fops_zip; /** - * lws_plat_file_open() - file open operations + * lws_plat_file_open() - open vfs filepath * - * \param wsi: connection doing the opening - * \param filename: filename to open - * \param filelen: length of file (filled in by call) - * \param flags: open flags + * \param fops: file ops struct that applies to this descriptor + * \param vfs_path: filename to open + * \param flags: pointer to open flags + * + * The vfs_path is scanned for known fops signatures, and the open directed + * to any matching fops open. + * + * User code should use this api to perform vfs opens. + * + * returns semi-opaque handle */ -static LWS_INLINE lws_filefd_type LWS_WARN_UNUSED_RESULT -lws_plat_file_open(struct lws *wsi, const char *filename, - unsigned long *filelen, int flags) -{ - return lws_get_fops(lws_get_context(wsi))->open(wsi, filename, - filelen, flags); -} +LWS_VISIBLE LWS_EXTERN lws_fop_fd_t LWS_WARN_UNUSED_RESULT +lws_vfs_file_open(const struct lws_plat_file_ops *fops, const char *vfs_path, + lws_fop_flags_t *flags); /** * lws_plat_file_close() - close file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle to close */ static LWS_INLINE int -lws_plat_file_close(struct lws *wsi, lws_filefd_type fd) +lws_vfs_file_close(lws_fop_fd_t *fop_fd) { - return lws_get_fops(lws_get_context(wsi))->close(wsi, fd); + return (*fop_fd)->fops->LWS_FOP_CLOSE(fop_fd); } /** * lws_plat_file_seek_cur() - close file * - * \param wsi: connection opened by - * \param fd: file descriptor + * + * \param fop_fd: file handle * \param offset: position to seek to */ -static LWS_INLINE unsigned long -lws_plat_file_seek_cur(struct lws *wsi, lws_filefd_type fd, long offset) +static LWS_INLINE lws_fileofs_t +lws_vfs_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset) { - return lws_get_fops(lws_get_context(wsi))->seek_cur(wsi, fd, offset); + return fop_fd->fops->LWS_FOP_SEEK_CUR(fop_fd, offset); } /** * lws_plat_file_read() - read from file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle * \param amount: how much to read (rewritten by call) * \param buf: buffer to write to * \param len: max length */ static LWS_INLINE int LWS_WARN_UNUSED_RESULT -lws_plat_file_read(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len) +lws_vfs_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len) { - return lws_get_fops(lws_get_context(wsi))->read(wsi, fd, amount, buf, - len); + return fop_fd->fops->LWS_FOP_READ(fop_fd, amount, buf, len); } /** * lws_plat_file_write() - write from file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle * \param amount: how much to write (rewritten by call) * \param buf: buffer to read from * \param len: max length */ static LWS_INLINE int LWS_WARN_UNUSED_RESULT -lws_plat_file_write(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len) +lws_vfs_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len) { - return lws_get_fops(lws_get_context(wsi))->write(wsi, fd, amount, buf, - len); + return fop_fd->fops->LWS_FOP_WRITE(fop_fd, amount, buf, len); } + +/* these are the platform file operations implementations... they can + * be called directly and used in fops arrays + */ + +LWS_VISIBLE LWS_EXTERN lws_fop_fd_t +_lws_plat_file_open(const struct lws_plat_file_ops *fops, const char *filename, + const char *vpath, lws_fop_flags_t *flags); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_close(lws_fop_fd_t *fop_fd); +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +_lws_plat_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); + +LWS_VISIBLE LWS_EXTERN int +lws_alloc_vfs_file(struct lws_context *context, const char *filename, + uint8_t **buf, lws_filepos_t *amount); //@} -/** \defgroup smtp - * \ingroup lwsapi +/** \defgroup smtp SMTP related functions * ##SMTP related functions + * \ingroup lwsapi * * These apis let you communicate with a local SMTP server to send email from * lws. It handles all the SMTP sequencing and protocol actions. @@ -4189,6 +5727,59 @@ lws_email_destroy(struct lws_email *email); #endif //@} +/* + * Stats are all uint64_t numbers that start at 0. + * Index names here have the convention + * + * _C_ counter + * _B_ byte count + * _MS_ millisecond count + */ + +enum { + LWSSTATS_C_CONNECTIONS, /**< count incoming connections */ + LWSSTATS_C_API_CLOSE, /**< count calls to close api */ + LWSSTATS_C_API_READ, /**< count calls to read from socket api */ + LWSSTATS_C_API_LWS_WRITE, /**< count calls to lws_write API */ + LWSSTATS_C_API_WRITE, /**< count calls to write API */ + LWSSTATS_C_WRITE_PARTIALS, /**< count of partial writes */ + LWSSTATS_C_WRITEABLE_CB_REQ, /**< count of writable callback requests */ + LWSSTATS_C_WRITEABLE_CB_EFF_REQ, /**< count of effective writable callback requests */ + LWSSTATS_C_WRITEABLE_CB, /**< count of writable callbacks */ + LWSSTATS_C_SSL_CONNECTIONS_FAILED, /**< count of failed SSL connections */ + LWSSTATS_C_SSL_CONNECTIONS_ACCEPTED, /**< count of accepted SSL connections */ + LWSSTATS_C_SSL_CONNECTIONS_ACCEPT_SPIN, /**< count of SSL_accept() attempts */ + LWSSTATS_C_SSL_CONNS_HAD_RX, /**< count of accepted SSL conns that have had some RX */ + LWSSTATS_C_TIMEOUTS, /**< count of timed-out connections */ + LWSSTATS_C_SERVICE_ENTRY, /**< count of entries to lws service loop */ + LWSSTATS_B_READ, /**< aggregate bytes read */ + LWSSTATS_B_WRITE, /**< aggregate bytes written */ + LWSSTATS_B_PARTIALS_ACCEPTED_PARTS, /**< aggreate of size of accepted write data from new partials */ + LWSSTATS_MS_SSL_CONNECTIONS_ACCEPTED_DELAY, /**< aggregate delay in accepting connection */ + LWSSTATS_MS_WRITABLE_DELAY, /**< aggregate delay between asking for writable and getting cb */ + LWSSTATS_MS_WORST_WRITABLE_DELAY, /**< single worst delay between asking for writable and getting cb */ + LWSSTATS_MS_SSL_RX_DELAY, /**< aggregate delay between ssl accept complete and first RX */ + LWSSTATS_C_PEER_LIMIT_AH_DENIED, /**< number of times we would have given an ah but for the peer limit */ + LWSSTATS_C_PEER_LIMIT_WSI_DENIED, /**< number of times we would have given a wsi but for the peer limit */ + + /* Add new things just above here ---^ + * This is part of the ABI, don't needlessly break compatibility */ + LWSSTATS_SIZE +}; + +#if defined(LWS_WITH_STATS) + +LWS_VISIBLE LWS_EXTERN uint64_t +lws_stats_get(struct lws_context *context, int index); +LWS_VISIBLE LWS_EXTERN void +lws_stats_log_dump(struct lws_context *context); +#else +static LWS_INLINE uint64_t +lws_stats_get(struct lws_context *context, int index) { return 0; } +static LWS_INLINE void +lws_stats_log_dump(struct lws_context *context) { } +#endif + #ifdef __cplusplus } #endif diff --git a/android/arm64-v8a/include/websockets/lws_config.h b/android/arm64-v8a/include/websockets/lws_config.h index bf49e46e..8e894aa6 100644 --- a/android/arm64-v8a/include/websockets/lws_config.h +++ b/android/arm64-v8a/include/websockets/lws_config.h @@ -6,7 +6,7 @@ #endif #endif -#define LWS_INSTALL_DATADIR "/Users/james/Project/cocos2d-x-3rd-party-libs-src/contrib/install-android/arm/share" +#define LWS_INSTALL_DATADIR "/Users/cocos/Github/cocos2d-x-3rd-party-libs-src/contrib/install-android/arm64/share" /* Define to 1 to use wolfSSL/CyaSSL as a replacement for OpenSSL. * LWS_OPENSSL_SUPPORT needs to be set also for this to work. */ @@ -15,25 +15,27 @@ /* Also define to 1 (in addition to USE_WOLFSSL) when using the (older) CyaSSL library */ /* #undef USE_OLD_CYASSL */ +/* #undef LWS_WITH_BORINGSSL */ -/* #undef LWS_USE_MBEDTLS */ -/* #undef LWS_USE_POLARSSL */ +/* #undef LWS_WITH_MBEDTLS */ +/* #undef LWS_WITH_POLARSSL */ /* #undef LWS_WITH_ESP8266 */ +/* #undef LWS_WITH_ESP32 */ /* #undef LWS_WITH_PLUGINS */ /* #undef LWS_WITH_NO_LOGS */ /* The Libwebsocket version */ -#define LWS_LIBRARY_VERSION "2.1.0" +#define LWS_LIBRARY_VERSION "2.4.2" #define LWS_LIBRARY_VERSION_MAJOR 2 -#define LWS_LIBRARY_VERSION_MINOR 1 -#define LWS_LIBRARY_VERSION_PATCH 0 +#define LWS_LIBRARY_VERSION_MINOR 4 +#define LWS_LIBRARY_VERSION_PATCH 2 /* LWS_LIBRARY_VERSION_NUMBER looks like 1005001 for e.g. version 1.5.1 */ #define LWS_LIBRARY_VERSION_NUMBER (LWS_LIBRARY_VERSION_MAJOR*1000000)+(LWS_LIBRARY_VERSION_MINOR*1000)+LWS_LIBRARY_VERSION_PATCH /* The current git commit hash that we're building from */ -#define LWS_BUILD_HASH "james@James-Chen.local-v3.4-138-g60b1a6f" +#define LWS_BUILD_HASH "cocos@cocoss-MacBook-Pro.local-v3.4-182-g408ba56" /* Build with OpenSSL support */ #define LWS_OPENSSL_SUPPORT @@ -48,19 +50,22 @@ /* #undef LWS_NO_EXTENSIONS */ /* Enable libev io loop */ -/* #undef LWS_USE_LIBEV */ +/* #undef LWS_WITH_LIBEV */ /* Enable libuv io loop */ -/* #undef LWS_USE_LIBUV */ +#define LWS_WITH_LIBUV + +/* Enable libevent io loop */ +/* #undef LWS_WITH_LIBEVENT */ /* Build with support for ipv6 */ -#define LWS_USE_IPV6 +#define LWS_WITH_IPV6 /* Build with support for UNIX domain socket */ -/* #undef LWS_USE_UNIX_SOCK */ +/* #undef LWS_WITH_UNIX_SOCK */ /* Build with support for HTTP2 */ -/* #undef LWS_USE_HTTP2 */ +/* #undef LWS_WITH_HTTP2 */ /* Turn on latency measuring code */ /* #undef LWS_LATENCY */ @@ -69,7 +74,7 @@ #define LWS_NO_DAEMONIZE /* Build without server support */ -#define LWS_NO_SERVER +/* #undef LWS_NO_SERVER */ /* Build without client support */ /* #undef LWS_NO_CLIENT */ @@ -85,8 +90,9 @@ /* SSL server using ECDH certificate */ /* #undef LWS_SSL_SERVER_WITH_ECDH_CERT */ -#define LWS_HAVE_SSL_CTX_set1_param -#define LWS_HAVE_X509_VERIFY_PARAM_set1_host +/* #undef LWS_HAVE_SSL_CTX_set1_param */ +/* #undef LWS_HAVE_X509_VERIFY_PARAM_set1_host */ +/* #undef LWS_HAVE_RSA_SET0_KEY */ /* #undef LWS_HAVE_UV_VERSION_H */ @@ -99,14 +105,18 @@ /* HTTP Proxy support */ /* #undef LWS_WITH_HTTP_PROXY */ +/* HTTP Ranges support */ +#define LWS_WITH_RANGES + /* Http access log support */ /* #undef LWS_WITH_ACCESS_LOG */ /* #undef LWS_WITH_SERVER_STATUS */ /* #undef LWS_WITH_STATEFUL_URLDECODE */ +/* #undef LWS_WITH_PEER_LIMITS */ /* Maximum supported service threads */ -#define LWS_MAX_SMP 32 +#define LWS_MAX_SMP 1 /* Lightweight JSON Parser */ /* #undef LWS_WITH_LEJP */ @@ -114,4 +124,33 @@ /* SMTP */ /* #undef LWS_WITH_SMTP */ +/* OPTEE */ +/* #undef LWS_PLAT_OPTEE */ + +/* ZIP FOPS */ +#define LWS_WITH_ZIP_FOPS +#define LWS_HAVE_STDINT_H + +/* #undef LWS_AVOID_SIGPIPE_IGN */ + +/* #undef LWS_FALLBACK_GETHOSTBYNAME */ + +/* #undef LWS_WITH_STATS */ +/* #undef LWS_WITH_SOCKS5 */ + +#define LWS_HAVE_SYS_CAPABILITY_H +/* #undef LWS_HAVE_LIBCAP */ + +#define LWS_HAVE_ATOLL +/* #undef LWS_HAVE__ATOI64 */ +/* #undef LWS_HAVE__STAT32I64 */ + +/* OpenSSL various APIs */ + +/* #undef LWS_HAVE_TLS_CLIENT_METHOD */ +/* #undef LWS_HAVE_TLSV1_2_CLIENT_METHOD */ +/* #undef LWS_HAVE_SSL_SET_INFO_CALLBACK */ + +#define LWS_HAS_INTPTR_T + diff --git a/android/arm64-v8a/libwebsockets.a b/android/arm64-v8a/libwebsockets.a index abcd9586e86f62c4b49baa6b24767e80bbf4ab8c..8bd27d4f2a63ea6f0ab9b8624bc231347baf5ca4 100644 GIT binary patch literal 379906 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.W6U%z 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 literal 218044 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 #include -#ifdef MBED_OPERATORS -#include "mbed-drivers/mbed.h" -#include "sal-iface-eth/EthernetInterface.h" -#include "sockets/TCPListener.h" -#include "sal-stack-lwip/lwipv4_init.h" - -namespace { -} -using namespace mbed::Sockets::v0; - - -struct sockaddr_in; -struct lws; - -class lws_conn { - public: - lws_conn(): - ts(NULL), - wsi(NULL), - writeable(1), - awaiting_on_writeable(0) - { - } - -public: - void set_wsi(struct lws *_wsi) { wsi = _wsi; } - int actual_onRX(Socket *s); - void onRX(Socket *s); - void onError(Socket *s, socket_error_t err); - void onDisconnect(TCPStream *s); - void onSent(Socket *s, uint16_t len); - void serialized_writeable(struct lws *wsi); - -public: - TCPStream *ts; - -public: - struct lws *wsi; - char writeable; - char awaiting_on_writeable; -}; - -class lws_conn_listener : lws_conn { -public: - lws_conn_listener(): - srv(SOCKET_STACK_LWIP_IPV4) - { - srv.setOnError(TCPStream::ErrorHandler_t(this, - &lws_conn_listener::onError)); - } - - void start(const uint16_t port); /**< start listening */ - -protected: - void onRX(Socket *s); /**< incoming data ready */ - void onError(Socket *s, socket_error_t err); /**< if error occurs */ - void onIncoming(TCPListener *s, void *impl); /**< new connection */ - void onDisconnect(TCPStream *s); /**< disconnection */ - -public: - TCPListener srv; -}; - -#endif - +# extern "C" { #else #include #endif -#if defined(MBED_OPERATORS) || defined(LWS_WITH_ESP8266) +#include "lws_config.h" + +/* + * CARE: everything using cmake defines needs to be below here + */ + +#if defined(LWS_WITH_ESP8266) struct sockaddr_in; #define LWS_POSIX 0 #else #define LWS_POSIX 1 #endif -#include "lws_config.h" +#if defined(LWS_HAS_INTPTR_T) +#include +#define lws_intptr_t intptr_t +#else +typedef unsigned long long lws_intptr_t; +#endif #if defined(WIN32) || defined(_WIN32) #ifndef WIN32_LEAN_AND_MEAN @@ -125,7 +72,7 @@ struct sockaddr_in; // Visual studio older than 2015 and WIN_CE has only _stricmp #if (defined(_MSC_VER) && _MSC_VER < 1900) || defined(_WIN32_WCE) #define strcasecmp _stricmp -#else +#elif !defined(__MINGW32__) #define strcasecmp stricmp #endif #define getdtablesize() 30000 @@ -134,6 +81,7 @@ struct sockaddr_in; #define LWS_VISIBLE #define LWS_WARN_UNUSED_RESULT #define LWS_WARN_DEPRECATED +#define LWS_FORMAT(string_index) #ifdef LWS_DLL #ifdef LWS_INTERNAL @@ -147,8 +95,11 @@ struct sockaddr_in; #define LWS_INVALID_FILE INVALID_HANDLE_VALUE #define LWS_O_RDONLY _O_RDONLY +#define LWS_O_WRONLY _O_WRONLY +#define LWS_O_CREAT _O_CREAT +#define LWS_O_TRUNC _O_TRUNC -#if !defined(_MSC_VER) || _MSC_VER < 1900 /* Visual Studio 2015 already defines this in */ +#if !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER < 1900) /* Visual Studio 2015 already defines this in */ #define lws_snprintf _snprintf #endif @@ -156,8 +107,15 @@ struct sockaddr_in; #define __func__ __FUNCTION__ #endif +#if !defined(__MINGW32__) &&(!defined(_MSC_VER) || _MSC_VER < 1900) && !defined(snprintf) +#define snprintf(buf,len, format,...) _snprintf_s(buf, len,len, format, __VA_ARGS__) +#endif + #else /* NOT WIN32 */ #include +#if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) +#include +#endif #if defined(__NetBSD__) || defined(__FreeBSD__) #include @@ -165,14 +123,21 @@ struct sockaddr_in; #define LWS_INLINE inline #define LWS_O_RDONLY O_RDONLY +#define LWS_O_WRONLY O_WRONLY +#define LWS_O_CREAT O_CREAT +#define LWS_O_TRUNC O_TRUNC -#if !defined(MBED_OPERATORS) && !defined(LWS_WITH_ESP8266) +#if !defined(LWS_WITH_ESP8266) && !defined(OPTEE_TA) && !defined(LWS_WITH_ESP32) #include #include #define LWS_INVALID_FILE -1 #else -#define getdtablesize() (20) +#define getdtablesize() (30) +#if defined(LWS_WITH_ESP32) #define LWS_INVALID_FILE NULL +#else +#define LWS_INVALID_FILE NULL +#endif #endif #if defined(__GNUC__) @@ -186,10 +151,12 @@ struct sockaddr_in; #define LWS_VISIBLE __attribute__((visibility("default"))) #define LWS_WARN_DEPRECATED __attribute__ ((deprecated)) +#define LWS_FORMAT(string_index) __attribute__ ((format(printf, string_index, string_index+1))) #else #define LWS_VISIBLE #define LWS_WARN_UNUSED_RESULT #define LWS_WARN_DEPRECATED +#define LWS_FORMAT(string_index) #endif #if defined(__ANDROID__) @@ -199,15 +166,18 @@ struct sockaddr_in; #endif -#ifdef LWS_USE_LIBEV +#ifdef LWS_WITH_LIBEV #include -#endif /* LWS_USE_LIBEV */ -#ifdef LWS_USE_LIBUV +#endif /* LWS_WITH_LIBEV */ +#ifdef LWS_WITH_LIBUV #include #ifdef LWS_HAVE_UV_VERSION_H #include #endif -#endif /* LWS_USE_LIBUV */ +#endif /* LWS_WITH_LIBUV */ +#ifdef LWS_WITH_LIBEVENT +#include +#endif /* LWS_WITH_LIBEVENT */ #ifndef LWS_EXTERN #define LWS_EXTERN extern @@ -216,9 +186,11 @@ struct sockaddr_in; #ifdef _WIN32 #define random rand #else +#if !defined(OPTEE_TA) #include #include #endif +#endif #ifdef LWS_OPENSSL_SUPPORT @@ -231,28 +203,24 @@ struct sockaddr_in; #include #endif /* not USE_OLD_CYASSL */ #else -#if defined(LWS_USE_POLARSSL) -#include -struct lws_polarssl_context { - x509_crt ca; /**< ca */ - x509_crt certificate; /**< cert */ - rsa_context key; /**< key */ -}; -typedef struct lws_polarssl_context SSL_CTX; -typedef ssl_context SSL; -#else -#if defined(LWS_USE_MBEDTLS) +#if defined(LWS_WITH_MBEDTLS) +#if defined(LWS_WITH_ESP32) +/* this filepath is passed to us but without quotes or <> */ +#undef MBEDTLS_CONFIG_FILE +#define MBEDTLS_CONFIG_FILE +#endif #include -#else +#endif #include +#if !defined(LWS_WITH_MBEDTLS) #include -#endif /* not USE_MBEDTLS */ -#endif /* not USE_POLARSSL */ +#endif #endif /* not USE_WOLFSSL */ #endif #define CONTEXT_PORT_NO_LISTEN -1 +#define CONTEXT_PORT_NO_LISTEN_SERVER -2 /** \defgroup log Logging * @@ -277,11 +245,12 @@ enum lws_log_levels { LLL_EXT = 1 << 7, LLL_CLIENT = 1 << 8, LLL_LATENCY = 1 << 9, + LLL_USER = 1 << 10, - LLL_COUNT = 10 /* set to count of valid flags */ + LLL_COUNT = 11 /* set to count of valid flags */ }; -LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...); +LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...) LWS_FORMAT(2); LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl); /** * lwsl_timestamp: generate logging timestamp string @@ -295,15 +264,18 @@ LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl LWS_VISIBLE LWS_EXTERN int lwsl_timestamp(int level, char *p, int len); +/* these guys are unconditionally included */ + #define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__) +#define lwsl_user(...) _lws_log(LLL_USER, __VA_ARGS__) #if !defined(LWS_WITH_NO_LOGS) -/* notice, warn and log are always compiled in */ +/* notice and warn are usually included by being compiled in */ #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) #endif /* - * weaker logging can be deselected at configure time using --disable-debug + * weaker logging can be deselected by telling CMake to build in RELEASE mode * that gets rid of the overhead of checking while keeping _warn and _err * active */ @@ -315,7 +287,6 @@ lwsl_timestamp(int level, char *p, int len); #ifdef _DEBUG #if defined(LWS_WITH_NO_LOGS) /* notice, warn and log are always compiled in */ -//#define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__) #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) #endif @@ -326,17 +297,9 @@ lwsl_timestamp(int level, char *p, int len); #define lwsl_ext(...) _lws_log(LLL_EXT, __VA_ARGS__) #define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__) #define lwsl_latency(...) _lws_log(LLL_LATENCY, __VA_ARGS__) -/** - * lwsl_hexdump() - helper to hexdump a buffer (DEBUG builds only) - * - * \param buf: buffer start to dump - * \param len: length of buffer to dump - */ -LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); #else /* no debug */ #if defined(LWS_WITH_NO_LOGS) -//#define lwsl_err(...) do {} while(0) #define lwsl_warn(...) do {} while(0) #define lwsl_notice(...) do {} while(0) #endif @@ -347,10 +310,44 @@ LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); #define lwsl_ext(...) do {} while(0) #define lwsl_client(...) do {} while(0) #define lwsl_latency(...) do {} while(0) -#define lwsl_hexdump(a, b) #endif +/** + * lwsl_hexdump() - helper to hexdump a buffer + * + * \param level: one of LLL_ constants + * \param buf: buffer start to dump + * \param len: length of buffer to dump + * + * If \p level is visible, does a nice hexdump -C style dump of \p buf for + * \p len bytes. This can be extremely convenient while debugging. + */ +LWS_VISIBLE LWS_EXTERN void +lwsl_hexdump_level(int level, const void *vbuf, size_t len); + +/** + * lwsl_hexdump() - helper to hexdump a buffer (DEBUG builds only) + * + * \param buf: buffer start to dump + * \param len: length of buffer to dump + * + * Calls through to lwsl_hexdump_level(LLL_DEBUG, ... for compatability. + * It's better to use lwsl_hexdump_level(level, ... directly so you can control + * the visibility. + */ +LWS_VISIBLE LWS_EXTERN void +lwsl_hexdump(const void *buf, size_t len); + +/** + * lws_is_be() - returns nonzero if the platform is Big Endian + */ +static LWS_INLINE int lws_is_be(void) { + const int probe = ~0xff; + + return *(const char *)&probe; +} + /** * lws_set_log_level() - Set the logging bitfield * \param level: OR together the LLL_ debug contexts you want output from @@ -359,7 +356,8 @@ LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); * the default stderr one. * * log level defaults to "err", "warn" and "notice" contexts enabled and - * emission on stderr. + * emission on stderr. If stderr is a tty (according to isatty()) then + * the output is coloured according to the log level using ANSI escapes. */ LWS_VISIBLE LWS_EXTERN void lws_set_log_level(int level, @@ -377,6 +375,18 @@ lws_set_log_level(int level, LWS_VISIBLE LWS_EXTERN void lwsl_emit_syslog(int level, const char *line); +/** + * lwsl_visible() - returns true if the log level should be printed + * + * \param level: one of LLL_ log level indexes + * + * This is useful if you have to do work to generate the log content, you + * can skip the work if the log level used to print it is not actually + * enabled at runtime. + */ +LWS_VISIBLE LWS_EXTERN int +lwsl_visible(int level); + ///@} @@ -423,30 +433,7 @@ struct lws_pollfd { #define LWS_POLLOUT (FD_WRITE) #else -#if defined(MBED_OPERATORS) -/* it's a class lws_conn * */ -typedef void * lws_sockfd_type; -typedef void * lws_filefd_type; -#define lws_sockfd_valid(sfd) (!!sfd) -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 -struct lws; - -void * mbed3_create_tcp_stream_socket(void); -void mbed3_delete_tcp_stream_socket(void *sockfd); -void mbed3_tcp_stream_bind(void *sock, int port, struct lws *); -void mbed3_tcp_stream_accept(void *sock, struct lws *); -#else #if defined(LWS_WITH_ESP8266) #include @@ -476,7 +463,7 @@ void esp8266_tcp_stream_accept(lws_sockfd_type fd, struct lws *wsi); #include #include "ets_sys.h" -int ets_snprintf(char *str, size_t size, const char *format, ...); +int ets_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3); #define snprintf ets_snprintf typedef os_timer_t uv_timer_t; @@ -512,6 +499,206 @@ static inline void uv_timer_stop(uv_timer_t *t) os_timer_disarm(t); } +#else +#if defined(LWS_WITH_ESP32) + +typedef int lws_sockfd_type; +typedef int lws_filefd_type; +#define lws_sockfd_valid(sfd) (sfd >= 0) +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 + +#include +#include +#include +#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" + +#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 inline void uv_timer_init(void *l, uv_timer_t *t) +{ + (void)l; + *t = NULL; +} + +extern void esp32_uvtimer_cb(TimerHandle_t t); + +static 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 inline void uv_timer_stop(uv_timer_t *t) +{ + xTimerStop(*t, 0); +} + +static inline void uv_close(uv_handle_t *h, void *v) +{ + free(pvTimerGetTimerID((uv_timer_t)h)); + xTimerDelete(*(uv_timer_t *)h, 0); +} + +/* ESP32 helper declarations */ + +#include +#include + +#define LWS_PLUGIN_STATIC +#define LWS_MAGIC_REBOOT_TYPE_ADS 0x50001ffc +#define LWS_MAGIC_REBOOT_TYPE_REQ_FACTORY 0xb00bcafe +#define LWS_MAGIC_REBOOT_TYPE_FORCED_FACTORY 0xfaceb00b +#define LWS_MAGIC_REBOOT_TYPE_FORCED_FACTORY_BUTTON 0xf0cedfac + + +/* user code provides these */ + +extern void +lws_esp32_identify_physical_device(void); + +/* lws-plat-esp32 provides these */ + +typedef void (*lws_cb_scan_done)(uint16_t count, wifi_ap_record_t *recs, void *arg); + +enum genled_state { + LWSESP32_GENLED__INIT, + LWSESP32_GENLED__LOST_NETWORK, + LWSESP32_GENLED__NO_NETWORK, + LWSESP32_GENLED__CONN_AP, + LWSESP32_GENLED__GOT_IP, + LWSESP32_GENLED__OK, +}; + +struct lws_group_member { + struct lws_group_member *next; + uint64_t last_seen; + char model[16]; + char role[16]; + char host[32]; + char mac[20]; + int width, height; + struct ip4_addr addr; + struct ip6_addr addrv6; + uint8_t flags; +}; + +#define LWS_SYSTEM_GROUP_MEMBER_ADD 1 +#define LWS_SYSTEM_GROUP_MEMBER_CHANGE 2 +#define LWS_SYSTEM_GROUP_MEMBER_REMOVE 3 + +#define LWS_GROUP_FLAG_SELF 1 + +struct lws_esp32 { + char sta_ip[16]; + char sta_mask[16]; + char sta_gw[16]; + char serial[16]; + char opts[16]; + char model[16]; + char group[16]; + char role[16]; + char ssid[4][16]; + char password[4][32]; + char active_ssid[32]; + char access_pw[16]; + char hostname[32]; + char mac[20]; + mdns_server_t *mdns; + char region; + char inet; + char conn_ap; + + enum genled_state genled; + uint64_t genled_t; + + lws_cb_scan_done scan_consumer; + void *scan_consumer_arg; + struct lws_group_member *first; + int extant_group_members; +}; + +struct lws_esp32_image { + uint32_t romfs; + uint32_t romfs_len; + uint32_t json; + uint32_t json_len; +}; + +extern struct lws_esp32 lws_esp32; +struct lws_vhost; + +extern esp_err_t +lws_esp32_event_passthru(void *ctx, system_event_t *event); +extern void +lws_esp32_wlan_config(void); +extern void +lws_esp32_wlan_start_ap(void); +extern void +lws_esp32_wlan_start_station(void); +struct lws_context_creation_info; +extern void +lws_esp32_set_creation_defaults(struct lws_context_creation_info *info); +extern struct lws_context * +lws_esp32_init(struct lws_context_creation_info *, struct lws_vhost **pvh); +extern int +lws_esp32_wlan_nvs_get(int retry); +extern esp_err_t +lws_nvs_set_str(nvs_handle handle, const char* key, const char* value); +extern void +lws_esp32_restart_guided(uint32_t type); +extern const esp_partition_t * +lws_esp_ota_get_boot_partition(void); +extern int +lws_esp32_get_image_info(const esp_partition_t *part, struct lws_esp32_image *i, char *json, int json_len); +extern int +lws_esp32_leds_network_indication(void); + +extern uint32_t lws_esp32_get_reboot_type(void); +extern uint16_t lws_esp32_sine_interp(int n); + +/* required in external code by esp32 plat (may just return if no leds) */ +extern void lws_esp32_leds_timer_cb(TimerHandle_t th); #else typedef int lws_sockfd_type; typedef int lws_filefd_type; @@ -525,6 +712,36 @@ typedef int lws_filefd_type; #define LWS_POLLOUT (POLLOUT) #endif + +#if (defined(WIN32) || defined(_WIN32)) && !defined(__MINGW32__) +/* ... */ +#define ssize_t SSIZE_T +#endif + +#if defined(WIN32) && defined(LWS_HAVE__STAT32I64) +#include +#include +#endif + +#if defined(LWS_HAVE_STDINT_H) +#include +#else +#if defined(WIN32) || defined(_WIN32) +/* !!! >:-[ */ +typedef unsigned __int32 uint32_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int8 uint8_t; +#else +typedef unsigned int uint32_t; +typedef unsigned short uint16_t; +typedef unsigned char uint8_t; +#endif +#endif + +typedef unsigned long long lws_filepos_t; +typedef long long lws_fileofs_t; +typedef uint32_t lws_fop_flags_t; + /** struct lws_pollargs - argument structure for all external poll related calls * passed in via 'in' */ struct lws_pollargs { @@ -641,6 +858,38 @@ struct lws_context; /* needed even with extensions disabled for create context */ struct lws_extension; +/*! \defgroup lwsmeta lws-meta + * + * ##lws-meta protocol + * + * The protocol wraps other muxed connections inside one tcp connection. + * + * Commands are assigned from 0x41 up (so they are valid unicode) + */ +///@{ + +enum lws_meta_commands { + LWS_META_CMD_OPEN_SUBCHANNEL = 'A', + /**< Client requests to open new subchannel + */ + LWS_META_CMD_OPEN_RESULT, + /**< Result of client request to open new subchannel */ + LWS_META_CMD_CLOSE_NOTIFY, + /**< Notification of subchannel closure */ + LWS_META_CMD_CLOSE_RQ, + /**< client requests to close a subchannel */ + LWS_META_CMD_WRITE, + /**< connection writes something to specific channel index */ + + /****** add new things just above ---^ ******/ +}; + +/* channel numbers are transported offset by 0x20 so they are valid unicode */ + +#define LWS_META_TRANSPORT_OFFSET 0x20 + +///@} + /*! \defgroup usercb User Callback * * ##User protocol callback @@ -654,6 +903,10 @@ struct lws_extension; */ ///@{ +struct lws_ssl_info { + int where; + int ret; +}; /* * NOTE: These public enums are part of the abi. If you want to add one, @@ -820,7 +1073,7 @@ enum lws_callback_reasons { LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS = 22, /**< if configured for * including OpenSSL support, this callback allows your user code - * to load extra certifcates into the server which allow it to + * to load extra certificates into the server which allow it to * verify the validity of certificates returned by clients. user * is the server's OpenSSL SSL_CTX* */ LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION = 23, @@ -874,8 +1127,7 @@ enum lws_callback_reasons { * and with in being the extension name, len is 0 and user is * valid. Note though at this time the ESTABLISHED callback hasn't * happened yet so if you initialize user content there, user - * content during this callback might not be useful for anything. - * Notice this callback comes to protocols[0]. */ + * content during this callback might not be useful for anything. */ LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED = 26, /**< When a client * connection is being prepared to start a handshake to a server, @@ -966,45 +1218,127 @@ enum lws_callback_reasons { * connection. */ LWS_CALLBACK_WS_EXT_DEFAULTS = 39, - /**< */ + /**< Gives client connections an opportunity to adjust negotiated + * extension defaults. `user` is the extension name that was + * negotiated (eg, "permessage-deflate"). `in` points to a + * buffer and `len` is the buffer size. The user callback can + * set the buffer to a string describing options the extension + * should parse. Or just ignore for defaults. */ LWS_CALLBACK_CGI = 40, - /**< */ + /**< CGI: CGI IO events on stdin / out / err are sent here on + * protocols[0]. The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. */ LWS_CALLBACK_CGI_TERMINATED = 41, - /**< */ + /**< CGI: The related CGI process ended, this is called before + * the wsi is closed. Used to, eg, terminate chunking. + * The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. The child PID that terminated is in len. */ LWS_CALLBACK_CGI_STDIN_DATA = 42, - /**< */ + /**< CGI: Data is, to be sent to the CGI process stdin, eg from + * a POST body. The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. */ LWS_CALLBACK_CGI_STDIN_COMPLETED = 43, - /**< */ + /**< CGI: no more stdin is coming. The provided + * `lws_callback_http_dummy()` handles this and the callback + * should be directed there if you use CGI. */ LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44, - /**< */ + /**< The HTTP client connection has succeeded, and is now + * connected to the server */ LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45, - /**< */ + /**< The HTTP client connection is closing */ LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46, - /**< */ + /**< This simply indicates data was received on the HTTP client + * connection. It does NOT drain or provide the data. + * This exists to neatly allow a proxying type situation, + * where this incoming data will go out on another connection. + * If the outgoing connection stalls, we should stall processing + * the incoming data. So a handler for this in that case should + * simply set a flag to indicate there is incoming data ready + * and ask for a writeable callback on the outgoing connection. + * In the writable callback he can check the flag and then get + * and drain the waiting incoming data using lws_http_client_read(). + * This will use callbacks to LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ + * to get and drain the incoming data, where it should be sent + * back out on the outgoing connection. */ LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47, - /**< */ + /**< The client transaction completed... at the moment this + * is the same as closing since transaction pipelining on + * client side is not yet supported. */ LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48, - /**< */ + /**< This is generated by lws_http_client_read() used to drain + * incoming data. In the case the incoming data was chunked, + * it will be split into multiple smaller callbacks for each + * chunk block, removing the chunk headers. If not chunked, + * it will appear all in one callback. */ LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49, - /**< */ + /**< By default, all HTTP handling is done in protocols[0]. + * However you can bind different protocols (by name) to + * different parts of the URL space using callback mounts. This + * callback occurs in the new protocol when a wsi is bound + * to that protocol. Any protocol allocation related to the + * http transaction processing should be created then. + * These specific callbacks are necessary because with HTTP/1.1, + * a single connection may perform at series of different + * transactions at different URLs, thus the lifetime of the + * protocol bind is just for one transaction, not connection. */ LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50, - /**< */ + /**< This is called when a transaction is unbound from a protocol. + * It indicates the connection completed its transaction and may + * do something different now. Any protocol allocation related + * to the http transaction processing should be destroyed. */ LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51, - /**< */ + /**< This gives the user code a chance to forbid an http access. + * `in` points to a `struct lws_process_html_args`, which + * describes the URL, and a bit mask describing the type of + * authentication required. If the callback returns nonzero, + * the transaction ends with HTTP_STATUS_UNAUTHORIZED. */ LWS_CALLBACK_PROCESS_HTML = 52, - /**< */ + /**< This gives your user code a chance to mangle outgoing + * HTML. `in` points to a `struct lws_process_html_args` + * which describes the buffer containing outgoing HTML. + * The buffer may grow up to `.max_len` (currently +128 + * bytes per buffer). + * */ LWS_CALLBACK_ADD_HEADERS = 53, - /**< */ + /**< This gives your user code a chance to add headers to a + * transaction bound to your protocol. `in` points to a + * `struct lws_process_html_args` describing a buffer and length + * you can add headers into using the normal lws apis. + * + * Only `args->p` and `args->len` are valid, and `args->p` should + * be moved on by the amount of bytes written, if any. Eg + * + * case LWS_CALLBACK_ADD_HEADERS: + * + * struct lws_process_html_args *args = + * (struct lws_process_html_args *)in; + * + * if (lws_add_http_header_by_name(wsi, + * (unsigned char *)"set-cookie:", + * (unsigned char *)cookie, cookie_len, + * (unsigned char **)&args->p, + * (unsigned char *)args->p + args->max_len)) + * return 1; + * + * break; + */ LWS_CALLBACK_SESSION_INFO = 54, - /**< */ + /**< This is only generated by user code using generic sessions. + * It's used to get a `struct lws_session_info` filled in by + * generic sessions with information about the logged-in user. + * See the messageboard sample for an example of how to use. */ LWS_CALLBACK_GS_EVENT = 55, - /**< */ + /**< Indicates an event happened to the Generic Sessions session. + * `in` contains a `struct lws_gs_event_args` describing the event. */ LWS_CALLBACK_HTTP_PMO = 56, /**< per-mount options for this connection, called before * the normal LWS_CALLBACK_HTTP when the mount has per-mount - * options + * options. */ LWS_CALLBACK_CLIENT_HTTP_WRITEABLE = 57, /**< when doing an HTTP type client connection, you can call @@ -1015,11 +1349,76 @@ enum lws_callback_reasons { * From this callback, when you have sent everything, you should let * lws know by calling lws_client_http_body_pending(wsi, 0) */ + LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION = 58, + /**< Similar to LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION + * this callback is called during OpenSSL verification of the cert + * sent from the server to the client. It is sent to protocol[0] + * callback as no protocol has been negotiated on the connection yet. + * Notice that the wsi is set because lws_client_connect_via_info was + * successful. + * + * See http://www.openssl.org/docs/ssl/SSL_CTX_set_verify.html + * to understand more detail about the OpenSSL callback that + * generates this libwebsockets callback and the meanings of the + * arguments passed. In this callback, user is the x509_ctx, + * in is the ssl pointer and len is preverify_ok. + * + * THIS IS NOT RECOMMENDED BUT if a cert validation error shall be + * overruled and cert shall be accepted as ok, + * X509_STORE_CTX_set_error((X509_STORE_CTX*)user, X509_V_OK); must be + * called and return value must be 0 to mean the cert is OK; + * returning 1 will fail the cert in any case. + * + * This also means that if you don't handle this callback then + * the default callback action of returning 0 will not accept the + * certificate in case of a validation error decided by the SSL lib. + * + * This is expected and secure behaviour when validating certificates. + * + * Note: LCCSCF_ALLOW_SELFSIGNED and + * LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK still work without this + * callback being implemented. + */ + LWS_CALLBACK_RAW_RX = 59, + /**< RAW mode connection RX */ + LWS_CALLBACK_RAW_CLOSE = 60, + /**< RAW mode connection is closing */ + LWS_CALLBACK_RAW_WRITEABLE = 61, + /**< RAW mode connection may be written */ + LWS_CALLBACK_RAW_ADOPT = 62, + /**< RAW mode connection was adopted (equivalent to 'wsi created') */ + LWS_CALLBACK_RAW_ADOPT_FILE = 63, + /**< RAW mode file was adopted (equivalent to 'wsi created') */ + LWS_CALLBACK_RAW_RX_FILE = 64, + /**< RAW mode file has something to read */ + LWS_CALLBACK_RAW_WRITEABLE_FILE = 65, + /**< RAW mode file is writeable */ + LWS_CALLBACK_RAW_CLOSE_FILE = 66, + /**< RAW mode wsi that adopted a file is closing */ + LWS_CALLBACK_SSL_INFO = 67, + /**< SSL connections only. An event you registered an + * interest in at the vhost has occurred on a connection + * using the vhost. in is a pointer to a + * struct lws_ssl_info containing information about the + * event*/ + LWS_CALLBACK_CHILD_WRITE_VIA_PARENT = 68, + /**< Child has been marked with parent_carries_io attribute, so + * lws_write directs the to this callback at the parent, + * in is a struct lws_write_passthru containing the args + * the lws_write() was called with. + */ + LWS_CALLBACK_CHILD_CLOSING = 69, + /**< Sent to parent to notify them a child is closing / being + * destroyed. in is the child wsi. + */ + LWS_CALLBACK_CGI_PROCESS_ATTACH = 70, + /**< CGI: Sent when the CGI process is spawned for the wsi. The + * len parameter is the PID of the child process */ /****** add new things just above ---^ ******/ LWS_CALLBACK_USER = 1000, - /**< user code can use any including / above without fear of clashes */ + /**< user code can use any including above without fear of clashes */ }; @@ -1042,10 +1441,99 @@ enum lws_callback_reasons { typedef int lws_callback_function(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len); + +#define LWS_CB_REASON_AUX_BF__CGI 1 +#define LWS_CB_REASON_AUX_BF__PROXY 2 +#define LWS_CB_REASON_AUX_BF__CGI_CHUNK_END 4 +#define LWS_CB_REASON_AUX_BF__CGI_HEADERS 8 ///@} -/*! \defgroup extensions +/*! \defgroup generic hash + * ## Generic Hash related functions * + * Lws provides generic hash / digest accessors that abstract the ones + * provided by whatever OpenSSL library you are linking against. + * + * It lets you use the same code if you build against mbedtls or OpenSSL + * for example. + */ +///@{ + +#ifdef LWS_OPENSSL_SUPPORT + +#if defined(LWS_WITH_MBEDTLS) +#include +#include +#include +#endif + +#define LWS_GENHASH_TYPE_SHA1 0 +#define LWS_GENHASH_TYPE_SHA256 1 +#define LWS_GENHASH_TYPE_SHA512 2 + +struct lws_genhash_ctx { + uint8_t type; +#if defined(LWS_WITH_MBEDTLS) + union { + mbedtls_sha1_context sha1; + mbedtls_sha256_context sha256; + mbedtls_sha512_context sha512; + } u; +#else + const EVP_MD *evp_type; + EVP_MD_CTX *mdctx; +#endif +}; + +/** lws_genhash_size() - get hash size in bytes + * + * \param type: one of LWS_GENHASH_TYPE_... + * + * Returns number of bytes in this type of hash + */ +LWS_VISIBLE LWS_EXTERN size_t LWS_WARN_UNUSED_RESULT +lws_genhash_size(int type); + +/** lws_genhash_init() - prepare your struct lws_genhash_ctx for use + * + * \param ctx: your struct lws_genhash_ctx + * \param type: one of LWS_GENHASH_TYPE_... + * + * Initializes the hash context for the type you requested + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_genhash_init(struct lws_genhash_ctx *ctx, int type); + +/** lws_genhash_update() - digest len bytes of the buffer starting at in + * + * \param ctx: your struct lws_genhash_ctx + * \param in: start of the bytes to digest + * \param len: count of bytes to digest + * + * Updates the state of your hash context to reflect digesting len bytes from in + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_genhash_update(struct lws_genhash_ctx *ctx, const void *in, size_t len); + +/** lws_genhash_destroy() - copy out the result digest and destroy the ctx + * + * \param ctx: your struct lws_genhash_ctx + * \param result: NULL, or where to copy the result hash + * + * Finalizes the hash and copies out the digest. Destroys any allocations such + * that ctx can safely go out of scope after calling this. + * + * NULL result is supported so that you can destroy the ctx cleanly on error + * conditions, where there is no valid result. + */ +LWS_VISIBLE LWS_EXTERN int +lws_genhash_destroy(struct lws_genhash_ctx *ctx, void *result); + +#endif + +///@} + +/*! \defgroup extensions Extension related functions * ##Extension releated functions * * Ws defines optional extensions, lws provides the ability to implement these @@ -1217,7 +1705,7 @@ lws_set_extension_option(struct lws *wsi, const char *ext_name, * client and server for how to do. */ static LWS_INLINE LWS_WARN_DEPRECATED const struct lws_extension * -lws_get_internal_extensions() { return NULL; } +lws_get_internal_extensions(void) { return NULL; } /** * lws_ext_parse_options() - deal with parsing negotiated extension options @@ -1297,8 +1785,8 @@ struct lws_protocols { * be able to consume it all without having to return to the event * loop. That is supported in lws. * - * This also controls how much may be sent at once at the moment, - * although this is likely to change. + * If .tx_packet_size is 0, this also controls how much may be sent at once + * for backwards compatibility. */ unsigned int id; /**< ignored by lws, but useful to contain user information bound @@ -1309,6 +1797,15 @@ struct lws_protocols { * capability flags based on selected protocol version, etc. */ void *user; /**< ignored by lws, but user code can pass a pointer here it can later access from the protocol callback */ + size_t tx_packet_size; + /**< 0 indicates restrict send() size to .rx_buffer_size for backwards- + * compatibility. + * If greater than zero, a single send() is restricted to this amount + * and any remainder is buffered by lws and sent afterwards also in + * these size chunks. Since that is expensive, it's preferable + * to restrict one fragment you are trying to send to match this + * size. + */ /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility */ @@ -1369,6 +1866,23 @@ lws_protocol_vh_priv_zalloc(struct lws_vhost *vhost, const struct lws_protocols LWS_VISIBLE LWS_EXTERN void * lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *prot); +/** + * lws_adjust_protocol_psds - change a vhost protocol's per session data size + * + * \param wsi: a connection with the protocol to change + * \param new_size: the new size of the per session data size for the protocol + * + * Returns user_space for the wsi, after allocating + * + * This should not be used except to initalize a vhost protocol's per session + * data size one time, before any connections are accepted. + * + * Sometimes the protocol wraps another protocol and needs to discover and set + * its per session data size at runtime. + */ +LWS_VISIBLE LWS_EXTERN void * +lws_adjust_protocol_psds(struct lws *wsi, size_t new_size); + /** * lws_finalize_startup() - drop initial process privileges * @@ -1380,6 +1894,9 @@ lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *pr LWS_VISIBLE LWS_EXTERN int lws_finalize_startup(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN int +lws_protocol_init(struct lws_context *context); + #ifdef LWS_WITH_PLUGINS /* PLUGINS implies LIBUV */ @@ -1469,10 +1986,10 @@ struct lws_gs_event_args { ///@} -/*! \defgroup context-and-vhost +/*! \defgroup context-and-vhost context and vhost related functions + * ##Context and Vhost releated functions * \ingroup lwsapi * - * ##Context and Vhost releated functions * * LWS requires that there is one context, in which you may define multiple * vhosts. Each vhost is a virtual host, with either its own listen port @@ -1543,12 +2060,42 @@ enum lws_context_options { * even if it happened without a debugger in place. You can disable * that by giving this option. */ + LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN = (1 << 19), + /**< For backwards-compatibility reasons, by default + * lws prepends "http://" to the origin you give in the client + * connection info struct. If you give this flag when you create + * the context, only the string you give in the client connect + * info for .origin (if any) will be used directly. + */ + LWS_SERVER_OPTION_FALLBACK_TO_RAW = (1 << 20), + /**< (VH) if invalid http is coming in the first line, */ + LWS_SERVER_OPTION_LIBEVENT = (1 << 21), + /**< (CTX) Use libevent event loop */ + LWS_SERVER_OPTION_ONLY_RAW = (1 << 22), + /**< (VH) All connections to this vhost / port are RAW as soon as + * the connection is accepted, no HTTP is going to be coming. + */ + LWS_SERVER_OPTION_ALLOW_LISTEN_SHARE = (1 << 23), + /**< (VH) Set to allow multiple listen sockets on one interface + + * address + port. The default is to strictly allow only one + * listen socket at a time. This is automatically selected if you + * have multiple service threads. + */ + LWS_SERVER_OPTION_CREATE_VHOST_SSL_CTX = (1 << 24), + /**< (VH) Force setting up the vhost SSL_CTX, even though the user + * code doesn't explicitly provide a cert in the info struct. It + * implies the user code is going to provide a cert at the + * LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS callback, which + * provides the vhost SSL_CTX * in the user parameter. + */ /****** add new things just above ---^ ******/ }; #define lws_check_opt(c, f) (((c) & (f)) == (f)) +struct lws_plat_file_ops; + /** struct lws_context_creation_info - parameters to create context and /or vhost with * * This is also used to create vhosts.... if LWS_SERVER_OPTION_EXPLICIT_VHOSTS @@ -1560,10 +2107,10 @@ enum lws_context_options { */ struct lws_context_creation_info { int port; - /**< VHOST: Port to listen on... you can use CONTEXT_PORT_NO_LISTEN to - * suppress listening on any port, that's what you want if you are - * not running a websocket server at all but just using it as a - * client */ + /**< VHOST: Port to listen on. Use CONTEXT_PORT_NO_LISTEN to suppress + * listening for a client. Use CONTEXT_PORT_NO_LISTEN_SERVER if you are + * writing a server but you are using \ref sock-adopt instead of the + * built-in listener */ const char *iface; /**< VHOST: NULL to bind the listen socket to all interfaces, or the * interface name, eg, "eth2" @@ -1582,23 +2129,38 @@ struct lws_context_creation_info { /**< CONTEXT: NULL or struct lws_token_limits pointer which is initialized * with a token length limit for each possible WSI_TOKEN_ */ const char *ssl_private_key_password; - /**< VHOST: NULL or the passphrase needed for the private key */ + /**< VHOST: NULL or the passphrase needed for the private key. (For + * backwards compatibility, this can also be used to pass the client + * cert passphrase when setting up a vhost client SSL context, but it is + * preferred to use .client_ssl_private_key_password for that.) */ const char *ssl_cert_filepath; /**< VHOST: If libwebsockets was compiled to use ssl, and you want * to listen using SSL, set to the filepath to fetch the - * server cert from, otherwise NULL for unencrypted */ + * server cert from, otherwise NULL for unencrypted. (For backwards + * compatibility, this can also be used to pass the client certificate + * when setting up a vhost client SSL context, but it is preferred to + * use .client_ssl_cert_filepath for that.) */ const char *ssl_private_key_filepath; /**< VHOST: filepath to private key if wanting SSL mode; - * if this is set to NULL but sll_cert_filepath is set, the + * if this is set to NULL but ssl_cert_filepath is set, the * OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY callback is called * to allow setting of the private key directly via openSSL - * library calls */ + * library calls. (For backwards compatibility, this can also be used + * to pass the client cert private key filepath when setting up a + * vhost client SSL context, but it is preferred to use + * .client_ssl_private_key_filepath for that.) */ const char *ssl_ca_filepath; - /**< VHOST: CA certificate filepath or NULL */ + /**< VHOST: CA certificate filepath or NULL. (For backwards + * compatibility, this can also be used to pass the client CA + * filepath when setting up a vhost client SSL context, + * but it is preferred to use .client_ssl_ca_filepath for that.) */ const char *ssl_cipher_list; /**< VHOST: List of valid ciphers to use (eg, * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" - * or you can leave it as NULL to get "DEFAULT" */ + * or you can leave it as NULL to get "DEFAULT" (For backwards + * compatibility, this can also be used to pass the client cipher + * list when setting up a vhost client SSL context, + * but it is preferred to use .client_ssl_cipher_list for that.)*/ const char *http_proxy_address; /**< VHOST: If non-NULL, attempts to proxy via the given address. * If proxy auth is required, use format "username:password\@server:port" */ @@ -1611,8 +2173,14 @@ struct lws_context_creation_info { unsigned int options; /**< VHOST + CONTEXT: 0, or LWS_SERVER_OPTION_... bitfields */ void *user; - /**< CONTEXT: optional user pointer that can be recovered via the context - * pointer using lws_context_user */ + /**< VHOST + CONTEXT: optional user pointer that will be associated + * with the context when creating the context (and can be retrieved by + * lws_context_user(context), or with the vhost when creating the vhost + * (and can be retrieved by lws_vhost_user(vhost)). You will need to + * use LWS_SERVER_OPTION_EXPLICIT_VHOSTS and create the vhost separately + * if you care about giving the context and vhost different user pointer + * values. + */ int ka_time; /**< CONTEXT: 0 for no TCP keepalive, otherwise apply this keepalive * timeout to all libwebsocket sockets, client or server */ @@ -1708,6 +2276,110 @@ struct lws_context_creation_info { /**< VHOST: pointer to optional linked list of per-vhost * canned headers that are added to server responses */ + const struct lws_protocol_vhost_options *reject_service_keywords; + /**< CONTEXT: Optional list of keywords and rejection codes + text. + * + * The keywords are checked for existing in the user agent string. + * + * Eg, "badrobot" "404 Not Found" + */ + void *external_baggage_free_on_destroy; + /**< CONTEXT: NULL, or pointer to something externally malloc'd, that + * should be freed when the context is destroyed. This allows you to + * automatically sync the freeing action to the context destruction + * action, so there is no need for an external free() if the context + * succeeded to create. + */ + + const char *client_ssl_private_key_password; + /**< VHOST: Client SSL context init: NULL or the passphrase needed + * for the private key */ + const char *client_ssl_cert_filepath; + /**< VHOST: Client SSL context init:T he certificate the client + * should present to the peer on connection */ + const char *client_ssl_private_key_filepath; + /**< VHOST: Client SSL context init: filepath to client private key + * if this is set to NULL but client_ssl_cert_filepath is set, you + * can handle the LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS + * callback of protocols[0] to allow setting of the private key directly + * via openSSL library calls */ + const char *client_ssl_ca_filepath; + /**< VHOST: Client SSL context init: CA certificate filepath or NULL */ + const char *client_ssl_cipher_list; + /**< VHOST: Client SSL context init: List of valid ciphers to use (eg, + * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" + * or you can leave it as NULL to get "DEFAULT" */ + + const struct lws_plat_file_ops *fops; + /**< CONTEXT: NULL, or pointer to an array of fops structs, terminated + * by a sentinel with NULL .open. + * + * If NULL, lws provides just the platform file operations struct for + * backwards compatibility. + */ + int simultaneous_ssl_restriction; + /**< CONTEXT: 0 (no limit) or limit of simultaneous SSL sessions possible.*/ + const char *socks_proxy_address; + /**< VHOST: If non-NULL, attempts to proxy via the given address. + * If proxy auth is required, use format "username:password\@server:port" */ + unsigned int socks_proxy_port; + /**< VHOST: If socks_proxy_address was non-NULL, uses this port */ +#if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) + cap_value_t caps[4]; + /**< CONTEXT: array holding Linux capabilities you want to + * continue to be available to the server after it transitions + * to a noprivileged user. Usually none are needed but for, eg, + * .bind_iface, CAP_NET_RAW is required. This gives you a way + * to still have the capability but drop root. + */ + char count_caps; + /**< CONTEXT: count of Linux capabilities in .caps[]. 0 means + * no capabilities will be inherited from root (the default) */ +#endif + int bind_iface; + /**< VHOST: nonzero to strictly bind sockets to the interface name in + * .iface (eg, "eth2"), using SO_BIND_TO_DEVICE. + * + * Requires SO_BINDTODEVICE support from your OS and CAP_NET_RAW + * capability. + * + * Notice that common things like access network interface IP from + * your local machine use your lo / loopback interface and will be + * disallowed by this. + */ + int ssl_info_event_mask; + /**< VHOST: mask of ssl events to be reported on LWS_CALLBACK_SSL_INFO + * callback for connections on this vhost. The mask values are of + * the form SSL_CB_ALERT, defined in openssl/ssl.h. The default of + * 0 means no info events will be reported. + */ + unsigned int timeout_secs_ah_idle; + /**< VHOST: seconds to allow a client to hold an ah without using it. + * 0 defaults to 10s. */ + unsigned short ip_limit_ah; + /**< CONTEXT: max number of ah a single IP may use simultaneously + * 0 is no limit. This is a soft limit: if the limit is + * reached, connections from that IP will wait in the ah + * waiting list and not be able to acquire an ah until + * a connection belonging to the IP relinquishes one it + * already has. + */ + unsigned short ip_limit_wsi; + /**< CONTEXT: max number of wsi a single IP may use simultaneously. + * 0 is no limit. This is a hard limit, connections from + * the same IP will simply be dropped once it acquires the + * amount of simultaneous wsi / accepted connections + * given here. + */ + uint32_t http2_settings[7]; + /**< CONTEXT: after context creation http2_settings[1] thru [6] have + * been set to the lws platform default values. + * VHOST: if http2_settings[0] is nonzero, the values given in + * http2_settings[1]..[6] are used instead of the lws + * platform default values. + * Just leave all at 0 if you don't care. + */ + /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility * @@ -1744,7 +2416,7 @@ struct lws_context_creation_info { * * HTTP requests are sent always to the FIRST protocol in protocol, since * at that time websocket protocol has not been negotiated. Other - * protocols after the first one never see any HTTP callack activity. + * protocols after the first one never see any HTTP callback activity. * * The server created is a simple http server by default; part of the * websocket standard is upgrading this http connection to a websocket one. @@ -1767,6 +2439,43 @@ lws_create_context(struct lws_context_creation_info *info); LWS_VISIBLE LWS_EXTERN void lws_context_destroy(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN void +lws_context_destroy2(struct lws_context *context); + +typedef int (*lws_reload_func)(void); + +/** + * lws_context_deprecate() - Deprecate the websocket context + * + * \param context: Websocket context + * \param cb: Callback notified when old context listen sockets are closed + * + * This function is used on an existing context before superceding it + * with a new context. + * + * It closes any listen sockets in the context, so new connections are + * not possible. + * + * And it marks the context to be deleted when the number of active + * connections into it falls to zero. + * + * Otherwise if you attach the deprecated context to the replacement + * context when it has been created using lws_context_attach_deprecated() + * both any deprecated and the new context will service their connections. + * + * This is aimed at allowing seamless configuration reloads. + * + * The callback cb will be called after the listen sockets are actually + * closed and may be reopened. In the callback the new context should be + * configured and created. (With libuv, socket close happens async after + * more loop events). + */ +LWS_VISIBLE LWS_EXTERN void +lws_context_deprecate(struct lws_context *context, lws_reload_func cb); + +LWS_VISIBLE LWS_EXTERN int +lws_context_is_deprecated(struct lws_context *context); + /** * lws_set_proxy() - Setups proxy to lws_context. * \param vhost: pointer to struct lws_vhost you want set proxy for @@ -1787,6 +2496,25 @@ lws_context_destroy(struct lws_context *context); LWS_VISIBLE LWS_EXTERN int lws_set_proxy(struct lws_vhost *vhost, const char *proxy); +/** + * lws_set_socks() - Setup socks to lws_context. + * \param vhost: pointer to struct lws_vhost you want set socks for + * \param socks: pointer to c string containing socks in format address:port + * + * Returns 0 if socks string was parsed and socks was setup. + * Returns -1 if socks is NULL or has incorrect format. + * + * This is only required if your OS does not provide the socks_proxy + * environment variable (eg, OSX) + * + * IMPORTANT! You should call this function right after creation of the + * lws_context and before call to connect. If you call this + * function after connect behavior is undefined. + * This function will override proxy settings made on lws_context + * creation with genenv() call. + */ +LWS_VISIBLE LWS_EXTERN int +lws_set_socks(struct lws_vhost *vhost, const char *socks); struct lws_vhost; @@ -1799,10 +2527,26 @@ struct lws_vhost; * members of the info struct. You can create many vhosts inside one context * if you created the context with the option LWS_SERVER_OPTION_EXPLICIT_VHOSTS */ -LWS_EXTERN LWS_VISIBLE struct lws_vhost * +LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_create_vhost(struct lws_context *context, struct lws_context_creation_info *info); +/** + * lws_vhost_destroy() - Destroy a vhost (virtual server context) + * + * \param vh: pointer to result of lws_create_vhost() + * + * This function destroys a vhost. Normally, if you just want to exit, + * then lws_destroy_context() will take care of everything. If you want + * to destroy an individual vhost and all connections and allocations, you + * can do it with this. + * + * If the vhost has a listen sockets shared by other vhosts, it will be given + * to one of the vhosts sharing it rather than closed. + */ +LWS_VISIBLE LWS_EXTERN void +lws_vhost_destroy(struct lws_vhost *vh); + /** * lwsws_get_config_globals() - Parse a JSON server config file * \param info: pointer to struct with parameters @@ -1869,9 +2613,24 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len); * \param context: the context * \param buf: buffer to fill with JSON * \param len: max length of buf + * \param hide_vhosts: nonzero to not provide per-vhost mount etc information + * + * Generates a JSON description of vhost state into buf */ LWS_VISIBLE LWS_EXTERN int -lws_json_dump_context(const struct lws_context *context, char *buf, int len); +lws_json_dump_context(const struct lws_context *context, char *buf, int len, + int hide_vhosts); + +/** + * lws_vhost_user() - get the user data associated with the vhost + * \param vhost: Websocket vhost + * + * This returns the optional user pointer that can be attached to + * a vhost when it was created. Lws never dereferences this pointer, it only + * sets it when the vhost is created, and returns it using this api. + */ +LWS_VISIBLE LWS_EXTERN void * +lws_vhost_user(struct lws_vhost *vhost); /** * lws_context_user() - get the user data associated with the context @@ -1909,8 +2668,8 @@ struct lws_protocol_vhost_options { * served from a filesystem, or it is a cgi etc. */ enum lws_mount_protocols { - LWSMPRO_HTTP = 0, /**< not supported yet */ - LWSMPRO_HTTPS = 1, /**< not supported yet */ + LWSMPRO_HTTP = 0, /**< http reverse proxy */ + LWSMPRO_HTTPS = 1, /**< https reverse proxy */ LWSMPRO_FILE = 2, /**< serve from filesystem directory */ LWSMPRO_CGI = 3, /**< pass to CGI to handle */ LWSMPRO_REDIR_HTTP = 4, /**< redirect to http:// url */ @@ -1956,14 +2715,27 @@ struct lws_http_mount { unsigned char origin_protocol; /**< one of enum lws_mount_protocols */ unsigned char mountpoint_len; /**< length of mountpoint string */ + + const char *basic_auth_login_file; + /**nxt; \ + } \ +} + +/** + * lws_start_foreach_llp(): linkedlist pointer iterator helper start + * + * \param type: type of iteration, eg, struct xyz ** + * \param it: iterator var name to create + * \param start: start of list + * + * This helper creates an iterator and starts a while (it) { + * loop. The iterator runs through the linked list starting at the + * address of start and ends when it gets a NULL. + * The while loop should be terminated using lws_start_foreach_llp(). + * + * This helper variant iterates using a pointer to the previous linked-list + * element. That allows you to easily delete list members by rewriting the + * previous pointer to the element's next pointer. + */ +#define lws_start_foreach_llp(type, it, start)\ +{ \ + type it = &(start); \ + while (*(it)) { + +/** + * lws_end_foreach_llp(): linkedlist pointer iterator helper end + * + * \param it: same iterator var name given when starting + * \param nxt: member name in the iterator pointing to next list element + * + * This helper is the partner for lws_start_foreach_llp() that ends the + * while loop. + */ + +#define lws_end_foreach_llp(it, nxt) \ + it = &(*(it))->nxt; \ + } \ +} + /** * lws_snprintf(): snprintf that truncates the returned length too * @@ -3620,7 +4729,7 @@ lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr, * reach the limit the reported length doesn't exceed the limit. */ LWS_VISIBLE LWS_EXTERN int -lws_snprintf(char *str, size_t size, const char *format, ...); +lws_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3); /** * lws_get_random(): fill a buffer with platform random data @@ -3636,7 +4745,7 @@ lws_snprintf(char *str, size_t size, const char *format, ...); LWS_VISIBLE LWS_EXTERN int lws_get_random(struct lws_context *context, void *buf, int len); /** - * lws_daemonize(): fill a buffer with platform random data + * lws_daemonize(): make current process run in the background * * \param _lock_path: the filepath to write the lock file * @@ -3661,6 +4770,19 @@ lws_get_library_version(void); LWS_VISIBLE LWS_EXTERN void * lws_wsi_user(struct lws *wsi); +/** + * lws_wsi_set_user() - set the user data associated with the client connection + * \param wsi: lws connection + * \param user: user data + * + * By default lws allocates this and it's not legal to externally set it + * yourself. However client connections may have it set externally when the + * connection is created... if so, this api can be used to modify it at + * runtime additionally. + */ +LWS_VISIBLE LWS_EXTERN void +lws_set_wsi_user(struct lws *wsi, void *user); + /** * lws_parse_uri: cut up prot:/ads:port/path into pieces * Notice it does so by dropping '\0' into input string @@ -3683,7 +4805,7 @@ LWS_VISIBLE LWS_EXTERN unsigned long lws_now_secs(void); /** - * lws_get_context - Allow geting lws_context from a Websocket connection + * lws_get_context - Allow getting lws_context from a Websocket connection * instance * * With this function, users can access context in the callback function. @@ -3725,6 +4847,45 @@ lws_get_parent(const struct lws *wsi); LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT lws_get_child(const struct lws *wsi); +/** + * lws_parent_carries_io() - mark wsi as needing to send messages via parent + * + * \param wsi: child lws connection + */ + +LWS_VISIBLE LWS_EXTERN void +lws_set_parent_carries_io(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void * +lws_get_opaque_parent_data(const struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void +lws_set_opaque_parent_data(struct lws *wsi, void *data); + +LWS_VISIBLE LWS_EXTERN int +lws_get_child_pending_on_writable(const struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void +lws_clear_child_pending_on_writable(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN int +lws_get_close_length(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN unsigned char * +lws_get_close_payload(struct lws *wsi); + +/** + * lws_get_network_wsi() - Returns wsi that has the tcp connection for this wsi + * + * \param wsi: wsi you have + * + * Returns wsi that has the tcp connection (which may be the incoming wsi) + * + * HTTP/1 connections will always return the incoming wsi + * HTTP/2 connections may return a different wsi that has the tcp connection + */ +LWS_VISIBLE LWS_EXTERN +struct lws *lws_get_network_wsi(struct lws *wsi); /* * \deprecated DEPRECATED Note: this is not normally needed as a user api. @@ -3732,7 +4893,7 @@ lws_get_child(const struct lws *wsi); * useful when integrating with other app poll loop service code. */ LWS_VISIBLE LWS_EXTERN int -lws_read(struct lws *wsi, unsigned char *buf, size_t len); +lws_read(struct lws *wsi, unsigned char *buf, lws_filepos_t len); /** * lws_set_allocator() - custom allocator support @@ -3742,7 +4903,7 @@ lws_read(struct lws *wsi, unsigned char *buf, size_t len); * Allows you to replace the allocator (and deallocator) used by lws */ LWS_VISIBLE LWS_EXTERN void -lws_set_allocator(void *(*realloc)(void *ptr, size_t size)); +lws_set_allocator(void *(*realloc)(void *ptr, size_t size, const char *reason)); ///@} /** \defgroup wsstatus Websocket status APIs @@ -3762,11 +4923,20 @@ lws_send_pipe_choked(struct lws *wsi); /** * lws_is_final_fragment() - tests if last part of ws message + * * \param wsi: lws connection */ LWS_VISIBLE LWS_EXTERN int lws_is_final_fragment(struct lws *wsi); +/** + * lws_is_first_fragment() - tests if first part of ws message + * + * \param wsi: lws connection + */ +LWS_VISIBLE LWS_EXTERN int +lws_is_first_fragment(struct lws *wsi); + /** * lws_get_reserved_bits() - access reserved bits of ws frame * \param wsi: lws connection @@ -3821,8 +4991,242 @@ lws_is_ssl(struct lws *wsi); */ LWS_VISIBLE LWS_EXTERN int lws_is_cgi(struct lws *wsi); + +#ifdef LWS_OPENSSL_SUPPORT +/** + * lws_get_ssl() - Return wsi's SSL context structure + * \param wsi: websocket connection + * + * Returns pointer to the SSL library's context structure + */ +LWS_VISIBLE LWS_EXTERN SSL* +lws_get_ssl(struct lws *wsi); +#endif ///@} +/** \defgroup lws_ring LWS Ringbuffer APIs + * ##lws_ring: generic ringbuffer struct + * + * Provides an abstract ringbuffer api supporting one head and one or an + * unlimited number of tails. + * + * All of the members are opaque and manipulated by lws_ring_...() apis. + * + * The lws_ring and its buffer is allocated at runtime on the heap, using + * + * - lws_ring_create() + * - lws_ring_destroy() + * + * It may contain any type, the size of the "element" stored in the ring + * buffer and the number of elements is given at creation time. + * + * When you create the ringbuffer, you can optionally provide an element + * destroy callback that frees any allocations inside the element. This is then + * automatically called for elements with no tail behind them, ie, elements + * which don't have any pending consumer are auto-freed. + * + * Whole elements may be inserted into the ringbuffer and removed from it, using + * + * - lws_ring_insert() + * - lws_ring_consume() + * + * You can find out how many whole elements are free or waiting using + * + * - lws_ring_get_count_free_elements() + * - lws_ring_get_count_waiting_elements() + * + * In addition there are special purpose optional byte-centric apis + * + * - lws_ring_next_linear_insert_range() + * - lws_ring_bump_head() + * + * which let you, eg, read() directly into the ringbuffer without needing + * an intermediate bounce buffer. + * + * The accessors understand that the ring wraps, and optimizes insertion and + * consumption into one or two memcpy()s depending on if the head or tail + * wraps. + * + * lws_ring only supports a single head, but optionally multiple tails with + * an API to inform it when the "oldest" tail has moved on. You can give + * NULL where-ever an api asks for a tail pointer, and it will use an internal + * single tail pointer for convenience. + * + * The "oldest tail", which is the only tail if you give it NULL instead of + * some other tail, is used to track which elements in the ringbuffer are + * still unread by anyone. + * + * - lws_ring_update_oldest_tail() + */ +///@{ +struct lws_ring; + +/** + * lws_ring_create(): create a new ringbuffer + * + * \param element_len: the size in bytes of one element in the ringbuffer + * \param count: the number of elements the ringbuffer can contain + * \param destroy_element: NULL, or callback to be called for each element + * that is removed from the ringbuffer due to the + * oldest tail moving beyond it + * + * Creates the ringbuffer and allocates the storage. Returns the new + * lws_ring *, or NULL if the allocation failed. + * + * If non-NULL, destroy_element will get called back for every element that is + * retired from the ringbuffer after the oldest tail has gone past it, and for + * any element still left in the ringbuffer when it is destroyed. It replaces + * all other element destruction code in your user code. + */ +LWS_VISIBLE LWS_EXTERN struct lws_ring * +lws_ring_create(size_t element_len, size_t count, + void (*destroy_element)(void *element)); + +/** + * lws_ring_destroy(): destroy a previously created ringbuffer + * + * \param ring: the struct lws_ring to destroy + * + * Destroys the ringbuffer allocation and the struct lws_ring itself. + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_destroy(struct lws_ring *ring); + +/** + * lws_ring_get_count_free_elements(): return how many elements can fit + * in the free space + * + * \param ring: the struct lws_ring to report on + * + * Returns how much room is left in the ringbuffer for whole element insertion. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_get_count_free_elements(struct lws_ring *ring); + +/** + * lws_ring_get_count_waiting_elements(): return how many elements can be consumed + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * Returns how many elements are waiting to be consumed from the perspective + * of the tail pointer given. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_get_count_waiting_elements(struct lws_ring *ring, uint32_t *tail); + +/** + * lws_ring_insert(): attempt to insert up to max_count elements from src + * + * \param ring: the struct lws_ring to report on + * \param src: the array of elements to be inserted + * \param max_count: the number of available elements at src + * + * Attempts to insert as many of the elements at src as possible, up to the + * maximum max_count. Returns the number of elements actually inserted. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_insert(struct lws_ring *ring, const void *src, size_t max_count); + +/** + * lws_ring_consume(): attempt to copy out and remove up to max_count elements + * to src + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * \param dest: the array of elements to be inserted. or NULL for no copy + * \param max_count: the number of available elements at src + * + * Attempts to copy out as many waiting elements as possible into dest, from + * the perspective of the given tail, up to max_count. If dest is NULL, the + * copying out is not done but the elements are logically consumed as usual. + * NULL dest is useful in combination with lws_ring_get_element(), where you + * can use the element direct from the ringbuffer and then call this with NULL + * dest to logically consume it. + * + * Increments the tail position according to how many elements could be + * consumed. + * + * Returns the number of elements consumed. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_consume(struct lws_ring *ring, uint32_t *tail, void *dest, + size_t max_count); + +/** + * lws_ring_get_element(): get a pointer to the next waiting element for tail + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * Points to the next element that tail would consume, directly in the + * ringbuffer. This lets you write() or otherwise use the element without + * having to copy it out somewhere first. + * + * After calling this, you must call lws_ring_consume(ring, &tail, NULL, 1) + * which will logically consume the element you used up and increment your + * tail (tail may also be NULL there if you use a single tail). + * + * Returns NULL if no waiting element, or a const void * pointing to it. + */ +LWS_VISIBLE LWS_EXTERN const void * +lws_ring_get_element(struct lws_ring *ring, uint32_t *tail); + +/** + * lws_ring_update_oldest_tail(): free up elements older than tail for reuse + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * If you are using multiple tails, you must use this API to inform the + * lws_ring when none of the tails still need elements in the fifo any more, + * by updating it when the "oldest" tail has moved on. + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_update_oldest_tail(struct lws_ring *ring, uint32_t tail); + +/** + * lws_ring_get_oldest_tail(): get current oldest available data index + * + * \param ring: the struct lws_ring to report on + * + * If you are initializing a new ringbuffer consumer, you can set its tail to + * this to start it from the oldest ringbuffer entry still available. + */ +LWS_VISIBLE LWS_EXTERN uint32_t +lws_ring_get_oldest_tail(struct lws_ring *ring); + +/** + * lws_ring_next_linear_insert_range(): used to write directly into the ring + * + * \param ring: the struct lws_ring to report on + * \param start: pointer to a void * set to the start of the next ringbuffer area + * \param bytes: pointer to a size_t set to the max length you may use from *start + * + * This provides a low-level, bytewise access directly into the ringbuffer + * allowing direct insertion of data without having to use a bounce buffer. + * + * The api reports the position and length of the next linear range that can + * be written in the ringbuffer, ie, up to the point it would wrap, and sets + * *start and *bytes accordingly. You can then, eg, directly read() into + * *start for up to *bytes, and use lws_ring_bump_head() to update the lws_ring + * with what you have done. + * + * Returns nonzero if no insertion is currently possible. + */ +LWS_VISIBLE LWS_EXTERN int +lws_ring_next_linear_insert_range(struct lws_ring *ring, void **start, + size_t *bytes); + +/** + * lws_ring_bump_head(): used to write directly into the ring + * + * \param ring: the struct lws_ring to operate on + * \param bytes: the number of bytes you inserted at the current head + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_bump_head(struct lws_ring *ring, size_t bytes); +///@} /** \defgroup sha SHA and B64 helpers * ##SHA and B64 helpers @@ -3880,7 +5284,7 @@ lws_b64_decode_string(const char *in, char *out, int out_size); * However for most cases, binding the cgi to http in and out, the default * lws implementation already does the right thing. */ -#ifdef LWS_WITH_CGI + enum lws_enum_stdinouterr { LWS_STDIN = 0, LWS_STDOUT = 1, @@ -3893,6 +5297,8 @@ enum lws_cgi_hdr_state { LCHS_LF1, LCHS_CR2, LCHS_LF2, + LHCS_RESPONSE, + LHCS_DUMP_HEADERS, LHCS_PAYLOAD, LCHS_SINGLE_0A, }; @@ -3905,13 +5311,14 @@ struct lws_cgi_args { int len; /**< length */ }; - +#ifdef LWS_WITH_CGI /** * lws_cgi: spawn network-connected cgi process * * \param wsi: connection to own the process * \param exec_array: array of "exec-name" "arg1" ... "argn" NULL - * \param script_uri_path_len: how many chars on the left of the uri are the path to the cgi + * \param script_uri_path_len: how many chars on the left of the uri are the + * path to the cgi, or -1 to spawn without URL-related env vars * \param timeout_secs: seconds script should be allowed to run * \param mp_cgienv: pvo list with per-vhost cgi options to put in env */ @@ -3935,6 +5342,16 @@ lws_cgi_write_split_stdout_headers(struct lws *wsi); */ LWS_VISIBLE LWS_EXTERN int lws_cgi_kill(struct lws *wsi); + +/** + * lws_cgi_get_stdwsi: get wsi for stdin, stdout, or stderr + * + * \param wsi: parent wsi that has cgi + * \param ch: which of LWS_STDIN, LWS_STDOUT or LWS_STDERR + */ +LWS_VISIBLE LWS_EXTERN struct lws * +lws_cgi_get_stdwsi(struct lws *wsi, enum lws_enum_stdinouterr ch); + #endif ///@} @@ -3961,24 +5378,85 @@ lws_cgi_kill(struct lws *wsi); * These provide platform-agnostic ways to deal with filesystem access in the * library and in the user code. */ + +#if defined(LWS_WITH_ESP32) +/* sdk preprocessor defs? compiler issue? gets confused with member names */ +#define LWS_FOP_OPEN _open +#define LWS_FOP_CLOSE _close +#define LWS_FOP_SEEK_CUR _seek_cur +#define LWS_FOP_READ _read +#define LWS_FOP_WRITE _write +#else +#define LWS_FOP_OPEN open +#define LWS_FOP_CLOSE close +#define LWS_FOP_SEEK_CUR seek_cur +#define LWS_FOP_READ read +#define LWS_FOP_WRITE write +#endif + +#define LWS_FOP_FLAGS_MASK ((1 << 23) - 1) +#define LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP (1 << 24) +#define LWS_FOP_FLAG_COMPR_IS_GZIP (1 << 25) +#define LWS_FOP_FLAG_MOD_TIME_VALID (1 << 26) +#define LWS_FOP_FLAG_VIRTUAL (1 << 27) + +struct lws_plat_file_ops; + +struct lws_fop_fd { + lws_filefd_type fd; + /**< real file descriptor related to the file... */ + const struct lws_plat_file_ops *fops; + /**< fops that apply to this fop_fd */ + void *filesystem_priv; + /**< ignored by lws; owned by the fops handlers */ + lws_filepos_t pos; + /**< generic "position in file" */ + lws_filepos_t len; + /**< generic "length of file" */ + lws_fop_flags_t flags; + /**< copy of the returned flags */ + uint32_t mod_time; + /**< optional "modification time of file", only valid if .open() + * set the LWS_FOP_FLAG_MOD_TIME_VALID flag */ +}; +typedef struct lws_fop_fd *lws_fop_fd_t; + +struct lws_fops_index { + const char *sig; /* NULL or vfs signature, eg, ".zip/" */ + uint8_t len; /* length of above string */ +}; + struct lws_plat_file_ops { - lws_filefd_type (*open)(struct lws *wsi, const char *filename, - unsigned long *filelen, int flags); + lws_fop_fd_t (*LWS_FOP_OPEN)(const struct lws_plat_file_ops *fops, + const char *filename, const char *vpath, + lws_fop_flags_t *flags); /**< Open file (always binary access if plat supports it) - * filelen is filled on exit to be the length of the file - * flags should be set to O_RDONLY or O_RDWR */ - int (*close)(struct lws *wsi, lws_filefd_type fd); - /**< close file */ - unsigned long (*seek_cur)(struct lws *wsi, lws_filefd_type fd, - long offset_from_cur_pos); + * vpath may be NULL, or if the fops understands it, the point at which + * the filename's virtual part starts. + * *flags & LWS_FOP_FLAGS_MASK should be set to O_RDONLY or O_RDWR. + * If the file may be gzip-compressed, + * LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP is set. If it actually is + * gzip-compressed, then the open handler should OR + * LWS_FOP_FLAG_COMPR_IS_GZIP on to *flags before returning. + */ + int (*LWS_FOP_CLOSE)(lws_fop_fd_t *fop_fd); + /**< close file AND set the pointer to NULL */ + lws_fileofs_t (*LWS_FOP_SEEK_CUR)(lws_fop_fd_t fop_fd, + lws_fileofs_t offset_from_cur_pos); /**< seek from current position */ - int (*read)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len); + int (*LWS_FOP_READ)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); /**< Read from file, on exit *amount is set to amount actually read */ - int (*write)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len); + int (*LWS_FOP_WRITE)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); /**< Write to file, on exit *amount is set to amount actually written */ + struct lws_fops_index fi[3]; + /**< vfs path signatures implying use of this fops */ + + const struct lws_plat_file_ops *next; + /**< NULL or next fops in list */ + /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility */ }; @@ -3990,84 +5468,144 @@ struct lws_plat_file_ops { */ LWS_VISIBLE LWS_EXTERN struct lws_plat_file_ops * LWS_WARN_UNUSED_RESULT lws_get_fops(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN void +lws_set_fops(struct lws_context *context, const struct lws_plat_file_ops *fops); +/** + * lws_vfs_tell() - get current file position + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT +lws_vfs_tell(lws_fop_fd_t fop_fd); +/** + * lws_vfs_get_length() - get current file total length in bytes + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT +lws_vfs_get_length(lws_fop_fd_t fop_fd); +/** + * lws_vfs_get_mod_time() - get time file last modified + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN uint32_t LWS_WARN_UNUSED_RESULT +lws_vfs_get_mod_time(lws_fop_fd_t fop_fd); +/** + * lws_vfs_file_seek_set() - seek relative to start of file + * + * \param fop_fd: fop_fd we are seeking in + * \param offset: offset from start of file + */ +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +lws_vfs_file_seek_set(lws_fop_fd_t fop_fd, lws_fileofs_t offset); +/** + * lws_vfs_file_seek_end() - seek relative to end of file + * + * \param fop_fd: fop_fd we are seeking in + * \param offset: offset from start of file + */ +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +lws_vfs_file_seek_end(lws_fop_fd_t fop_fd, lws_fileofs_t offset); + +extern struct lws_plat_file_ops fops_zip; /** - * lws_plat_file_open() - file open operations + * lws_plat_file_open() - open vfs filepath * - * \param wsi: connection doing the opening - * \param filename: filename to open - * \param filelen: length of file (filled in by call) - * \param flags: open flags + * \param fops: file ops struct that applies to this descriptor + * \param vfs_path: filename to open + * \param flags: pointer to open flags + * + * The vfs_path is scanned for known fops signatures, and the open directed + * to any matching fops open. + * + * User code should use this api to perform vfs opens. + * + * returns semi-opaque handle */ -static LWS_INLINE lws_filefd_type LWS_WARN_UNUSED_RESULT -lws_plat_file_open(struct lws *wsi, const char *filename, - unsigned long *filelen, int flags) -{ - return lws_get_fops(lws_get_context(wsi))->open(wsi, filename, - filelen, flags); -} +LWS_VISIBLE LWS_EXTERN lws_fop_fd_t LWS_WARN_UNUSED_RESULT +lws_vfs_file_open(const struct lws_plat_file_ops *fops, const char *vfs_path, + lws_fop_flags_t *flags); /** * lws_plat_file_close() - close file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle to close */ static LWS_INLINE int -lws_plat_file_close(struct lws *wsi, lws_filefd_type fd) +lws_vfs_file_close(lws_fop_fd_t *fop_fd) { - return lws_get_fops(lws_get_context(wsi))->close(wsi, fd); + return (*fop_fd)->fops->LWS_FOP_CLOSE(fop_fd); } /** * lws_plat_file_seek_cur() - close file * - * \param wsi: connection opened by - * \param fd: file descriptor + * + * \param fop_fd: file handle * \param offset: position to seek to */ -static LWS_INLINE unsigned long -lws_plat_file_seek_cur(struct lws *wsi, lws_filefd_type fd, long offset) +static LWS_INLINE lws_fileofs_t +lws_vfs_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset) { - return lws_get_fops(lws_get_context(wsi))->seek_cur(wsi, fd, offset); + return fop_fd->fops->LWS_FOP_SEEK_CUR(fop_fd, offset); } /** * lws_plat_file_read() - read from file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle * \param amount: how much to read (rewritten by call) * \param buf: buffer to write to * \param len: max length */ static LWS_INLINE int LWS_WARN_UNUSED_RESULT -lws_plat_file_read(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len) +lws_vfs_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len) { - return lws_get_fops(lws_get_context(wsi))->read(wsi, fd, amount, buf, - len); + return fop_fd->fops->LWS_FOP_READ(fop_fd, amount, buf, len); } /** * lws_plat_file_write() - write from file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle * \param amount: how much to write (rewritten by call) * \param buf: buffer to read from * \param len: max length */ static LWS_INLINE int LWS_WARN_UNUSED_RESULT -lws_plat_file_write(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len) +lws_vfs_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len) { - return lws_get_fops(lws_get_context(wsi))->write(wsi, fd, amount, buf, - len); + return fop_fd->fops->LWS_FOP_WRITE(fop_fd, amount, buf, len); } + +/* these are the platform file operations implementations... they can + * be called directly and used in fops arrays + */ + +LWS_VISIBLE LWS_EXTERN lws_fop_fd_t +_lws_plat_file_open(const struct lws_plat_file_ops *fops, const char *filename, + const char *vpath, lws_fop_flags_t *flags); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_close(lws_fop_fd_t *fop_fd); +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +_lws_plat_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); + +LWS_VISIBLE LWS_EXTERN int +lws_alloc_vfs_file(struct lws_context *context, const char *filename, + uint8_t **buf, lws_filepos_t *amount); //@} -/** \defgroup smtp - * \ingroup lwsapi +/** \defgroup smtp SMTP related functions * ##SMTP related functions + * \ingroup lwsapi * * These apis let you communicate with a local SMTP server to send email from * lws. It handles all the SMTP sequencing and protocol actions. @@ -4189,6 +5727,59 @@ lws_email_destroy(struct lws_email *email); #endif //@} +/* + * Stats are all uint64_t numbers that start at 0. + * Index names here have the convention + * + * _C_ counter + * _B_ byte count + * _MS_ millisecond count + */ + +enum { + LWSSTATS_C_CONNECTIONS, /**< count incoming connections */ + LWSSTATS_C_API_CLOSE, /**< count calls to close api */ + LWSSTATS_C_API_READ, /**< count calls to read from socket api */ + LWSSTATS_C_API_LWS_WRITE, /**< count calls to lws_write API */ + LWSSTATS_C_API_WRITE, /**< count calls to write API */ + LWSSTATS_C_WRITE_PARTIALS, /**< count of partial writes */ + LWSSTATS_C_WRITEABLE_CB_REQ, /**< count of writable callback requests */ + LWSSTATS_C_WRITEABLE_CB_EFF_REQ, /**< count of effective writable callback requests */ + LWSSTATS_C_WRITEABLE_CB, /**< count of writable callbacks */ + LWSSTATS_C_SSL_CONNECTIONS_FAILED, /**< count of failed SSL connections */ + LWSSTATS_C_SSL_CONNECTIONS_ACCEPTED, /**< count of accepted SSL connections */ + LWSSTATS_C_SSL_CONNECTIONS_ACCEPT_SPIN, /**< count of SSL_accept() attempts */ + LWSSTATS_C_SSL_CONNS_HAD_RX, /**< count of accepted SSL conns that have had some RX */ + LWSSTATS_C_TIMEOUTS, /**< count of timed-out connections */ + LWSSTATS_C_SERVICE_ENTRY, /**< count of entries to lws service loop */ + LWSSTATS_B_READ, /**< aggregate bytes read */ + LWSSTATS_B_WRITE, /**< aggregate bytes written */ + LWSSTATS_B_PARTIALS_ACCEPTED_PARTS, /**< aggreate of size of accepted write data from new partials */ + LWSSTATS_MS_SSL_CONNECTIONS_ACCEPTED_DELAY, /**< aggregate delay in accepting connection */ + LWSSTATS_MS_WRITABLE_DELAY, /**< aggregate delay between asking for writable and getting cb */ + LWSSTATS_MS_WORST_WRITABLE_DELAY, /**< single worst delay between asking for writable and getting cb */ + LWSSTATS_MS_SSL_RX_DELAY, /**< aggregate delay between ssl accept complete and first RX */ + LWSSTATS_C_PEER_LIMIT_AH_DENIED, /**< number of times we would have given an ah but for the peer limit */ + LWSSTATS_C_PEER_LIMIT_WSI_DENIED, /**< number of times we would have given a wsi but for the peer limit */ + + /* Add new things just above here ---^ + * This is part of the ABI, don't needlessly break compatibility */ + LWSSTATS_SIZE +}; + +#if defined(LWS_WITH_STATS) + +LWS_VISIBLE LWS_EXTERN uint64_t +lws_stats_get(struct lws_context *context, int index); +LWS_VISIBLE LWS_EXTERN void +lws_stats_log_dump(struct lws_context *context); +#else +static LWS_INLINE uint64_t +lws_stats_get(struct lws_context *context, int index) { return 0; } +static LWS_INLINE void +lws_stats_log_dump(struct lws_context *context) { } +#endif + #ifdef __cplusplus } #endif diff --git a/android/armeabi-v7a/include/websockets/lws_config.h b/android/armeabi-v7a/include/websockets/lws_config.h index bf49e46e..8e894aa6 100644 --- a/android/armeabi-v7a/include/websockets/lws_config.h +++ b/android/armeabi-v7a/include/websockets/lws_config.h @@ -6,7 +6,7 @@ #endif #endif -#define LWS_INSTALL_DATADIR "/Users/james/Project/cocos2d-x-3rd-party-libs-src/contrib/install-android/arm/share" +#define LWS_INSTALL_DATADIR "/Users/cocos/Github/cocos2d-x-3rd-party-libs-src/contrib/install-android/arm64/share" /* Define to 1 to use wolfSSL/CyaSSL as a replacement for OpenSSL. * LWS_OPENSSL_SUPPORT needs to be set also for this to work. */ @@ -15,25 +15,27 @@ /* Also define to 1 (in addition to USE_WOLFSSL) when using the (older) CyaSSL library */ /* #undef USE_OLD_CYASSL */ +/* #undef LWS_WITH_BORINGSSL */ -/* #undef LWS_USE_MBEDTLS */ -/* #undef LWS_USE_POLARSSL */ +/* #undef LWS_WITH_MBEDTLS */ +/* #undef LWS_WITH_POLARSSL */ /* #undef LWS_WITH_ESP8266 */ +/* #undef LWS_WITH_ESP32 */ /* #undef LWS_WITH_PLUGINS */ /* #undef LWS_WITH_NO_LOGS */ /* The Libwebsocket version */ -#define LWS_LIBRARY_VERSION "2.1.0" +#define LWS_LIBRARY_VERSION "2.4.2" #define LWS_LIBRARY_VERSION_MAJOR 2 -#define LWS_LIBRARY_VERSION_MINOR 1 -#define LWS_LIBRARY_VERSION_PATCH 0 +#define LWS_LIBRARY_VERSION_MINOR 4 +#define LWS_LIBRARY_VERSION_PATCH 2 /* LWS_LIBRARY_VERSION_NUMBER looks like 1005001 for e.g. version 1.5.1 */ #define LWS_LIBRARY_VERSION_NUMBER (LWS_LIBRARY_VERSION_MAJOR*1000000)+(LWS_LIBRARY_VERSION_MINOR*1000)+LWS_LIBRARY_VERSION_PATCH /* The current git commit hash that we're building from */ -#define LWS_BUILD_HASH "james@James-Chen.local-v3.4-138-g60b1a6f" +#define LWS_BUILD_HASH "cocos@cocoss-MacBook-Pro.local-v3.4-182-g408ba56" /* Build with OpenSSL support */ #define LWS_OPENSSL_SUPPORT @@ -48,19 +50,22 @@ /* #undef LWS_NO_EXTENSIONS */ /* Enable libev io loop */ -/* #undef LWS_USE_LIBEV */ +/* #undef LWS_WITH_LIBEV */ /* Enable libuv io loop */ -/* #undef LWS_USE_LIBUV */ +#define LWS_WITH_LIBUV + +/* Enable libevent io loop */ +/* #undef LWS_WITH_LIBEVENT */ /* Build with support for ipv6 */ -#define LWS_USE_IPV6 +#define LWS_WITH_IPV6 /* Build with support for UNIX domain socket */ -/* #undef LWS_USE_UNIX_SOCK */ +/* #undef LWS_WITH_UNIX_SOCK */ /* Build with support for HTTP2 */ -/* #undef LWS_USE_HTTP2 */ +/* #undef LWS_WITH_HTTP2 */ /* Turn on latency measuring code */ /* #undef LWS_LATENCY */ @@ -69,7 +74,7 @@ #define LWS_NO_DAEMONIZE /* Build without server support */ -#define LWS_NO_SERVER +/* #undef LWS_NO_SERVER */ /* Build without client support */ /* #undef LWS_NO_CLIENT */ @@ -85,8 +90,9 @@ /* SSL server using ECDH certificate */ /* #undef LWS_SSL_SERVER_WITH_ECDH_CERT */ -#define LWS_HAVE_SSL_CTX_set1_param -#define LWS_HAVE_X509_VERIFY_PARAM_set1_host +/* #undef LWS_HAVE_SSL_CTX_set1_param */ +/* #undef LWS_HAVE_X509_VERIFY_PARAM_set1_host */ +/* #undef LWS_HAVE_RSA_SET0_KEY */ /* #undef LWS_HAVE_UV_VERSION_H */ @@ -99,14 +105,18 @@ /* HTTP Proxy support */ /* #undef LWS_WITH_HTTP_PROXY */ +/* HTTP Ranges support */ +#define LWS_WITH_RANGES + /* Http access log support */ /* #undef LWS_WITH_ACCESS_LOG */ /* #undef LWS_WITH_SERVER_STATUS */ /* #undef LWS_WITH_STATEFUL_URLDECODE */ +/* #undef LWS_WITH_PEER_LIMITS */ /* Maximum supported service threads */ -#define LWS_MAX_SMP 32 +#define LWS_MAX_SMP 1 /* Lightweight JSON Parser */ /* #undef LWS_WITH_LEJP */ @@ -114,4 +124,33 @@ /* SMTP */ /* #undef LWS_WITH_SMTP */ +/* OPTEE */ +/* #undef LWS_PLAT_OPTEE */ + +/* ZIP FOPS */ +#define LWS_WITH_ZIP_FOPS +#define LWS_HAVE_STDINT_H + +/* #undef LWS_AVOID_SIGPIPE_IGN */ + +/* #undef LWS_FALLBACK_GETHOSTBYNAME */ + +/* #undef LWS_WITH_STATS */ +/* #undef LWS_WITH_SOCKS5 */ + +#define LWS_HAVE_SYS_CAPABILITY_H +/* #undef LWS_HAVE_LIBCAP */ + +#define LWS_HAVE_ATOLL +/* #undef LWS_HAVE__ATOI64 */ +/* #undef LWS_HAVE__STAT32I64 */ + +/* OpenSSL various APIs */ + +/* #undef LWS_HAVE_TLS_CLIENT_METHOD */ +/* #undef LWS_HAVE_TLSV1_2_CLIENT_METHOD */ +/* #undef LWS_HAVE_SSL_SET_INFO_CALLBACK */ + +#define LWS_HAS_INTPTR_T + diff --git a/android/armeabi-v7a/libwebsockets.a b/android/armeabi-v7a/libwebsockets.a index 5a4515ac8428c73d13f47e2af98d02f57dfd84cc..12d077fc7d4c35a84d1cf9bcc230554a92ae6e5b 100644 GIT binary patch literal 217178 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�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 literal 117336 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 z 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≶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 A$p8QV literal 511344 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 fhZ=S7ak=UvkBN{qF-Cv?~t=4%;kj(7K!q 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 #include -#ifdef MBED_OPERATORS -#include "mbed-drivers/mbed.h" -#include "sal-iface-eth/EthernetInterface.h" -#include "sockets/TCPListener.h" -#include "sal-stack-lwip/lwipv4_init.h" - -namespace { -} -using namespace mbed::Sockets::v0; - - -struct sockaddr_in; -struct lws; - -class lws_conn { - public: - lws_conn(): - ts(NULL), - wsi(NULL), - writeable(1), - awaiting_on_writeable(0) - { - } - -public: - void set_wsi(struct lws *_wsi) { wsi = _wsi; } - int actual_onRX(Socket *s); - void onRX(Socket *s); - void onError(Socket *s, socket_error_t err); - void onDisconnect(TCPStream *s); - void onSent(Socket *s, uint16_t len); - void serialized_writeable(struct lws *wsi); - -public: - TCPStream *ts; - -public: - struct lws *wsi; - char writeable; - char awaiting_on_writeable; -}; - -class lws_conn_listener : lws_conn { -public: - lws_conn_listener(): - srv(SOCKET_STACK_LWIP_IPV4) - { - srv.setOnError(TCPStream::ErrorHandler_t(this, - &lws_conn_listener::onError)); - } - - void start(const uint16_t port); /**< start listening */ - -protected: - void onRX(Socket *s); /**< incoming data ready */ - void onError(Socket *s, socket_error_t err); /**< if error occurs */ - void onIncoming(TCPListener *s, void *impl); /**< new connection */ - void onDisconnect(TCPStream *s); /**< disconnection */ - -public: - TCPListener srv; -}; - -#endif - +# extern "C" { #else #include #endif -#if defined(MBED_OPERATORS) || defined(LWS_WITH_ESP8266) +#include "lws_config.h" + +/* + * CARE: everything using cmake defines needs to be below here + */ + +#if defined(LWS_WITH_ESP8266) struct sockaddr_in; #define LWS_POSIX 0 #else #define LWS_POSIX 1 #endif -#include "lws_config.h" +#if defined(LWS_HAS_INTPTR_T) +#include +#define lws_intptr_t intptr_t +#else +typedef unsigned long long lws_intptr_t; +#endif #if defined(WIN32) || defined(_WIN32) #ifndef WIN32_LEAN_AND_MEAN @@ -125,7 +72,7 @@ struct sockaddr_in; // Visual studio older than 2015 and WIN_CE has only _stricmp #if (defined(_MSC_VER) && _MSC_VER < 1900) || defined(_WIN32_WCE) #define strcasecmp _stricmp -#else +#elif !defined(__MINGW32__) #define strcasecmp stricmp #endif #define getdtablesize() 30000 @@ -134,6 +81,7 @@ struct sockaddr_in; #define LWS_VISIBLE #define LWS_WARN_UNUSED_RESULT #define LWS_WARN_DEPRECATED +#define LWS_FORMAT(string_index) #ifdef LWS_DLL #ifdef LWS_INTERNAL @@ -147,8 +95,11 @@ struct sockaddr_in; #define LWS_INVALID_FILE INVALID_HANDLE_VALUE #define LWS_O_RDONLY _O_RDONLY +#define LWS_O_WRONLY _O_WRONLY +#define LWS_O_CREAT _O_CREAT +#define LWS_O_TRUNC _O_TRUNC -#if !defined(_MSC_VER) || _MSC_VER < 1900 /* Visual Studio 2015 already defines this in */ +#if !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER < 1900) /* Visual Studio 2015 already defines this in */ #define lws_snprintf _snprintf #endif @@ -156,8 +107,15 @@ struct sockaddr_in; #define __func__ __FUNCTION__ #endif +#if !defined(__MINGW32__) &&(!defined(_MSC_VER) || _MSC_VER < 1900) && !defined(snprintf) +#define snprintf(buf,len, format,...) _snprintf_s(buf, len,len, format, __VA_ARGS__) +#endif + #else /* NOT WIN32 */ #include +#if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) +#include +#endif #if defined(__NetBSD__) || defined(__FreeBSD__) #include @@ -165,14 +123,21 @@ struct sockaddr_in; #define LWS_INLINE inline #define LWS_O_RDONLY O_RDONLY +#define LWS_O_WRONLY O_WRONLY +#define LWS_O_CREAT O_CREAT +#define LWS_O_TRUNC O_TRUNC -#if !defined(MBED_OPERATORS) && !defined(LWS_WITH_ESP8266) +#if !defined(LWS_WITH_ESP8266) && !defined(OPTEE_TA) && !defined(LWS_WITH_ESP32) #include #include #define LWS_INVALID_FILE -1 #else -#define getdtablesize() (20) +#define getdtablesize() (30) +#if defined(LWS_WITH_ESP32) #define LWS_INVALID_FILE NULL +#else +#define LWS_INVALID_FILE NULL +#endif #endif #if defined(__GNUC__) @@ -186,10 +151,12 @@ struct sockaddr_in; #define LWS_VISIBLE __attribute__((visibility("default"))) #define LWS_WARN_DEPRECATED __attribute__ ((deprecated)) +#define LWS_FORMAT(string_index) __attribute__ ((format(printf, string_index, string_index+1))) #else #define LWS_VISIBLE #define LWS_WARN_UNUSED_RESULT #define LWS_WARN_DEPRECATED +#define LWS_FORMAT(string_index) #endif #if defined(__ANDROID__) @@ -199,15 +166,18 @@ struct sockaddr_in; #endif -#ifdef LWS_USE_LIBEV +#ifdef LWS_WITH_LIBEV #include -#endif /* LWS_USE_LIBEV */ -#ifdef LWS_USE_LIBUV -#include +#endif /* LWS_WITH_LIBEV */ +#ifdef LWS_WITH_LIBUV +#include "uv.h" #ifdef LWS_HAVE_UV_VERSION_H #include #endif -#endif /* LWS_USE_LIBUV */ +#endif /* LWS_WITH_LIBUV */ +#ifdef LWS_WITH_LIBEVENT +#include +#endif /* LWS_WITH_LIBEVENT */ #ifndef LWS_EXTERN #define LWS_EXTERN extern @@ -216,9 +186,11 @@ struct sockaddr_in; #ifdef _WIN32 #define random rand #else +#if !defined(OPTEE_TA) #include #include #endif +#endif #ifdef LWS_OPENSSL_SUPPORT @@ -231,28 +203,24 @@ struct sockaddr_in; #include #endif /* not USE_OLD_CYASSL */ #else -#if defined(LWS_USE_POLARSSL) -#include -struct lws_polarssl_context { - x509_crt ca; /**< ca */ - x509_crt certificate; /**< cert */ - rsa_context key; /**< key */ -}; -typedef struct lws_polarssl_context SSL_CTX; -typedef ssl_context SSL; -#else -#if defined(LWS_USE_MBEDTLS) +#if defined(LWS_WITH_MBEDTLS) +#if defined(LWS_WITH_ESP32) +/* this filepath is passed to us but without quotes or <> */ +#undef MBEDTLS_CONFIG_FILE +#define MBEDTLS_CONFIG_FILE +#endif #include -#else -#include -#include -#endif /* not USE_MBEDTLS */ -#endif /* not USE_POLARSSL */ +#endif +#include "openssl/ssl.h" +#if !defined(LWS_WITH_MBEDTLS) +#include "openssl/err.h" +#endif #endif /* not USE_WOLFSSL */ #endif #define CONTEXT_PORT_NO_LISTEN -1 +#define CONTEXT_PORT_NO_LISTEN_SERVER -2 /** \defgroup log Logging * @@ -277,11 +245,12 @@ enum lws_log_levels { LLL_EXT = 1 << 7, LLL_CLIENT = 1 << 8, LLL_LATENCY = 1 << 9, + LLL_USER = 1 << 10, - LLL_COUNT = 10 /* set to count of valid flags */ + LLL_COUNT = 11 /* set to count of valid flags */ }; -LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...); +LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...) LWS_FORMAT(2); LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl); /** * lwsl_timestamp: generate logging timestamp string @@ -295,15 +264,18 @@ LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl LWS_VISIBLE LWS_EXTERN int lwsl_timestamp(int level, char *p, int len); +/* these guys are unconditionally included */ + #define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__) +#define lwsl_user(...) _lws_log(LLL_USER, __VA_ARGS__) #if !defined(LWS_WITH_NO_LOGS) -/* notice, warn and log are always compiled in */ +/* notice and warn are usually included by being compiled in */ #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) #endif /* - * weaker logging can be deselected at configure time using --disable-debug + * weaker logging can be deselected by telling CMake to build in RELEASE mode * that gets rid of the overhead of checking while keeping _warn and _err * active */ @@ -315,7 +287,6 @@ lwsl_timestamp(int level, char *p, int len); #ifdef _DEBUG #if defined(LWS_WITH_NO_LOGS) /* notice, warn and log are always compiled in */ -//#define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__) #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) #endif @@ -326,17 +297,9 @@ lwsl_timestamp(int level, char *p, int len); #define lwsl_ext(...) _lws_log(LLL_EXT, __VA_ARGS__) #define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__) #define lwsl_latency(...) _lws_log(LLL_LATENCY, __VA_ARGS__) -/** - * lwsl_hexdump() - helper to hexdump a buffer (DEBUG builds only) - * - * \param buf: buffer start to dump - * \param len: length of buffer to dump - */ -LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); #else /* no debug */ #if defined(LWS_WITH_NO_LOGS) -//#define lwsl_err(...) do {} while(0) #define lwsl_warn(...) do {} while(0) #define lwsl_notice(...) do {} while(0) #endif @@ -347,10 +310,44 @@ LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); #define lwsl_ext(...) do {} while(0) #define lwsl_client(...) do {} while(0) #define lwsl_latency(...) do {} while(0) -#define lwsl_hexdump(a, b) #endif +/** + * lwsl_hexdump() - helper to hexdump a buffer + * + * \param level: one of LLL_ constants + * \param buf: buffer start to dump + * \param len: length of buffer to dump + * + * If \p level is visible, does a nice hexdump -C style dump of \p buf for + * \p len bytes. This can be extremely convenient while debugging. + */ +LWS_VISIBLE LWS_EXTERN void +lwsl_hexdump_level(int level, const void *vbuf, size_t len); + +/** + * lwsl_hexdump() - helper to hexdump a buffer (DEBUG builds only) + * + * \param buf: buffer start to dump + * \param len: length of buffer to dump + * + * Calls through to lwsl_hexdump_level(LLL_DEBUG, ... for compatability. + * It's better to use lwsl_hexdump_level(level, ... directly so you can control + * the visibility. + */ +LWS_VISIBLE LWS_EXTERN void +lwsl_hexdump(const void *buf, size_t len); + +/** + * lws_is_be() - returns nonzero if the platform is Big Endian + */ +static LWS_INLINE int lws_is_be(void) { + const int probe = ~0xff; + + return *(const char *)&probe; +} + /** * lws_set_log_level() - Set the logging bitfield * \param level: OR together the LLL_ debug contexts you want output from @@ -359,7 +356,8 @@ LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); * the default stderr one. * * log level defaults to "err", "warn" and "notice" contexts enabled and - * emission on stderr. + * emission on stderr. If stderr is a tty (according to isatty()) then + * the output is coloured according to the log level using ANSI escapes. */ LWS_VISIBLE LWS_EXTERN void lws_set_log_level(int level, @@ -377,6 +375,18 @@ lws_set_log_level(int level, LWS_VISIBLE LWS_EXTERN void lwsl_emit_syslog(int level, const char *line); +/** + * lwsl_visible() - returns true if the log level should be printed + * + * \param level: one of LLL_ log level indexes + * + * This is useful if you have to do work to generate the log content, you + * can skip the work if the log level used to print it is not actually + * enabled at runtime. + */ +LWS_VISIBLE LWS_EXTERN int +lwsl_visible(int level); + ///@} @@ -423,30 +433,7 @@ struct lws_pollfd { #define LWS_POLLOUT (FD_WRITE) #else -#if defined(MBED_OPERATORS) -/* it's a class lws_conn * */ -typedef void * lws_sockfd_type; -typedef void * lws_filefd_type; -#define lws_sockfd_valid(sfd) (!!sfd) -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 -struct lws; - -void * mbed3_create_tcp_stream_socket(void); -void mbed3_delete_tcp_stream_socket(void *sockfd); -void mbed3_tcp_stream_bind(void *sock, int port, struct lws *); -void mbed3_tcp_stream_accept(void *sock, struct lws *); -#else #if defined(LWS_WITH_ESP8266) #include @@ -476,7 +463,7 @@ void esp8266_tcp_stream_accept(lws_sockfd_type fd, struct lws *wsi); #include #include "ets_sys.h" -int ets_snprintf(char *str, size_t size, const char *format, ...); +int ets_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3); #define snprintf ets_snprintf typedef os_timer_t uv_timer_t; @@ -512,6 +499,206 @@ static inline void uv_timer_stop(uv_timer_t *t) os_timer_disarm(t); } +#else +#if defined(LWS_WITH_ESP32) + +typedef int lws_sockfd_type; +typedef int lws_filefd_type; +#define lws_sockfd_valid(sfd) (sfd >= 0) +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 + +#include +#include +#include +#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" + +#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 inline void uv_timer_init(void *l, uv_timer_t *t) +{ + (void)l; + *t = NULL; +} + +extern void esp32_uvtimer_cb(TimerHandle_t t); + +static 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 inline void uv_timer_stop(uv_timer_t *t) +{ + xTimerStop(*t, 0); +} + +static inline void uv_close(uv_handle_t *h, void *v) +{ + free(pvTimerGetTimerID((uv_timer_t)h)); + xTimerDelete(*(uv_timer_t *)h, 0); +} + +/* ESP32 helper declarations */ + +#include +#include + +#define LWS_PLUGIN_STATIC +#define LWS_MAGIC_REBOOT_TYPE_ADS 0x50001ffc +#define LWS_MAGIC_REBOOT_TYPE_REQ_FACTORY 0xb00bcafe +#define LWS_MAGIC_REBOOT_TYPE_FORCED_FACTORY 0xfaceb00b +#define LWS_MAGIC_REBOOT_TYPE_FORCED_FACTORY_BUTTON 0xf0cedfac + + +/* user code provides these */ + +extern void +lws_esp32_identify_physical_device(void); + +/* lws-plat-esp32 provides these */ + +typedef void (*lws_cb_scan_done)(uint16_t count, wifi_ap_record_t *recs, void *arg); + +enum genled_state { + LWSESP32_GENLED__INIT, + LWSESP32_GENLED__LOST_NETWORK, + LWSESP32_GENLED__NO_NETWORK, + LWSESP32_GENLED__CONN_AP, + LWSESP32_GENLED__GOT_IP, + LWSESP32_GENLED__OK, +}; + +struct lws_group_member { + struct lws_group_member *next; + uint64_t last_seen; + char model[16]; + char role[16]; + char host[32]; + char mac[20]; + int width, height; + struct ip4_addr addr; + struct ip6_addr addrv6; + uint8_t flags; +}; + +#define LWS_SYSTEM_GROUP_MEMBER_ADD 1 +#define LWS_SYSTEM_GROUP_MEMBER_CHANGE 2 +#define LWS_SYSTEM_GROUP_MEMBER_REMOVE 3 + +#define LWS_GROUP_FLAG_SELF 1 + +struct lws_esp32 { + char sta_ip[16]; + char sta_mask[16]; + char sta_gw[16]; + char serial[16]; + char opts[16]; + char model[16]; + char group[16]; + char role[16]; + char ssid[4][16]; + char password[4][32]; + char active_ssid[32]; + char access_pw[16]; + char hostname[32]; + char mac[20]; + mdns_server_t *mdns; + char region; + char inet; + char conn_ap; + + enum genled_state genled; + uint64_t genled_t; + + lws_cb_scan_done scan_consumer; + void *scan_consumer_arg; + struct lws_group_member *first; + int extant_group_members; +}; + +struct lws_esp32_image { + uint32_t romfs; + uint32_t romfs_len; + uint32_t json; + uint32_t json_len; +}; + +extern struct lws_esp32 lws_esp32; +struct lws_vhost; + +extern esp_err_t +lws_esp32_event_passthru(void *ctx, system_event_t *event); +extern void +lws_esp32_wlan_config(void); +extern void +lws_esp32_wlan_start_ap(void); +extern void +lws_esp32_wlan_start_station(void); +struct lws_context_creation_info; +extern void +lws_esp32_set_creation_defaults(struct lws_context_creation_info *info); +extern struct lws_context * +lws_esp32_init(struct lws_context_creation_info *, struct lws_vhost **pvh); +extern int +lws_esp32_wlan_nvs_get(int retry); +extern esp_err_t +lws_nvs_set_str(nvs_handle handle, const char* key, const char* value); +extern void +lws_esp32_restart_guided(uint32_t type); +extern const esp_partition_t * +lws_esp_ota_get_boot_partition(void); +extern int +lws_esp32_get_image_info(const esp_partition_t *part, struct lws_esp32_image *i, char *json, int json_len); +extern int +lws_esp32_leds_network_indication(void); + +extern uint32_t lws_esp32_get_reboot_type(void); +extern uint16_t lws_esp32_sine_interp(int n); + +/* required in external code by esp32 plat (may just return if no leds) */ +extern void lws_esp32_leds_timer_cb(TimerHandle_t th); #else typedef int lws_sockfd_type; typedef int lws_filefd_type; @@ -525,6 +712,36 @@ typedef int lws_filefd_type; #define LWS_POLLOUT (POLLOUT) #endif + +#if (defined(WIN32) || defined(_WIN32)) && !defined(__MINGW32__) +/* ... */ +#define ssize_t SSIZE_T +#endif + +#if defined(WIN32) && defined(LWS_HAVE__STAT32I64) +#include +#include +#endif + +#if defined(LWS_HAVE_STDINT_H) +#include +#else +#if defined(WIN32) || defined(_WIN32) +/* !!! >:-[ */ +typedef unsigned __int32 uint32_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int8 uint8_t; +#else +typedef unsigned int uint32_t; +typedef unsigned short uint16_t; +typedef unsigned char uint8_t; +#endif +#endif + +typedef unsigned long long lws_filepos_t; +typedef long long lws_fileofs_t; +typedef uint32_t lws_fop_flags_t; + /** struct lws_pollargs - argument structure for all external poll related calls * passed in via 'in' */ struct lws_pollargs { @@ -641,6 +858,38 @@ struct lws_context; /* needed even with extensions disabled for create context */ struct lws_extension; +/*! \defgroup lwsmeta lws-meta + * + * ##lws-meta protocol + * + * The protocol wraps other muxed connections inside one tcp connection. + * + * Commands are assigned from 0x41 up (so they are valid unicode) + */ +///@{ + +enum lws_meta_commands { + LWS_META_CMD_OPEN_SUBCHANNEL = 'A', + /**< Client requests to open new subchannel + */ + LWS_META_CMD_OPEN_RESULT, + /**< Result of client request to open new subchannel */ + LWS_META_CMD_CLOSE_NOTIFY, + /**< Notification of subchannel closure */ + LWS_META_CMD_CLOSE_RQ, + /**< client requests to close a subchannel */ + LWS_META_CMD_WRITE, + /**< connection writes something to specific channel index */ + + /****** add new things just above ---^ ******/ +}; + +/* channel numbers are transported offset by 0x20 so they are valid unicode */ + +#define LWS_META_TRANSPORT_OFFSET 0x20 + +///@} + /*! \defgroup usercb User Callback * * ##User protocol callback @@ -654,6 +903,10 @@ struct lws_extension; */ ///@{ +struct lws_ssl_info { + int where; + int ret; +}; /* * NOTE: These public enums are part of the abi. If you want to add one, @@ -820,7 +1073,7 @@ enum lws_callback_reasons { LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS = 22, /**< if configured for * including OpenSSL support, this callback allows your user code - * to load extra certifcates into the server which allow it to + * to load extra certificates into the server which allow it to * verify the validity of certificates returned by clients. user * is the server's OpenSSL SSL_CTX* */ LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION = 23, @@ -874,8 +1127,7 @@ enum lws_callback_reasons { * and with in being the extension name, len is 0 and user is * valid. Note though at this time the ESTABLISHED callback hasn't * happened yet so if you initialize user content there, user - * content during this callback might not be useful for anything. - * Notice this callback comes to protocols[0]. */ + * content during this callback might not be useful for anything. */ LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED = 26, /**< When a client * connection is being prepared to start a handshake to a server, @@ -966,45 +1218,127 @@ enum lws_callback_reasons { * connection. */ LWS_CALLBACK_WS_EXT_DEFAULTS = 39, - /**< */ + /**< Gives client connections an opportunity to adjust negotiated + * extension defaults. `user` is the extension name that was + * negotiated (eg, "permessage-deflate"). `in` points to a + * buffer and `len` is the buffer size. The user callback can + * set the buffer to a string describing options the extension + * should parse. Or just ignore for defaults. */ LWS_CALLBACK_CGI = 40, - /**< */ + /**< CGI: CGI IO events on stdin / out / err are sent here on + * protocols[0]. The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. */ LWS_CALLBACK_CGI_TERMINATED = 41, - /**< */ + /**< CGI: The related CGI process ended, this is called before + * the wsi is closed. Used to, eg, terminate chunking. + * The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. The child PID that terminated is in len. */ LWS_CALLBACK_CGI_STDIN_DATA = 42, - /**< */ + /**< CGI: Data is, to be sent to the CGI process stdin, eg from + * a POST body. The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. */ LWS_CALLBACK_CGI_STDIN_COMPLETED = 43, - /**< */ + /**< CGI: no more stdin is coming. The provided + * `lws_callback_http_dummy()` handles this and the callback + * should be directed there if you use CGI. */ LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44, - /**< */ + /**< The HTTP client connection has succeeded, and is now + * connected to the server */ LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45, - /**< */ + /**< The HTTP client connection is closing */ LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46, - /**< */ + /**< This simply indicates data was received on the HTTP client + * connection. It does NOT drain or provide the data. + * This exists to neatly allow a proxying type situation, + * where this incoming data will go out on another connection. + * If the outgoing connection stalls, we should stall processing + * the incoming data. So a handler for this in that case should + * simply set a flag to indicate there is incoming data ready + * and ask for a writeable callback on the outgoing connection. + * In the writable callback he can check the flag and then get + * and drain the waiting incoming data using lws_http_client_read(). + * This will use callbacks to LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ + * to get and drain the incoming data, where it should be sent + * back out on the outgoing connection. */ LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47, - /**< */ + /**< The client transaction completed... at the moment this + * is the same as closing since transaction pipelining on + * client side is not yet supported. */ LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48, - /**< */ + /**< This is generated by lws_http_client_read() used to drain + * incoming data. In the case the incoming data was chunked, + * it will be split into multiple smaller callbacks for each + * chunk block, removing the chunk headers. If not chunked, + * it will appear all in one callback. */ LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49, - /**< */ + /**< By default, all HTTP handling is done in protocols[0]. + * However you can bind different protocols (by name) to + * different parts of the URL space using callback mounts. This + * callback occurs in the new protocol when a wsi is bound + * to that protocol. Any protocol allocation related to the + * http transaction processing should be created then. + * These specific callbacks are necessary because with HTTP/1.1, + * a single connection may perform at series of different + * transactions at different URLs, thus the lifetime of the + * protocol bind is just for one transaction, not connection. */ LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50, - /**< */ + /**< This is called when a transaction is unbound from a protocol. + * It indicates the connection completed its transaction and may + * do something different now. Any protocol allocation related + * to the http transaction processing should be destroyed. */ LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51, - /**< */ + /**< This gives the user code a chance to forbid an http access. + * `in` points to a `struct lws_process_html_args`, which + * describes the URL, and a bit mask describing the type of + * authentication required. If the callback returns nonzero, + * the transaction ends with HTTP_STATUS_UNAUTHORIZED. */ LWS_CALLBACK_PROCESS_HTML = 52, - /**< */ + /**< This gives your user code a chance to mangle outgoing + * HTML. `in` points to a `struct lws_process_html_args` + * which describes the buffer containing outgoing HTML. + * The buffer may grow up to `.max_len` (currently +128 + * bytes per buffer). + * */ LWS_CALLBACK_ADD_HEADERS = 53, - /**< */ + /**< This gives your user code a chance to add headers to a + * transaction bound to your protocol. `in` points to a + * `struct lws_process_html_args` describing a buffer and length + * you can add headers into using the normal lws apis. + * + * Only `args->p` and `args->len` are valid, and `args->p` should + * be moved on by the amount of bytes written, if any. Eg + * + * case LWS_CALLBACK_ADD_HEADERS: + * + * struct lws_process_html_args *args = + * (struct lws_process_html_args *)in; + * + * if (lws_add_http_header_by_name(wsi, + * (unsigned char *)"set-cookie:", + * (unsigned char *)cookie, cookie_len, + * (unsigned char **)&args->p, + * (unsigned char *)args->p + args->max_len)) + * return 1; + * + * break; + */ LWS_CALLBACK_SESSION_INFO = 54, - /**< */ + /**< This is only generated by user code using generic sessions. + * It's used to get a `struct lws_session_info` filled in by + * generic sessions with information about the logged-in user. + * See the messageboard sample for an example of how to use. */ LWS_CALLBACK_GS_EVENT = 55, - /**< */ + /**< Indicates an event happened to the Generic Sessions session. + * `in` contains a `struct lws_gs_event_args` describing the event. */ LWS_CALLBACK_HTTP_PMO = 56, /**< per-mount options for this connection, called before * the normal LWS_CALLBACK_HTTP when the mount has per-mount - * options + * options. */ LWS_CALLBACK_CLIENT_HTTP_WRITEABLE = 57, /**< when doing an HTTP type client connection, you can call @@ -1015,11 +1349,76 @@ enum lws_callback_reasons { * From this callback, when you have sent everything, you should let * lws know by calling lws_client_http_body_pending(wsi, 0) */ + LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION = 58, + /**< Similar to LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION + * this callback is called during OpenSSL verification of the cert + * sent from the server to the client. It is sent to protocol[0] + * callback as no protocol has been negotiated on the connection yet. + * Notice that the wsi is set because lws_client_connect_via_info was + * successful. + * + * See http://www.openssl.org/docs/ssl/SSL_CTX_set_verify.html + * to understand more detail about the OpenSSL callback that + * generates this libwebsockets callback and the meanings of the + * arguments passed. In this callback, user is the x509_ctx, + * in is the ssl pointer and len is preverify_ok. + * + * THIS IS NOT RECOMMENDED BUT if a cert validation error shall be + * overruled and cert shall be accepted as ok, + * X509_STORE_CTX_set_error((X509_STORE_CTX*)user, X509_V_OK); must be + * called and return value must be 0 to mean the cert is OK; + * returning 1 will fail the cert in any case. + * + * This also means that if you don't handle this callback then + * the default callback action of returning 0 will not accept the + * certificate in case of a validation error decided by the SSL lib. + * + * This is expected and secure behaviour when validating certificates. + * + * Note: LCCSCF_ALLOW_SELFSIGNED and + * LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK still work without this + * callback being implemented. + */ + LWS_CALLBACK_RAW_RX = 59, + /**< RAW mode connection RX */ + LWS_CALLBACK_RAW_CLOSE = 60, + /**< RAW mode connection is closing */ + LWS_CALLBACK_RAW_WRITEABLE = 61, + /**< RAW mode connection may be written */ + LWS_CALLBACK_RAW_ADOPT = 62, + /**< RAW mode connection was adopted (equivalent to 'wsi created') */ + LWS_CALLBACK_RAW_ADOPT_FILE = 63, + /**< RAW mode file was adopted (equivalent to 'wsi created') */ + LWS_CALLBACK_RAW_RX_FILE = 64, + /**< RAW mode file has something to read */ + LWS_CALLBACK_RAW_WRITEABLE_FILE = 65, + /**< RAW mode file is writeable */ + LWS_CALLBACK_RAW_CLOSE_FILE = 66, + /**< RAW mode wsi that adopted a file is closing */ + LWS_CALLBACK_SSL_INFO = 67, + /**< SSL connections only. An event you registered an + * interest in at the vhost has occurred on a connection + * using the vhost. in is a pointer to a + * struct lws_ssl_info containing information about the + * event*/ + LWS_CALLBACK_CHILD_WRITE_VIA_PARENT = 68, + /**< Child has been marked with parent_carries_io attribute, so + * lws_write directs the to this callback at the parent, + * in is a struct lws_write_passthru containing the args + * the lws_write() was called with. + */ + LWS_CALLBACK_CHILD_CLOSING = 69, + /**< Sent to parent to notify them a child is closing / being + * destroyed. in is the child wsi. + */ + LWS_CALLBACK_CGI_PROCESS_ATTACH = 70, + /**< CGI: Sent when the CGI process is spawned for the wsi. The + * len parameter is the PID of the child process */ /****** add new things just above ---^ ******/ LWS_CALLBACK_USER = 1000, - /**< user code can use any including / above without fear of clashes */ + /**< user code can use any including above without fear of clashes */ }; @@ -1042,10 +1441,99 @@ enum lws_callback_reasons { typedef int lws_callback_function(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len); + +#define LWS_CB_REASON_AUX_BF__CGI 1 +#define LWS_CB_REASON_AUX_BF__PROXY 2 +#define LWS_CB_REASON_AUX_BF__CGI_CHUNK_END 4 +#define LWS_CB_REASON_AUX_BF__CGI_HEADERS 8 ///@} -/*! \defgroup extensions +/*! \defgroup generic hash + * ## Generic Hash related functions * + * Lws provides generic hash / digest accessors that abstract the ones + * provided by whatever OpenSSL library you are linking against. + * + * It lets you use the same code if you build against mbedtls or OpenSSL + * for example. + */ +///@{ + +#ifdef LWS_OPENSSL_SUPPORT + +#if defined(LWS_WITH_MBEDTLS) +#include +#include +#include +#endif + +#define LWS_GENHASH_TYPE_SHA1 0 +#define LWS_GENHASH_TYPE_SHA256 1 +#define LWS_GENHASH_TYPE_SHA512 2 + +struct lws_genhash_ctx { + uint8_t type; +#if defined(LWS_WITH_MBEDTLS) + union { + mbedtls_sha1_context sha1; + mbedtls_sha256_context sha256; + mbedtls_sha512_context sha512; + } u; +#else + const EVP_MD *evp_type; + EVP_MD_CTX *mdctx; +#endif +}; + +/** lws_genhash_size() - get hash size in bytes + * + * \param type: one of LWS_GENHASH_TYPE_... + * + * Returns number of bytes in this type of hash + */ +LWS_VISIBLE LWS_EXTERN size_t LWS_WARN_UNUSED_RESULT +lws_genhash_size(int type); + +/** lws_genhash_init() - prepare your struct lws_genhash_ctx for use + * + * \param ctx: your struct lws_genhash_ctx + * \param type: one of LWS_GENHASH_TYPE_... + * + * Initializes the hash context for the type you requested + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_genhash_init(struct lws_genhash_ctx *ctx, int type); + +/** lws_genhash_update() - digest len bytes of the buffer starting at in + * + * \param ctx: your struct lws_genhash_ctx + * \param in: start of the bytes to digest + * \param len: count of bytes to digest + * + * Updates the state of your hash context to reflect digesting len bytes from in + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_genhash_update(struct lws_genhash_ctx *ctx, const void *in, size_t len); + +/** lws_genhash_destroy() - copy out the result digest and destroy the ctx + * + * \param ctx: your struct lws_genhash_ctx + * \param result: NULL, or where to copy the result hash + * + * Finalizes the hash and copies out the digest. Destroys any allocations such + * that ctx can safely go out of scope after calling this. + * + * NULL result is supported so that you can destroy the ctx cleanly on error + * conditions, where there is no valid result. + */ +LWS_VISIBLE LWS_EXTERN int +lws_genhash_destroy(struct lws_genhash_ctx *ctx, void *result); + +#endif + +///@} + +/*! \defgroup extensions Extension related functions * ##Extension releated functions * * Ws defines optional extensions, lws provides the ability to implement these @@ -1217,7 +1705,7 @@ lws_set_extension_option(struct lws *wsi, const char *ext_name, * client and server for how to do. */ static LWS_INLINE LWS_WARN_DEPRECATED const struct lws_extension * -lws_get_internal_extensions() { return NULL; } +lws_get_internal_extensions(void) { return NULL; } /** * lws_ext_parse_options() - deal with parsing negotiated extension options @@ -1297,8 +1785,8 @@ struct lws_protocols { * be able to consume it all without having to return to the event * loop. That is supported in lws. * - * This also controls how much may be sent at once at the moment, - * although this is likely to change. + * If .tx_packet_size is 0, this also controls how much may be sent at once + * for backwards compatibility. */ unsigned int id; /**< ignored by lws, but useful to contain user information bound @@ -1309,6 +1797,15 @@ struct lws_protocols { * capability flags based on selected protocol version, etc. */ void *user; /**< ignored by lws, but user code can pass a pointer here it can later access from the protocol callback */ + size_t tx_packet_size; + /**< 0 indicates restrict send() size to .rx_buffer_size for backwards- + * compatibility. + * If greater than zero, a single send() is restricted to this amount + * and any remainder is buffered by lws and sent afterwards also in + * these size chunks. Since that is expensive, it's preferable + * to restrict one fragment you are trying to send to match this + * size. + */ /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility */ @@ -1369,6 +1866,23 @@ lws_protocol_vh_priv_zalloc(struct lws_vhost *vhost, const struct lws_protocols LWS_VISIBLE LWS_EXTERN void * lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *prot); +/** + * lws_adjust_protocol_psds - change a vhost protocol's per session data size + * + * \param wsi: a connection with the protocol to change + * \param new_size: the new size of the per session data size for the protocol + * + * Returns user_space for the wsi, after allocating + * + * This should not be used except to initalize a vhost protocol's per session + * data size one time, before any connections are accepted. + * + * Sometimes the protocol wraps another protocol and needs to discover and set + * its per session data size at runtime. + */ +LWS_VISIBLE LWS_EXTERN void * +lws_adjust_protocol_psds(struct lws *wsi, size_t new_size); + /** * lws_finalize_startup() - drop initial process privileges * @@ -1380,6 +1894,9 @@ lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *pr LWS_VISIBLE LWS_EXTERN int lws_finalize_startup(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN int +lws_protocol_init(struct lws_context *context); + #ifdef LWS_WITH_PLUGINS /* PLUGINS implies LIBUV */ @@ -1469,10 +1986,10 @@ struct lws_gs_event_args { ///@} -/*! \defgroup context-and-vhost +/*! \defgroup context-and-vhost context and vhost related functions + * ##Context and Vhost releated functions * \ingroup lwsapi * - * ##Context and Vhost releated functions * * LWS requires that there is one context, in which you may define multiple * vhosts. Each vhost is a virtual host, with either its own listen port @@ -1543,12 +2060,42 @@ enum lws_context_options { * even if it happened without a debugger in place. You can disable * that by giving this option. */ + LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN = (1 << 19), + /**< For backwards-compatibility reasons, by default + * lws prepends "http://" to the origin you give in the client + * connection info struct. If you give this flag when you create + * the context, only the string you give in the client connect + * info for .origin (if any) will be used directly. + */ + LWS_SERVER_OPTION_FALLBACK_TO_RAW = (1 << 20), + /**< (VH) if invalid http is coming in the first line, */ + LWS_SERVER_OPTION_LIBEVENT = (1 << 21), + /**< (CTX) Use libevent event loop */ + LWS_SERVER_OPTION_ONLY_RAW = (1 << 22), + /**< (VH) All connections to this vhost / port are RAW as soon as + * the connection is accepted, no HTTP is going to be coming. + */ + LWS_SERVER_OPTION_ALLOW_LISTEN_SHARE = (1 << 23), + /**< (VH) Set to allow multiple listen sockets on one interface + + * address + port. The default is to strictly allow only one + * listen socket at a time. This is automatically selected if you + * have multiple service threads. + */ + LWS_SERVER_OPTION_CREATE_VHOST_SSL_CTX = (1 << 24), + /**< (VH) Force setting up the vhost SSL_CTX, even though the user + * code doesn't explicitly provide a cert in the info struct. It + * implies the user code is going to provide a cert at the + * LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS callback, which + * provides the vhost SSL_CTX * in the user parameter. + */ /****** add new things just above ---^ ******/ }; #define lws_check_opt(c, f) (((c) & (f)) == (f)) +struct lws_plat_file_ops; + /** struct lws_context_creation_info - parameters to create context and /or vhost with * * This is also used to create vhosts.... if LWS_SERVER_OPTION_EXPLICIT_VHOSTS @@ -1560,10 +2107,10 @@ enum lws_context_options { */ struct lws_context_creation_info { int port; - /**< VHOST: Port to listen on... you can use CONTEXT_PORT_NO_LISTEN to - * suppress listening on any port, that's what you want if you are - * not running a websocket server at all but just using it as a - * client */ + /**< VHOST: Port to listen on. Use CONTEXT_PORT_NO_LISTEN to suppress + * listening for a client. Use CONTEXT_PORT_NO_LISTEN_SERVER if you are + * writing a server but you are using \ref sock-adopt instead of the + * built-in listener */ const char *iface; /**< VHOST: NULL to bind the listen socket to all interfaces, or the * interface name, eg, "eth2" @@ -1582,23 +2129,38 @@ struct lws_context_creation_info { /**< CONTEXT: NULL or struct lws_token_limits pointer which is initialized * with a token length limit for each possible WSI_TOKEN_ */ const char *ssl_private_key_password; - /**< VHOST: NULL or the passphrase needed for the private key */ + /**< VHOST: NULL or the passphrase needed for the private key. (For + * backwards compatibility, this can also be used to pass the client + * cert passphrase when setting up a vhost client SSL context, but it is + * preferred to use .client_ssl_private_key_password for that.) */ const char *ssl_cert_filepath; /**< VHOST: If libwebsockets was compiled to use ssl, and you want * to listen using SSL, set to the filepath to fetch the - * server cert from, otherwise NULL for unencrypted */ + * server cert from, otherwise NULL for unencrypted. (For backwards + * compatibility, this can also be used to pass the client certificate + * when setting up a vhost client SSL context, but it is preferred to + * use .client_ssl_cert_filepath for that.) */ const char *ssl_private_key_filepath; /**< VHOST: filepath to private key if wanting SSL mode; - * if this is set to NULL but sll_cert_filepath is set, the + * if this is set to NULL but ssl_cert_filepath is set, the * OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY callback is called * to allow setting of the private key directly via openSSL - * library calls */ + * library calls. (For backwards compatibility, this can also be used + * to pass the client cert private key filepath when setting up a + * vhost client SSL context, but it is preferred to use + * .client_ssl_private_key_filepath for that.) */ const char *ssl_ca_filepath; - /**< VHOST: CA certificate filepath or NULL */ + /**< VHOST: CA certificate filepath or NULL. (For backwards + * compatibility, this can also be used to pass the client CA + * filepath when setting up a vhost client SSL context, + * but it is preferred to use .client_ssl_ca_filepath for that.) */ const char *ssl_cipher_list; /**< VHOST: List of valid ciphers to use (eg, * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" - * or you can leave it as NULL to get "DEFAULT" */ + * or you can leave it as NULL to get "DEFAULT" (For backwards + * compatibility, this can also be used to pass the client cipher + * list when setting up a vhost client SSL context, + * but it is preferred to use .client_ssl_cipher_list for that.)*/ const char *http_proxy_address; /**< VHOST: If non-NULL, attempts to proxy via the given address. * If proxy auth is required, use format "username:password\@server:port" */ @@ -1611,8 +2173,14 @@ struct lws_context_creation_info { unsigned int options; /**< VHOST + CONTEXT: 0, or LWS_SERVER_OPTION_... bitfields */ void *user; - /**< CONTEXT: optional user pointer that can be recovered via the context - * pointer using lws_context_user */ + /**< VHOST + CONTEXT: optional user pointer that will be associated + * with the context when creating the context (and can be retrieved by + * lws_context_user(context), or with the vhost when creating the vhost + * (and can be retrieved by lws_vhost_user(vhost)). You will need to + * use LWS_SERVER_OPTION_EXPLICIT_VHOSTS and create the vhost separately + * if you care about giving the context and vhost different user pointer + * values. + */ int ka_time; /**< CONTEXT: 0 for no TCP keepalive, otherwise apply this keepalive * timeout to all libwebsocket sockets, client or server */ @@ -1708,6 +2276,110 @@ struct lws_context_creation_info { /**< VHOST: pointer to optional linked list of per-vhost * canned headers that are added to server responses */ + const struct lws_protocol_vhost_options *reject_service_keywords; + /**< CONTEXT: Optional list of keywords and rejection codes + text. + * + * The keywords are checked for existing in the user agent string. + * + * Eg, "badrobot" "404 Not Found" + */ + void *external_baggage_free_on_destroy; + /**< CONTEXT: NULL, or pointer to something externally malloc'd, that + * should be freed when the context is destroyed. This allows you to + * automatically sync the freeing action to the context destruction + * action, so there is no need for an external free() if the context + * succeeded to create. + */ + + const char *client_ssl_private_key_password; + /**< VHOST: Client SSL context init: NULL or the passphrase needed + * for the private key */ + const char *client_ssl_cert_filepath; + /**< VHOST: Client SSL context init:T he certificate the client + * should present to the peer on connection */ + const char *client_ssl_private_key_filepath; + /**< VHOST: Client SSL context init: filepath to client private key + * if this is set to NULL but client_ssl_cert_filepath is set, you + * can handle the LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS + * callback of protocols[0] to allow setting of the private key directly + * via openSSL library calls */ + const char *client_ssl_ca_filepath; + /**< VHOST: Client SSL context init: CA certificate filepath or NULL */ + const char *client_ssl_cipher_list; + /**< VHOST: Client SSL context init: List of valid ciphers to use (eg, + * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" + * or you can leave it as NULL to get "DEFAULT" */ + + const struct lws_plat_file_ops *fops; + /**< CONTEXT: NULL, or pointer to an array of fops structs, terminated + * by a sentinel with NULL .open. + * + * If NULL, lws provides just the platform file operations struct for + * backwards compatibility. + */ + int simultaneous_ssl_restriction; + /**< CONTEXT: 0 (no limit) or limit of simultaneous SSL sessions possible.*/ + const char *socks_proxy_address; + /**< VHOST: If non-NULL, attempts to proxy via the given address. + * If proxy auth is required, use format "username:password\@server:port" */ + unsigned int socks_proxy_port; + /**< VHOST: If socks_proxy_address was non-NULL, uses this port */ +#if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) + cap_value_t caps[4]; + /**< CONTEXT: array holding Linux capabilities you want to + * continue to be available to the server after it transitions + * to a noprivileged user. Usually none are needed but for, eg, + * .bind_iface, CAP_NET_RAW is required. This gives you a way + * to still have the capability but drop root. + */ + char count_caps; + /**< CONTEXT: count of Linux capabilities in .caps[]. 0 means + * no capabilities will be inherited from root (the default) */ +#endif + int bind_iface; + /**< VHOST: nonzero to strictly bind sockets to the interface name in + * .iface (eg, "eth2"), using SO_BIND_TO_DEVICE. + * + * Requires SO_BINDTODEVICE support from your OS and CAP_NET_RAW + * capability. + * + * Notice that common things like access network interface IP from + * your local machine use your lo / loopback interface and will be + * disallowed by this. + */ + int ssl_info_event_mask; + /**< VHOST: mask of ssl events to be reported on LWS_CALLBACK_SSL_INFO + * callback for connections on this vhost. The mask values are of + * the form SSL_CB_ALERT, defined in openssl/ssl.h. The default of + * 0 means no info events will be reported. + */ + unsigned int timeout_secs_ah_idle; + /**< VHOST: seconds to allow a client to hold an ah without using it. + * 0 defaults to 10s. */ + unsigned short ip_limit_ah; + /**< CONTEXT: max number of ah a single IP may use simultaneously + * 0 is no limit. This is a soft limit: if the limit is + * reached, connections from that IP will wait in the ah + * waiting list and not be able to acquire an ah until + * a connection belonging to the IP relinquishes one it + * already has. + */ + unsigned short ip_limit_wsi; + /**< CONTEXT: max number of wsi a single IP may use simultaneously. + * 0 is no limit. This is a hard limit, connections from + * the same IP will simply be dropped once it acquires the + * amount of simultaneous wsi / accepted connections + * given here. + */ + uint32_t http2_settings[7]; + /**< CONTEXT: after context creation http2_settings[1] thru [6] have + * been set to the lws platform default values. + * VHOST: if http2_settings[0] is nonzero, the values given in + * http2_settings[1]..[6] are used instead of the lws + * platform default values. + * Just leave all at 0 if you don't care. + */ + /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility * @@ -1744,7 +2416,7 @@ struct lws_context_creation_info { * * HTTP requests are sent always to the FIRST protocol in protocol, since * at that time websocket protocol has not been negotiated. Other - * protocols after the first one never see any HTTP callack activity. + * protocols after the first one never see any HTTP callback activity. * * The server created is a simple http server by default; part of the * websocket standard is upgrading this http connection to a websocket one. @@ -1767,6 +2439,43 @@ lws_create_context(struct lws_context_creation_info *info); LWS_VISIBLE LWS_EXTERN void lws_context_destroy(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN void +lws_context_destroy2(struct lws_context *context); + +typedef int (*lws_reload_func)(void); + +/** + * lws_context_deprecate() - Deprecate the websocket context + * + * \param context: Websocket context + * \param cb: Callback notified when old context listen sockets are closed + * + * This function is used on an existing context before superceding it + * with a new context. + * + * It closes any listen sockets in the context, so new connections are + * not possible. + * + * And it marks the context to be deleted when the number of active + * connections into it falls to zero. + * + * Otherwise if you attach the deprecated context to the replacement + * context when it has been created using lws_context_attach_deprecated() + * both any deprecated and the new context will service their connections. + * + * This is aimed at allowing seamless configuration reloads. + * + * The callback cb will be called after the listen sockets are actually + * closed and may be reopened. In the callback the new context should be + * configured and created. (With libuv, socket close happens async after + * more loop events). + */ +LWS_VISIBLE LWS_EXTERN void +lws_context_deprecate(struct lws_context *context, lws_reload_func cb); + +LWS_VISIBLE LWS_EXTERN int +lws_context_is_deprecated(struct lws_context *context); + /** * lws_set_proxy() - Setups proxy to lws_context. * \param vhost: pointer to struct lws_vhost you want set proxy for @@ -1787,6 +2496,25 @@ lws_context_destroy(struct lws_context *context); LWS_VISIBLE LWS_EXTERN int lws_set_proxy(struct lws_vhost *vhost, const char *proxy); +/** + * lws_set_socks() - Setup socks to lws_context. + * \param vhost: pointer to struct lws_vhost you want set socks for + * \param socks: pointer to c string containing socks in format address:port + * + * Returns 0 if socks string was parsed and socks was setup. + * Returns -1 if socks is NULL or has incorrect format. + * + * This is only required if your OS does not provide the socks_proxy + * environment variable (eg, OSX) + * + * IMPORTANT! You should call this function right after creation of the + * lws_context and before call to connect. If you call this + * function after connect behavior is undefined. + * This function will override proxy settings made on lws_context + * creation with genenv() call. + */ +LWS_VISIBLE LWS_EXTERN int +lws_set_socks(struct lws_vhost *vhost, const char *socks); struct lws_vhost; @@ -1799,10 +2527,26 @@ struct lws_vhost; * members of the info struct. You can create many vhosts inside one context * if you created the context with the option LWS_SERVER_OPTION_EXPLICIT_VHOSTS */ -LWS_EXTERN LWS_VISIBLE struct lws_vhost * +LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_create_vhost(struct lws_context *context, struct lws_context_creation_info *info); +/** + * lws_vhost_destroy() - Destroy a vhost (virtual server context) + * + * \param vh: pointer to result of lws_create_vhost() + * + * This function destroys a vhost. Normally, if you just want to exit, + * then lws_destroy_context() will take care of everything. If you want + * to destroy an individual vhost and all connections and allocations, you + * can do it with this. + * + * If the vhost has a listen sockets shared by other vhosts, it will be given + * to one of the vhosts sharing it rather than closed. + */ +LWS_VISIBLE LWS_EXTERN void +lws_vhost_destroy(struct lws_vhost *vh); + /** * lwsws_get_config_globals() - Parse a JSON server config file * \param info: pointer to struct with parameters @@ -1869,9 +2613,24 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len); * \param context: the context * \param buf: buffer to fill with JSON * \param len: max length of buf + * \param hide_vhosts: nonzero to not provide per-vhost mount etc information + * + * Generates a JSON description of vhost state into buf */ LWS_VISIBLE LWS_EXTERN int -lws_json_dump_context(const struct lws_context *context, char *buf, int len); +lws_json_dump_context(const struct lws_context *context, char *buf, int len, + int hide_vhosts); + +/** + * lws_vhost_user() - get the user data associated with the vhost + * \param vhost: Websocket vhost + * + * This returns the optional user pointer that can be attached to + * a vhost when it was created. Lws never dereferences this pointer, it only + * sets it when the vhost is created, and returns it using this api. + */ +LWS_VISIBLE LWS_EXTERN void * +lws_vhost_user(struct lws_vhost *vhost); /** * lws_context_user() - get the user data associated with the context @@ -1909,8 +2668,8 @@ struct lws_protocol_vhost_options { * served from a filesystem, or it is a cgi etc. */ enum lws_mount_protocols { - LWSMPRO_HTTP = 0, /**< not supported yet */ - LWSMPRO_HTTPS = 1, /**< not supported yet */ + LWSMPRO_HTTP = 0, /**< http reverse proxy */ + LWSMPRO_HTTPS = 1, /**< https reverse proxy */ LWSMPRO_FILE = 2, /**< serve from filesystem directory */ LWSMPRO_CGI = 3, /**< pass to CGI to handle */ LWSMPRO_REDIR_HTTP = 4, /**< redirect to http:// url */ @@ -1956,14 +2715,27 @@ struct lws_http_mount { unsigned char origin_protocol; /**< one of enum lws_mount_protocols */ unsigned char mountpoint_len; /**< length of mountpoint string */ + + const char *basic_auth_login_file; + /**nxt; \ + } \ +} + +/** + * lws_start_foreach_llp(): linkedlist pointer iterator helper start + * + * \param type: type of iteration, eg, struct xyz ** + * \param it: iterator var name to create + * \param start: start of list + * + * This helper creates an iterator and starts a while (it) { + * loop. The iterator runs through the linked list starting at the + * address of start and ends when it gets a NULL. + * The while loop should be terminated using lws_start_foreach_llp(). + * + * This helper variant iterates using a pointer to the previous linked-list + * element. That allows you to easily delete list members by rewriting the + * previous pointer to the element's next pointer. + */ +#define lws_start_foreach_llp(type, it, start)\ +{ \ + type it = &(start); \ + while (*(it)) { + +/** + * lws_end_foreach_llp(): linkedlist pointer iterator helper end + * + * \param it: same iterator var name given when starting + * \param nxt: member name in the iterator pointing to next list element + * + * This helper is the partner for lws_start_foreach_llp() that ends the + * while loop. + */ + +#define lws_end_foreach_llp(it, nxt) \ + it = &(*(it))->nxt; \ + } \ +} + /** * lws_snprintf(): snprintf that truncates the returned length too * @@ -3620,7 +4729,7 @@ lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr, * reach the limit the reported length doesn't exceed the limit. */ LWS_VISIBLE LWS_EXTERN int -lws_snprintf(char *str, size_t size, const char *format, ...); +lws_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3); /** * lws_get_random(): fill a buffer with platform random data @@ -3636,7 +4745,7 @@ lws_snprintf(char *str, size_t size, const char *format, ...); LWS_VISIBLE LWS_EXTERN int lws_get_random(struct lws_context *context, void *buf, int len); /** - * lws_daemonize(): fill a buffer with platform random data + * lws_daemonize(): make current process run in the background * * \param _lock_path: the filepath to write the lock file * @@ -3661,6 +4770,19 @@ lws_get_library_version(void); LWS_VISIBLE LWS_EXTERN void * lws_wsi_user(struct lws *wsi); +/** + * lws_wsi_set_user() - set the user data associated with the client connection + * \param wsi: lws connection + * \param user: user data + * + * By default lws allocates this and it's not legal to externally set it + * yourself. However client connections may have it set externally when the + * connection is created... if so, this api can be used to modify it at + * runtime additionally. + */ +LWS_VISIBLE LWS_EXTERN void +lws_set_wsi_user(struct lws *wsi, void *user); + /** * lws_parse_uri: cut up prot:/ads:port/path into pieces * Notice it does so by dropping '\0' into input string @@ -3683,7 +4805,7 @@ LWS_VISIBLE LWS_EXTERN unsigned long lws_now_secs(void); /** - * lws_get_context - Allow geting lws_context from a Websocket connection + * lws_get_context - Allow getting lws_context from a Websocket connection * instance * * With this function, users can access context in the callback function. @@ -3725,6 +4847,45 @@ lws_get_parent(const struct lws *wsi); LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT lws_get_child(const struct lws *wsi); +/** + * lws_parent_carries_io() - mark wsi as needing to send messages via parent + * + * \param wsi: child lws connection + */ + +LWS_VISIBLE LWS_EXTERN void +lws_set_parent_carries_io(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void * +lws_get_opaque_parent_data(const struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void +lws_set_opaque_parent_data(struct lws *wsi, void *data); + +LWS_VISIBLE LWS_EXTERN int +lws_get_child_pending_on_writable(const struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void +lws_clear_child_pending_on_writable(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN int +lws_get_close_length(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN unsigned char * +lws_get_close_payload(struct lws *wsi); + +/** + * lws_get_network_wsi() - Returns wsi that has the tcp connection for this wsi + * + * \param wsi: wsi you have + * + * Returns wsi that has the tcp connection (which may be the incoming wsi) + * + * HTTP/1 connections will always return the incoming wsi + * HTTP/2 connections may return a different wsi that has the tcp connection + */ +LWS_VISIBLE LWS_EXTERN +struct lws *lws_get_network_wsi(struct lws *wsi); /* * \deprecated DEPRECATED Note: this is not normally needed as a user api. @@ -3732,7 +4893,7 @@ lws_get_child(const struct lws *wsi); * useful when integrating with other app poll loop service code. */ LWS_VISIBLE LWS_EXTERN int -lws_read(struct lws *wsi, unsigned char *buf, size_t len); +lws_read(struct lws *wsi, unsigned char *buf, lws_filepos_t len); /** * lws_set_allocator() - custom allocator support @@ -3742,7 +4903,7 @@ lws_read(struct lws *wsi, unsigned char *buf, size_t len); * Allows you to replace the allocator (and deallocator) used by lws */ LWS_VISIBLE LWS_EXTERN void -lws_set_allocator(void *(*realloc)(void *ptr, size_t size)); +lws_set_allocator(void *(*realloc)(void *ptr, size_t size, const char *reason)); ///@} /** \defgroup wsstatus Websocket status APIs @@ -3762,11 +4923,20 @@ lws_send_pipe_choked(struct lws *wsi); /** * lws_is_final_fragment() - tests if last part of ws message + * * \param wsi: lws connection */ LWS_VISIBLE LWS_EXTERN int lws_is_final_fragment(struct lws *wsi); +/** + * lws_is_first_fragment() - tests if first part of ws message + * + * \param wsi: lws connection + */ +LWS_VISIBLE LWS_EXTERN int +lws_is_first_fragment(struct lws *wsi); + /** * lws_get_reserved_bits() - access reserved bits of ws frame * \param wsi: lws connection @@ -3821,8 +4991,242 @@ lws_is_ssl(struct lws *wsi); */ LWS_VISIBLE LWS_EXTERN int lws_is_cgi(struct lws *wsi); + +#ifdef LWS_OPENSSL_SUPPORT +/** + * lws_get_ssl() - Return wsi's SSL context structure + * \param wsi: websocket connection + * + * Returns pointer to the SSL library's context structure + */ +LWS_VISIBLE LWS_EXTERN SSL* +lws_get_ssl(struct lws *wsi); +#endif ///@} +/** \defgroup lws_ring LWS Ringbuffer APIs + * ##lws_ring: generic ringbuffer struct + * + * Provides an abstract ringbuffer api supporting one head and one or an + * unlimited number of tails. + * + * All of the members are opaque and manipulated by lws_ring_...() apis. + * + * The lws_ring and its buffer is allocated at runtime on the heap, using + * + * - lws_ring_create() + * - lws_ring_destroy() + * + * It may contain any type, the size of the "element" stored in the ring + * buffer and the number of elements is given at creation time. + * + * When you create the ringbuffer, you can optionally provide an element + * destroy callback that frees any allocations inside the element. This is then + * automatically called for elements with no tail behind them, ie, elements + * which don't have any pending consumer are auto-freed. + * + * Whole elements may be inserted into the ringbuffer and removed from it, using + * + * - lws_ring_insert() + * - lws_ring_consume() + * + * You can find out how many whole elements are free or waiting using + * + * - lws_ring_get_count_free_elements() + * - lws_ring_get_count_waiting_elements() + * + * In addition there are special purpose optional byte-centric apis + * + * - lws_ring_next_linear_insert_range() + * - lws_ring_bump_head() + * + * which let you, eg, read() directly into the ringbuffer without needing + * an intermediate bounce buffer. + * + * The accessors understand that the ring wraps, and optimizes insertion and + * consumption into one or two memcpy()s depending on if the head or tail + * wraps. + * + * lws_ring only supports a single head, but optionally multiple tails with + * an API to inform it when the "oldest" tail has moved on. You can give + * NULL where-ever an api asks for a tail pointer, and it will use an internal + * single tail pointer for convenience. + * + * The "oldest tail", which is the only tail if you give it NULL instead of + * some other tail, is used to track which elements in the ringbuffer are + * still unread by anyone. + * + * - lws_ring_update_oldest_tail() + */ +///@{ +struct lws_ring; + +/** + * lws_ring_create(): create a new ringbuffer + * + * \param element_len: the size in bytes of one element in the ringbuffer + * \param count: the number of elements the ringbuffer can contain + * \param destroy_element: NULL, or callback to be called for each element + * that is removed from the ringbuffer due to the + * oldest tail moving beyond it + * + * Creates the ringbuffer and allocates the storage. Returns the new + * lws_ring *, or NULL if the allocation failed. + * + * If non-NULL, destroy_element will get called back for every element that is + * retired from the ringbuffer after the oldest tail has gone past it, and for + * any element still left in the ringbuffer when it is destroyed. It replaces + * all other element destruction code in your user code. + */ +LWS_VISIBLE LWS_EXTERN struct lws_ring * +lws_ring_create(size_t element_len, size_t count, + void (*destroy_element)(void *element)); + +/** + * lws_ring_destroy(): destroy a previously created ringbuffer + * + * \param ring: the struct lws_ring to destroy + * + * Destroys the ringbuffer allocation and the struct lws_ring itself. + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_destroy(struct lws_ring *ring); + +/** + * lws_ring_get_count_free_elements(): return how many elements can fit + * in the free space + * + * \param ring: the struct lws_ring to report on + * + * Returns how much room is left in the ringbuffer for whole element insertion. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_get_count_free_elements(struct lws_ring *ring); + +/** + * lws_ring_get_count_waiting_elements(): return how many elements can be consumed + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * Returns how many elements are waiting to be consumed from the perspective + * of the tail pointer given. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_get_count_waiting_elements(struct lws_ring *ring, uint32_t *tail); + +/** + * lws_ring_insert(): attempt to insert up to max_count elements from src + * + * \param ring: the struct lws_ring to report on + * \param src: the array of elements to be inserted + * \param max_count: the number of available elements at src + * + * Attempts to insert as many of the elements at src as possible, up to the + * maximum max_count. Returns the number of elements actually inserted. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_insert(struct lws_ring *ring, const void *src, size_t max_count); + +/** + * lws_ring_consume(): attempt to copy out and remove up to max_count elements + * to src + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * \param dest: the array of elements to be inserted. or NULL for no copy + * \param max_count: the number of available elements at src + * + * Attempts to copy out as many waiting elements as possible into dest, from + * the perspective of the given tail, up to max_count. If dest is NULL, the + * copying out is not done but the elements are logically consumed as usual. + * NULL dest is useful in combination with lws_ring_get_element(), where you + * can use the element direct from the ringbuffer and then call this with NULL + * dest to logically consume it. + * + * Increments the tail position according to how many elements could be + * consumed. + * + * Returns the number of elements consumed. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_consume(struct lws_ring *ring, uint32_t *tail, void *dest, + size_t max_count); + +/** + * lws_ring_get_element(): get a pointer to the next waiting element for tail + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * Points to the next element that tail would consume, directly in the + * ringbuffer. This lets you write() or otherwise use the element without + * having to copy it out somewhere first. + * + * After calling this, you must call lws_ring_consume(ring, &tail, NULL, 1) + * which will logically consume the element you used up and increment your + * tail (tail may also be NULL there if you use a single tail). + * + * Returns NULL if no waiting element, or a const void * pointing to it. + */ +LWS_VISIBLE LWS_EXTERN const void * +lws_ring_get_element(struct lws_ring *ring, uint32_t *tail); + +/** + * lws_ring_update_oldest_tail(): free up elements older than tail for reuse + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * If you are using multiple tails, you must use this API to inform the + * lws_ring when none of the tails still need elements in the fifo any more, + * by updating it when the "oldest" tail has moved on. + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_update_oldest_tail(struct lws_ring *ring, uint32_t tail); + +/** + * lws_ring_get_oldest_tail(): get current oldest available data index + * + * \param ring: the struct lws_ring to report on + * + * If you are initializing a new ringbuffer consumer, you can set its tail to + * this to start it from the oldest ringbuffer entry still available. + */ +LWS_VISIBLE LWS_EXTERN uint32_t +lws_ring_get_oldest_tail(struct lws_ring *ring); + +/** + * lws_ring_next_linear_insert_range(): used to write directly into the ring + * + * \param ring: the struct lws_ring to report on + * \param start: pointer to a void * set to the start of the next ringbuffer area + * \param bytes: pointer to a size_t set to the max length you may use from *start + * + * This provides a low-level, bytewise access directly into the ringbuffer + * allowing direct insertion of data without having to use a bounce buffer. + * + * The api reports the position and length of the next linear range that can + * be written in the ringbuffer, ie, up to the point it would wrap, and sets + * *start and *bytes accordingly. You can then, eg, directly read() into + * *start for up to *bytes, and use lws_ring_bump_head() to update the lws_ring + * with what you have done. + * + * Returns nonzero if no insertion is currently possible. + */ +LWS_VISIBLE LWS_EXTERN int +lws_ring_next_linear_insert_range(struct lws_ring *ring, void **start, + size_t *bytes); + +/** + * lws_ring_bump_head(): used to write directly into the ring + * + * \param ring: the struct lws_ring to operate on + * \param bytes: the number of bytes you inserted at the current head + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_bump_head(struct lws_ring *ring, size_t bytes); +///@} /** \defgroup sha SHA and B64 helpers * ##SHA and B64 helpers @@ -3880,7 +5284,7 @@ lws_b64_decode_string(const char *in, char *out, int out_size); * However for most cases, binding the cgi to http in and out, the default * lws implementation already does the right thing. */ -#ifdef LWS_WITH_CGI + enum lws_enum_stdinouterr { LWS_STDIN = 0, LWS_STDOUT = 1, @@ -3893,6 +5297,8 @@ enum lws_cgi_hdr_state { LCHS_LF1, LCHS_CR2, LCHS_LF2, + LHCS_RESPONSE, + LHCS_DUMP_HEADERS, LHCS_PAYLOAD, LCHS_SINGLE_0A, }; @@ -3905,13 +5311,14 @@ struct lws_cgi_args { int len; /**< length */ }; - +#ifdef LWS_WITH_CGI /** * lws_cgi: spawn network-connected cgi process * * \param wsi: connection to own the process * \param exec_array: array of "exec-name" "arg1" ... "argn" NULL - * \param script_uri_path_len: how many chars on the left of the uri are the path to the cgi + * \param script_uri_path_len: how many chars on the left of the uri are the + * path to the cgi, or -1 to spawn without URL-related env vars * \param timeout_secs: seconds script should be allowed to run * \param mp_cgienv: pvo list with per-vhost cgi options to put in env */ @@ -3935,6 +5342,16 @@ lws_cgi_write_split_stdout_headers(struct lws *wsi); */ LWS_VISIBLE LWS_EXTERN int lws_cgi_kill(struct lws *wsi); + +/** + * lws_cgi_get_stdwsi: get wsi for stdin, stdout, or stderr + * + * \param wsi: parent wsi that has cgi + * \param ch: which of LWS_STDIN, LWS_STDOUT or LWS_STDERR + */ +LWS_VISIBLE LWS_EXTERN struct lws * +lws_cgi_get_stdwsi(struct lws *wsi, enum lws_enum_stdinouterr ch); + #endif ///@} @@ -3961,24 +5378,85 @@ lws_cgi_kill(struct lws *wsi); * These provide platform-agnostic ways to deal with filesystem access in the * library and in the user code. */ + +#if defined(LWS_WITH_ESP32) +/* sdk preprocessor defs? compiler issue? gets confused with member names */ +#define LWS_FOP_OPEN _open +#define LWS_FOP_CLOSE _close +#define LWS_FOP_SEEK_CUR _seek_cur +#define LWS_FOP_READ _read +#define LWS_FOP_WRITE _write +#else +#define LWS_FOP_OPEN open +#define LWS_FOP_CLOSE close +#define LWS_FOP_SEEK_CUR seek_cur +#define LWS_FOP_READ read +#define LWS_FOP_WRITE write +#endif + +#define LWS_FOP_FLAGS_MASK ((1 << 23) - 1) +#define LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP (1 << 24) +#define LWS_FOP_FLAG_COMPR_IS_GZIP (1 << 25) +#define LWS_FOP_FLAG_MOD_TIME_VALID (1 << 26) +#define LWS_FOP_FLAG_VIRTUAL (1 << 27) + +struct lws_plat_file_ops; + +struct lws_fop_fd { + lws_filefd_type fd; + /**< real file descriptor related to the file... */ + const struct lws_plat_file_ops *fops; + /**< fops that apply to this fop_fd */ + void *filesystem_priv; + /**< ignored by lws; owned by the fops handlers */ + lws_filepos_t pos; + /**< generic "position in file" */ + lws_filepos_t len; + /**< generic "length of file" */ + lws_fop_flags_t flags; + /**< copy of the returned flags */ + uint32_t mod_time; + /**< optional "modification time of file", only valid if .open() + * set the LWS_FOP_FLAG_MOD_TIME_VALID flag */ +}; +typedef struct lws_fop_fd *lws_fop_fd_t; + +struct lws_fops_index { + const char *sig; /* NULL or vfs signature, eg, ".zip/" */ + uint8_t len; /* length of above string */ +}; + struct lws_plat_file_ops { - lws_filefd_type (*open)(struct lws *wsi, const char *filename, - unsigned long *filelen, int flags); + lws_fop_fd_t (*LWS_FOP_OPEN)(const struct lws_plat_file_ops *fops, + const char *filename, const char *vpath, + lws_fop_flags_t *flags); /**< Open file (always binary access if plat supports it) - * filelen is filled on exit to be the length of the file - * flags should be set to O_RDONLY or O_RDWR */ - int (*close)(struct lws *wsi, lws_filefd_type fd); - /**< close file */ - unsigned long (*seek_cur)(struct lws *wsi, lws_filefd_type fd, - long offset_from_cur_pos); + * vpath may be NULL, or if the fops understands it, the point at which + * the filename's virtual part starts. + * *flags & LWS_FOP_FLAGS_MASK should be set to O_RDONLY or O_RDWR. + * If the file may be gzip-compressed, + * LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP is set. If it actually is + * gzip-compressed, then the open handler should OR + * LWS_FOP_FLAG_COMPR_IS_GZIP on to *flags before returning. + */ + int (*LWS_FOP_CLOSE)(lws_fop_fd_t *fop_fd); + /**< close file AND set the pointer to NULL */ + lws_fileofs_t (*LWS_FOP_SEEK_CUR)(lws_fop_fd_t fop_fd, + lws_fileofs_t offset_from_cur_pos); /**< seek from current position */ - int (*read)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len); + int (*LWS_FOP_READ)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); /**< Read from file, on exit *amount is set to amount actually read */ - int (*write)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len); + int (*LWS_FOP_WRITE)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); /**< Write to file, on exit *amount is set to amount actually written */ + struct lws_fops_index fi[3]; + /**< vfs path signatures implying use of this fops */ + + const struct lws_plat_file_ops *next; + /**< NULL or next fops in list */ + /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility */ }; @@ -3990,84 +5468,144 @@ struct lws_plat_file_ops { */ LWS_VISIBLE LWS_EXTERN struct lws_plat_file_ops * LWS_WARN_UNUSED_RESULT lws_get_fops(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN void +lws_set_fops(struct lws_context *context, const struct lws_plat_file_ops *fops); +/** + * lws_vfs_tell() - get current file position + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT +lws_vfs_tell(lws_fop_fd_t fop_fd); +/** + * lws_vfs_get_length() - get current file total length in bytes + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT +lws_vfs_get_length(lws_fop_fd_t fop_fd); +/** + * lws_vfs_get_mod_time() - get time file last modified + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN uint32_t LWS_WARN_UNUSED_RESULT +lws_vfs_get_mod_time(lws_fop_fd_t fop_fd); +/** + * lws_vfs_file_seek_set() - seek relative to start of file + * + * \param fop_fd: fop_fd we are seeking in + * \param offset: offset from start of file + */ +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +lws_vfs_file_seek_set(lws_fop_fd_t fop_fd, lws_fileofs_t offset); +/** + * lws_vfs_file_seek_end() - seek relative to end of file + * + * \param fop_fd: fop_fd we are seeking in + * \param offset: offset from start of file + */ +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +lws_vfs_file_seek_end(lws_fop_fd_t fop_fd, lws_fileofs_t offset); + +extern struct lws_plat_file_ops fops_zip; /** - * lws_plat_file_open() - file open operations + * lws_plat_file_open() - open vfs filepath * - * \param wsi: connection doing the opening - * \param filename: filename to open - * \param filelen: length of file (filled in by call) - * \param flags: open flags + * \param fops: file ops struct that applies to this descriptor + * \param vfs_path: filename to open + * \param flags: pointer to open flags + * + * The vfs_path is scanned for known fops signatures, and the open directed + * to any matching fops open. + * + * User code should use this api to perform vfs opens. + * + * returns semi-opaque handle */ -static LWS_INLINE lws_filefd_type LWS_WARN_UNUSED_RESULT -lws_plat_file_open(struct lws *wsi, const char *filename, - unsigned long *filelen, int flags) -{ - return lws_get_fops(lws_get_context(wsi))->open(wsi, filename, - filelen, flags); -} +LWS_VISIBLE LWS_EXTERN lws_fop_fd_t LWS_WARN_UNUSED_RESULT +lws_vfs_file_open(const struct lws_plat_file_ops *fops, const char *vfs_path, + lws_fop_flags_t *flags); /** * lws_plat_file_close() - close file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle to close */ static LWS_INLINE int -lws_plat_file_close(struct lws *wsi, lws_filefd_type fd) +lws_vfs_file_close(lws_fop_fd_t *fop_fd) { - return lws_get_fops(lws_get_context(wsi))->close(wsi, fd); + return (*fop_fd)->fops->LWS_FOP_CLOSE(fop_fd); } /** * lws_plat_file_seek_cur() - close file * - * \param wsi: connection opened by - * \param fd: file descriptor + * + * \param fop_fd: file handle * \param offset: position to seek to */ -static LWS_INLINE unsigned long -lws_plat_file_seek_cur(struct lws *wsi, lws_filefd_type fd, long offset) +static LWS_INLINE lws_fileofs_t +lws_vfs_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset) { - return lws_get_fops(lws_get_context(wsi))->seek_cur(wsi, fd, offset); + return fop_fd->fops->LWS_FOP_SEEK_CUR(fop_fd, offset); } /** * lws_plat_file_read() - read from file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle * \param amount: how much to read (rewritten by call) * \param buf: buffer to write to * \param len: max length */ static LWS_INLINE int LWS_WARN_UNUSED_RESULT -lws_plat_file_read(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len) +lws_vfs_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len) { - return lws_get_fops(lws_get_context(wsi))->read(wsi, fd, amount, buf, - len); + return fop_fd->fops->LWS_FOP_READ(fop_fd, amount, buf, len); } /** * lws_plat_file_write() - write from file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle * \param amount: how much to write (rewritten by call) * \param buf: buffer to read from * \param len: max length */ static LWS_INLINE int LWS_WARN_UNUSED_RESULT -lws_plat_file_write(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len) +lws_vfs_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len) { - return lws_get_fops(lws_get_context(wsi))->write(wsi, fd, amount, buf, - len); + return fop_fd->fops->LWS_FOP_WRITE(fop_fd, amount, buf, len); } + +/* these are the platform file operations implementations... they can + * be called directly and used in fops arrays + */ + +LWS_VISIBLE LWS_EXTERN lws_fop_fd_t +_lws_plat_file_open(const struct lws_plat_file_ops *fops, const char *filename, + const char *vpath, lws_fop_flags_t *flags); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_close(lws_fop_fd_t *fop_fd); +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +_lws_plat_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); + +LWS_VISIBLE LWS_EXTERN int +lws_alloc_vfs_file(struct lws_context *context, const char *filename, + uint8_t **buf, lws_filepos_t *amount); //@} -/** \defgroup smtp - * \ingroup lwsapi +/** \defgroup smtp SMTP related functions * ##SMTP related functions + * \ingroup lwsapi * * These apis let you communicate with a local SMTP server to send email from * lws. It handles all the SMTP sequencing and protocol actions. @@ -4189,6 +5727,59 @@ lws_email_destroy(struct lws_email *email); #endif //@} +/* + * Stats are all uint64_t numbers that start at 0. + * Index names here have the convention + * + * _C_ counter + * _B_ byte count + * _MS_ millisecond count + */ + +enum { + LWSSTATS_C_CONNECTIONS, /**< count incoming connections */ + LWSSTATS_C_API_CLOSE, /**< count calls to close api */ + LWSSTATS_C_API_READ, /**< count calls to read from socket api */ + LWSSTATS_C_API_LWS_WRITE, /**< count calls to lws_write API */ + LWSSTATS_C_API_WRITE, /**< count calls to write API */ + LWSSTATS_C_WRITE_PARTIALS, /**< count of partial writes */ + LWSSTATS_C_WRITEABLE_CB_REQ, /**< count of writable callback requests */ + LWSSTATS_C_WRITEABLE_CB_EFF_REQ, /**< count of effective writable callback requests */ + LWSSTATS_C_WRITEABLE_CB, /**< count of writable callbacks */ + LWSSTATS_C_SSL_CONNECTIONS_FAILED, /**< count of failed SSL connections */ + LWSSTATS_C_SSL_CONNECTIONS_ACCEPTED, /**< count of accepted SSL connections */ + LWSSTATS_C_SSL_CONNECTIONS_ACCEPT_SPIN, /**< count of SSL_accept() attempts */ + LWSSTATS_C_SSL_CONNS_HAD_RX, /**< count of accepted SSL conns that have had some RX */ + LWSSTATS_C_TIMEOUTS, /**< count of timed-out connections */ + LWSSTATS_C_SERVICE_ENTRY, /**< count of entries to lws service loop */ + LWSSTATS_B_READ, /**< aggregate bytes read */ + LWSSTATS_B_WRITE, /**< aggregate bytes written */ + LWSSTATS_B_PARTIALS_ACCEPTED_PARTS, /**< aggreate of size of accepted write data from new partials */ + LWSSTATS_MS_SSL_CONNECTIONS_ACCEPTED_DELAY, /**< aggregate delay in accepting connection */ + LWSSTATS_MS_WRITABLE_DELAY, /**< aggregate delay between asking for writable and getting cb */ + LWSSTATS_MS_WORST_WRITABLE_DELAY, /**< single worst delay between asking for writable and getting cb */ + LWSSTATS_MS_SSL_RX_DELAY, /**< aggregate delay between ssl accept complete and first RX */ + LWSSTATS_C_PEER_LIMIT_AH_DENIED, /**< number of times we would have given an ah but for the peer limit */ + LWSSTATS_C_PEER_LIMIT_WSI_DENIED, /**< number of times we would have given a wsi but for the peer limit */ + + /* Add new things just above here ---^ + * This is part of the ABI, don't needlessly break compatibility */ + LWSSTATS_SIZE +}; + +#if defined(LWS_WITH_STATS) + +LWS_VISIBLE LWS_EXTERN uint64_t +lws_stats_get(struct lws_context *context, int index); +LWS_VISIBLE LWS_EXTERN void +lws_stats_log_dump(struct lws_context *context); +#else +static LWS_INLINE uint64_t +lws_stats_get(struct lws_context *context, int index) { return 0; } +static LWS_INLINE void +lws_stats_log_dump(struct lws_context *context) { } +#endif + #ifdef __cplusplus } #endif diff --git a/mac/include/websockets/lws_config.h b/mac/include/websockets/lws_config.h index 32a857ec..c4c2a9c9 100644 --- a/mac/include/websockets/lws_config.h +++ b/mac/include/websockets/lws_config.h @@ -6,7 +6,7 @@ #endif #endif -#define LWS_INSTALL_DATADIR "/Users/james/Project/cocos2d-x-3rd-party-libs-src/contrib/install-mac/x86_64/share" +#define LWS_INSTALL_DATADIR "/Users/cocos/Github/cocos2d-x-3rd-party-libs-src/contrib/install-mac/x86_64/share" /* Define to 1 to use wolfSSL/CyaSSL as a replacement for OpenSSL. * LWS_OPENSSL_SUPPORT needs to be set also for this to work. */ @@ -15,25 +15,27 @@ /* Also define to 1 (in addition to USE_WOLFSSL) when using the (older) CyaSSL library */ /* #undef USE_OLD_CYASSL */ +/* #undef LWS_WITH_BORINGSSL */ -/* #undef LWS_USE_MBEDTLS */ -/* #undef LWS_USE_POLARSSL */ +/* #undef LWS_WITH_MBEDTLS */ +/* #undef LWS_WITH_POLARSSL */ /* #undef LWS_WITH_ESP8266 */ +/* #undef LWS_WITH_ESP32 */ /* #undef LWS_WITH_PLUGINS */ /* #undef LWS_WITH_NO_LOGS */ /* The Libwebsocket version */ -#define LWS_LIBRARY_VERSION "2.1.0" +#define LWS_LIBRARY_VERSION "2.4.2" #define LWS_LIBRARY_VERSION_MAJOR 2 -#define LWS_LIBRARY_VERSION_MINOR 1 -#define LWS_LIBRARY_VERSION_PATCH 0 +#define LWS_LIBRARY_VERSION_MINOR 4 +#define LWS_LIBRARY_VERSION_PATCH 2 /* LWS_LIBRARY_VERSION_NUMBER looks like 1005001 for e.g. version 1.5.1 */ #define LWS_LIBRARY_VERSION_NUMBER (LWS_LIBRARY_VERSION_MAJOR*1000000)+(LWS_LIBRARY_VERSION_MINOR*1000)+LWS_LIBRARY_VERSION_PATCH /* The current git commit hash that we're building from */ -#define LWS_BUILD_HASH "james@James-Chen.local-v3.4-139-gbdcf7f8" +#define LWS_BUILD_HASH "cocos@cocoss-MacBook-Pro.local-v3.4-182-g408ba56" /* Build with OpenSSL support */ #define LWS_OPENSSL_SUPPORT @@ -48,19 +50,22 @@ /* #undef LWS_NO_EXTENSIONS */ /* Enable libev io loop */ -/* #undef LWS_USE_LIBEV */ +/* #undef LWS_WITH_LIBEV */ /* Enable libuv io loop */ -/* #undef LWS_USE_LIBUV */ +#define LWS_WITH_LIBUV + +/* Enable libevent io loop */ +/* #undef LWS_WITH_LIBEVENT */ /* Build with support for ipv6 */ -#define LWS_USE_IPV6 +#define LWS_WITH_IPV6 /* Build with support for UNIX domain socket */ -/* #undef LWS_USE_UNIX_SOCK */ +/* #undef LWS_WITH_UNIX_SOCK */ /* Build with support for HTTP2 */ -/* #undef LWS_USE_HTTP2 */ +/* #undef LWS_WITH_HTTP2 */ /* Turn on latency measuring code */ /* #undef LWS_LATENCY */ @@ -69,7 +74,7 @@ #define LWS_NO_DAEMONIZE /* Build without server support */ -#define LWS_NO_SERVER +/* #undef LWS_NO_SERVER */ /* Build without client support */ /* #undef LWS_NO_CLIENT */ @@ -87,6 +92,7 @@ /* #undef LWS_SSL_SERVER_WITH_ECDH_CERT */ #define LWS_HAVE_SSL_CTX_set1_param #define LWS_HAVE_X509_VERIFY_PARAM_set1_host +#define LWS_HAVE_RSA_SET0_KEY /* #undef LWS_HAVE_UV_VERSION_H */ @@ -99,14 +105,18 @@ /* HTTP Proxy support */ /* #undef LWS_WITH_HTTP_PROXY */ +/* HTTP Ranges support */ +#define LWS_WITH_RANGES + /* Http access log support */ /* #undef LWS_WITH_ACCESS_LOG */ /* #undef LWS_WITH_SERVER_STATUS */ /* #undef LWS_WITH_STATEFUL_URLDECODE */ +/* #undef LWS_WITH_PEER_LIMITS */ /* Maximum supported service threads */ -#define LWS_MAX_SMP 32 +#define LWS_MAX_SMP 1 /* Lightweight JSON Parser */ /* #undef LWS_WITH_LEJP */ @@ -114,4 +124,33 @@ /* SMTP */ /* #undef LWS_WITH_SMTP */ +/* OPTEE */ +/* #undef LWS_PLAT_OPTEE */ + +/* ZIP FOPS */ +#define LWS_WITH_ZIP_FOPS +#define LWS_HAVE_STDINT_H + +/* #undef LWS_AVOID_SIGPIPE_IGN */ + +/* #undef LWS_FALLBACK_GETHOSTBYNAME */ + +/* #undef LWS_WITH_STATS */ +/* #undef LWS_WITH_SOCKS5 */ + +/* #undef LWS_HAVE_SYS_CAPABILITY_H */ +/* #undef LWS_HAVE_LIBCAP */ + +#define LWS_HAVE_ATOLL +/* #undef LWS_HAVE__ATOI64 */ +/* #undef LWS_HAVE__STAT32I64 */ + +/* OpenSSL various APIs */ + +#define LWS_HAVE_TLS_CLIENT_METHOD +#define LWS_HAVE_TLSV1_2_CLIENT_METHOD +#define LWS_HAVE_SSL_SET_INFO_CALLBACK + +#define LWS_HAS_INTPTR_T + diff --git a/mac/libs/libwebsockets.a b/mac/libs/libwebsockets.a index 1524b1c991743e5a56f50a8cb8d17d670c811ad8..8a2174e33e205f299b0ecf71d8dfd457fc04d1cd 100644 GIT binary patch literal 244416 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

VKrgk2cV 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 literal 141128 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 #include -#ifdef MBED_OPERATORS -#include "mbed-drivers/mbed.h" -#include "sal-iface-eth/EthernetInterface.h" -#include "sockets/TCPListener.h" -#include "sal-stack-lwip/lwipv4_init.h" - -namespace { -} -using namespace mbed::Sockets::v0; - - -struct sockaddr_in; -struct lws; - -class lws_conn { - public: - lws_conn(): - ts(NULL), - wsi(NULL), - writeable(1), - awaiting_on_writeable(0) - { - } - -public: - void set_wsi(struct lws *_wsi) { wsi = _wsi; } - int actual_onRX(Socket *s); - void onRX(Socket *s); - void onError(Socket *s, socket_error_t err); - void onDisconnect(TCPStream *s); - void onSent(Socket *s, uint16_t len); - void serialized_writeable(struct lws *wsi); - -public: - TCPStream *ts; - -public: - struct lws *wsi; - char writeable; - char awaiting_on_writeable; -}; - -class lws_conn_listener : lws_conn { -public: - lws_conn_listener(): - srv(SOCKET_STACK_LWIP_IPV4) - { - srv.setOnError(TCPStream::ErrorHandler_t(this, - &lws_conn_listener::onError)); - } - - void start(const uint16_t port); /**< start listening */ - -protected: - void onRX(Socket *s); /**< incoming data ready */ - void onError(Socket *s, socket_error_t err); /**< if error occurs */ - void onIncoming(TCPListener *s, void *impl); /**< new connection */ - void onDisconnect(TCPStream *s); /**< disconnection */ - -public: - TCPListener srv; -}; - -#endif - +# extern "C" { #else #include #endif -#if defined(MBED_OPERATORS) || defined(LWS_WITH_ESP8266) +#include "lws_config.h" + +/* + * CARE: everything using cmake defines needs to be below here + */ + +#if defined(LWS_WITH_ESP8266) struct sockaddr_in; #define LWS_POSIX 0 #else #define LWS_POSIX 1 #endif -#include "lws_config.h" +#if defined(LWS_HAS_INTPTR_T) +#include +#define lws_intptr_t intptr_t +#else +typedef unsigned long long lws_intptr_t; +#endif #if defined(WIN32) || defined(_WIN32) #ifndef WIN32_LEAN_AND_MEAN @@ -125,7 +72,7 @@ struct sockaddr_in; // Visual studio older than 2015 and WIN_CE has only _stricmp #if (defined(_MSC_VER) && _MSC_VER < 1900) || defined(_WIN32_WCE) #define strcasecmp _stricmp -#else +#elif !defined(__MINGW32__) #define strcasecmp stricmp #endif #define getdtablesize() 30000 @@ -134,6 +81,7 @@ struct sockaddr_in; #define LWS_VISIBLE #define LWS_WARN_UNUSED_RESULT #define LWS_WARN_DEPRECATED +#define LWS_FORMAT(string_index) #ifdef LWS_DLL #ifdef LWS_INTERNAL @@ -147,13 +95,27 @@ struct sockaddr_in; #define LWS_INVALID_FILE INVALID_HANDLE_VALUE #define LWS_O_RDONLY _O_RDONLY +#define LWS_O_WRONLY _O_WRONLY +#define LWS_O_CREAT _O_CREAT +#define LWS_O_TRUNC _O_TRUNC + +#if !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER < 1900) /* Visual Studio 2015 already defines this in */ +#define lws_snprintf _snprintf +#endif #ifndef __func__ #define __func__ __FUNCTION__ #endif +#if !defined(__MINGW32__) &&(!defined(_MSC_VER) || _MSC_VER < 1900) && !defined(snprintf) +#define snprintf(buf,len, format,...) _snprintf_s(buf, len,len, format, __VA_ARGS__) +#endif + #else /* NOT WIN32 */ #include +#if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) +#include +#endif #if defined(__NetBSD__) || defined(__FreeBSD__) #include @@ -161,14 +123,21 @@ struct sockaddr_in; #define LWS_INLINE inline #define LWS_O_RDONLY O_RDONLY +#define LWS_O_WRONLY O_WRONLY +#define LWS_O_CREAT O_CREAT +#define LWS_O_TRUNC O_TRUNC -#if !defined(MBED_OPERATORS) && !defined(LWS_WITH_ESP8266) +#if !defined(LWS_WITH_ESP8266) && !defined(OPTEE_TA) && !defined(LWS_WITH_ESP32) #include #include #define LWS_INVALID_FILE -1 #else -#define getdtablesize() (20) +#define getdtablesize() (30) +#if defined(LWS_WITH_ESP32) #define LWS_INVALID_FILE NULL +#else +#define LWS_INVALID_FILE NULL +#endif #endif #if defined(__GNUC__) @@ -182,10 +151,12 @@ struct sockaddr_in; #define LWS_VISIBLE __attribute__((visibility("default"))) #define LWS_WARN_DEPRECATED __attribute__ ((deprecated)) +#define LWS_FORMAT(string_index) __attribute__ ((format(printf, string_index, string_index+1))) #else #define LWS_VISIBLE #define LWS_WARN_UNUSED_RESULT #define LWS_WARN_DEPRECATED +#define LWS_FORMAT(string_index) #endif #if defined(__ANDROID__) @@ -195,15 +166,18 @@ struct sockaddr_in; #endif -#ifdef LWS_USE_LIBEV +#ifdef LWS_WITH_LIBEV #include -#endif /* LWS_USE_LIBEV */ -#ifdef LWS_USE_LIBUV +#endif /* LWS_WITH_LIBEV */ +#ifdef LWS_WITH_LIBUV #include #ifdef LWS_HAVE_UV_VERSION_H #include #endif -#endif /* LWS_USE_LIBUV */ +#endif /* LWS_WITH_LIBUV */ +#ifdef LWS_WITH_LIBEVENT +#include +#endif /* LWS_WITH_LIBEVENT */ #ifndef LWS_EXTERN #define LWS_EXTERN extern @@ -212,9 +186,11 @@ struct sockaddr_in; #ifdef _WIN32 #define random rand #else +#if !defined(OPTEE_TA) #include #include #endif +#endif #ifdef LWS_OPENSSL_SUPPORT @@ -227,28 +203,24 @@ struct sockaddr_in; #include #endif /* not USE_OLD_CYASSL */ #else -#if defined(LWS_USE_POLARSSL) -#include -struct lws_polarssl_context { - x509_crt ca; /**< ca */ - x509_crt certificate; /**< cert */ - rsa_context key; /**< key */ -}; -typedef struct lws_polarssl_context SSL_CTX; -typedef ssl_context SSL; -#else -#if defined(LWS_USE_MBEDTLS) +#if defined(LWS_WITH_MBEDTLS) +#if defined(LWS_WITH_ESP32) +/* this filepath is passed to us but without quotes or <> */ +#undef MBEDTLS_CONFIG_FILE +#define MBEDTLS_CONFIG_FILE +#endif #include -#else +#endif #include +#if !defined(LWS_WITH_MBEDTLS) #include -#endif /* not USE_MBEDTLS */ -#endif /* not USE_POLARSSL */ +#endif #endif /* not USE_WOLFSSL */ #endif #define CONTEXT_PORT_NO_LISTEN -1 +#define CONTEXT_PORT_NO_LISTEN_SERVER -2 /** \defgroup log Logging * @@ -273,11 +245,12 @@ enum lws_log_levels { LLL_EXT = 1 << 7, LLL_CLIENT = 1 << 8, LLL_LATENCY = 1 << 9, + LLL_USER = 1 << 10, - LLL_COUNT = 10 /* set to count of valid flags */ + LLL_COUNT = 11 /* set to count of valid flags */ }; -LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...); +LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...) LWS_FORMAT(2); LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl); /** * lwsl_timestamp: generate logging timestamp string @@ -291,15 +264,18 @@ LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl LWS_VISIBLE LWS_EXTERN int lwsl_timestamp(int level, char *p, int len); +/* these guys are unconditionally included */ + #define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__) +#define lwsl_user(...) _lws_log(LLL_USER, __VA_ARGS__) #if !defined(LWS_WITH_NO_LOGS) -/* notice, warn and log are always compiled in */ +/* notice and warn are usually included by being compiled in */ #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) #endif /* - * weaker logging can be deselected at configure time using --disable-debug + * weaker logging can be deselected by telling CMake to build in RELEASE mode * that gets rid of the overhead of checking while keeping _warn and _err * active */ @@ -311,7 +287,6 @@ lwsl_timestamp(int level, char *p, int len); #ifdef _DEBUG #if defined(LWS_WITH_NO_LOGS) /* notice, warn and log are always compiled in */ -//#define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__) #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) #endif @@ -322,17 +297,9 @@ lwsl_timestamp(int level, char *p, int len); #define lwsl_ext(...) _lws_log(LLL_EXT, __VA_ARGS__) #define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__) #define lwsl_latency(...) _lws_log(LLL_LATENCY, __VA_ARGS__) -/** - * lwsl_hexdump() - helper to hexdump a buffer (DEBUG builds only) - * - * \param buf: buffer start to dump - * \param len: length of buffer to dump - */ -LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); #else /* no debug */ #if defined(LWS_WITH_NO_LOGS) -//#define lwsl_err(...) do {} while(0) #define lwsl_warn(...) do {} while(0) #define lwsl_notice(...) do {} while(0) #endif @@ -343,10 +310,44 @@ LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); #define lwsl_ext(...) do {} while(0) #define lwsl_client(...) do {} while(0) #define lwsl_latency(...) do {} while(0) -#define lwsl_hexdump(a, b) #endif +/** + * lwsl_hexdump() - helper to hexdump a buffer + * + * \param level: one of LLL_ constants + * \param buf: buffer start to dump + * \param len: length of buffer to dump + * + * If \p level is visible, does a nice hexdump -C style dump of \p buf for + * \p len bytes. This can be extremely convenient while debugging. + */ +LWS_VISIBLE LWS_EXTERN void +lwsl_hexdump_level(int level, const void *vbuf, size_t len); + +/** + * lwsl_hexdump() - helper to hexdump a buffer (DEBUG builds only) + * + * \param buf: buffer start to dump + * \param len: length of buffer to dump + * + * Calls through to lwsl_hexdump_level(LLL_DEBUG, ... for compatability. + * It's better to use lwsl_hexdump_level(level, ... directly so you can control + * the visibility. + */ +LWS_VISIBLE LWS_EXTERN void +lwsl_hexdump(const void *buf, size_t len); + +/** + * lws_is_be() - returns nonzero if the platform is Big Endian + */ +static LWS_INLINE int lws_is_be(void) { + const int probe = ~0xff; + + return *(const char *)&probe; +} + /** * lws_set_log_level() - Set the logging bitfield * \param level: OR together the LLL_ debug contexts you want output from @@ -355,7 +356,8 @@ LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); * the default stderr one. * * log level defaults to "err", "warn" and "notice" contexts enabled and - * emission on stderr. + * emission on stderr. If stderr is a tty (according to isatty()) then + * the output is coloured according to the log level using ANSI escapes. */ LWS_VISIBLE LWS_EXTERN void lws_set_log_level(int level, @@ -373,6 +375,18 @@ lws_set_log_level(int level, LWS_VISIBLE LWS_EXTERN void lwsl_emit_syslog(int level, const char *line); +/** + * lwsl_visible() - returns true if the log level should be printed + * + * \param level: one of LLL_ log level indexes + * + * This is useful if you have to do work to generate the log content, you + * can skip the work if the log level used to print it is not actually + * enabled at runtime. + */ +LWS_VISIBLE LWS_EXTERN int +lwsl_visible(int level); + ///@} @@ -419,30 +433,7 @@ struct lws_pollfd { #define LWS_POLLOUT (FD_WRITE) #else -#if defined(MBED_OPERATORS) -/* it's a class lws_conn * */ -typedef void * lws_sockfd_type; -typedef void * lws_filefd_type; -#define lws_sockfd_valid(sfd) (!!sfd) -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 -struct lws; - -void * mbed3_create_tcp_stream_socket(void); -void mbed3_delete_tcp_stream_socket(void *sockfd); -void mbed3_tcp_stream_bind(void *sock, int port, struct lws *); -void mbed3_tcp_stream_accept(void *sock, struct lws *); -#else #if defined(LWS_WITH_ESP8266) #include @@ -472,7 +463,7 @@ void esp8266_tcp_stream_accept(lws_sockfd_type fd, struct lws *wsi); #include #include "ets_sys.h" -int ets_snprintf(char *str, size_t size, const char *format, ...); +int ets_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3); #define snprintf ets_snprintf typedef os_timer_t uv_timer_t; @@ -508,6 +499,206 @@ static inline void uv_timer_stop(uv_timer_t *t) os_timer_disarm(t); } +#else +#if defined(LWS_WITH_ESP32) + +typedef int lws_sockfd_type; +typedef int lws_filefd_type; +#define lws_sockfd_valid(sfd) (sfd >= 0) +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 + +#include +#include +#include +#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" + +#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 inline void uv_timer_init(void *l, uv_timer_t *t) +{ + (void)l; + *t = NULL; +} + +extern void esp32_uvtimer_cb(TimerHandle_t t); + +static 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 inline void uv_timer_stop(uv_timer_t *t) +{ + xTimerStop(*t, 0); +} + +static inline void uv_close(uv_handle_t *h, void *v) +{ + free(pvTimerGetTimerID((uv_timer_t)h)); + xTimerDelete(*(uv_timer_t *)h, 0); +} + +/* ESP32 helper declarations */ + +#include +#include + +#define LWS_PLUGIN_STATIC +#define LWS_MAGIC_REBOOT_TYPE_ADS 0x50001ffc +#define LWS_MAGIC_REBOOT_TYPE_REQ_FACTORY 0xb00bcafe +#define LWS_MAGIC_REBOOT_TYPE_FORCED_FACTORY 0xfaceb00b +#define LWS_MAGIC_REBOOT_TYPE_FORCED_FACTORY_BUTTON 0xf0cedfac + + +/* user code provides these */ + +extern void +lws_esp32_identify_physical_device(void); + +/* lws-plat-esp32 provides these */ + +typedef void (*lws_cb_scan_done)(uint16_t count, wifi_ap_record_t *recs, void *arg); + +enum genled_state { + LWSESP32_GENLED__INIT, + LWSESP32_GENLED__LOST_NETWORK, + LWSESP32_GENLED__NO_NETWORK, + LWSESP32_GENLED__CONN_AP, + LWSESP32_GENLED__GOT_IP, + LWSESP32_GENLED__OK, +}; + +struct lws_group_member { + struct lws_group_member *next; + uint64_t last_seen; + char model[16]; + char role[16]; + char host[32]; + char mac[20]; + int width, height; + struct ip4_addr addr; + struct ip6_addr addrv6; + uint8_t flags; +}; + +#define LWS_SYSTEM_GROUP_MEMBER_ADD 1 +#define LWS_SYSTEM_GROUP_MEMBER_CHANGE 2 +#define LWS_SYSTEM_GROUP_MEMBER_REMOVE 3 + +#define LWS_GROUP_FLAG_SELF 1 + +struct lws_esp32 { + char sta_ip[16]; + char sta_mask[16]; + char sta_gw[16]; + char serial[16]; + char opts[16]; + char model[16]; + char group[16]; + char role[16]; + char ssid[4][16]; + char password[4][32]; + char active_ssid[32]; + char access_pw[16]; + char hostname[32]; + char mac[20]; + mdns_server_t *mdns; + char region; + char inet; + char conn_ap; + + enum genled_state genled; + uint64_t genled_t; + + lws_cb_scan_done scan_consumer; + void *scan_consumer_arg; + struct lws_group_member *first; + int extant_group_members; +}; + +struct lws_esp32_image { + uint32_t romfs; + uint32_t romfs_len; + uint32_t json; + uint32_t json_len; +}; + +extern struct lws_esp32 lws_esp32; +struct lws_vhost; + +extern esp_err_t +lws_esp32_event_passthru(void *ctx, system_event_t *event); +extern void +lws_esp32_wlan_config(void); +extern void +lws_esp32_wlan_start_ap(void); +extern void +lws_esp32_wlan_start_station(void); +struct lws_context_creation_info; +extern void +lws_esp32_set_creation_defaults(struct lws_context_creation_info *info); +extern struct lws_context * +lws_esp32_init(struct lws_context_creation_info *, struct lws_vhost **pvh); +extern int +lws_esp32_wlan_nvs_get(int retry); +extern esp_err_t +lws_nvs_set_str(nvs_handle handle, const char* key, const char* value); +extern void +lws_esp32_restart_guided(uint32_t type); +extern const esp_partition_t * +lws_esp_ota_get_boot_partition(void); +extern int +lws_esp32_get_image_info(const esp_partition_t *part, struct lws_esp32_image *i, char *json, int json_len); +extern int +lws_esp32_leds_network_indication(void); + +extern uint32_t lws_esp32_get_reboot_type(void); +extern uint16_t lws_esp32_sine_interp(int n); + +/* required in external code by esp32 plat (may just return if no leds) */ +extern void lws_esp32_leds_timer_cb(TimerHandle_t th); #else typedef int lws_sockfd_type; typedef int lws_filefd_type; @@ -521,6 +712,36 @@ typedef int lws_filefd_type; #define LWS_POLLOUT (POLLOUT) #endif + +#if (defined(WIN32) || defined(_WIN32)) && !defined(__MINGW32__) +/* ... */ +#define ssize_t SSIZE_T +#endif + +#if defined(WIN32) && defined(LWS_HAVE__STAT32I64) +#include +#include +#endif + +#if defined(LWS_HAVE_STDINT_H) +#include +#else +#if defined(WIN32) || defined(_WIN32) +/* !!! >:-[ */ +typedef unsigned __int32 uint32_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int8 uint8_t; +#else +typedef unsigned int uint32_t; +typedef unsigned short uint16_t; +typedef unsigned char uint8_t; +#endif +#endif + +typedef unsigned long long lws_filepos_t; +typedef long long lws_fileofs_t; +typedef uint32_t lws_fop_flags_t; + /** struct lws_pollargs - argument structure for all external poll related calls * passed in via 'in' */ struct lws_pollargs { @@ -637,6 +858,38 @@ struct lws_context; /* needed even with extensions disabled for create context */ struct lws_extension; +/*! \defgroup lwsmeta lws-meta + * + * ##lws-meta protocol + * + * The protocol wraps other muxed connections inside one tcp connection. + * + * Commands are assigned from 0x41 up (so they are valid unicode) + */ +///@{ + +enum lws_meta_commands { + LWS_META_CMD_OPEN_SUBCHANNEL = 'A', + /**< Client requests to open new subchannel + */ + LWS_META_CMD_OPEN_RESULT, + /**< Result of client request to open new subchannel */ + LWS_META_CMD_CLOSE_NOTIFY, + /**< Notification of subchannel closure */ + LWS_META_CMD_CLOSE_RQ, + /**< client requests to close a subchannel */ + LWS_META_CMD_WRITE, + /**< connection writes something to specific channel index */ + + /****** add new things just above ---^ ******/ +}; + +/* channel numbers are transported offset by 0x20 so they are valid unicode */ + +#define LWS_META_TRANSPORT_OFFSET 0x20 + +///@} + /*! \defgroup usercb User Callback * * ##User protocol callback @@ -650,6 +903,10 @@ struct lws_extension; */ ///@{ +struct lws_ssl_info { + int where; + int ret; +}; /* * NOTE: These public enums are part of the abi. If you want to add one, @@ -816,7 +1073,7 @@ enum lws_callback_reasons { LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS = 22, /**< if configured for * including OpenSSL support, this callback allows your user code - * to load extra certifcates into the server which allow it to + * to load extra certificates into the server which allow it to * verify the validity of certificates returned by clients. user * is the server's OpenSSL SSL_CTX* */ LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION = 23, @@ -870,8 +1127,7 @@ enum lws_callback_reasons { * and with in being the extension name, len is 0 and user is * valid. Note though at this time the ESTABLISHED callback hasn't * happened yet so if you initialize user content there, user - * content during this callback might not be useful for anything. - * Notice this callback comes to protocols[0]. */ + * content during this callback might not be useful for anything. */ LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED = 26, /**< When a client * connection is being prepared to start a handshake to a server, @@ -962,45 +1218,127 @@ enum lws_callback_reasons { * connection. */ LWS_CALLBACK_WS_EXT_DEFAULTS = 39, - /**< */ + /**< Gives client connections an opportunity to adjust negotiated + * extension defaults. `user` is the extension name that was + * negotiated (eg, "permessage-deflate"). `in` points to a + * buffer and `len` is the buffer size. The user callback can + * set the buffer to a string describing options the extension + * should parse. Or just ignore for defaults. */ LWS_CALLBACK_CGI = 40, - /**< */ + /**< CGI: CGI IO events on stdin / out / err are sent here on + * protocols[0]. The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. */ LWS_CALLBACK_CGI_TERMINATED = 41, - /**< */ + /**< CGI: The related CGI process ended, this is called before + * the wsi is closed. Used to, eg, terminate chunking. + * The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. The child PID that terminated is in len. */ LWS_CALLBACK_CGI_STDIN_DATA = 42, - /**< */ + /**< CGI: Data is, to be sent to the CGI process stdin, eg from + * a POST body. The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. */ LWS_CALLBACK_CGI_STDIN_COMPLETED = 43, - /**< */ + /**< CGI: no more stdin is coming. The provided + * `lws_callback_http_dummy()` handles this and the callback + * should be directed there if you use CGI. */ LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44, - /**< */ + /**< The HTTP client connection has succeeded, and is now + * connected to the server */ LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45, - /**< */ + /**< The HTTP client connection is closing */ LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46, - /**< */ + /**< This simply indicates data was received on the HTTP client + * connection. It does NOT drain or provide the data. + * This exists to neatly allow a proxying type situation, + * where this incoming data will go out on another connection. + * If the outgoing connection stalls, we should stall processing + * the incoming data. So a handler for this in that case should + * simply set a flag to indicate there is incoming data ready + * and ask for a writeable callback on the outgoing connection. + * In the writable callback he can check the flag and then get + * and drain the waiting incoming data using lws_http_client_read(). + * This will use callbacks to LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ + * to get and drain the incoming data, where it should be sent + * back out on the outgoing connection. */ LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47, - /**< */ + /**< The client transaction completed... at the moment this + * is the same as closing since transaction pipelining on + * client side is not yet supported. */ LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48, - /**< */ + /**< This is generated by lws_http_client_read() used to drain + * incoming data. In the case the incoming data was chunked, + * it will be split into multiple smaller callbacks for each + * chunk block, removing the chunk headers. If not chunked, + * it will appear all in one callback. */ LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49, - /**< */ + /**< By default, all HTTP handling is done in protocols[0]. + * However you can bind different protocols (by name) to + * different parts of the URL space using callback mounts. This + * callback occurs in the new protocol when a wsi is bound + * to that protocol. Any protocol allocation related to the + * http transaction processing should be created then. + * These specific callbacks are necessary because with HTTP/1.1, + * a single connection may perform at series of different + * transactions at different URLs, thus the lifetime of the + * protocol bind is just for one transaction, not connection. */ LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50, - /**< */ + /**< This is called when a transaction is unbound from a protocol. + * It indicates the connection completed its transaction and may + * do something different now. Any protocol allocation related + * to the http transaction processing should be destroyed. */ LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51, - /**< */ + /**< This gives the user code a chance to forbid an http access. + * `in` points to a `struct lws_process_html_args`, which + * describes the URL, and a bit mask describing the type of + * authentication required. If the callback returns nonzero, + * the transaction ends with HTTP_STATUS_UNAUTHORIZED. */ LWS_CALLBACK_PROCESS_HTML = 52, - /**< */ + /**< This gives your user code a chance to mangle outgoing + * HTML. `in` points to a `struct lws_process_html_args` + * which describes the buffer containing outgoing HTML. + * The buffer may grow up to `.max_len` (currently +128 + * bytes per buffer). + * */ LWS_CALLBACK_ADD_HEADERS = 53, - /**< */ + /**< This gives your user code a chance to add headers to a + * transaction bound to your protocol. `in` points to a + * `struct lws_process_html_args` describing a buffer and length + * you can add headers into using the normal lws apis. + * + * Only `args->p` and `args->len` are valid, and `args->p` should + * be moved on by the amount of bytes written, if any. Eg + * + * case LWS_CALLBACK_ADD_HEADERS: + * + * struct lws_process_html_args *args = + * (struct lws_process_html_args *)in; + * + * if (lws_add_http_header_by_name(wsi, + * (unsigned char *)"set-cookie:", + * (unsigned char *)cookie, cookie_len, + * (unsigned char **)&args->p, + * (unsigned char *)args->p + args->max_len)) + * return 1; + * + * break; + */ LWS_CALLBACK_SESSION_INFO = 54, - /**< */ + /**< This is only generated by user code using generic sessions. + * It's used to get a `struct lws_session_info` filled in by + * generic sessions with information about the logged-in user. + * See the messageboard sample for an example of how to use. */ LWS_CALLBACK_GS_EVENT = 55, - /**< */ + /**< Indicates an event happened to the Generic Sessions session. + * `in` contains a `struct lws_gs_event_args` describing the event. */ LWS_CALLBACK_HTTP_PMO = 56, /**< per-mount options for this connection, called before * the normal LWS_CALLBACK_HTTP when the mount has per-mount - * options + * options. */ LWS_CALLBACK_CLIENT_HTTP_WRITEABLE = 57, /**< when doing an HTTP type client connection, you can call @@ -1011,11 +1349,76 @@ enum lws_callback_reasons { * From this callback, when you have sent everything, you should let * lws know by calling lws_client_http_body_pending(wsi, 0) */ + LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION = 58, + /**< Similar to LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION + * this callback is called during OpenSSL verification of the cert + * sent from the server to the client. It is sent to protocol[0] + * callback as no protocol has been negotiated on the connection yet. + * Notice that the wsi is set because lws_client_connect_via_info was + * successful. + * + * See http://www.openssl.org/docs/ssl/SSL_CTX_set_verify.html + * to understand more detail about the OpenSSL callback that + * generates this libwebsockets callback and the meanings of the + * arguments passed. In this callback, user is the x509_ctx, + * in is the ssl pointer and len is preverify_ok. + * + * THIS IS NOT RECOMMENDED BUT if a cert validation error shall be + * overruled and cert shall be accepted as ok, + * X509_STORE_CTX_set_error((X509_STORE_CTX*)user, X509_V_OK); must be + * called and return value must be 0 to mean the cert is OK; + * returning 1 will fail the cert in any case. + * + * This also means that if you don't handle this callback then + * the default callback action of returning 0 will not accept the + * certificate in case of a validation error decided by the SSL lib. + * + * This is expected and secure behaviour when validating certificates. + * + * Note: LCCSCF_ALLOW_SELFSIGNED and + * LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK still work without this + * callback being implemented. + */ + LWS_CALLBACK_RAW_RX = 59, + /**< RAW mode connection RX */ + LWS_CALLBACK_RAW_CLOSE = 60, + /**< RAW mode connection is closing */ + LWS_CALLBACK_RAW_WRITEABLE = 61, + /**< RAW mode connection may be written */ + LWS_CALLBACK_RAW_ADOPT = 62, + /**< RAW mode connection was adopted (equivalent to 'wsi created') */ + LWS_CALLBACK_RAW_ADOPT_FILE = 63, + /**< RAW mode file was adopted (equivalent to 'wsi created') */ + LWS_CALLBACK_RAW_RX_FILE = 64, + /**< RAW mode file has something to read */ + LWS_CALLBACK_RAW_WRITEABLE_FILE = 65, + /**< RAW mode file is writeable */ + LWS_CALLBACK_RAW_CLOSE_FILE = 66, + /**< RAW mode wsi that adopted a file is closing */ + LWS_CALLBACK_SSL_INFO = 67, + /**< SSL connections only. An event you registered an + * interest in at the vhost has occurred on a connection + * using the vhost. in is a pointer to a + * struct lws_ssl_info containing information about the + * event*/ + LWS_CALLBACK_CHILD_WRITE_VIA_PARENT = 68, + /**< Child has been marked with parent_carries_io attribute, so + * lws_write directs the to this callback at the parent, + * in is a struct lws_write_passthru containing the args + * the lws_write() was called with. + */ + LWS_CALLBACK_CHILD_CLOSING = 69, + /**< Sent to parent to notify them a child is closing / being + * destroyed. in is the child wsi. + */ + LWS_CALLBACK_CGI_PROCESS_ATTACH = 70, + /**< CGI: Sent when the CGI process is spawned for the wsi. The + * len parameter is the PID of the child process */ /****** add new things just above ---^ ******/ LWS_CALLBACK_USER = 1000, - /**< user code can use any including / above without fear of clashes */ + /**< user code can use any including above without fear of clashes */ }; @@ -1038,10 +1441,99 @@ enum lws_callback_reasons { typedef int lws_callback_function(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len); + +#define LWS_CB_REASON_AUX_BF__CGI 1 +#define LWS_CB_REASON_AUX_BF__PROXY 2 +#define LWS_CB_REASON_AUX_BF__CGI_CHUNK_END 4 +#define LWS_CB_REASON_AUX_BF__CGI_HEADERS 8 ///@} -/*! \defgroup extensions +/*! \defgroup generic hash + * ## Generic Hash related functions * + * Lws provides generic hash / digest accessors that abstract the ones + * provided by whatever OpenSSL library you are linking against. + * + * It lets you use the same code if you build against mbedtls or OpenSSL + * for example. + */ +///@{ + +#ifdef LWS_OPENSSL_SUPPORT + +#if defined(LWS_WITH_MBEDTLS) +#include +#include +#include +#endif + +#define LWS_GENHASH_TYPE_SHA1 0 +#define LWS_GENHASH_TYPE_SHA256 1 +#define LWS_GENHASH_TYPE_SHA512 2 + +struct lws_genhash_ctx { + uint8_t type; +#if defined(LWS_WITH_MBEDTLS) + union { + mbedtls_sha1_context sha1; + mbedtls_sha256_context sha256; + mbedtls_sha512_context sha512; + } u; +#else + const EVP_MD *evp_type; + EVP_MD_CTX *mdctx; +#endif +}; + +/** lws_genhash_size() - get hash size in bytes + * + * \param type: one of LWS_GENHASH_TYPE_... + * + * Returns number of bytes in this type of hash + */ +LWS_VISIBLE LWS_EXTERN size_t LWS_WARN_UNUSED_RESULT +lws_genhash_size(int type); + +/** lws_genhash_init() - prepare your struct lws_genhash_ctx for use + * + * \param ctx: your struct lws_genhash_ctx + * \param type: one of LWS_GENHASH_TYPE_... + * + * Initializes the hash context for the type you requested + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_genhash_init(struct lws_genhash_ctx *ctx, int type); + +/** lws_genhash_update() - digest len bytes of the buffer starting at in + * + * \param ctx: your struct lws_genhash_ctx + * \param in: start of the bytes to digest + * \param len: count of bytes to digest + * + * Updates the state of your hash context to reflect digesting len bytes from in + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_genhash_update(struct lws_genhash_ctx *ctx, const void *in, size_t len); + +/** lws_genhash_destroy() - copy out the result digest and destroy the ctx + * + * \param ctx: your struct lws_genhash_ctx + * \param result: NULL, or where to copy the result hash + * + * Finalizes the hash and copies out the digest. Destroys any allocations such + * that ctx can safely go out of scope after calling this. + * + * NULL result is supported so that you can destroy the ctx cleanly on error + * conditions, where there is no valid result. + */ +LWS_VISIBLE LWS_EXTERN int +lws_genhash_destroy(struct lws_genhash_ctx *ctx, void *result); + +#endif + +///@} + +/*! \defgroup extensions Extension related functions * ##Extension releated functions * * Ws defines optional extensions, lws provides the ability to implement these @@ -1213,7 +1705,7 @@ lws_set_extension_option(struct lws *wsi, const char *ext_name, * client and server for how to do. */ static LWS_INLINE LWS_WARN_DEPRECATED const struct lws_extension * -lws_get_internal_extensions() { return NULL; } +lws_get_internal_extensions(void) { return NULL; } /** * lws_ext_parse_options() - deal with parsing negotiated extension options @@ -1293,8 +1785,8 @@ struct lws_protocols { * be able to consume it all without having to return to the event * loop. That is supported in lws. * - * This also controls how much may be sent at once at the moment, - * although this is likely to change. + * If .tx_packet_size is 0, this also controls how much may be sent at once + * for backwards compatibility. */ unsigned int id; /**< ignored by lws, but useful to contain user information bound @@ -1305,6 +1797,15 @@ struct lws_protocols { * capability flags based on selected protocol version, etc. */ void *user; /**< ignored by lws, but user code can pass a pointer here it can later access from the protocol callback */ + size_t tx_packet_size; + /**< 0 indicates restrict send() size to .rx_buffer_size for backwards- + * compatibility. + * If greater than zero, a single send() is restricted to this amount + * and any remainder is buffered by lws and sent afterwards also in + * these size chunks. Since that is expensive, it's preferable + * to restrict one fragment you are trying to send to match this + * size. + */ /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility */ @@ -1365,6 +1866,23 @@ lws_protocol_vh_priv_zalloc(struct lws_vhost *vhost, const struct lws_protocols LWS_VISIBLE LWS_EXTERN void * lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *prot); +/** + * lws_adjust_protocol_psds - change a vhost protocol's per session data size + * + * \param wsi: a connection with the protocol to change + * \param new_size: the new size of the per session data size for the protocol + * + * Returns user_space for the wsi, after allocating + * + * This should not be used except to initalize a vhost protocol's per session + * data size one time, before any connections are accepted. + * + * Sometimes the protocol wraps another protocol and needs to discover and set + * its per session data size at runtime. + */ +LWS_VISIBLE LWS_EXTERN void * +lws_adjust_protocol_psds(struct lws *wsi, size_t new_size); + /** * lws_finalize_startup() - drop initial process privileges * @@ -1376,6 +1894,9 @@ lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *pr LWS_VISIBLE LWS_EXTERN int lws_finalize_startup(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN int +lws_protocol_init(struct lws_context *context); + #ifdef LWS_WITH_PLUGINS /* PLUGINS implies LIBUV */ @@ -1465,10 +1986,10 @@ struct lws_gs_event_args { ///@} -/*! \defgroup context-and-vhost +/*! \defgroup context-and-vhost context and vhost related functions + * ##Context and Vhost releated functions * \ingroup lwsapi * - * ##Context and Vhost releated functions * * LWS requires that there is one context, in which you may define multiple * vhosts. Each vhost is a virtual host, with either its own listen port @@ -1539,12 +2060,42 @@ enum lws_context_options { * even if it happened without a debugger in place. You can disable * that by giving this option. */ + LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN = (1 << 19), + /**< For backwards-compatibility reasons, by default + * lws prepends "http://" to the origin you give in the client + * connection info struct. If you give this flag when you create + * the context, only the string you give in the client connect + * info for .origin (if any) will be used directly. + */ + LWS_SERVER_OPTION_FALLBACK_TO_RAW = (1 << 20), + /**< (VH) if invalid http is coming in the first line, */ + LWS_SERVER_OPTION_LIBEVENT = (1 << 21), + /**< (CTX) Use libevent event loop */ + LWS_SERVER_OPTION_ONLY_RAW = (1 << 22), + /**< (VH) All connections to this vhost / port are RAW as soon as + * the connection is accepted, no HTTP is going to be coming. + */ + LWS_SERVER_OPTION_ALLOW_LISTEN_SHARE = (1 << 23), + /**< (VH) Set to allow multiple listen sockets on one interface + + * address + port. The default is to strictly allow only one + * listen socket at a time. This is automatically selected if you + * have multiple service threads. + */ + LWS_SERVER_OPTION_CREATE_VHOST_SSL_CTX = (1 << 24), + /**< (VH) Force setting up the vhost SSL_CTX, even though the user + * code doesn't explicitly provide a cert in the info struct. It + * implies the user code is going to provide a cert at the + * LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS callback, which + * provides the vhost SSL_CTX * in the user parameter. + */ /****** add new things just above ---^ ******/ }; #define lws_check_opt(c, f) (((c) & (f)) == (f)) +struct lws_plat_file_ops; + /** struct lws_context_creation_info - parameters to create context and /or vhost with * * This is also used to create vhosts.... if LWS_SERVER_OPTION_EXPLICIT_VHOSTS @@ -1556,10 +2107,10 @@ enum lws_context_options { */ struct lws_context_creation_info { int port; - /**< VHOST: Port to listen on... you can use CONTEXT_PORT_NO_LISTEN to - * suppress listening on any port, that's what you want if you are - * not running a websocket server at all but just using it as a - * client */ + /**< VHOST: Port to listen on. Use CONTEXT_PORT_NO_LISTEN to suppress + * listening for a client. Use CONTEXT_PORT_NO_LISTEN_SERVER if you are + * writing a server but you are using \ref sock-adopt instead of the + * built-in listener */ const char *iface; /**< VHOST: NULL to bind the listen socket to all interfaces, or the * interface name, eg, "eth2" @@ -1578,23 +2129,38 @@ struct lws_context_creation_info { /**< CONTEXT: NULL or struct lws_token_limits pointer which is initialized * with a token length limit for each possible WSI_TOKEN_ */ const char *ssl_private_key_password; - /**< VHOST: NULL or the passphrase needed for the private key */ + /**< VHOST: NULL or the passphrase needed for the private key. (For + * backwards compatibility, this can also be used to pass the client + * cert passphrase when setting up a vhost client SSL context, but it is + * preferred to use .client_ssl_private_key_password for that.) */ const char *ssl_cert_filepath; /**< VHOST: If libwebsockets was compiled to use ssl, and you want * to listen using SSL, set to the filepath to fetch the - * server cert from, otherwise NULL for unencrypted */ + * server cert from, otherwise NULL for unencrypted. (For backwards + * compatibility, this can also be used to pass the client certificate + * when setting up a vhost client SSL context, but it is preferred to + * use .client_ssl_cert_filepath for that.) */ const char *ssl_private_key_filepath; /**< VHOST: filepath to private key if wanting SSL mode; - * if this is set to NULL but sll_cert_filepath is set, the + * if this is set to NULL but ssl_cert_filepath is set, the * OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY callback is called * to allow setting of the private key directly via openSSL - * library calls */ + * library calls. (For backwards compatibility, this can also be used + * to pass the client cert private key filepath when setting up a + * vhost client SSL context, but it is preferred to use + * .client_ssl_private_key_filepath for that.) */ const char *ssl_ca_filepath; - /**< VHOST: CA certificate filepath or NULL */ + /**< VHOST: CA certificate filepath or NULL. (For backwards + * compatibility, this can also be used to pass the client CA + * filepath when setting up a vhost client SSL context, + * but it is preferred to use .client_ssl_ca_filepath for that.) */ const char *ssl_cipher_list; /**< VHOST: List of valid ciphers to use (eg, * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" - * or you can leave it as NULL to get "DEFAULT" */ + * or you can leave it as NULL to get "DEFAULT" (For backwards + * compatibility, this can also be used to pass the client cipher + * list when setting up a vhost client SSL context, + * but it is preferred to use .client_ssl_cipher_list for that.)*/ const char *http_proxy_address; /**< VHOST: If non-NULL, attempts to proxy via the given address. * If proxy auth is required, use format "username:password\@server:port" */ @@ -1607,8 +2173,14 @@ struct lws_context_creation_info { unsigned int options; /**< VHOST + CONTEXT: 0, or LWS_SERVER_OPTION_... bitfields */ void *user; - /**< CONTEXT: optional user pointer that can be recovered via the context - * pointer using lws_context_user */ + /**< VHOST + CONTEXT: optional user pointer that will be associated + * with the context when creating the context (and can be retrieved by + * lws_context_user(context), or with the vhost when creating the vhost + * (and can be retrieved by lws_vhost_user(vhost)). You will need to + * use LWS_SERVER_OPTION_EXPLICIT_VHOSTS and create the vhost separately + * if you care about giving the context and vhost different user pointer + * values. + */ int ka_time; /**< CONTEXT: 0 for no TCP keepalive, otherwise apply this keepalive * timeout to all libwebsocket sockets, client or server */ @@ -1704,6 +2276,110 @@ struct lws_context_creation_info { /**< VHOST: pointer to optional linked list of per-vhost * canned headers that are added to server responses */ + const struct lws_protocol_vhost_options *reject_service_keywords; + /**< CONTEXT: Optional list of keywords and rejection codes + text. + * + * The keywords are checked for existing in the user agent string. + * + * Eg, "badrobot" "404 Not Found" + */ + void *external_baggage_free_on_destroy; + /**< CONTEXT: NULL, or pointer to something externally malloc'd, that + * should be freed when the context is destroyed. This allows you to + * automatically sync the freeing action to the context destruction + * action, so there is no need for an external free() if the context + * succeeded to create. + */ + + const char *client_ssl_private_key_password; + /**< VHOST: Client SSL context init: NULL or the passphrase needed + * for the private key */ + const char *client_ssl_cert_filepath; + /**< VHOST: Client SSL context init:T he certificate the client + * should present to the peer on connection */ + const char *client_ssl_private_key_filepath; + /**< VHOST: Client SSL context init: filepath to client private key + * if this is set to NULL but client_ssl_cert_filepath is set, you + * can handle the LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS + * callback of protocols[0] to allow setting of the private key directly + * via openSSL library calls */ + const char *client_ssl_ca_filepath; + /**< VHOST: Client SSL context init: CA certificate filepath or NULL */ + const char *client_ssl_cipher_list; + /**< VHOST: Client SSL context init: List of valid ciphers to use (eg, + * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" + * or you can leave it as NULL to get "DEFAULT" */ + + const struct lws_plat_file_ops *fops; + /**< CONTEXT: NULL, or pointer to an array of fops structs, terminated + * by a sentinel with NULL .open. + * + * If NULL, lws provides just the platform file operations struct for + * backwards compatibility. + */ + int simultaneous_ssl_restriction; + /**< CONTEXT: 0 (no limit) or limit of simultaneous SSL sessions possible.*/ + const char *socks_proxy_address; + /**< VHOST: If non-NULL, attempts to proxy via the given address. + * If proxy auth is required, use format "username:password\@server:port" */ + unsigned int socks_proxy_port; + /**< VHOST: If socks_proxy_address was non-NULL, uses this port */ +#if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) + cap_value_t caps[4]; + /**< CONTEXT: array holding Linux capabilities you want to + * continue to be available to the server after it transitions + * to a noprivileged user. Usually none are needed but for, eg, + * .bind_iface, CAP_NET_RAW is required. This gives you a way + * to still have the capability but drop root. + */ + char count_caps; + /**< CONTEXT: count of Linux capabilities in .caps[]. 0 means + * no capabilities will be inherited from root (the default) */ +#endif + int bind_iface; + /**< VHOST: nonzero to strictly bind sockets to the interface name in + * .iface (eg, "eth2"), using SO_BIND_TO_DEVICE. + * + * Requires SO_BINDTODEVICE support from your OS and CAP_NET_RAW + * capability. + * + * Notice that common things like access network interface IP from + * your local machine use your lo / loopback interface and will be + * disallowed by this. + */ + int ssl_info_event_mask; + /**< VHOST: mask of ssl events to be reported on LWS_CALLBACK_SSL_INFO + * callback for connections on this vhost. The mask values are of + * the form SSL_CB_ALERT, defined in openssl/ssl.h. The default of + * 0 means no info events will be reported. + */ + unsigned int timeout_secs_ah_idle; + /**< VHOST: seconds to allow a client to hold an ah without using it. + * 0 defaults to 10s. */ + unsigned short ip_limit_ah; + /**< CONTEXT: max number of ah a single IP may use simultaneously + * 0 is no limit. This is a soft limit: if the limit is + * reached, connections from that IP will wait in the ah + * waiting list and not be able to acquire an ah until + * a connection belonging to the IP relinquishes one it + * already has. + */ + unsigned short ip_limit_wsi; + /**< CONTEXT: max number of wsi a single IP may use simultaneously. + * 0 is no limit. This is a hard limit, connections from + * the same IP will simply be dropped once it acquires the + * amount of simultaneous wsi / accepted connections + * given here. + */ + uint32_t http2_settings[7]; + /**< CONTEXT: after context creation http2_settings[1] thru [6] have + * been set to the lws platform default values. + * VHOST: if http2_settings[0] is nonzero, the values given in + * http2_settings[1]..[6] are used instead of the lws + * platform default values. + * Just leave all at 0 if you don't care. + */ + /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility * @@ -1740,7 +2416,7 @@ struct lws_context_creation_info { * * HTTP requests are sent always to the FIRST protocol in protocol, since * at that time websocket protocol has not been negotiated. Other - * protocols after the first one never see any HTTP callack activity. + * protocols after the first one never see any HTTP callback activity. * * The server created is a simple http server by default; part of the * websocket standard is upgrading this http connection to a websocket one. @@ -1763,6 +2439,43 @@ lws_create_context(struct lws_context_creation_info *info); LWS_VISIBLE LWS_EXTERN void lws_context_destroy(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN void +lws_context_destroy2(struct lws_context *context); + +typedef int (*lws_reload_func)(void); + +/** + * lws_context_deprecate() - Deprecate the websocket context + * + * \param context: Websocket context + * \param cb: Callback notified when old context listen sockets are closed + * + * This function is used on an existing context before superceding it + * with a new context. + * + * It closes any listen sockets in the context, so new connections are + * not possible. + * + * And it marks the context to be deleted when the number of active + * connections into it falls to zero. + * + * Otherwise if you attach the deprecated context to the replacement + * context when it has been created using lws_context_attach_deprecated() + * both any deprecated and the new context will service their connections. + * + * This is aimed at allowing seamless configuration reloads. + * + * The callback cb will be called after the listen sockets are actually + * closed and may be reopened. In the callback the new context should be + * configured and created. (With libuv, socket close happens async after + * more loop events). + */ +LWS_VISIBLE LWS_EXTERN void +lws_context_deprecate(struct lws_context *context, lws_reload_func cb); + +LWS_VISIBLE LWS_EXTERN int +lws_context_is_deprecated(struct lws_context *context); + /** * lws_set_proxy() - Setups proxy to lws_context. * \param vhost: pointer to struct lws_vhost you want set proxy for @@ -1783,6 +2496,25 @@ lws_context_destroy(struct lws_context *context); LWS_VISIBLE LWS_EXTERN int lws_set_proxy(struct lws_vhost *vhost, const char *proxy); +/** + * lws_set_socks() - Setup socks to lws_context. + * \param vhost: pointer to struct lws_vhost you want set socks for + * \param socks: pointer to c string containing socks in format address:port + * + * Returns 0 if socks string was parsed and socks was setup. + * Returns -1 if socks is NULL or has incorrect format. + * + * This is only required if your OS does not provide the socks_proxy + * environment variable (eg, OSX) + * + * IMPORTANT! You should call this function right after creation of the + * lws_context and before call to connect. If you call this + * function after connect behavior is undefined. + * This function will override proxy settings made on lws_context + * creation with genenv() call. + */ +LWS_VISIBLE LWS_EXTERN int +lws_set_socks(struct lws_vhost *vhost, const char *socks); struct lws_vhost; @@ -1795,10 +2527,26 @@ struct lws_vhost; * members of the info struct. You can create many vhosts inside one context * if you created the context with the option LWS_SERVER_OPTION_EXPLICIT_VHOSTS */ -LWS_EXTERN LWS_VISIBLE struct lws_vhost * +LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_create_vhost(struct lws_context *context, struct lws_context_creation_info *info); +/** + * lws_vhost_destroy() - Destroy a vhost (virtual server context) + * + * \param vh: pointer to result of lws_create_vhost() + * + * This function destroys a vhost. Normally, if you just want to exit, + * then lws_destroy_context() will take care of everything. If you want + * to destroy an individual vhost and all connections and allocations, you + * can do it with this. + * + * If the vhost has a listen sockets shared by other vhosts, it will be given + * to one of the vhosts sharing it rather than closed. + */ +LWS_VISIBLE LWS_EXTERN void +lws_vhost_destroy(struct lws_vhost *vh); + /** * lwsws_get_config_globals() - Parse a JSON server config file * \param info: pointer to struct with parameters @@ -1865,9 +2613,24 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len); * \param context: the context * \param buf: buffer to fill with JSON * \param len: max length of buf + * \param hide_vhosts: nonzero to not provide per-vhost mount etc information + * + * Generates a JSON description of vhost state into buf */ LWS_VISIBLE LWS_EXTERN int -lws_json_dump_context(const struct lws_context *context, char *buf, int len); +lws_json_dump_context(const struct lws_context *context, char *buf, int len, + int hide_vhosts); + +/** + * lws_vhost_user() - get the user data associated with the vhost + * \param vhost: Websocket vhost + * + * This returns the optional user pointer that can be attached to + * a vhost when it was created. Lws never dereferences this pointer, it only + * sets it when the vhost is created, and returns it using this api. + */ +LWS_VISIBLE LWS_EXTERN void * +lws_vhost_user(struct lws_vhost *vhost); /** * lws_context_user() - get the user data associated with the context @@ -1905,8 +2668,8 @@ struct lws_protocol_vhost_options { * served from a filesystem, or it is a cgi etc. */ enum lws_mount_protocols { - LWSMPRO_HTTP = 0, /**< not supported yet */ - LWSMPRO_HTTPS = 1, /**< not supported yet */ + LWSMPRO_HTTP = 0, /**< http reverse proxy */ + LWSMPRO_HTTPS = 1, /**< https reverse proxy */ LWSMPRO_FILE = 2, /**< serve from filesystem directory */ LWSMPRO_CGI = 3, /**< pass to CGI to handle */ LWSMPRO_REDIR_HTTP = 4, /**< redirect to http:// url */ @@ -1952,14 +2715,27 @@ struct lws_http_mount { unsigned char origin_protocol; /**< one of enum lws_mount_protocols */ unsigned char mountpoint_len; /**< length of mountpoint string */ + + const char *basic_auth_login_file; + /**nxt; \ + } \ +} + +/** + * lws_start_foreach_llp(): linkedlist pointer iterator helper start + * + * \param type: type of iteration, eg, struct xyz ** + * \param it: iterator var name to create + * \param start: start of list + * + * This helper creates an iterator and starts a while (it) { + * loop. The iterator runs through the linked list starting at the + * address of start and ends when it gets a NULL. + * The while loop should be terminated using lws_start_foreach_llp(). + * + * This helper variant iterates using a pointer to the previous linked-list + * element. That allows you to easily delete list members by rewriting the + * previous pointer to the element's next pointer. + */ +#define lws_start_foreach_llp(type, it, start)\ +{ \ + type it = &(start); \ + while (*(it)) { + +/** + * lws_end_foreach_llp(): linkedlist pointer iterator helper end + * + * \param it: same iterator var name given when starting + * \param nxt: member name in the iterator pointing to next list element + * + * This helper is the partner for lws_start_foreach_llp() that ends the + * while loop. + */ + +#define lws_end_foreach_llp(it, nxt) \ + it = &(*(it))->nxt; \ + } \ +} + /** * lws_snprintf(): snprintf that truncates the returned length too * @@ -3616,7 +4729,7 @@ lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr, * reach the limit the reported length doesn't exceed the limit. */ LWS_VISIBLE LWS_EXTERN int -lws_snprintf(char *str, size_t size, const char *format, ...); +lws_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3); /** * lws_get_random(): fill a buffer with platform random data @@ -3632,7 +4745,7 @@ lws_snprintf(char *str, size_t size, const char *format, ...); LWS_VISIBLE LWS_EXTERN int lws_get_random(struct lws_context *context, void *buf, int len); /** - * lws_daemonize(): fill a buffer with platform random data + * lws_daemonize(): make current process run in the background * * \param _lock_path: the filepath to write the lock file * @@ -3657,6 +4770,19 @@ lws_get_library_version(void); LWS_VISIBLE LWS_EXTERN void * lws_wsi_user(struct lws *wsi); +/** + * lws_wsi_set_user() - set the user data associated with the client connection + * \param wsi: lws connection + * \param user: user data + * + * By default lws allocates this and it's not legal to externally set it + * yourself. However client connections may have it set externally when the + * connection is created... if so, this api can be used to modify it at + * runtime additionally. + */ +LWS_VISIBLE LWS_EXTERN void +lws_set_wsi_user(struct lws *wsi, void *user); + /** * lws_parse_uri: cut up prot:/ads:port/path into pieces * Notice it does so by dropping '\0' into input string @@ -3679,7 +4805,7 @@ LWS_VISIBLE LWS_EXTERN unsigned long lws_now_secs(void); /** - * lws_get_context - Allow geting lws_context from a Websocket connection + * lws_get_context - Allow getting lws_context from a Websocket connection * instance * * With this function, users can access context in the callback function. @@ -3721,6 +4847,45 @@ lws_get_parent(const struct lws *wsi); LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT lws_get_child(const struct lws *wsi); +/** + * lws_parent_carries_io() - mark wsi as needing to send messages via parent + * + * \param wsi: child lws connection + */ + +LWS_VISIBLE LWS_EXTERN void +lws_set_parent_carries_io(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void * +lws_get_opaque_parent_data(const struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void +lws_set_opaque_parent_data(struct lws *wsi, void *data); + +LWS_VISIBLE LWS_EXTERN int +lws_get_child_pending_on_writable(const struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void +lws_clear_child_pending_on_writable(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN int +lws_get_close_length(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN unsigned char * +lws_get_close_payload(struct lws *wsi); + +/** + * lws_get_network_wsi() - Returns wsi that has the tcp connection for this wsi + * + * \param wsi: wsi you have + * + * Returns wsi that has the tcp connection (which may be the incoming wsi) + * + * HTTP/1 connections will always return the incoming wsi + * HTTP/2 connections may return a different wsi that has the tcp connection + */ +LWS_VISIBLE LWS_EXTERN +struct lws *lws_get_network_wsi(struct lws *wsi); /* * \deprecated DEPRECATED Note: this is not normally needed as a user api. @@ -3728,7 +4893,7 @@ lws_get_child(const struct lws *wsi); * useful when integrating with other app poll loop service code. */ LWS_VISIBLE LWS_EXTERN int -lws_read(struct lws *wsi, unsigned char *buf, size_t len); +lws_read(struct lws *wsi, unsigned char *buf, lws_filepos_t len); /** * lws_set_allocator() - custom allocator support @@ -3738,7 +4903,7 @@ lws_read(struct lws *wsi, unsigned char *buf, size_t len); * Allows you to replace the allocator (and deallocator) used by lws */ LWS_VISIBLE LWS_EXTERN void -lws_set_allocator(void *(*realloc)(void *ptr, size_t size)); +lws_set_allocator(void *(*realloc)(void *ptr, size_t size, const char *reason)); ///@} /** \defgroup wsstatus Websocket status APIs @@ -3758,11 +4923,20 @@ lws_send_pipe_choked(struct lws *wsi); /** * lws_is_final_fragment() - tests if last part of ws message + * * \param wsi: lws connection */ LWS_VISIBLE LWS_EXTERN int lws_is_final_fragment(struct lws *wsi); +/** + * lws_is_first_fragment() - tests if first part of ws message + * + * \param wsi: lws connection + */ +LWS_VISIBLE LWS_EXTERN int +lws_is_first_fragment(struct lws *wsi); + /** * lws_get_reserved_bits() - access reserved bits of ws frame * \param wsi: lws connection @@ -3817,8 +4991,242 @@ lws_is_ssl(struct lws *wsi); */ LWS_VISIBLE LWS_EXTERN int lws_is_cgi(struct lws *wsi); + +#ifdef LWS_OPENSSL_SUPPORT +/** + * lws_get_ssl() - Return wsi's SSL context structure + * \param wsi: websocket connection + * + * Returns pointer to the SSL library's context structure + */ +LWS_VISIBLE LWS_EXTERN SSL* +lws_get_ssl(struct lws *wsi); +#endif ///@} +/** \defgroup lws_ring LWS Ringbuffer APIs + * ##lws_ring: generic ringbuffer struct + * + * Provides an abstract ringbuffer api supporting one head and one or an + * unlimited number of tails. + * + * All of the members are opaque and manipulated by lws_ring_...() apis. + * + * The lws_ring and its buffer is allocated at runtime on the heap, using + * + * - lws_ring_create() + * - lws_ring_destroy() + * + * It may contain any type, the size of the "element" stored in the ring + * buffer and the number of elements is given at creation time. + * + * When you create the ringbuffer, you can optionally provide an element + * destroy callback that frees any allocations inside the element. This is then + * automatically called for elements with no tail behind them, ie, elements + * which don't have any pending consumer are auto-freed. + * + * Whole elements may be inserted into the ringbuffer and removed from it, using + * + * - lws_ring_insert() + * - lws_ring_consume() + * + * You can find out how many whole elements are free or waiting using + * + * - lws_ring_get_count_free_elements() + * - lws_ring_get_count_waiting_elements() + * + * In addition there are special purpose optional byte-centric apis + * + * - lws_ring_next_linear_insert_range() + * - lws_ring_bump_head() + * + * which let you, eg, read() directly into the ringbuffer without needing + * an intermediate bounce buffer. + * + * The accessors understand that the ring wraps, and optimizes insertion and + * consumption into one or two memcpy()s depending on if the head or tail + * wraps. + * + * lws_ring only supports a single head, but optionally multiple tails with + * an API to inform it when the "oldest" tail has moved on. You can give + * NULL where-ever an api asks for a tail pointer, and it will use an internal + * single tail pointer for convenience. + * + * The "oldest tail", which is the only tail if you give it NULL instead of + * some other tail, is used to track which elements in the ringbuffer are + * still unread by anyone. + * + * - lws_ring_update_oldest_tail() + */ +///@{ +struct lws_ring; + +/** + * lws_ring_create(): create a new ringbuffer + * + * \param element_len: the size in bytes of one element in the ringbuffer + * \param count: the number of elements the ringbuffer can contain + * \param destroy_element: NULL, or callback to be called for each element + * that is removed from the ringbuffer due to the + * oldest tail moving beyond it + * + * Creates the ringbuffer and allocates the storage. Returns the new + * lws_ring *, or NULL if the allocation failed. + * + * If non-NULL, destroy_element will get called back for every element that is + * retired from the ringbuffer after the oldest tail has gone past it, and for + * any element still left in the ringbuffer when it is destroyed. It replaces + * all other element destruction code in your user code. + */ +LWS_VISIBLE LWS_EXTERN struct lws_ring * +lws_ring_create(size_t element_len, size_t count, + void (*destroy_element)(void *element)); + +/** + * lws_ring_destroy(): destroy a previously created ringbuffer + * + * \param ring: the struct lws_ring to destroy + * + * Destroys the ringbuffer allocation and the struct lws_ring itself. + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_destroy(struct lws_ring *ring); + +/** + * lws_ring_get_count_free_elements(): return how many elements can fit + * in the free space + * + * \param ring: the struct lws_ring to report on + * + * Returns how much room is left in the ringbuffer for whole element insertion. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_get_count_free_elements(struct lws_ring *ring); + +/** + * lws_ring_get_count_waiting_elements(): return how many elements can be consumed + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * Returns how many elements are waiting to be consumed from the perspective + * of the tail pointer given. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_get_count_waiting_elements(struct lws_ring *ring, uint32_t *tail); + +/** + * lws_ring_insert(): attempt to insert up to max_count elements from src + * + * \param ring: the struct lws_ring to report on + * \param src: the array of elements to be inserted + * \param max_count: the number of available elements at src + * + * Attempts to insert as many of the elements at src as possible, up to the + * maximum max_count. Returns the number of elements actually inserted. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_insert(struct lws_ring *ring, const void *src, size_t max_count); + +/** + * lws_ring_consume(): attempt to copy out and remove up to max_count elements + * to src + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * \param dest: the array of elements to be inserted. or NULL for no copy + * \param max_count: the number of available elements at src + * + * Attempts to copy out as many waiting elements as possible into dest, from + * the perspective of the given tail, up to max_count. If dest is NULL, the + * copying out is not done but the elements are logically consumed as usual. + * NULL dest is useful in combination with lws_ring_get_element(), where you + * can use the element direct from the ringbuffer and then call this with NULL + * dest to logically consume it. + * + * Increments the tail position according to how many elements could be + * consumed. + * + * Returns the number of elements consumed. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_consume(struct lws_ring *ring, uint32_t *tail, void *dest, + size_t max_count); + +/** + * lws_ring_get_element(): get a pointer to the next waiting element for tail + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * Points to the next element that tail would consume, directly in the + * ringbuffer. This lets you write() or otherwise use the element without + * having to copy it out somewhere first. + * + * After calling this, you must call lws_ring_consume(ring, &tail, NULL, 1) + * which will logically consume the element you used up and increment your + * tail (tail may also be NULL there if you use a single tail). + * + * Returns NULL if no waiting element, or a const void * pointing to it. + */ +LWS_VISIBLE LWS_EXTERN const void * +lws_ring_get_element(struct lws_ring *ring, uint32_t *tail); + +/** + * lws_ring_update_oldest_tail(): free up elements older than tail for reuse + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * If you are using multiple tails, you must use this API to inform the + * lws_ring when none of the tails still need elements in the fifo any more, + * by updating it when the "oldest" tail has moved on. + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_update_oldest_tail(struct lws_ring *ring, uint32_t tail); + +/** + * lws_ring_get_oldest_tail(): get current oldest available data index + * + * \param ring: the struct lws_ring to report on + * + * If you are initializing a new ringbuffer consumer, you can set its tail to + * this to start it from the oldest ringbuffer entry still available. + */ +LWS_VISIBLE LWS_EXTERN uint32_t +lws_ring_get_oldest_tail(struct lws_ring *ring); + +/** + * lws_ring_next_linear_insert_range(): used to write directly into the ring + * + * \param ring: the struct lws_ring to report on + * \param start: pointer to a void * set to the start of the next ringbuffer area + * \param bytes: pointer to a size_t set to the max length you may use from *start + * + * This provides a low-level, bytewise access directly into the ringbuffer + * allowing direct insertion of data without having to use a bounce buffer. + * + * The api reports the position and length of the next linear range that can + * be written in the ringbuffer, ie, up to the point it would wrap, and sets + * *start and *bytes accordingly. You can then, eg, directly read() into + * *start for up to *bytes, and use lws_ring_bump_head() to update the lws_ring + * with what you have done. + * + * Returns nonzero if no insertion is currently possible. + */ +LWS_VISIBLE LWS_EXTERN int +lws_ring_next_linear_insert_range(struct lws_ring *ring, void **start, + size_t *bytes); + +/** + * lws_ring_bump_head(): used to write directly into the ring + * + * \param ring: the struct lws_ring to operate on + * \param bytes: the number of bytes you inserted at the current head + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_bump_head(struct lws_ring *ring, size_t bytes); +///@} /** \defgroup sha SHA and B64 helpers * ##SHA and B64 helpers @@ -3876,7 +5284,7 @@ lws_b64_decode_string(const char *in, char *out, int out_size); * However for most cases, binding the cgi to http in and out, the default * lws implementation already does the right thing. */ -#ifdef LWS_WITH_CGI + enum lws_enum_stdinouterr { LWS_STDIN = 0, LWS_STDOUT = 1, @@ -3889,6 +5297,8 @@ enum lws_cgi_hdr_state { LCHS_LF1, LCHS_CR2, LCHS_LF2, + LHCS_RESPONSE, + LHCS_DUMP_HEADERS, LHCS_PAYLOAD, LCHS_SINGLE_0A, }; @@ -3901,13 +5311,14 @@ struct lws_cgi_args { int len; /**< length */ }; - +#ifdef LWS_WITH_CGI /** * lws_cgi: spawn network-connected cgi process * * \param wsi: connection to own the process * \param exec_array: array of "exec-name" "arg1" ... "argn" NULL - * \param script_uri_path_len: how many chars on the left of the uri are the path to the cgi + * \param script_uri_path_len: how many chars on the left of the uri are the + * path to the cgi, or -1 to spawn without URL-related env vars * \param timeout_secs: seconds script should be allowed to run * \param mp_cgienv: pvo list with per-vhost cgi options to put in env */ @@ -3931,6 +5342,16 @@ lws_cgi_write_split_stdout_headers(struct lws *wsi); */ LWS_VISIBLE LWS_EXTERN int lws_cgi_kill(struct lws *wsi); + +/** + * lws_cgi_get_stdwsi: get wsi for stdin, stdout, or stderr + * + * \param wsi: parent wsi that has cgi + * \param ch: which of LWS_STDIN, LWS_STDOUT or LWS_STDERR + */ +LWS_VISIBLE LWS_EXTERN struct lws * +lws_cgi_get_stdwsi(struct lws *wsi, enum lws_enum_stdinouterr ch); + #endif ///@} @@ -3957,24 +5378,85 @@ lws_cgi_kill(struct lws *wsi); * These provide platform-agnostic ways to deal with filesystem access in the * library and in the user code. */ + +#if defined(LWS_WITH_ESP32) +/* sdk preprocessor defs? compiler issue? gets confused with member names */ +#define LWS_FOP_OPEN _open +#define LWS_FOP_CLOSE _close +#define LWS_FOP_SEEK_CUR _seek_cur +#define LWS_FOP_READ _read +#define LWS_FOP_WRITE _write +#else +#define LWS_FOP_OPEN open +#define LWS_FOP_CLOSE close +#define LWS_FOP_SEEK_CUR seek_cur +#define LWS_FOP_READ read +#define LWS_FOP_WRITE write +#endif + +#define LWS_FOP_FLAGS_MASK ((1 << 23) - 1) +#define LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP (1 << 24) +#define LWS_FOP_FLAG_COMPR_IS_GZIP (1 << 25) +#define LWS_FOP_FLAG_MOD_TIME_VALID (1 << 26) +#define LWS_FOP_FLAG_VIRTUAL (1 << 27) + +struct lws_plat_file_ops; + +struct lws_fop_fd { + lws_filefd_type fd; + /**< real file descriptor related to the file... */ + const struct lws_plat_file_ops *fops; + /**< fops that apply to this fop_fd */ + void *filesystem_priv; + /**< ignored by lws; owned by the fops handlers */ + lws_filepos_t pos; + /**< generic "position in file" */ + lws_filepos_t len; + /**< generic "length of file" */ + lws_fop_flags_t flags; + /**< copy of the returned flags */ + uint32_t mod_time; + /**< optional "modification time of file", only valid if .open() + * set the LWS_FOP_FLAG_MOD_TIME_VALID flag */ +}; +typedef struct lws_fop_fd *lws_fop_fd_t; + +struct lws_fops_index { + const char *sig; /* NULL or vfs signature, eg, ".zip/" */ + uint8_t len; /* length of above string */ +}; + struct lws_plat_file_ops { - lws_filefd_type (*open)(struct lws *wsi, const char *filename, - unsigned long *filelen, int flags); + lws_fop_fd_t (*LWS_FOP_OPEN)(const struct lws_plat_file_ops *fops, + const char *filename, const char *vpath, + lws_fop_flags_t *flags); /**< Open file (always binary access if plat supports it) - * filelen is filled on exit to be the length of the file - * flags should be set to O_RDONLY or O_RDWR */ - int (*close)(struct lws *wsi, lws_filefd_type fd); - /**< close file */ - unsigned long (*seek_cur)(struct lws *wsi, lws_filefd_type fd, - long offset_from_cur_pos); + * vpath may be NULL, or if the fops understands it, the point at which + * the filename's virtual part starts. + * *flags & LWS_FOP_FLAGS_MASK should be set to O_RDONLY or O_RDWR. + * If the file may be gzip-compressed, + * LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP is set. If it actually is + * gzip-compressed, then the open handler should OR + * LWS_FOP_FLAG_COMPR_IS_GZIP on to *flags before returning. + */ + int (*LWS_FOP_CLOSE)(lws_fop_fd_t *fop_fd); + /**< close file AND set the pointer to NULL */ + lws_fileofs_t (*LWS_FOP_SEEK_CUR)(lws_fop_fd_t fop_fd, + lws_fileofs_t offset_from_cur_pos); /**< seek from current position */ - int (*read)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len); + int (*LWS_FOP_READ)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); /**< Read from file, on exit *amount is set to amount actually read */ - int (*write)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len); + int (*LWS_FOP_WRITE)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); /**< Write to file, on exit *amount is set to amount actually written */ + struct lws_fops_index fi[3]; + /**< vfs path signatures implying use of this fops */ + + const struct lws_plat_file_ops *next; + /**< NULL or next fops in list */ + /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility */ }; @@ -3986,84 +5468,144 @@ struct lws_plat_file_ops { */ LWS_VISIBLE LWS_EXTERN struct lws_plat_file_ops * LWS_WARN_UNUSED_RESULT lws_get_fops(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN void +lws_set_fops(struct lws_context *context, const struct lws_plat_file_ops *fops); +/** + * lws_vfs_tell() - get current file position + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT +lws_vfs_tell(lws_fop_fd_t fop_fd); +/** + * lws_vfs_get_length() - get current file total length in bytes + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT +lws_vfs_get_length(lws_fop_fd_t fop_fd); +/** + * lws_vfs_get_mod_time() - get time file last modified + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN uint32_t LWS_WARN_UNUSED_RESULT +lws_vfs_get_mod_time(lws_fop_fd_t fop_fd); +/** + * lws_vfs_file_seek_set() - seek relative to start of file + * + * \param fop_fd: fop_fd we are seeking in + * \param offset: offset from start of file + */ +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +lws_vfs_file_seek_set(lws_fop_fd_t fop_fd, lws_fileofs_t offset); +/** + * lws_vfs_file_seek_end() - seek relative to end of file + * + * \param fop_fd: fop_fd we are seeking in + * \param offset: offset from start of file + */ +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +lws_vfs_file_seek_end(lws_fop_fd_t fop_fd, lws_fileofs_t offset); + +extern struct lws_plat_file_ops fops_zip; /** - * lws_plat_file_open() - file open operations + * lws_plat_file_open() - open vfs filepath * - * \param wsi: connection doing the opening - * \param filename: filename to open - * \param filelen: length of file (filled in by call) - * \param flags: open flags + * \param fops: file ops struct that applies to this descriptor + * \param vfs_path: filename to open + * \param flags: pointer to open flags + * + * The vfs_path is scanned for known fops signatures, and the open directed + * to any matching fops open. + * + * User code should use this api to perform vfs opens. + * + * returns semi-opaque handle */ -static LWS_INLINE lws_filefd_type LWS_WARN_UNUSED_RESULT -lws_plat_file_open(struct lws *wsi, const char *filename, - unsigned long *filelen, int flags) -{ - return lws_get_fops(lws_get_context(wsi))->open(wsi, filename, - filelen, flags); -} +LWS_VISIBLE LWS_EXTERN lws_fop_fd_t LWS_WARN_UNUSED_RESULT +lws_vfs_file_open(const struct lws_plat_file_ops *fops, const char *vfs_path, + lws_fop_flags_t *flags); /** * lws_plat_file_close() - close file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle to close */ static LWS_INLINE int -lws_plat_file_close(struct lws *wsi, lws_filefd_type fd) +lws_vfs_file_close(lws_fop_fd_t *fop_fd) { - return lws_get_fops(lws_get_context(wsi))->close(wsi, fd); + return (*fop_fd)->fops->LWS_FOP_CLOSE(fop_fd); } /** * lws_plat_file_seek_cur() - close file * - * \param wsi: connection opened by - * \param fd: file descriptor + * + * \param fop_fd: file handle * \param offset: position to seek to */ -static LWS_INLINE unsigned long -lws_plat_file_seek_cur(struct lws *wsi, lws_filefd_type fd, long offset) +static LWS_INLINE lws_fileofs_t +lws_vfs_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset) { - return lws_get_fops(lws_get_context(wsi))->seek_cur(wsi, fd, offset); + return fop_fd->fops->LWS_FOP_SEEK_CUR(fop_fd, offset); } /** * lws_plat_file_read() - read from file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle * \param amount: how much to read (rewritten by call) * \param buf: buffer to write to * \param len: max length */ static LWS_INLINE int LWS_WARN_UNUSED_RESULT -lws_plat_file_read(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len) +lws_vfs_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len) { - return lws_get_fops(lws_get_context(wsi))->read(wsi, fd, amount, buf, - len); + return fop_fd->fops->LWS_FOP_READ(fop_fd, amount, buf, len); } /** * lws_plat_file_write() - write from file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle * \param amount: how much to write (rewritten by call) * \param buf: buffer to read from * \param len: max length */ static LWS_INLINE int LWS_WARN_UNUSED_RESULT -lws_plat_file_write(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len) +lws_vfs_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len) { - return lws_get_fops(lws_get_context(wsi))->write(wsi, fd, amount, buf, - len); + return fop_fd->fops->LWS_FOP_WRITE(fop_fd, amount, buf, len); } + +/* these are the platform file operations implementations... they can + * be called directly and used in fops arrays + */ + +LWS_VISIBLE LWS_EXTERN lws_fop_fd_t +_lws_plat_file_open(const struct lws_plat_file_ops *fops, const char *filename, + const char *vpath, lws_fop_flags_t *flags); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_close(lws_fop_fd_t *fop_fd); +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +_lws_plat_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); + +LWS_VISIBLE LWS_EXTERN int +lws_alloc_vfs_file(struct lws_context *context, const char *filename, + uint8_t **buf, lws_filepos_t *amount); //@} -/** \defgroup smtp - * \ingroup lwsapi +/** \defgroup smtp SMTP related functions * ##SMTP related functions + * \ingroup lwsapi * * These apis let you communicate with a local SMTP server to send email from * lws. It handles all the SMTP sequencing and protocol actions. @@ -4185,6 +5727,59 @@ lws_email_destroy(struct lws_email *email); #endif //@} +/* + * Stats are all uint64_t numbers that start at 0. + * Index names here have the convention + * + * _C_ counter + * _B_ byte count + * _MS_ millisecond count + */ + +enum { + LWSSTATS_C_CONNECTIONS, /**< count incoming connections */ + LWSSTATS_C_API_CLOSE, /**< count calls to close api */ + LWSSTATS_C_API_READ, /**< count calls to read from socket api */ + LWSSTATS_C_API_LWS_WRITE, /**< count calls to lws_write API */ + LWSSTATS_C_API_WRITE, /**< count calls to write API */ + LWSSTATS_C_WRITE_PARTIALS, /**< count of partial writes */ + LWSSTATS_C_WRITEABLE_CB_REQ, /**< count of writable callback requests */ + LWSSTATS_C_WRITEABLE_CB_EFF_REQ, /**< count of effective writable callback requests */ + LWSSTATS_C_WRITEABLE_CB, /**< count of writable callbacks */ + LWSSTATS_C_SSL_CONNECTIONS_FAILED, /**< count of failed SSL connections */ + LWSSTATS_C_SSL_CONNECTIONS_ACCEPTED, /**< count of accepted SSL connections */ + LWSSTATS_C_SSL_CONNECTIONS_ACCEPT_SPIN, /**< count of SSL_accept() attempts */ + LWSSTATS_C_SSL_CONNS_HAD_RX, /**< count of accepted SSL conns that have had some RX */ + LWSSTATS_C_TIMEOUTS, /**< count of timed-out connections */ + LWSSTATS_C_SERVICE_ENTRY, /**< count of entries to lws service loop */ + LWSSTATS_B_READ, /**< aggregate bytes read */ + LWSSTATS_B_WRITE, /**< aggregate bytes written */ + LWSSTATS_B_PARTIALS_ACCEPTED_PARTS, /**< aggreate of size of accepted write data from new partials */ + LWSSTATS_MS_SSL_CONNECTIONS_ACCEPTED_DELAY, /**< aggregate delay in accepting connection */ + LWSSTATS_MS_WRITABLE_DELAY, /**< aggregate delay between asking for writable and getting cb */ + LWSSTATS_MS_WORST_WRITABLE_DELAY, /**< single worst delay between asking for writable and getting cb */ + LWSSTATS_MS_SSL_RX_DELAY, /**< aggregate delay between ssl accept complete and first RX */ + LWSSTATS_C_PEER_LIMIT_AH_DENIED, /**< number of times we would have given an ah but for the peer limit */ + LWSSTATS_C_PEER_LIMIT_WSI_DENIED, /**< number of times we would have given a wsi but for the peer limit */ + + /* Add new things just above here ---^ + * This is part of the ABI, don't needlessly break compatibility */ + LWSSTATS_SIZE +}; + +#if defined(LWS_WITH_STATS) + +LWS_VISIBLE LWS_EXTERN uint64_t +lws_stats_get(struct lws_context *context, int index); +LWS_VISIBLE LWS_EXTERN void +lws_stats_log_dump(struct lws_context *context); +#else +static LWS_INLINE uint64_t +lws_stats_get(struct lws_context *context, int index) { return 0; } +static LWS_INLINE void +lws_stats_log_dump(struct lws_context *context) { } +#endif + #ifdef __cplusplus } #endif diff --git a/win32/include/websockets/lws_config.h b/win32/include/websockets/lws_config.h index 14cb20dd..4e17d970 100644 --- a/win32/include/websockets/lws_config.h +++ b/win32/include/websockets/lws_config.h @@ -6,7 +6,7 @@ #endif #endif -#define LWS_INSTALL_DATADIR "D:/build-websockets/share" +#define LWS_INSTALL_DATADIR "C:/Program Files (x86)/libwebsockets/share" /* Define to 1 to use wolfSSL/CyaSSL as a replacement for OpenSSL. * LWS_OPENSSL_SUPPORT needs to be set also for this to work. */ @@ -15,25 +15,27 @@ /* Also define to 1 (in addition to USE_WOLFSSL) when using the (older) CyaSSL library */ /* #undef USE_OLD_CYASSL */ +/* #undef LWS_WITH_BORINGSSL */ -/* #undef LWS_USE_MBEDTLS */ -/* #undef LWS_USE_POLARSSL */ +/* #undef LWS_WITH_MBEDTLS */ +/* #undef LWS_WITH_POLARSSL */ /* #undef LWS_WITH_ESP8266 */ +/* #undef LWS_WITH_ESP32 */ /* #undef LWS_WITH_PLUGINS */ /* #undef LWS_WITH_NO_LOGS */ /* The Libwebsocket version */ -#define LWS_LIBRARY_VERSION "2.1.0" +#define LWS_LIBRARY_VERSION "2.4.2" #define LWS_LIBRARY_VERSION_MAJOR 2 -#define LWS_LIBRARY_VERSION_MINOR 1 -#define LWS_LIBRARY_VERSION_PATCH 0 +#define LWS_LIBRARY_VERSION_MINOR 4 +#define LWS_LIBRARY_VERSION_PATCH 2 /* LWS_LIBRARY_VERSION_NUMBER looks like 1005001 for e.g. version 1.5.1 */ #define LWS_LIBRARY_VERSION_NUMBER (LWS_LIBRARY_VERSION_MAJOR*1000000)+(LWS_LIBRARY_VERSION_MINOR*1000)+LWS_LIBRARY_VERSION_PATCH /* The current git commit hash that we're building from */ -#define LWS_BUILD_HASH "desktop-8c9aqu5\\cocosengine@DESKTOP-8C9AQU5-v3.4-141-gcddc296" +#define LWS_BUILD_HASH "desktop-s54jiqa\\serveryjx@DESKTOP-S54JIQA-v2.0.0-640-g8964ce9d" /* Build with OpenSSL support */ #define LWS_OPENSSL_SUPPORT @@ -48,19 +50,22 @@ /* #undef LWS_NO_EXTENSIONS */ /* Enable libev io loop */ -/* #undef LWS_USE_LIBEV */ +/* #undef LWS_WITH_LIBEV */ /* Enable libuv io loop */ -/* #undef LWS_USE_LIBUV */ +#define LWS_WITH_LIBUV + +/* Enable libevent io loop */ +/* #undef LWS_WITH_LIBEVENT */ /* Build with support for ipv6 */ -/* #undef LWS_USE_IPV6 */ +/* #undef LWS_WITH_IPV6 */ /* Build with support for UNIX domain socket */ -/* #undef LWS_USE_UNIX_SOCK */ +/* #undef LWS_WITH_UNIX_SOCK */ /* Build with support for HTTP2 */ -/* #undef LWS_USE_HTTP2 */ +/* #undef LWS_WITH_HTTP2 */ /* Turn on latency measuring code */ /* #undef LWS_LATENCY */ @@ -69,7 +74,7 @@ #define LWS_NO_DAEMONIZE /* Build without server support */ -#define LWS_NO_SERVER +/* #undef LWS_NO_SERVER */ /* Build without client support */ /* #undef LWS_NO_CLIENT */ @@ -86,7 +91,8 @@ /* SSL server using ECDH certificate */ /* #undef LWS_SSL_SERVER_WITH_ECDH_CERT */ /* #undef LWS_HAVE_SSL_CTX_set1_param */ -/* #undef LWS_HAVE_X509_VERIFY_PARAM_set1_host */ +#define LWS_HAVE_X509_VERIFY_PARAM_set1_host +#define LWS_HAVE_RSA_SET0_KEY /* #undef LWS_HAVE_UV_VERSION_H */ @@ -99,11 +105,15 @@ /* HTTP Proxy support */ /* #undef LWS_WITH_HTTP_PROXY */ +/* HTTP Ranges support */ +#define LWS_WITH_RANGES + /* Http access log support */ /* #undef LWS_WITH_ACCESS_LOG */ /* #undef LWS_WITH_SERVER_STATUS */ /* #undef LWS_WITH_STATEFUL_URLDECODE */ +/* #undef LWS_WITH_PEER_LIMITS */ /* Maximum supported service threads */ #define LWS_MAX_SMP 1 @@ -114,4 +124,33 @@ /* SMTP */ /* #undef LWS_WITH_SMTP */ +/* OPTEE */ +/* #undef LWS_PLAT_OPTEE */ + +/* ZIP FOPS */ +#define LWS_WITH_ZIP_FOPS +#define LWS_HAVE_STDINT_H + +/* #undef LWS_AVOID_SIGPIPE_IGN */ + +#define LWS_FALLBACK_GETHOSTBYNAME + +/* #undef LWS_WITH_STATS */ +/* #undef LWS_WITH_SOCKS5 */ + +/* #undef LWS_HAVE_SYS_CAPABILITY_H */ +/* #undef LWS_HAVE_LIBCAP */ + +#define LWS_HAVE_ATOLL +#define LWS_HAVE__ATOI64 +#define LWS_HAVE__STAT32I64 + +/* OpenSSL various APIs */ + +#define LWS_HAVE_TLS_CLIENT_METHOD +#define LWS_HAVE_TLSV1_2_CLIENT_METHOD +#define LWS_HAVE_SSL_SET_INFO_CALLBACK + +#define LWS_HAS_INTPTR_T + diff --git a/win32/libs/websockets.dll b/win32/libs/websockets.dll index 457157da28c5b0dbd48bcc95541858db76f6cd7f..18e35d37690547907219f058e708e680d874b1f6 100644 GIT binary patch literal 175616 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

wxJt?}ZIf()R{{pX$kc#@2x$ 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 literal 119296 zcmeFaeSB2K^*??$yGb@-$z3F1P?TsRV1pV7Dq*7rl1-u}vLUcb%R{tcx^8WYu$PCA zBy7CdWN*erY<+5Lt$u2)ZEZ`d2BJ3X63hmC3TP{>+D4`AO+zaxLXedEeV>`Tn*{CW zu&yL{w+6u>s#Lr=6~(h{B_E=@^AZAe#PSY{BM4H z&8?SCoS0o;g1&F**WCSAIHo3l?|l8h)Ps1w@&1>l9>DdTufNWp-}(BHsc-Y=fAZ&B ze{o>y8+e|$KQZ<9xb|N$aq2H{z4aGIroPOt{bu<$`SsRc9OTy}x835Wx{@vPxFxB^ zk}e(U|Nipiy8$Wff(aIfBwdLHJ}llocn$8IxcA^ncXXd7Ng4EnzvNYN;w2Fie^#kX z6r#LTfM3Ps(N2rBe~KjC{<1~dM9D`j(f|id4`ct*BuDnx=g+@C^sHrkpAnuw?$+DCjf|r00EX_6dOwqI5#Ij)fBzpSu#6p1 zkJ#(IOtBXq^c5T0vf+-L)_rp85ddXwhvv2yzg2v&bzgAl+*q-(y)~xHlsivWh6W2m zCl_x#tE2sjB^GCEESOzd5VYBPhSKK72!Qg3uo0YCj)bYF`yv%nMuu|KPi?aL6u|c4 zQCft@El)D{aJ99k#O>Uogszd44Ar<=vE0DiBkHNNEoXQ1b-WRKH!b!LTlN7~YmZD? zsMXqsthnu1c3M4UMUMR)dt-xXu>o6lA9LFycGgFE)Kj)Cj@Ww{*~<)3h*7hyx4w?% zp>g4h4Z{GGp@|Kv)jned`|GM6R_ll^vbfyNrlE$_U^KRezt-ayTcnpq|2VxIY?-5Y zpH@3u&sI6TzVJc0^;II5Vo$h7Xb=?}#j)rQa3h5e1}AjnR8>Z5(jC`>2E$fajp2Q7 zMY=;O!{e5Bm^-(`Jt9Ycgx7Lst%JqYcdc7J;$kHvM{gn060 zxkWWB&F8Y(V@SE(A4ln;f8qRbp{YjZt#xKby_z0(yW54&oo5+}*YjBUBxpAh(y| zhBY~jg7B`%l2d(REuK#o$9j2=wBE|uzDBKbx{5x}^*@6q`eXPPu;>tnlDgO7i@F^i zuio9npTaRYdRvn8k;C-}stgFKbOH%=uX7Z}_Qta$=Qr_d#_uis9zxUCGxQi zYOKs-OzFcNs~rJe#jmW^m01`w7)MFK<`wXxZYO{_I6U4C$CzA5Z#iN^2aKYCR&(K`LbXQ*yF@}6Jv5b?7z zl{nMbK}>EaP7f;=%njI;u8l?O5+q|2^TCZf%5su3Xm<0qbKOKh)kqY>rM!UE8xR0p>v}DH` zpw&FT*x>Cqlw20d6OBZB6$h)BZ>vv^<7uKyrJBfd@p4;UYgkP%L z(f{e2kjRt7bG_FGVbT5zL=Wbk5IZ{q?vAOtO>XTb!KtUqtxw=( zwcOfcG3jLMWikyCN5hKM#O)nzgna3Ra_cwgS|GRHiYxS+I<}2Q z4X8SOvbC@}9HdXuER9wu`FD4;KE1GMA))j+P<11v0$)FMdNvJ28XZ z^M;i)i>UjU&l8ZnTGKJDX;^2e^vF-pWX{#Hdl*9s-8vP5_n24D{4#I2%RMZIL1qa( zxHHsEL`+xKceMQtuh8yu!fyp{#q})K)63tb#fP1d$~BSIx5}OTMZo5XR<6Ok+<2LZ z)TVg>3$PRv&eH!3?i;0WvKO3Q{gW?Ig3Tm7+eTak0$Cq7b3q~J9s|5;qU!AUCT zLMa*{W>kiTz^HVmStw_&|51z;|18x@dP^+9rphfwg(TJnMTdA=9a|+K#;rXKQd@4Mj3Ip*CbM*VaLSUc*a-=IsppY1u zLi6Ber17RuGX1qYLHME?qqpr{dLdLL+)%?eI0%?{>u zY@=ZlI%!jESVv@qPFj`Az@HdJe0;`&6KRlm0&~5_LFjE~DqsQIP=!f6i;^=chXUzC z`K7aiw$clgOHOc&lE|oBFeZmZ3{)}Zp~!JHE|)R{>|Q=LIY4ucp(zu zREddys)y&YGSW(l)o$uDN%=DP!^c~unZ2l-?Y{|{C5CeUC!9Q7gaPB?82$lX%aL6u ziHc9O7;Iufgnn;C z9Kcdv#ewCI>kswF82uZ{FJ|oN=#e~9Ie@3NH$y7k*PAKT)zv}Uk$tg7t@eoTV|gpo zbf<@|hqT(46YhQ@aKhb3G%}{>(2+s-Tyx1rim!g)T%q@dk1Lb89>n!w{W)UA7< z>U#o`&zLg6%PX-)w(JON(%EZ`=>J*UA@wd~3vH^NhIwLP-g8tL28iZ9+NdGpb<>e8 z_$QPVpXJ>l(vDO7r^fOq5r4_@G{Knp)gyVMiwk0Pv=g+=LtBp|+&UTMXng_- zgVM&78VoQD+DnWnZ=(qqaWBxt?<5{g)8~9lJnC#%El9WZ96?b-nGR@JS>}2@z}MJ8 z!&0AtMF?+e9@@EDUt(r9Suu(4IQ&pJTB`#~2X%j4v^I%iov}kqU;@8QGu0;Dxi#OH zr0d6z5}T$F``a`VvCnNq<3}c9Sh_*^U#;&nv%icr$~cWUNl(WpJ%M6J=__o&)PlVlmcx zqdJ_?d~HWs>4m|Gr7MG3rTJUZBbJ3jGZU7TN>P#AnFeEy+-b{;EVRkpY3hJ19@5o# zhWfAcMS!SutzN+rutlK)-dIsT)@M=oFo~wcPh%`$?F6knx$+kH0R_7@7Z$Z(LFk$V ziX+r)xlG9jHK$z`%%~(o+aRUc!S8CXbtr@NvbkCsb341<2A9|Sv?6vE+r!sa9eE3; zDd)7l1wCZBWx-c4k*cvYHJ;Y`mU6f_Hk5vDOzpFd5_uA!3`@k3&D~} zGRG?CX9P2~%aapUvZKr^^+&C}I9AfK2AIhAk6|^Q1L^2b>Mt=>G^)E6kW39;9_l7z zTDmgZ?Ch^W(HD8p-}257W&57hJ*-uhsRt#^TftW~fcIJZfmpQj{v5R*EaK1R@;&@G zpXAUZGfexz*}?{LBAyRylq_}MO~T-T*6>ApZ_0r1)an%}^MM#2cGf}ThsEQ1x;kJf zaXW(3K?1h}?N{IZ3tp*xY4L&d332T%$~a~K61^brCz8SD$7KD%gb3bp_i6mq=s*~y zFA*=)y#;X4CH|MeAJ8RQ|H*ZU4!0xHMoEk-dQavD9qPbe)V?x}KYR6+XH&y%sR^0) zhkx9B0aHkm152jK4G@l|+;7hn;*R{DwgYhzn>&PM%{Y$f$yv&T#)LF$7R2|BLsl#^_{{eXxRNDSW8%ZjnCXw? z3ypU_QJ2i-t*8@&9Mp?&droQ~kMe6BS4iO9!lWHpHo|55Iw&Mu{(&_c*?x6U3YJ|L zoN=9kVX0jxj7zlG-?S{-JyIFTyrHW2;Lueb{hLSwL(AQLt+7odm0bOey$iR=$k4RP z(uAjixLurxBsvD?AJywk|20O5p!tUpsjSUk zAyVZl8NE_r*-&NZWYL!N(8-eK+|bE|bobR}B;ULR|Nd)hI%qibrC#YGxidRH2o=LI zEmCcfyR+dT5)YUvt?IwhIH7;Enp1kkXDKZRNcfTdO{+H&zMTIt{(V>i@e!`MhiSOO zwrEUwgGM|wqeBqdn52r212!iJd-e7AT%QKzO7(R1mVb(+2Q(J_&p+e_!Zk}gdc6$( z97cE48S|bUCbx&=cftU;#HY_k(rqz%C>&+QyR2MpV}>9=P>ruthk zm@ssqP3kj8Xh6*|sXYqmUpW@Z1b zM87qaH`0Q<&|PHrDRj#v5cb2uf5*FGlLC?EiYpbc^aJG__;6|dg8$KtMJ)WS!N*&k zAeF^1J}}fKhZMXK=)jox#w5x~tCy=ASdXwUd+Pjag*-lfn7G7g%42Z8f2l}#hbPz@ zRwTRIG+50HI$9s0dgRuZv54fhZfo$o>fmHmzc84&izb_)$-7GE;@Cy;A@KH2z=en- z?9pI2TC{nMwKo0Ae^dQQlja%nxsJPZAXI6^XbMsATo>5|*J&9^IJE$9TdWsz1TW4UhlSW#gXQ8~OGsEq=HOCQe{R~E_PV%(_B zbI=hN6ZU6#tpk^FtkRQM!Jwh%HSlgAd(CI&uZ|+gxd*?=mrKs~aXo?G8T>_ZQ0?Y+ z?Vvqr+yl=!!Ed>Rr!bS~mF4K#K1>)5@vyP1cLB4j!|HM4+g04hSMNMhSc0abmQ|!K2R1RId7SWM^;TP?9*0_z^rn- ztrU3LqPACIbW`9_IEg3^2r07Oi76QmC989{&fJpK((GJvVTEt~xn#t1>*0f2&fc1N zHND!9qg6UJZ!Q-9JgFo@NiXr*g133K49#oPb2pNd?l)(bWJRd7SGfl3?IZobl$TS-i@ zRXW?lUQ*-PYQI!c>5%U^j&fVFN^Z2v>JV;O8_lHJYP;q|P|`7sm)1A%8WBrP!zH^Y zP2Tov%C}=Sft%M&{?ToCkz7aLk(|r?W9KsEtE{<wW zT2IS9n(f5oW=>-;+J6e$nO85!B9zD~3AsMH8rLT;JAwr{R^!y5PAu0X;1MR7cixcE zQEt01{$!Ri>3E!$w!*P6=z^p0cswnbos`wazp+*$XNo#}f!uCKGJ=R!mPizzMHh0I_G`O#d+{h4Oyhk5LVoeiJSJ`PR}+fay^vL~3&xRkNRd)<>Q zntOn?k?<+xFE#h!p{+#q@{A|5#N-T4DL%-(@cF_EU&y`i$jNdTzfJFjpWYfDDi>H^ z5UhmhFoSK+2W42((Iv*lrCxo{9mGrE?ZfKuX}NVBiRod4Fnx=72;AO?E2~-xd`u`x zwJ>UMN1oyeNDxCdDUjtAwhetDXHgnlqe?;GQZC+Sa!*SEO*+u6xl?%n>e2+SUiw|m z(MXAW0_Nu8n!A$^qkpGBTN?1{_CImKMtNR_Vv%qUASXNzhv@=C$&Qk1f?xLf=Rpkm zt4S8x^iSRbeRF)?v0)1OO}n$;lYI9h z_`lWR>OM+OZ73s^aDQtsmpwqZh7WGaX619_-4*?|p|s*y=%gGh@EGgO;b>e5`=&?k zj(fcR?WE<~^b?1Onet8XEQaqaSi(er%oP9I$TlvB#F7dKAzrj|-W947c##|y{9@`0 zs|J1ASbYcKH_+va4VnN)fPE5cIr1-Rkq8c|XOGb21(m`K4l0bZik>-aRcRf?_Oln%I)&*>upd6PV|4NZ$hoJQM=wI?~ZHbHX)|&YidCK2D5-v2gDy-p z2n^{^Uqj3-W*9zX%I&UlTd)>mi>(^**6ZiAayba|{UP>)*N(fMf&j?P%@MfTeC6ZN8Lh2xv3T zUweUB)F}6Oefn=&0H}VYi5h1`cEcR6PqQ6(j!*|rvTekmjoQ*a8@pkpVA4JtvZ({J8@jNv)95cynk==h`kvxDT=dFqKb+$kOtj<^`t9zjkA`3Y;vF6p+ z{ads&MQq$)d=fi~>3f1{WKC*fA5nJ(CVTbXyUmd~xlZ)&`Ik@pBmQX`+Y{GkSog4bZP5KTnDh+RCP`V5B;}pVB&BkBNgI){Y5M0-@YXjt z1&1aI>PGX!WiDOXTRe###>zsh%i9}hmg;xAM$S&mwH zQ`<=r)8NO@+eyY$Q;L1bHyU=1U}G5Ug}Hv_r^o`S!QK19@aWTLd(aq$RzE(us59f3avMl!aP z&xj(z6w6RkJetC?Fpf|VwAB|PF4-WigJWi>>t)_f5K%%tN4>m|L#_vkHP+X2+8_) z+ldq4w^q(Wabs-}!<04ekbjd9F%<`>|FAsP9wNAA^dQRp;7%%sKt28%%Ler&qlAa| z1!w<90eit15f8&-QoN4oK^`H?#>!TphOFdT!Az-7#WY0xV9L{gEn4Y;75N>m8rVGg znk}5MVN@Fxp}lSI@lK;Ss$?H?e$F4A|1ha@{mF}Ug?qn`AmA22_GKS0S`88==ad1hIJnTr{&1Gs8jid z8EL7={x=9tntmsT0|w$&hB8=al`Mv(S%{VxYAn~)BUkl^b&bbdMmkjEbZ~}h!0>OX zY!kTQiz5+*U4l9SHViJ(FlW0g-DKJ?OlbU#BAY~Fr{vZ!dcdn6ALi0Ptg1PfN)wFh zRB#Y3KEJe_Yl^SDO3NFf8Sy5uc~4=&#eK3H>S$dvy$IFg9fGvbN5WgHXW}KOpmE;< zW^ealrNHB#O&~4$e*q*!-q<*>eOTI28$1GG<{q#n65KsO{DO&|5YR6JieB9X)IolL zXFW90uh5xUnzIz=r|CikPs#=!cMgY8N@-#%_bk;`*-4(83L}{neSN1B zQWPyX(_7-kvJQc9LW1qUYZA9nv}?Xh}R=BR^*6^l>!;pK=zz*ij$za_W+1tl?wkM8{;dmba_ zk7Km9;LV7?fg48;Y0D17*9)9rtX!o7v8eknVsv14X$DOBzPM1IG)w{WqK+~l0!%Sz z1p93Icm7IEBtvlI1FCx2VVIDhg9BvoK5FQF@u(vT(~VSDzr?G*52)1V6z45Ren%y0 zk6CWagC0DaH+2sd9UlE{{D&S=_);ALF-1djxmf{f0$K{gER9tnz8t=Z7TbcT;iYsB ziU}i*qz5^)ZTOExJZ+Q`0}2=^j-2ALbSa z?4_a64OSf8S(cPk;%dq}ayN3Y zV?s94po8{(1x522f4I7M7S^YQ$(svtlS^-=8GrEj?-PTt`X$b6T=W35T_6Q1nn`{q z6(EJq&KlHZOgReR2pU}E9bXTiiVCS_UQZ@%ID|deOi;30?paG609%2mXN;|wDjYk$ zdfgLXW#Q`)GxS1C!0Mhk*mp=UQj1=!O8MRln|xm^n!6t>0KstBSfwpHiuh6V)kI6A z3{|V!D+mE0v(lBtW9)FjMPE2NT<&~i5Kvm)kKw-=Dz3f+of#`iuRay#AIvJ)vMIOz znB?xMOu6;@{02_IdvTMpFiz!`#VjQqdpO4$LAiqvi+rsq_ety!X#mb>jM|qk0@t;s z!&s36+(-z@PQeP?)*=HpwlMfK*Tx3AQ6U`MEz}c#!(g}wcP-)67X>tThVaErd zFNHtj%PFHXN-J5R_pgmSLfK(s#)}4FWEMj~<>B&w33Zb&n#c}l%bd!3wdt4?oD{7Z zF?X0^+=CrLtOtREh%}VjNoK&B8>*GW`g7=f9*i<{Hlp+<@1h-Ma1_!q5spIg7as2^ zQ_?4faHpPZUcVH(K-1W3g|#CQOUIsU_k_qo3sot%V$OxoCSNnC{$pIc`X+Ah<+?2# zEs{SdCYnio)XC-!MjF#CP~+g#e{KEww8vDyc296L12(N@?2(0Okvi+pgGkLzrEWD- z^AZce76|%*c?+4Hk%gINA$z1QYp?-h((j>))AWZDyy8(2qBadn!G&y@v&#ku)&s5s z%`;(sr}+oH^d8=+1J;g;B2SU6WZ`N4!nJ?PVYs7c$yVvnEa2NFN3{Ik>To*xaATg; zJyO^-;_-R)=Xnf2rc*AqV6w3GcnVKx@G*Jytu27e845ZSCadN=>?c+xi4OgMxsRBo z_})>X5HsGm0sA-cdk?=CY9#01aQ!EK$M7@9e@Cr7y0E`AYoi@TB~>q4)e~L#qtbNq z(MONFQ;%1z>TwvO>K@4tz8Hh@MS_Ff+YkF33l)I2uKsn!$`rq6HCGerdy~BfQRi9W zUyIlNR*`lUPs@emLYmy!@-bk@J1gQ2S7rYC*)T+Q)H)E~&N7S;fk$9w4$Cp~H5$mr zS6Pb7tN)X`$-z3xZ&?P5aAeACy*99kS=iW+FLzeX_V{0>y3_RMUnIN)Pos9Ur@jL_ z+RAsAPTOb=_2gql?zn3g7y$t}GnfJCF>76&+}S60_qh6k7j)e9Jkr!X*4EhO_vKEW zQytj4peJ}fngd&!+}ZIQav-S-m-xGO>waq-?-wCC^c(@U%N70D4K9d^`pG~Yq5*M0 zhox@}ti0~J7t=xHE=2{s4*&fJ&T-Y0;j)c5(p~HGq?p&AyGJK#Zxh}=I zC6fmiuIeGj02!^o8%+)vPU=}sbo%d6nZ({?71Qii5ZfLtvqZ9^ODu?Y{fJGKch;Qa zkUN*2lVd%J;;*891PqSOS9mVo2Y;)bO_n=b(+C|@oFSSI=E#G`b86DQEO%Dy0baow z3*qAY2nOgEscv-k*$(jX7Fi6kRXu#)Jdjinfm3m|-MYwz)yTi$sAE>JKJw3Z^xBH> z#Bag(WAU+Lm4;x@&btLN`+{d()uE{#MY4$ah%QUMhm^C=-`}Ds0LbqJv8X9nAx{{ zKLdNs9Eg3&)Z{RHc~261>OzVj88Z%l%@b)Hj_+SPgM|z9Y_*u3n}(jLh!eA%!JZ@! zz`tG}8a-c>;rt1PNGF)v!AuE9G&do4F3Pcfh}ZujtNSPvlvj_8v4?z)=ATmgvAaK7 zx;MqR!Gss6+vHeXPOP0%WT+OR@um^ZfbPhMa~4}%l@USAa-uYKbXy9aiWET z+bc+N@`ckxs2N;zR@!J!8VPvGSX?ddR#l-@!bN`6sH(=& ziJW8`EA-cNsvv)S1y5mGrV8ZU{Rjp)*gTz8m8E}#PUZH$(0nPFy)d1}0PNrLA<}N! zM-SGxmeCucY!2$$SDqQB1FCt`ePZ15IIcfPk#&)U>WIt zjL(!K-yzhpOyvUXSF8jX$)u!=GZK&d-6ROe18o`x1AWkZmDC>#M%Vi!2jC}B`37NE zN?&B<_Ne2PIY7h8h`oh|$hY(T`~twQJwi5*a#ADU;R}|qc4`89kdSxn30}O!Q}2I@ zx^6Gg+@hz)h_ZP=$m}++iIO*ZM;=^+HE#E6=(7Ei4_IYPO~$ zta5{!sib`uK1dnjdZzH)s1$>Tm77W)bC~$4k;YDH@Dj6?M+Ili*iEgRo#3?+X%f5w zen$&6DUnJ4SqAznKhjRz0VQB{!-__udLFi>afUAa8{UH7hz7xl>`JxQ#xm$Z`Iwy# zcB$7~+KdFJHwW3CVwklA+j<7WsLyl56m&(}Z-of0dR^x$ODB#1&@xbel9bicL(fx7 zGv#m?OPqQ=R&FvF{O`2S)MKBB-^=nwu?Aj$O!z5qfjGrKC;1SjHab1gHgbe}^xqS-D%dNiDOgHvwCfc!sAz7YinADxtoxc@ zB96)vw0`<`6b9GM`Su=aqDU=8YBcvns;sb|wG;0KEUcn`PNP}_e`0iApT2ptB#wgE zNm=y!`P#4`B}QrL=6{fHh!^J5cMMK|j>WUtRqRJpM(#WiUGy_Lz@>c!s)w$h(-I{AvzJ`?mpYo}Ov<>wJ*9W3r z$MbXyTBBuUFD6u;BbvKswEsl5M$0+KnSxNd$AU~7WOk#Cao!J=V!zcJ*hi^v8Lj$9 zz!EK$$I&>O<9X%Uub9_TNa~77S z%k2-LtMLA+R;+06#=YEGHPfT_W7!IR>^KyA-=_EQHLN{Rl?PZ-_8}gJ6Ny09|eWYO~fB<)CkaiP?PFHs_pvINlrStdBNHt_F)UhPK>Ib% zJu{ddI^|NDpw4Xuay~sE5TnI-6gf;Hb_uH2^kOGJbxRZ>>z%PkO>fRva+N+Mt7|wJ zXQALW$|wk~RlJI*gk*lCds7wH5TA$7z{4aD~=+tF$crMXR;3tPE z_9;dJKH$5d2RDfv$RG{UVm+A%q*6tAZVuymTW#+AdD;&y%;^|Bnk5cefjdBVc!@#%j*nrw9> z8}vAX!|wVuC{g;9GR;3?%DRBqR_K;V5fHJf4mTjrCT%a=>eZ{xQHg2MMz$+=^Nc=iyP_}Su`!auqisM6^{F`<)Hb8b*$PHX&l zJ1y94L4?(MbniPf7#)KY1R!@l_#RTQ1?XLCM@@+*QfowNhoje9QqQL&wI`$3pH4mh zJ5u{;^m+r&?DhCR(nO(=NbM<*>5`6b8XY-vUy0Z|ZnVs;J&lbw9XF=Ut^IeTI<4bI zD^$C=u&`BI)tK#i2o3T;lmPTe=KkTo4EJgGHd*FMg>I`Xmn z?F{^CrVKaAAM{~wnjKG-PPI3mzqPA-^38;5oa>eEIx*PB@JG}$}uA(ExN6nfVh;kQ^wS`fGAv^3OQ+)&+caUR1F5v0?K_%`gnwy^D_ z6S5Z4q>|>R_53KU(Y0^?(|nxq<=AIzP*3y3Tr)ALu9@puR#rV~Ur>(-m*(@N+#n9h zJYVa~-HOTe&Nf2H45OgauEN{ET*$ncn0Po>Zl~@bZSU*YqreTJA_TP-hvwl79)9== z?K0s>B_+Wre1)4`vS}V2z4DQH^oqX%vx3$LElP5+(9f+f4D8>tBA;Wc5?TL(sHU&o>NV5Yz;^q!2^m&gO}qlyWA zq4(E9ldFzAau|=ozN`-CKzG0+6vcit2d&zR3vH6Etiz7yOkt@!Mb-6k0;Gw4H(`wx$JK$fV(jLi0XkZ7y2#B<6!10i z#QoULrVgBFd3P8~0rkDD6Z+U5vtfF3aB+2TuI8;i9=B8QO|k(_0f&xgJOU&}6LLku z@iw9sc9V~$*vF*=r}+1vjnH93RIxPpJz^|xO>~jdRavxdn*S-HtwsOZug~aC;pMOep~lalmQ+k~ z8kIFe7htXv_DlC-d#M{ z8_FFJ!y?O$u&*%fQUq{fKy^4qA_<`V&y9 zxG4xnWr>*oQO(lWPy-w>>m>vB#15aCJn;Jx?ka&lRu2CZkc6|MOgMS%Ls^0ZA>|5I zS)&d&ZM=kif>0{jc}QTfVDTm_ZRAC!!1m{=;oT#LNC-!!L^eVengX3 ze^Hq7o+o>V07)*%${M(_l3N4B`ll3ar4GaXLiaIGV5(RD`5KUiAAlBdLRo`{1_me_ zXsAG0IS<$KV5l(Ncx8aT(5B(6t2=CzaUaY)r!o~BD0__i7|b9L*wBKr5deV0(S)y> zw1Ts^lOr!tS%c~kK#-KU{=I@<=KhlN3k?@Dk6_0$ngg`yOe$;?`S2Ew_*kkizUFt^ar3^a%0 zx#h@x=(_PHL;nl6z!Xz`Gp%g2AFhQytzY;Q(F1Ck+**MdQ)RR*$r9zJBkZPnnhxmk z`6B>DN0q$&IuXO6{qT15AtD%;M{NirfzhTndgsb$X(DN_xG}o5PkZ)uR8V}p;T*y@B0OyqGCo$h$d+Dz$gMYk13Z_4=QE@N(<^g<$*gIf6WA5w(v` z-~bZkbBM<5Y2H+XgGcbBcJsA+u(TL)Yn0GDH+7uC3})MfI`as|Zvi8D?43Pf+eMJ7 zT)f1VS5qZ8zU`tqufFXXBDonqbO!<8=R{I~?kzk|E<1r(ExsSBUhfC?)HT&S2`*J` z5M7~v`2Y%X?UCz`bp}5M)?f5BzOMfH&(J|vIB_(Hzec=y2ygs;aep`6hs1q|?jIHR zLENi*i}VpMU*u$ngTWAOhAz?n4u?2xtFnQCrut)4!lEzYC2({L4^!v&ZmGbH4>?sDevax;jP{5Pa)RW<;_usDe7 zsQ#v+;l(s{Q+fVRW|w8`xjYd?QW|B<`)x=tAEQMDROD64HlO-fg~BK6Z4Tu zzD{EyX^Kk4k|tk;@;VJT`q2@;vqo?jZ{`exT!HyYQrm^LNVU zX>Ae^VdX_yn+-R~8nf#4p8^yxQC%>Y1z=hWNJD8jR}@m?>Q$6Np|FvEVorePr@H*FO(2D!Bkb;8^2P@C;^~2qy}ZH|U{?y%!`IQs zT{VoZVwDc9eI8+f{#cG{qJ1U)(;rS#QJZH=*k@mf5rmUid5W=N_RwU1E=Hj-Z zfenzD4U=C%Cm*UOc$Y{aB4wG@?kCul)mr;nep8{flgx#RkuOBTH5^C8P3o;KJ|}W8O5kl-A--ys`VlBxW`dl)cw9+^+Y=UWp?yT_?62bDdDWh22d?a|KId-=kDI_Itt?Bx7&_mOGVd4}sc`ST{h+ z2Y32MNRZ?aMJ@U{k5ZFxV7Y0bVz#HvJ7RglpL8eSU-C5JuUyDfLYE6U+S^Q`TBQ_- z;0$v~g?OE$e%_2T+zD;7|6TEMZ9^OjZ<~evK(uY-|Eg_}R>`*6(Y8^;F@lYCXrU5g zgc+e|`win*HZa=`fh8Z&Xdg%fhcQ2CA1j8dDQ@dV9Fs1_&le@MgIx*bvsZ)%jS0Eo z@DWNF%+}nFRmMe+Q{1zg)vpPc$$|B-L- zLtP&wI!-KILvsYoG{H;hU{V~6cGy$r(=$orQ7FE0wzhGOwy}s9nvd3d_I}=I-E6)U z{H`9U7_A?~uQn4&EXBq7q2zj+7&4J{`z{Gp^g zcNEAD<+q$H0$uTVj2J#;_Lz1wHlp_EfPlQSXTmDNs@fQ}Veuajd{U9gXo<;9tFdODgl&ql`b; z^LhRANAs=dA9M+P6>L)B9#E|*c?fK8+C;;`EYxbt`0<4POPup~+(o1jZ5P|@ebL&(bx9J`>toJ8 zqSIP%zy$V!`R}9ln_Qb5rJDN?2I}p;=(58&(F~{E)Ya>&P9+JvlqrV`PpgJ?%k|9t zc4H!AVz%0w7O)o{^@6pY<(r_Ku3lwMz=}Ey<&Ap%QSlPHYutzA`{S@b;44Rbm_Hf& zJU04{`PL*YzX*qC z{u1Vxt1soZ|4p}-@!JRKwwT}EO}DfzKrjbxO)TW_4!k0L3fnV0{`ueHtI|6kBo1+O zEyv^FS5d7`Uk)7*bz-nh^KYVD7JV7dW$${Ja?L}omY>p+z%c%81S)(8@WTWB=`Zk| z&@}(9L_+uD$ggh_?}R+GFUT>ECa$(DxY67n-YbqK-iPy&_o@3JUwYfO5=5xS_rVP_ zshBT7z!YiH<@`2qu1~K^RaHojXW`LfyzcQog*yFj5Z)&*(s%U8P z30|HcVUa5+FI?!fv^KXM+?dJfO$2mYp*Ta;ZEJ}fNpZ>u?;mRGZDGw~VW;jFOJpskY^2ZOifM z|Eji|PylV~yHBueD}nqWKn5^XOh#=1=rBk165R25M>$(;1s8j%HQp_Q_k*vHPk;Xa zXmJS36AWokBwCL>Eo3j6P>wM4lZAhxW!{%zEim|iKMG7c|l+W@PZ zy2TFj%rA$|GFKFi4T!iAWHYz&D>Fo^{R7k!7X6yz^LO{5(d_I z^ub&_nzkaI#B3Ivq|R@(QVUB1(`IPfX3;Yjc;bUER zhiQJ-D`p38p5`w=&0vXVzrzc5)es{0fp*2Qxd(;NEPji=w-~%WbaGD69Xgp6EDN1< zDN}xH!7|Z`LxeyGfT@>4v&8gVQtfmdr6W|Cqn`!xQM4> zYzN71V!&3^rZ$ru_d&eDRu^9W3yx1Y>`PTCfa4M8z-|$h--XKM&UVr@QM>j``y8Ho zC0YSfNHQf>8@082AUr_#?LQ)O&gNPu4-IJ;l!nKzp z4zpZfmX8kHe33g3$W$JF0M*Xt$-%N{lxPXdZOUvbYN+!V&k|xLR>m{j>IJjYFRKZA z4(DH}4M*V=!AOCeg+0k8V4zab(K7hLL9)zWP{xGG#lL_Xm`1Jr?}yK9tsH(8`A-Xy z_2NuyY_lXC_jfcr(MPmg5X=gmvS5)#4*vkpWK-Oe2HEm>H70OqA^Cw3U;!vACf@9 zv`zbB`Aai=uFN4i3X(m8sU&CM)i?VtW+Sgn&j%byXcWi;F-U#xuLdHZ>Q%e}m~2T= zm`V-cW0~}iqA0)h_$}}(VHSbTWNwK*=Hcs^B&gd7RGNMyO4T^JBGkkL$+SjQ+Q zk5a~mct#Q=qq1Yi2{arhnUeH)9QTOiqp=R3(mu1T*t@g6M2veSlikh76byFMGS?oQ z-&qMq0~z_UeO~^>!0BqQL;2Mh9p$lSP$3!F_zVOgAZCTxW*howe$GUl0hdo-zn{~O z>o6~qB7B%QI7$}Wx@goRE=$FwhAtl6!$%;T8&IE)Qjy&sFBcu1R`9GX9-n2(46bj z|H)Mul0U6w*!b#q0xdAa%)5DGy9)4_2roxgz`>zKG=sxTFq0jKe$~`B(iV|_3bZbK zeTjMWO~4}h*Lapnnj7HDXz8ohdO^Pu;r(ORUgmnK4qHG) zz$hJ0GyanV(M5CE%D&k&&tm~*o`D(rvpQ^-+iwFSBLeQByCno`%!5(~*-z(3ojBBh zFB0*7cRP=lW#k9HWE6S*4`WFR1}$x$7PAI^U z0GEry_4zRXa_c9=Eo5gyX@86$TJ%455HZIXP~DEM!$@LfvwO=X;R$25wv*dO6z7J~%`T@P_b3Y2j@e%~^21FpGIo-0oQ|u^TDnFP-S`yebQ>fZ6eMa2ig_P|hPVvG7 zPi6(9q2}3N4PFz#PQ(%H&AsKkWRv99Z)4asWBuD)WGEx(Uw+;Nk*Ac(C@<50nfu|q z`ZxHzU^BUV_k94*UL)W0;|1uAQUCMMB>$sC+B7{Y!i59&h4Ay{>U<)`N~}_F^eaC; z#Qe}@nHUZ;F{q$$jm9}{&(I|2dH5A}NX`NL?qHJhK3reK)o=b%_L6=eGHNe@y;$tv z3M}(!;UctEY~a%PXRWm#&cmBTcs~A91N7(iB7?bToRmC`!y#l$m|owNg-Hj=gu zAAQS1hfV3jxh6%O!OQ%8$n8Ibe;7sfb}?Uj#*QX#SMvNyh_V1a>JuXy7Cz;n{|qM$ zVf+X1rGrZem-EP03+vhlpc&7W0#D<07Nx7T&+iOcoOK$1GG4dv76s~k`X|`*?D3Z( zF)a7ZF0q z<0n7wAFQP~)z{QS%=RG`!7_UAn)$hV(k{J?2|hPnkdY8yN!6btdtDAX5?b5YjDNNn z*~FKd^;)t0-;4?z=Lr*+|S^I2+h5Vx%1%FVeaXgJI37kntLyE7ijK2 z=ANy&Uj_gVzA*_}<2>MWqOFrUn8Wvs3SWL6!1LVAg>NfT?lVpWJCr&eAo^c(5cnx3 z2^`;}?pn!va+AEXvcMCl^XmD#d3SsK`3mIP#@Xy@l8nZi6j^|vE^b%A!CSRDZOTU= zru(peDRM$@vc^FXoZ15_Lqyf;ltgkTnPhS6X1(sWad1!Vj5H_Z2$EV)|PY9_b&SbdYDN1*!-Lz`KryWF{rZH7Siu3<8j7=2=hV%1q zSX>~NG~o|nlM`i(9b^WiT%`JY^f$TLun0PGWHDaQAy|jR7r>Gv8Ae~RtLaEGsF%Sk zwtKe$sZ6^P1&fh9DW}U0-@ws`UW3I zeb4cRlFA-SWdXK|-pDxbH)@py7$U~n*-8Awd1f*sBHEQp=k;5;1=1n9`b+#MZs9B2 z@)MJ&x%6%1x5?zknNV~0N8SA%lQ{|!?l-ceEJ;80Fd>6EcGFe#WuFFdN~!60D>7l> z{Piyr6GBH-z{F5rgFiRh5NxHs{R9k|Tqts-S^wm5fyNmN#53g|Rq+2L|CoCYZ_!g8 z9Txed_@nuarY`&QU~3ANi%@tueS3jU@qs(`c-*FBLGJ#E(6@Pcz@)zM&%hokr;Ti& z|E7X+ARk{*BIlic4wz^31J95`tSXee|3WA^G( z+IV{aY9Xs~#0RDn^C;4bBxyjpoZtGLAQS9L-*|^|;$$^)TNnGcKn(aF!aqpGfjfDh zQh&NdE*zZ#1u!E)4Uza+ATYk1M+b!Vh9sDy5v=F%liH5QO!0_2>JMY1&Dh|8c1jsw zvBPl_=@J?Ur6^g(*qECxrHfbCalaSt>0mC028*vFo!}!kBm%2~>33Wb>PjZTJQkc3 zkVO&HY`(8_^oE2Hgx}ec$Qh`RututhKkibf%Y?dUbedK~gm`!tCl`s14`6#`RgfZx z_-&)M;KBS{NSj?eYCCLngHwLToUcUsmX9^_4-^anzKQwLcj)8HMpZ`nxQ{o1kOxw*PnR7 zM?VhJD9~>{&RJ>vfs$Mviv6+0Zz1I0P92g|(YlG)Dg8{GSeQJ$If2tq@cFkgbX+yQ z`-VAITXihzu_3xz?7=KK2VVv^SemOhIHhFyyr>78U$xcqo+nfX{|cUB*p`)+dhU2i1gPzm}@z{VG6rt`JXW~}7 z-Zcl zDtEqwZM)dTI{}+Jjvx`Bfm1L$^r>8cWh6-!ED9&0DRJ-OqfU@#HQNlBBRu@aT<;UO>Vj6J5aIh_Huq>?*63jpK=Qoh^fANLhgK> z&ReuyG>qXmAx<0Qw+eXbU~{nax?nyw+dgT>c4=UY<37SKqIF_7Z1G!zv@0dKwRW0W z0W4ag0y6>Xv2!EWQQuTJr;hGnG)qt@plOH|`&IeQS{TOoM$0od)?(+c+`0f*n5Cil zne~m^Qych9W!mcMBusNltqCDJ3Bi1xaK`vN})z!hpW-eHPP4Zz!^@XIzoY%4KJ#==* zGIT~9+hOM}E%Ka>NBGMjD_&zmC-%-pmST}sS!3>swF{p3A2-EjV8X^ih;NGh6r3}5 zQ)~}^4poSOT!f1d@T_@`nsA;7@k3D1>A_ii&uZF+8EWjbCt8)}iSqI6(MvXPVL|He zVhkN|q8hfDF2aM_T$8p=kvkzdsw|B-{jqUEpS&~Pr30fzSA5;Ft|Q_ucth7e&AWwN z|1$5c>N;lLUDEZ5dH1ER!*STJOa0+Gr^Wh|K$4`F>LY%Z8kN!Y-^n&=EAq9i9={;mUqqICc$>M||ccCMs&S>}>vru&DXpAzoQ<SqnyWHz~tgAdy12Ll|z+9nV~uCAT|>Z?IT9D z{Z-{mTo(1FrFy&`g{I+M!Y_PDO(rZ93@sDX9yc-c4C`=UD7hFWDwl2BAF_ELWSmUB zCjP+Y{a3DiT<>yS@I&?(bKSsI%Jns_CN6pZkKCW;I>Pk{*W`z7-WmUF^S)2MU*I0# zn$2}PmyJ!r@^hxAt9#&I*munL2YzJp=J8w$93V1vKXGlPaCK+g4(QCafPSF3P`(OJ ztX*TidXE(d;>FHZX4gy;ezILDGB90=|K576O|#|N;@?TWu+=^$iRI%LhT>Fe`y)^O z1~a^$6RSP9@R8jFhAeoIcMzFOk(d*r5^J)sXp#wq_MH1b$t?+6bgsQUqg2)?eIKUS z-6yA!q;EMULiVtVt17;Xl8k;9IhGkkIq@l0 zqVS7q-n=|M>wDxPI?~i1<&AWyIZ`H*=`wg2&hSNM>7( zYx7;T0%VGsVTn?!rZRp^MS1%?wYCk4s{Z|N73o+heCoBBa-K(~D#cTyQ*1O-R8^bP zgpBy$11bxdSedwSOV;*yrTTEl-zfDk*AqEcDjl^s6eECF#pB;sf#LMi%=F&T>CwvV zk~QJP+J#BQit<~pJl1P_8o-Aw^lfd>-mt)!y|8&kZvAYtUdeMCFHgkVzB7cLDjs91 zkw{02xlG~pN?SHITk;nUSZXmkWZ(7DJa2uHNNmhDE>+I&yG>v8^AgrWsf9!*`O^Nt zf#HW)W%h8LuXKKv!bipgu`WkPs9LcX#Sj2!gK6OcQ=8WPpoJ7q>o+LWMC=?BF$3RJ z?~+Umt^J^bbn4)ye;Q7A?NGWkX1ZrbrxS{NkD>uXra-k1n&16{`Yt>EEVv$~Le;J4 zPty5~EkfzE7`m7@uq~pxC$=;bWe;Z=Tk_3!W0$ixYFY0d-VaR*75{K+8?rbefC0!A z|1XuAbTc-tdwn z1fhAA@mCSyK?vBHsqHNXY+IOz67?`cw$lc3nbcjw`wV@DL=&NJkq-@y4N>2bW`%xt zF5p+i-{1w=nddH8_%Q2~EL1A|vmYcYTp7P#0RTVQ^yMUhMO2g!SZI>eQruOO`w)Fw zrzNCd-sGZ`C-Zk>tA$_((_fr>^hN1KyCe<++Uv}`83=@JnbGl+d;!!kl~DSZqEC%)HM@ab>)>C=U2Xk2moTcn$Kem-Pa3yot(q zg9Xu1-dN*JZMn&#jatELc6^UY6n@!M(!MUVWUa?BCJQ^>p{OaB&*;cQwWNIB8#u63 zLjjJYRiAj`UTeWi-Y;@hdG>A|N#C0leNXQ)+JzqQdy_MxT_{9O6`m6g5;4x$ED<^` zb==lti=rX*9pXQ+l2&h#|CoA~c8IBD@+2ry__>!4QpRJY?`m`plqxBMT_&&rCIg`C za_xTA$@Q($#f68N=;(q11RdHftQ$1)d3+@mWaulx%7a(tuJHcE-KeJb5gJ zex(xeErbnOo|3h456iMDcAYBOb)vMeI6T3M`+E}_qcj&#@@ktYGWmIzB`fi@ z+xY9l%q983(xDH|$0L8O_uH!WUsm8U&trZPT9W+se6wuEk5JH1ip9j5h4DgSE7d>r zRT-ZuLA;*St~9gy&7D$n)1O zM-};B#8$@TUlqAif~2W!HH%zxmLm5``#=d+z7;C1EIZ`YK4zx6Nu^3k;AV?QtW-*! zZ|=30p=m&(6#}d+!$>-2#^%-<^K?Pe#Z28KPUOLJj96{5IE7>QUoMa5Tlo&N9O&JY z2T{lxN*0V~Vh(EZc%vurghI~^x>VV1N^o^T$X6qcdS!wuxc?cihlIE~ELcHZ{E9!w z*|o4$hIJ9gD&rIQYyl$9jn+tWCL*GmIn>7QkvuH!tZyk6N|f(SsVlKlMSO(_?YWX_ zQ}VNNIY=(RW(g2O^)cU?r;x^vsBb{~Mjvo5X5I_j!uuzPq;OGH{O3`La-y0LpUPhn z)x@&>n{J7BlTeNU3Ke+ve$V7cY7d+5U?TJa#x8q!Us+v?uq*=Jx4tg9WSjG5*(#^H zaZ+`jloyin_s9|4I^Ob2Q_(~hkk$y}qs?P8r#S1U9=ksiYEL0l}j-99;ZR~2Rf59=qY~eMovXwYoO!e;FsLD_h?F3ab&y+hs?<_|@)WKJ#_@-r^{?nLViE9S7LSTb7Fv zK>V8&(O$L^`b*=akB%$NgymXSM{%TVWz;El{5CtQLDg`aonayHDP0-Ajl3iy28gp|6`eI$Ih0W;842j%XPWC% z+2LK13`bF3O9^0~9h z`J7qxz>>~U!Am}8R^k!+99dobIkTF1?yN5QoLLRfNzMUP_UFv%aWku-UPOPF{=B?WqGOL^hnv2sbMGXwo=36B4uAn4UdhKO-T)BvO1X>c16mr zN)3A=Wxmw#gh<)6)bMyJ_J%uBcC{6`PgOKh_GQAreobmLRnAWhQ{`(V94Whw+aWNc zQd9GS)X%8$^wcm_zCJZfm2XH5Q{@{|!&JF2HB6Ofq=u>TO{rn3>`x6-<)YNERQXp_ z`DQC}zg6X12p@`+eI+%TDi^1Qsd6ASOkHOZ?unGmN{yz5RlXxNOqG`! z^Ss7|#(Jl*!j<|;YJY^~1RbMDVAn6oukqC3)vumW;B+^MTKr;UTgYXh%zcBW50 zWbB`OVBDeIzeJR992~f_pLB^}f9Ly7hx>sSnSMA(;owL*&JsV2t5jpZ@s^xS9zNdr zLK-k+0jp>8H(2=HodsXj!~GmVDo59`HD7zr6RjH5-tk0BKM}|p{y~mPD`?o98!c6k z@uUhaX!vRF;h4_9@!`Oo%>Iv2esSl4bnXxy4HkJee;c&yEmCL^X#RYB9H(H=F%lOAFDNV+;bRnD3J#2J zFauIJ_ZC}Cfg^lOJ5yQTO4)VAbqJYG7QpOfUL;ey$G*a4uSUoBUrjQyvO7dABSQv^ zH=>-G)|hY! zNA%P-gMd05pyE@6r{-vzBt&6v<12{dOhO!tq6u>n*2jn?kvYTt*G5w|ugz*eJ1~Vm z=1HOc=4JgTTZZVQGQUUjEl^flb(;YaSSLd-I|F0 z9N|gJ>Uc!3CIX}v&wr-AFfqwZ$`Jy0?Hqw;l?l%e7s)J1j%puL%aLB~olzsU+jzON z*HvKtX>VU{EIn8ooqn+G&8D1Aak}p|7M{1t7&~K+D3e216l?pO{{0OfRM#Fir~Y3t z^S6{e%oF|l8?%M7m${8O{#DVemSW>Jr#{wSTHEkJVs5Q9#}zyze+nMAh&a{8W+}$# z5|GS40jc4o+LpvMVKimgwMWciyB4Y`q*W|PDtT#@p0zts@{%fH1U|@L$tIp>cZv5) z)}$_8U|d>=UQ>%Lmi_Z%68Y>4*i<+-e0=y+z$A34y};Mm)pr#wlc9MzA>A8sURH{eu#fH-wT8y`ik@BMVRYeY_+%o?0#7*4q;g`>B%RMG%!bWi zJy2d}@;aS1rQ%qpmn*+2LjYU&tbTR|Wb`SpgDwtyBGsOJdAqCF`BS(3fnlX8z}%&WbB%ixr3V)%%2G{`th$1M^6@tbeOu?SVh=uu z<+-bN3|e1QuVlT$EWk+tlKnJU_wEQ?sSJBVmnoCp(1q5qz&DE-ZzxlhBRycKA0#U* z_!i>vJiAx5FZt2FOC|3Es(mx&k-1kInO<{4{PfQh?cgC8WAAr9-Qwgo+P`yDdA+Nw zO@n@5AF4^P5LFh_Kip`tfy&y5iI{0$O|k%Mhi1IN`ox4d39oiw)w8)Y!mtnHuO%UK z%?tNpb(gp@hobl%euh4|d89rW9rVJk#nPIkOAYsCp@cb`or$?ihh`2#Fv(j3lD=j<^ z8+>JpFNXfd*a`r=M-7I!esLBCi?s~9Cl#BB`*LL^0K}sk?6^65w+fZnq#XK(*gAXW zp6r`a`>t8+Zz@%>NxB;}V}D63sbOkj40?^gYi@__z(--wI)Htw1)pF5{F(YH_P&}9 zaHGptp|Vf<(?(wfxhrRTc5-8Sr8{I{@L}4fOxy3$61fd;;-3%841cs~@itr^LI$&= z&Nj3)n1Qk~|AYcm-1&y)#L6TZGRdR1h6lI1y7-xReno7Hi*)iU=wSEC!@sa$O_H-s z-Ez0>l~7)#x=q=^P1JX0QN@+D+e~hLc%BrLvizFVPMR$})ZW7H+y$@H&9IJx8(w5H zyZ_v!7+cin3%fEB(9Yb&M%7Zot~ZD7hXd#O+zRu`9vYkc$MG+xTGI2$8mfbRIU$V|3sHerfhAmuf>5a?z zRP;H|%6n}UrLbXK#p(ZCjQE24$>wZgA+pO&ZLy&WLxrYml9im3XQ-ztU6Y-*jVp1A z^%$mrs34`8A0iIVi|g|}_sJ>S*k_L6V6^@WtUUWemn42JptF^6i@9=5ipY2QEM&*4 z`uhBaS5l5+e1IWJjo2~rTa)kE@(48{Kii3terFol>21@=EVRieWanp$8`}2DSQaC_q5)^2gVIir+Vq=uQ7s$FuuoG+o2Pk-cT{SEa*lv%(37)b1d+gV?mxd z7F@bJmuw|X-vx$=rV`NPjP!~FWKDE_O~ zhlMyg;}>yY>IioEV(-7>zBwfU@F{s|kZ~{zWXl2T!P70BwvLUv0B`K1Z~W-BMCJVW zLaQtp&tR?v&r3rZ2ZW87f3T5iqhWt7?p`ky(hefLXRq1@Ju7)DECfK@?I2 z%ZkwR9rT@H7_Iy{7RvNV$xvC)QK*S&_PU#@qCcC)1FiaHwyMo{a-!D-rY}eFpA8F{ z&oGgA1#2$PPD7G#5`)u!vf-r>`!D8$Af_J$iRRtP;u}Zg>u!%eIGyhe_5oxWYw;-H zO%#w}C8h}%t4T(x*P#v9!`EHmj2N1H(%{cN=9vfDI4g9&Q;w+G*(@3Rk#t=R{~>l3 zYW6s6i9Qnl;(`=#-Yk%VXUdHy#PW-I!Y#&50g0#Sc;}!~UyZ~#)tt2{53S-SR@Nuk zZ?PepOq7u72@cK@Hz_Y#XdXRAtM<+lkp%nU>Vj8dK`{)l!9?cXhTF1@g#&Zr%Sq5BEgD)3C|cWjbE*E*n8n>9BV8^%MK-q1z1S zOGfy#qrcs8Q$~17bCcZ`F3>BEQZjkS7^9uUto}SHH+Z_3oOF?vy$J>)X~m_-$f%K zHEEMUl=I=Uimvdq{fA1d7+NpZUkDQYoLF9TMQE(nn8UZ2AV}sS>_H%7jQzd?h|=;d z>`1VA7GLGTBZw{#G99fhTL>BFuOeTX?z5;qlp|HlQ+cO1`>zOHMBCD;f{xH-MgH)4 zN%%RiOJ4M4;z8~Lb#lh7v-ApaH+(+m?Hxd8F-+Ydh71l`GV z)qYKVzA&E!?)6FQu9%^` zjfXGR687*E3Zj(W97gJ46ydL4nQA(d_EKK#;*9-CCDUmB;L?tH7kGAlU#cWauWvS$ zR7dv+dbSxJ!DZ%Wbz_aQ@R-y8`-U#e##Z=$AI?+;21;%WdZUZ_>ug_5Jo&_Qa)uLN zm|J(TDDGOHkg{-s_JlBtSn#-6abZ+8%Sa-}(vZ=m@)3;Nhbv{F6g7;3I_H*c8*Dt{FCRC0dO#e^g2zvQ#|OA5IRN12w$tbdk2PwVC6 zsNdt1#>(O7beLxzG^-Yy5?kDf&oK354B|>mza>7qjy!^NQc=LL<5F-^y&zWB046=Lt&-{3 zv36Jd9zYnbfr!j&;{Wi7%uN#OLh&e1WN~5(RspuO5KGy2+$7&)T`4i_SBjPvVi$FR zij+C+9V*2TMm|2V^|yRj>}h=g9%tnfzL5pErn z8p(eSjHqk#eF_e>=S*u_V+&u>eqS@$8~eMDY8^QUbMZI-MN+UIb&XNA26kxWXKhKX z7?~ej%&=4F1Z^XSv%5GxT}~Hsa+DnVS#`UadG~KjuwD9cZz$WC%L&F<9oQoFM5#M5 z*W3KB0@HvvCJ9eA&mpykF4i`2oJ^JiG?tN#C-zvWQ@CwkTEUxwrsH2wXx9c$H=K_f zBF}w)fCpj`!!d^PAeqfcW;RP@b~BUC88ZOkCTx^HopJnMM(6lQGRJ>ZIeKm3Nr|~~ z=0>~C#G@;sDk4ZIb^Gjkz-cetfTG~i=B5VrWTJ&Yvi4TRYYSEDnic&7)+iNT(HVCv zM?8cAEm{cUv2csVtAgjPriJOUq|q$>d`4t3r0v<>>DgIw?IzlsZ#NT(ZD3V zv;+nC{`UJMhwh_#X*mV6_dMP^&T5J?cur!Kx?R=pF>mN^%y094*ZrG_ievi}#&;gW z)4rvZOd|HaTeLAB8>}%~VfEN1uL5@UyhS~ysb{Qnh@s+EniX^!b4z@l6T#eK zeV#KsR%L?Jn$Hlh+<3RV(nf}4X69}%Joh{A8`42T-9QlqsAsoI}RlCDvm$%<66vAXd zO%jy+Am=$WvW1AVkkRg16Bm&r$5p^R>&7x)d2|)oFr2jC0T|JetxFMw08Zs^T** z0%Ag9=KBKcY(uA2)=NWeuWT5@VMdO9aHWnq z8}2w@#kXNYW!wVOC!vmlZC;MCB+I`-4q^7f910dB?#5Y*JKq0wzAIyZaobn8?TfuU z+gD^wUE!U&IEzHu#w;7YC<87%;59O|4PJy@VFXP6jJW_c4d|}U07~CMj`P|q&WT2W zBf$LPmd^&v*FP^Xp|t?gyH_y_F~DC1II8@)g^q)u<9XI95>EOJ;_hnSzDl;(Un{Vb zu1?$lR^roI_YdG{R%Qzen-?PCsDJD!0Iz+Yu{>CTCDcG zS+KHpa#eiIg;Jojs2PP4*V7tCHjoAmamRSF{+mV<*eo=bmn&81bogsw+T_=}e`Cxo zF6f!Od?CDn4X~bF&c!vlb3VAAJeLV!u~9`_5s6CB{H&H&VBs>eX?!oMmhpG3ACI{F zW2&k~)RkJ(N{46jC4g50B5Hh$vG+a9(BEFQ(z9!@`F)46Cye6h9LzJF?Ih`!+8(hQ2%FVUJpj`{`Vdg)429!$^yOazIdc>3hm zJv*0>JB;#lcQ3PU3GvPas3ZEW{D1&1bA zEhN;p02HEpC@sW?ZkFA|&oElfg%H66`^P|7O8ux@Vs3~Uw4uRwds>e&j*li&+JTO% z=<_>%(tn1Idn3SqzK+|rf|4!b9Ss0<{_)6uk|}T``^jo)|4;Rk6{H#NCm%aU^^=qi z0>7Sb&hw;$u-;i38tNaFSyIrb{_!=df82q%S%5_4s4ue!KpJ*&_d8|>X_~HDjLrcW zNGtAgR?-PJ{*nG+l&;iEHyEXB^wL#O0OjCtDFlDmU=rWj;OO2no!;|J5McElPJp>W z+bcuA9p5V$K4*a@I?>HCJg(!&I+Z8+@y@gPU+5Dvpzy8V=YgEt4@sxfIzOS`t&+ah z6siI29>>X4BGVgj29s0Xvj6jUzaG!7{eQgs;qftrJWYMk_D(cb#@r3QPJ3x68aM-r zq|Ys1?f>=qB4JET!;C3At^2>F*9}f?S~wZMEhU_F4dOR27%Sd1s_ShC|D3F}#?y>s zt7-mNX)U-zGF5o;wDwDXn7b4iNR48h)+l!Ps|*~i$gH2GGhDTd?>^Tk*0wg;8DzND znra!?jsRA&-?uNcW4^EW-VitZT-`prZgd|@>Ew^!_($tim>iwIy7Z6M3v8+ZdYm~x z%S4xRn!q*;M~&5O-$jNT(!`iAz(1sD>)pUBsdwlre@UJ7rrOc<{4_85#SK&=$xCw2 zCosfI&_Aj%cZiorbEq6faFbComGBcw`t!72gD7dN&k-+8dGaU+QKfsfX7j9Va?`FE z^7IuOGPxW^+BSfgYRq-Eocu>Re>hVcbb8u;L!7n=8DQd%Ui~r4Ol8@-+1>!^q+p|J zihheIkV>a4&`w_EX?v7}T2pqKr_J;fEE@cHS3dG&Sw51KQJTfsVyOQvPskJeK>|i< zz$JmI9AkMFI>0uWYw%Gd%Q5tgjI+taf8trqT8t{T*<^;(qva?2E;QLwS|fE!YjBDK z>OG9lst9-5P`1D{jsR0ywEDK*mxV#ymS@bIHt@#9&o{r#l>Xw5ytK3~V`h$ebjhO` z>rCs?ZnAM0HBrFrR&ZBQ(HttyQ0k00$4WUVQR$zK%CMqH#fK{47%S?}s8ceR_F^}g z0E!8K^n=i3Gxw}d7dXj^QjlsJ@SAnMoQ{=PpC2FiGOf&ZowEE`X)YLoWjTX_ssD>V zV{X3I>*{>l%_51Aml_b#8uN_rwenUwmDX^Pb}GX^z$8>x2(3Jx@S!sT3D^c9mU6Tsd(( z=JR;7dhHc5gb-h5GlvN`3W%VmtxLcy%`t`dCkbG3BV?&pxMq~*u3atT@$xMHa(DP9 z^%*$0#Q(;+3u#&38wSU(X@#Pc9aCsIIt?>exkW$=wNYfjY%r|n|ooNxL zkXE8JSK=#NQX*y5|3k8X%jhHi&UF`3JBqQ&*fLaxF&AYi9{e z&v7cId}FM13fwqxM{;^CjGVD9{00BA)0=V-LqiuTzJ13i#?5e8>bzO;d31Rw2QNO` zXYwX|5pxdMzf8`4MNL&APwUIlGFu}2FQ|fscmuT>MQCc0LX0b>yVDp4&JUF?BTWko-lsUf1xPT**9PNI6XAS?8a5` zG1mz~z1qi)a3NAw!7IkxIT*~8pJCT5lTjwUiAs1?N&Jfo6}_nnKy0gl2402eAkO-q z7^|8^@aSoMl0+itxBXP6%(6dp)7a>&PcT4JQV@#Ew#}r1InYS?MwM%*-K5cI&(!dB zqrwHF!miXX&t#D~l->-F9TgsDhWnB{ZWT0T@wg?5yzsAflqn>jLuz=KOCRXbOL6Z% zqcrOdB`~OZNL|}rM!>rR7deV@EVay!y3E1d+J!$PRUl8WR-uk$-XrxdmDMD5ByP2_ z!Ko##3SFfog0h?M)=;jNxFd9lmbfc)ftI*CbY4qBnm5F;n$jZZr;K7*YH+is6|Rz} zs6n_(amiU@i_aQcI69UMvXa@lDJnmVwxo5Dov362FjkXA+?A71cw5K9;b~G%D$8po z&R~@p%4g*@ffYcOrv&G{?zT5KW)z$lc(ZT3_OYkQwU>fyS|96<+2!gShXx_}MlY_& zod_GG4K>oWB^$LZO+fT!B$m~ZW-p>6D`!}e$W6i-PH9yX=&qDO4a z<0HK+hw*1kwyLGRIN#{$evji8^+K(4OsrTTC|a7(XIJX8rd#X59A2Z(np3XNTDbe) zfAW)`47^>JcKCgL?KFMCVsfvd9NfmHC5V_+NI;b+;W_%O;$&Egm{p=OtaHY+4j`3Z z^wx~-qm{ZQQ>&p*eI>KbMd7+3wIBIi)^Ss@+q9_atl>ii`sX zX63mK$1z!(scWKwi8|{Y2XsyJE=aYyCVWObKWoB};${5N3zYR}Y?fj&KRN_`SHlG3 zS3wx+rP3nPxE$nL6A> z)X`(&Td#zhrpLXLrCM&iG~c4V>UeaTaIzbrIXJ7V(xHS))<)F=dNgsB_U>GYxAn&n;-+! z8sOcEQyR}tcq=q@n!AO4jsf*-e!y&%q^~byd75?TjJY_M| zjxw`GOOc!0KXa`0AIYRw{I*R2q3n3^$ zQBb0MEEVPB+`>Oio+*W%L;2WgDIZx>tCB%~l!Bb1lA6a0zXWWbfl_}lo9{j!rT)*P zvPCA-pVH8e(mdY(Me=6yuzxe^I8^*etR25RnLL<7-c0>*RPqne)ZJ#OQY^e15dYs zGtpbm_z%=OeFtO$SEJi+3-{s^*my1KUbF37?-#iouNjwXtj=RKB{eAvIm%W$$_lYl z!py+G&*<`$9b^v0sPa{{z{_rwR@vuZ%x> zYqDgbwn|dV+AX?8B{;P9i+u0<$ak>ifQtCgQ}&@_A9neb@mkUf$h%UK(SBy@v21mB zmVZ6VR_nbi&J|Qy%T_a_K$8a7yX|Y#veo*msq4K{*Nk4alF>r)V|+t|X2ojm97hL> z$%xcvm8N^j$y$l@KoxZtquPxA1hHP<(hRGT&|@leuN8V+g|=Ct|Bz5=!$>LITDfB} zUPeeu^EspkrMw}>Le`iJyt1E}B@587V45+j!C1T6xMzb{yS57z8?y=>2mBwd8}Iw5 z<$yFFMr1NMJuZ1gcLnSB9)46IYaIJFE?FooYWVr@mKUWUe~_VPA%<`W$ejtQCHNUI60j? zeeywL0j=l04e8WhaeQ570;90DFED6gip4TjY0@Oq9M42|+AUPl`M%54;Em9`<%m8` zEOo5$PdeH$gm>2Pq^FeUfK(a8Y6xi?MD4g#o(e_nsJc~!1ZRxHVARf3#%5G<C7>)fHQ{}pm%vq=nc42)s&Mc(2m`}Ac-nCcDymlV~nP(?QJz{2az%`p3 z9f!!gOmc5zm!Y@*4Q2S-#a67@EvGK0Rl~C^rPBMC05a?9X?h@A46bWp!FMk=5_f0E z51DTYFu2Vor-Bm#X&^f$r?1$0pOpbGkQ)oII3jbA5TbcLO^`SdaA6+#9Fd-#2U$vg zo8E~Xv7>X(<-`qqNMUWSV9V!edzi4XFV9ot3QYp*vEuCbRwgEPc%rR$1^Kh{Q~SVa z?4xw;sE6XU4wtqu59772@EkpmXH;}q^1swTDarIeR{Y-(TZy2Tv$qb2^_lsUN9zx~ zqP>%*9n93vD|m(KDBSm+K-TpK^49&-1i={@0^ta6%*aE-aK(re#9yP%>lN&mV36^r zv9HhfHlLz*O$0>)`)o&e7ldx$U~6h#}k^+&)JElCqP z^h#&4w0vV9Lxq3NYpHtt2EI3JEYik!J;- z?V?{bd&{TMVZjr~)#t+l1S460toX-=NKG(s!m=TTQu`*DD5Y1Z4idAYUb0yLnXYw= zKr!~Lhd9>4Q`W67>SC%`ZzlSRu>m7gy|D)d5W3DN&+=6q(kl)b<=O0KaqRPVa$D#0 zb#cDlK}WD>KHh!oGm}kWEb2-^Jn^g5(oADgfi!|$z8=RQ>|tu4SSVm)F`_{;K*j>a zfM|=^MFk*PK#bXX zk%qCUrvF2rj+Jr~Dc4J|%;~AA|S$k?`gLl$b8Z z?4VPjRr>PnLXp!9cB*+=oh10v`~yie+kYs@Go}yoj2ocvRLV2v=gP(jBjD{E%oGN~ z8JzIx;(TG-7SsO&=6uOYSR68DAIJON-^#=q#&MN7-V1!ISQR*De-ZW}T>dEDj%=8e zIJy+$g6m%?L70W3lad_!hFEdID~dnG?2KSGZKDjRPocE8AnSu!jDk!dPk=Mb1;EyB zKGz2Ew0lq<#5D9$<0b9wG2QR`WOOn6e#{PQwDo4I`Z(5JJzSsdq&jDP940^7cldol zU4X#{PwS|A*WbfP{178?=lf~e2acGXOoY|Z)q9_$McFcv5ev+jvWd|nurQOCu|VY% z88!lorRT@&j1so+^=5Js_KqiqWM;x5tjz8rGjq@>A8O;FL{eI*d?3~Jec1iJnMfLJ z+R%9PBvQy9qo-V?0r)H@8PGrjhhXh`MHjnSDh89(wREWD-X5q1mZ8SWK(W-)EHY+? zDrmYg3X9pHV1xlBG+j-X!~(8tzdsoFl!?TH*n-J6-^syUN8{Bus~lx?t{C+7Obx~z zgZALjA%@iZHHy^EOn?M$Ro(er+WwsFHNk2x?SlzyQR;j@Jzc~T@T3P;O4~_Pu^w0@ z&mNH{I%LN{%f^+L$!CG3o~`4hxQ(k2zZ^Wp0=3kIDlteDoKBGmf=Whw!`b zkHI7KgGv2Cqj8WX>U`e;u~489r7RYXvM%VyuUH{qPhP<#_;ZUZo`p?Q9Q?RZc~02JUgG)gFXJ2)&+&HxM2WR zyQ(zy;OW^$@I^LtxlHbF{LxI-KP`EBwUgep3x;xskUv~|h2;Jp^g++g3z3Q6nQdQm zdN@~qxU2pxW6>ec&KJA?_O#*{Y!m$z%~PY7%olX`E`bngjEY}@qZ;xT4b_YEk!T>z z-@kUMumeg{#5*_}2DN*Qr49YYp4^;1#RfN9s zXkbiAPTT)PPGg31+N5=i>wJHVjxsgtCmrE(p3tZ%|}>TlgbLeiZ#|eqI#XGcNVC*6~oI?O6jo*}@jR_CSTb zvv~pel09_!%n)7n7MbxQBfmtX*-b1y9G$;f56sciqAg}`2`ohVV14cGmC*oQ#U95t zU_@78%Z+pZn@-V(u%$tuf{BYzWH3pp9Li^Lr4d+3KC85j!l*M)$!ULApFOJ_$*N7v za%7ZHBLSB1^jI~ti8fvPIHP`TOJiK7!u54h*~X)sa;R@`8;x;&gBQH%h5BM=r9Qt< zzq=^DDqko`ockMy$c4-|W$RoyoIEbApyrm$Ntt)5X{ZcSo;EiS#9E$XT1Q(ZdOyJs z#t6(YV}Jo9yohM0W>iKd2ACCx$|vtLoGr=TMaL}@;$HwRlBB5S6Vhv;a_C=mWQspa z*QKrq^{@c{OY8TvG9>(hA|LDbw8_GW(WQ0~h}2KVJV{@``=R4y#wILfU!F~iO!)bH8(7Bf`G3mCn>F(b-*yTB>_|@)YogFU#?vIUSgPxr)Q3L7Hx*;eO z(YA3g`I*Gq?^p4{l=OMULg~r=!0`sm+nK4@dLyjSu#bDva64Fn*SF+FadHHn4#ij# z;VNF>vy$N}W=Cve&?+|q)Qn*@R0(&;lP2jv2prKQR(sGC!ta>krOcFRRXegdM~ij= zw*{tM5e9=er$bV`m>oG6USDZcps)B0L~+Y#2#jFIA0vuNH7JZA3L%DFe-&a_G30;4 zq=!e50{?t^0Mv8QgUDcZMGs=5Hz=;qiruSnHZD)(9T) zDY4B6l=y>P>lXTgUH-tdb(d*-Iv|W8wMFf41%Ad!Vg5k=IctCYO{CvTs2F)q#mjNPX7iQW!nMboikI9JJc(grGoCqFG zRKz1=Xd>&YPvn5MjV`L)BM3l-_9=aZY{Rs03)lFxHcjMb+9w#F8bsEEQy;N!$TDK~ zKn{7+DX*zym#{B*MBC_V9XB3q6c_VMfHW<&Gp3$WAhh$Z%_1Nxg>kTQR#dnpw|Q^@Q16lhpQVOTL!aKV4t{ z{2cbItC8{H;j;E1J1VL^s#G;`y&NNgK{Zq(FH5;{NTxQtxcrN(HNumsxYd}U7Gdau3A#ajJ*sHV@4YmxXrq9A8MT`ZFiQ1`&Ar3N{!1k{bed&8;TZA#&Iq(Ly zW6hL#iR?;wyI4Cl&QlU}IbL#fI%XB=tWX7?Lvx!xBY1>!6dK)549kPB?ono_Z5_(a zUKyhXU$xd&lqjyE5>rmtygLVM-lc;!@2|L)pR{>@$MyYFHgCztHg7-I1E(=i|HS6K znrkN4jc07$|KfUqD?4HH{($ReHoG^?Y4^IgZpg5Ef5`Pk7b_ZEw`bbD&0Mu(?cUQ| z>ErC)C0suxujjcETo;g+r5`u#X+l^oVM`Ojb|{a1)mItC(+OpYZA{`YEpZOB7M5&A zukRZ{uMF7_gFt1;BFhh2V-}VyQJ&1w!Wq%hGo%%p1Gu`meMJFhdF~XWGOWb zSxR%OYhQ%$#c4gJAJ#b@;W5#&)3R)Yg9W$Vlv5Qen=WbNzva*95dwNMG?5xrC#zxE zGl0`Xt<~^QFK>eeD$T5=i|F)XB;>!-k5 zO;gny8|0wtZ;E*Z+vBkDd2`?`^lWc+e(ap3oyl)>;Ifgvk)@q+HK0rOG>u(;hiW^{ zpogtnW&#)%ruRI^il|n9c!%ZQ2ruJW~bP~7w~2Gf9p+C zVx=Z3%tPLdCX%rVv&`+g-Ru8#{p4z249c7ye^cc1(karPOQ(saER{;Nt*egmCD23lyA(PGGlJO*j1{m zS(fy7u1$AfdN55HIgX$n)Bj%uIWO~886TP&na&Te477)@Mcd`si9W66N8q; zT4SQW=s1lJH{cD3_d``Ej-2!h5QVoY?C-O=UvaCZ3j zBeUCmck`I$f%jH)zVDF%$LZVWIDjs1`8e4l*YfcW1WwQ9{{=Da{?8x(-SUCobiO~1 z_4Q$Y@GX7v$y0YgZ%Y2AC9xH%yR8v}YR5z*CE2^Rg2i{AmqoNOS3TZBIvi=NR(UH{2 zGVW!vx!N|WKMJKUa}OMXp2QW#WheGKLKk7VGYhwwaTi2Nk^*ORH&Vd7@HdQ!Y9@grVq$R1F@IKwqs^t^*us!)wLkM`c>?FEFQo~y zPdMufZrm@F!{^dQ^Ns4P=vrruaX`__R>8F~4^mW5LW*Ts zd}2lolcLIkS2f)qXj?5p+@;#-g6J&ga8^Q<>b*GNsx-Dvp|Wz%QTOWj?^yPUZWYVN z%IMbZ07nI$mi39}a(V^yv%s46SA{k0EU?z*|BR{3j{lGo+rO-Uq5b~g7O0$zpzLQ6 z1t$S(vXw#%Jj(c3;fl6MZDK9CR5S-C5qgU>dbCBVs<%j+M_U?Lz0h0oc}9+GnZ`Yz zFJmo*JeBZNqqhi3^%g;JtVPIA<^YV3%X(`7$1Ioflrf`f5^2&qjcOMXd6tPMV;+4^ zHRfk+(`18oe^8^VHeJpXNS$a{9hd!-5SPgBxPFr85%`lik!tShc>2(nBhe%Hkr|nx zn3Xo@WdqBf=6pIdN@D&N&~#h)s_ zkJ)9@`NGWRW(^gjAhI$y0khbGm49NV(0Eks`DYv67iq7=P9guOGV~>CB2m#T()FBcGCwxZm7-TP13SthlUb|RQ^^Fm; z+7crz;6K>#5?O0|CAYN3g=)1xOQbcXml-dMR}U+n)LhUC)#zEqfz}BsvxKTQEOVS^ zS4kvo>K4Ui%?ul!6u8+>vB7Bq@_pYvWAHE{iM`=MbN#=10sfNc#q*ff5#9JZ^Fw3r zN&v32FECma==v53C+-tC881m-+$S-lO57(1FccbCk=3732~uON>PMXh+YM_BTaCl{ zH2dej+unMMRH6M|Rg;@=wbZeeGj&)tbDimkv|b=DJ-hbR*=zJb8VGwjP5+)0I&(o4 zO%Q)V^+~sdJWmuiV+pHR1rpuYP+(W-t@jE3MX1@U=|f4D?BE8`pP zUowq9<}G+-K~=QgTRmgj!_b+h^=8I4vA2%M_7%^rocTuNL3!F)Ggs#|c9@d~q8uboS!%MHiPZoXDoy1Z+l&+NHhc zv4DNr$8x`_&tI>-!OW+?yLV2A%l^^hUS; zrKZ({#YpilZB(~KbRf&5JI^jd%2}~okBIQ0G~qSIccrZ1x;tK8VM1$to%*q`1jYw7 zGE~Jk%Oce>nLnYNWf({bG&t2(ju0X_cH;%cRoU@h>SBt==IVBdIC0pFBCI|bu)^ji ze1KGTndq)$ekYrZH`&=k+Fq70r&6=SeM*~UGAL_&-o2?K@%w^TqW5j5ksq^%GHSFL zws7gp!*M)Z{TA?&h5>d;?Fb*ZN-_T+MpZpnhcYs8ZKya0AVEhmNG z8$Mu5DY{A?N6i&1d}zm}(VIDz03{^2DR&zAjGFj3t!DPksJWO$_;-nB4cjQ^(6UXN zg#%-YU+}yH<`6J8%NU|B8?@~Djn>V=urUkTl4d+5@5)*dGRAtMaw6Ssd5pHpC%#zJ zy$9>filYp5;??(vaV-ot>Xb!vmNepwimo&aOj;OiUueoGLnqL9Txc&CC;RL))>i!C z{!NS7RCJrbziJ#8yQZAD*<3A*n|wCw)@LsE45?XtKTJ|g4E z%Ta|MCX_L^28m;xVTL3X_w-~C`*iC@7zO)*9M%$a4o>S|sr=cFY zPzDmgQr3#1yIvPuP5-GSgw2bt!vy}caf|=trfWbHnAwx&e<5_a(d|2|!tOnu|K!PK z|Blp-s2ZK2i>%6x#?vUuenB&{#BRDHTTo+DT6nSajnUx?@9;DW7?UhaahiOgc(lcyN3vb;mv_X!g)(+%@3Td( z)a@xTcB?XHH3cW4#m*Xi&FS01$IThdQ?g!W;cMhund3Yqc8jUes%Pj=NMq|y2+s5; zcBp?56qxmFhrw9VwBjH0MRhK^L?fa+LOrxw2sxVd72NGItG#~*`O6wabovkU@ae`| zjEA;~)MGrkO}?Xws+p$mV8h4v$*RWxQvF5YZ0mLVy$%tZZn`%^ZtLwclgSuQ@yWF- z6H(=7HU1asi{M>h@5s;BU8Fy$fH6*)usL15VEJP-v^-Mp*u4mf?+4TSUYM!saf$!+MkjPzj<;M4G1W8Wv$L@K>A;x#-R+swUC= zjJ%noof^9-lTe3*#_;eQ518Io&|$)3lTh?s;D3RT*fvGif70iARx~6$X+bxA*c)yh zN$tbqLA9wi(oT+R64njd#-kkCzZ#`7vh+pD6+m)sXAKSFEnu`(j8_PD=9KRbHM*%X z63s}u%5q2*77e7Qs*a@auL@mNWzGBRm3txUk>zS$tRVkXneL{AMx%^!TI}>+Tq;u= zv$nYA#^c86)N-9>T?^iv!A|`9wn@XlFO{~=vs05DMV}P16d@KD5R@}$3JiE%% z=p)QE3*L;bcSWny*(vGT+b-3tX1!n5gd@+3T*T)c8LC5gF%^;d9lptrd3G_{;e^2D zf2%RmU*Yw%-pj}SUwNYcL$cT=z(;pWFNtQgM~m)fg2F(^e$MMgh|_v_5Rq`nUobWK zqjLYGk%DSc*k9B?+tYS880`Hq(<)gq{t*n?|FXF;pB9Y>_$Ht`)CB5vG35HFX_>r} zN*OQxrSf9`r=;pjnW0#jBOpfIw^)-jQ$U>U*|lTu5L8N%^}WX7f1vMn&#v9Vb^iJw zT~uRilbllo)+7!U1lq|7bjLNW=slnOS@TM>@w8^a@khxCXCe9^#Ptic8 z{H~fs`*^J9{sAZrtn358R8$Dd{ojKM$$1#8jJm6=UdLHHKDMW9VrHdQV#!#y+EmQYA1TKXM)%2ptw7@dIKkk}bj< zhF~;ezW*r7(|=wAx6l_orvE}#g0;b1kG2qgSMWSSefkmEp*wilI?jcVz0?zs-Dd}C z5+%VS$Vwj>W1ba8Y|59MKGk>x$G`JXey#n;AJZEj#4iF?12-CDW5M0ULgm5TD|EY- z<}@()(CtQ4m6*mZc5~+^!e+rQQQ47{!nP2xmxsO4#0O&pMU+P=<% zUw|Av{+Sv_$@n7(#^d+WGqsbK)%S9|+lkOLW6`6=F9cB_K%J9xKE(x}snOjtRSXz; zCICu~8jTM!a%gc|=%(_}g|T33_Rmq>2b&kG8!pQ+n$O?;Aew_%@L`!0UM+|7>A}|B zJ;bR%-*_YVC^38>0|D-*9<;@GJE!$m~|F-YHYF{L{hrAi!j4pr0!;Mo81b5r|io})5+c#GNNByso zF4)bc__nAgX$rL5!RB^nc_g^o2)5Q3&howt(ykQkYw#)K1>ZphiSdBIA?Dpr>cNLN znobW!aMz99_zrwtKfsAziKx2;DiC;l6&M!!7CjU`5uKe-P1*fU+iRhW!|%6oZVVHZ z3FsjwA7FbI2g^LvmoA%x9|HP4BHKciHTF5njzGfUZ2zzEoe!p@UQx4=asp5Y7&8_< z>3_qsMXb_|HbKnf1Hj}D-b)H(O4g(o?LZtT=`^AOofwHe$*9iMcF_(Crl>pH|MJ?& zM)<*KYX+UV);m_)?U6a#>@>WXyYKLIb`FZ(_B&}* zsP{UR=1Cf~lSU|}QO$OMP*)m_k6H6A1o+F7b*93cw-S7u6LT&!dUTp+(GEomyN%b_ z*io^AL-c3`3;ebNA(xRj9B(^7JK&WHs+!F1wH!&axXXv)6rpnruHf9hD_d zNB2?3A#8w*AO`J6*|(6>qU<2pM}U$0NqrI4RNbv_hHg2r&l@f|v9B0ga~c*;1_Y#uw#QDylY5r4dG3Y#Pyj+ZUipiGjF>q@!tXQn3 zDxVy5cmJ*1(c?QsNm7Npk>67R2j+9?lp~daRTI`CkEk6OxQDgHkBAAnd;6_|8tsB?GjzXUQY<3>F{MghHqa$}Oo1@Tb(~Pgc=) zs$6e;mm=+Kpg4fVIQ3<9g#BS#WPhD;&<8Jj4g>Mvac#F4DB3)2-;fuLucAld4An66 zy&hkuW6=M?+Irs`?PYfKfTfX)TXBD}922?{U#G7k&Sq!zMWycz-x3K^{)~6TwvvY{>c1|Grm*W$7$=Xi_ZSU@*Z~h{h5|N22(bz&k-rLW7L+W z#du274zOx7CX#Vm_-&L==TQW3VzRd`qrEJRN28Gwv`+h%u{ZAfRMa1S(WA-qjW#g1 zEWPAAnB1S>*%`1$ZzSmmzsV$bcv!Tl_@ah|i&@q>rCfv#Ye@y+y)&INd|ET&uqW)Xe|DgKsQU9;1|3m8kMfKmM{-0C-9qRuX^}k#FKdJtA zsQ<^+|6}U^QT6|@`hQ6MKdAn8sW4 z%35{1dKI^a?oWS^n-R1G!I)EcT{9Xg$?A7k{(E7HfWpFucZQhK=zn2_u0H67D=|Gsds7!nIw9Qt=mM z3`8;kZ*{J?q_fbFW1_)@^PdPM4P)=hagr*3|QgK*mK_xD~* zb&~_9b!UN~Brkhh2MWtMd09N87RCii4^M9H-F*R0#9GRmg?V0yJKTHt&BN~>?iu%d z`1ru@jsAgEdD(nXl9x5`p5t)+1V7)cch!&a^X)qOTm()mJNJ2Qi7TIkEE8Am;J>Q2 z8B8Z8t>$@&(JyCZ^7P2U-||<tT;Nx6yKt-06iHvDepSWIN zwqEqG#KLJ38ri>9zjTH_^oMG*b~7BI_wkjbl2;r3W~A;&yk_QWTrc@bNHSxfOT5Mq zIitdjDNEQpBj^e}ZhVM0A<9Ma;`ru&*3KkCE>I_iflI7H6!y#-3$VJX$c)C*p0*C^ zRnW23(JR~63Oag!CiQG|Gm-gMo=n8x_-#NXK0A6G1t&^ps2uCkR)jJ^&U>Jx@A}%T zuR?Mz{$lBZI6+~2lC;kf(E8n4r@XfD7eB>>aES@j655yv+g68m^J3E2IJQgf@&B9D zBnyql_J_^*oSZAsiFDO~9mVDpb)VZNVjtj#)8qe23z_yq!sldaiw(pwKB@E87Vad= zpU5<{qgdMP-GVof#!v_AH?I*s5IoJq(mms5$=%cXDrxu9O2o?QZD4Pfu2h`CQC`7>B$s6>peRg`Z=MOdB0ueb4TY_#)E*eWXXQx&NvEz z-;;`ZL*DfNL|jH=<3Rj%;Mi}3-;JdUE_jjH|6=0GRw2VHo7I1V`VXo9HT(<90Pzgm zYWct@FT(D8R{&M%k_@c_KN`pamx!``joW_)k6-0%G4h|RA3Ia)n1XwixOK|i2o5Bi z_e||d8mjhrI`*m`0i3OpBVp;!O672EaIoONDmhYR1CkT|$qaxO+#m%UgqLSc4wS+&hV(yx=DcIOd`Cnb4@9(EJPLN-<)luRalP>2#A}uDGg1JX0NEsY zgj4DhuPNq?a}1t@L5(1#So~f--_JHfO54lh65+~1>T_s`K~N$jhc`(E+Wd+AUKe=IbfIb-I)p+{tp?yHFgk7E;^1xQRP3J~R3r<#;Y@LGAu zGaopblaHpzM=Y*#1{cfN%pkk`FNeqMnMdB3*S*BDcjx%?%9s%y^^WV()qpr~SXaV; z>3|x56+by&yIDFuhcf^_2Y-_OWkud_V8= z<-Po!?LB>~mfR9ouHwJ;aX3!=2SR?S#=el0*$Wca3u($|tgp`VM!9@Phdab+It2Y7 z5gueJWHkjt#!w&O4ANm@HOYIv*(6zT43k1?_xS-sq@%cq+N^>s+n=~{rGjv&`d_I2 z=cxa3^*^0|f$RVO{eK4o@4jTWeZ*zskPbK3Wn9y^O1YMD#s8<>_6pZ-uE)3@mjanTuZr1xr(^1mXML*EX&#Tuoddu7|j4xOQ;K?^|r>-13Uuww>!yE{MAs zU1>8m3e5-&&FpM%X5FP3p`w{Vvl;8z=ILB?&gQjTAui@g&HG6ED%UZtGhAcI|6;Bw zTqRs+x0{h-n;BU|r`!xfZf0W9{8PS_Um^Fean0d6c9?YBbGS0N_GiQ|qOUue{y>0fKin;SD=YMsmsR8vzR<7C;0+Q9w`> zO9&7k5R#aLX2F8JqesMY1iPpp78DT?v5N&OVxg!Y9199qkL7)4?;VQw+j9PK>O+m1V7lDj)s5UNMJ zPm+WRBtc?f5LclTD23eaL3)&}H^*o=FdA?Ne1Pdd5FiF(fCa$bHBEj?)~wmOcJ10l z)ao_P6DLx>juUaTHbqVF@Nsj3D&RK3#egL`<231tL-)rIZ^a zR0;w^xxsR21Xm`I3nfa(EG3Ll3MC4WR04N}QXUzoB+pDJ)}3*Y#&Qv9gG-1|DH96i z5LS z2J&LZMP81?uIEy49+~6R{4DnBjOCEax-Gh1~4e(1L4GeF_ zFYul#7ZSe;@Kq@gbA@ubR8I4wF>QrRB!&z8BC;q2n>eY9?lL>BkK1_X(H@h0xW0~V zK5i4nknE6zgG52x&>%UU`$4|pwI4THOq*oLr7#NBkErOZQ9hywVGvh}8i*E%l%ycu z-tOQ5X+Pk9lqgWh7X*bxDwKRByuu?RTLJ}Km3CZ-lokzvk_Z@L0s}~sY8E~?h_6)1 zB*`};jYtdrd>{xB0tu=eGDBEKO37r6V&e{$Mxq9YSP(9 z{3%C}hRfzZP#_iu2m-_TQVE~bH>pwLM#QACZP4{gVipoElfb0x{}h&w_=t=vrGZj0 zKPptJP||U!thgct_@QK)8SPAGh3Z59=qmFTGSVUuMk6s4SkW5=U@g%EC4uOCg1G(r z_t)bxKR0Dh1s75v41tV*yFp;EgiEqWi!iA=g(ygf2BZq13>9)!#pSBXff9>ixUtem z(zt?z$P*)QknAXd7y?7{HUM%UjFAZgNhXk(0y#tfC_|f$CLM=TgiOGamPfibK_Qe< zh%YH=WBy4vJ8on{8;Stuq=77ZY5vlgCtkuO(r5{tUz9->$hG7~%Me+x9K8!9LlMpm z5lVz|!S8(&X)Q$HNheRYKhn1;!j)WfNsI_kAr6#m6eabdLT6Bc!BpfzO0k(TD5M0v zIHC|vkdd0agBp&97Cux9u2mDaQI8m+uH2^{bzVLCmU_%bb)Aa(6etJ=lzcTua7#V1 zP+g}EHXNBYC3mHC>Z@zs)um8sQf*3kl7dqXp{ zmtv~AJV9OORc-mpifl@=`c*X?w1kMFwYpBA9wq;-ru?O*llHmdd0owm*A?|?K^-U| zmkRGq$!sZsJtY}UMJ?q>S95e~%PWzj_DV|UOMS(=I+B}gO1I*xwH`GLg-GC4JrXtj`W{}* z5VP<-N2eaooyfBuafhLEFlxt-qk~G4j|bZ;YO|>>6c+`gYqe`FQ;FRK22?~FO4goI zbfk1X(wV9MN|{&S=_O@RUSCCZ4@69ewyNT71=XXx{$m~0v#Pun9M7hDp@NC zyo+FXfrJLul4J(e*1XN82GdNpVL}Xf_ZIAKS~Io+JxXLkN!t;W zQ-@FFe@9ek4PAGmYO7z=r`6Y%zeCAu>misgKGs&(f6buIf||xr8|yZX84p6y%?RaudJKVLsSvW`An9L8_rs2rsvapIGME_$$yoE7A9_$A z9eA@inGuv8PcZHgMUIT!WH_aVRuYKBB?zK>J9NqPNZT-Ki$w}r$@-UgnZcG0OU7O& z#|cnHxuczZ9GzUb@)!)Fc4QEh$B2azJgL%A=@`gEs8CEa83j=$`qLp`VhspH8zL~K zSgJHK`T2LFhZbpLW}1{3&C=t)MBuT7AZsfaf9SinT%FA*aW+aFwO~jb;7~`n}LLP;C%>G=?Lg%MAe=xluPv} zN2O92AtS>#(Q<2P2l5%@?SM*fPLi(XCHiSnDcJqv~p+h1Y5ky}m!bj#t zq&p!oib5n(Ik8j~jGp<(cA(&`@M(+$NXilSH=0x1ZA z07VJO{DYLyT@(;43}Do4g-WW~S)`liWE)z64wObfE+Kj%(sU@XC_os+RYc0@sTI+% zn|pwJ^GTPHY87GnM%y9==$>T7*A8KPbkqSQL|v2kW89EF}om+B1y26H!@s+ z`owGyYBT9(deV*0iYp4{!iCI{$i$T{E8^tRiZ4?;4G|%~4VfT)n@htyJ&@F-5KW2} z1PBW16EcI`qxTcad1PK}2X@oH?t>$_0kKMB3?K)%2s{PKfbW1&FvrLO7!LRVVju=s4y*?$Pds9Z~)wa=|B)516Bhmz+vD7kOLF~kASDZOW-~51<(lN z7#RXL!r>0Q1hCV>$PDNQH~{Xz6hI8j1=a&8z+vD7a1nR})B`OL-U1j6OaWxT0$??e z0%QQ_ZnzK=3gaLBfF1*bih{Ny5@H88A{m&r!QPIFl!eHltq^MpjTvpwj#3B%c@09x z!?+Vn2crxi*v;J9aDMS3aZMirV+g@QB&GGy`O!da16zv3}NJN$`)dC*5h!6IQ0Pa$Gr zh8+?S@*)Jvz)%#7iHj$cU^a}{XpLm<~#vkVcXn})dK#- zURBHZ$c)XH5`&i=qs35mGJ%r354BUE3=u+5s3nmK6%PVK1#&Q1#a|wsHB$M%@tJgG z(Y(f_C>4)r2l!W&JxHX0sA3Et!ib;BzA3X+c1@YxU?+tV#s*f|srZG3OuDj|RSG+- zVah~M$LVy)f&_UW_0Lu_c~%7_&ykXUkqnG40!WX_9uYvH4=3?p$)X`25rP;VRJ>?` z9Ag9AAmK5wJi=_OhR{l*T@$;el0nxovPh(kJS*i07mNXfHj{Y+c|-+3x)>S4TC6Bg z$x|ZZV5D4$CJ+dPQc2{2wuHzum0Yq=%0p#HP=`?hIq^nCi6FH2MMp>fmP_QFFb8fj zEan9X#X==k#SlMFAP*tK5mOE>Ma7_L3B){+3^B3o(hAnpC@78-nMOy}N!gYlq}SR# z1+fuieTcZDVrV-TMl}{n5OxAaZx^D}<9R%-WOIp?BatoQn>NtB1hZP_NiQiok~QOo zDA}~RWbKkHNIFR+!BE_3oooymIijZA8RfVkjHg@(Q3|4klFJOZlqw!))Sxn!OO_(t z!2>$H%5Bm_H>gH%z+yFtcantFL!h0E7Y2z0TpzS-N);DuCz6&;7s?ybqX-t!1#zZV z)o5{2B@aCbQXqjE;Y|wx*O{zoAq~OFc%$#TK>D5wo| z+^kyzKgeqi?qqhtKqB*IR42k;;)ed!ij;+Ywr+SH03B5vNqJz-OM;DOJ5l035oHAn zS-qFrJrY_Vu_x^UqBp{N@DLkYD=RDRFeq(-;>aMOcVxh5X$0msv_Ee~rhOV@+PhJv zhleU7#3P3XNP}WW4iB{+**$W&B_WF8mW-Vx?SUf78vTfLyQ3_m5R81FYT3~b`Zu>% za1fS(dqa&9(0UlNR!`JAqKz^yL1?jJ)KFUQQ}Km60A)bDD&DBfOdNEpZ+PcH<^~Fd zm>(z>p`x(XJ)Vf}t)d$tu1( z+u4z_vth`41PSDTL`xb4-iy$arH1fK`VHy)W>4Css#X}E%)F9LmDC?ehZTKQQs^Ed zX-;CJWdurE<^gra$HJJxjxI8rESZ-!D~CXgp&0M2n&-bU ztcqo581%auddAA|%5$QJkB5_oJ6Xl8-ov@FtX9;;K#ssOrAr2yj- zMh+sV%^eYr^{7e;vexh>w|RPO3uLuv)fAKNo0)YCGL(?4(yg6oWb8atL03G(KRWMh zT&nIyo`ODG5z06t z9uhy39j4b{x(jY#0Ngy7HP7+QyEJCT4wa5xA#rI~3qVbAy(f$wHOYlun^El4 zsRWYuW@(})V)hO2n{`NIoP8+EAYqhcBu3yMDOrXjx*J>P%xFU1pfRoxk0_?mU}XsZ zRHGr8Es}njo)ckg;L+0}13f2tc7*<(OvuPfVU+{rO6I4Cf`s&7=AvApOJX3QE!iFh zotSD>2(dMc8|b^3e#Sr#`U1~a7~oC6sO62r7OL;qHn7gKeE1T^tAVoQGNu;td)y+L1SOu#+RtX|UrctIsg9d&GegIAzAfmE^B0HWfUT^ zBuN$+NM#c#Y_uhN70ALISqnqquxS8+R8~#f5K?YjBW-xcFK3lV#H@NGJ48m1CWY7F znCd`p!vm(Pv>h_gq+PP(C?8WBtiT0JQ9pKE)w-RkIX7P{$0iZPfz>h|kH>9T+9WIG z%+fmdiPGh-JsoAIcL|(@rs&s%@~nLU;Lkz%&`ps zm5cQ}C)N5Uz0U4|O2MWJ)dDBniHRs5Xq|YCPLwlWZ$7pOO?IBh_wXcxD1S8i0dIHy z7WQ#1$6ddLzj(2N?!Ie zmCC5P^hPPX-N5SwIt=4RdL>p0Fls_d=|xgHPNIWBn+Or|Wm2&idrp`TBmv^?>o~!O zKM@ndH#>kctRoYSRGdO6 z4#qN3hy)#WAY>ZrM&un3GRyD|+b@VUDuixdVocJZlSv_`QwCcN`(qp`sgAWGJ$B>w)Agfg_cF@`RMZ)Er+n1ev8q_EhznbPrQ3U&7kk+ zlh-=GdqJN{yVK1Ft7q6MBcuz#C~KtLdeoNKMSeS97fYVzn67(xKHxe%c++on8(x^v z?ZBmB9H#dNF}u6u%%TSbg|v2N>4b2RL_)`*NBMd?I!huWCJ2>;W6tzmt6r*pnwkI5 z8@=ek9=!B%@+5sdt!M_sk}YEY-Z$d*R$>!Qq>OD)P2z)4(Q{prK1tLY>pFqTe;*gC zi!kp+P~xWR8f2}KFadEnGJ}YZl+52HA&8Gnh)+5fnOLBttAbAk7P@WIBMjjVvpb3C z%A&@l3_a?%aI`NXQ>4xR=9wD{@x{AJ%q=jrMN&lRC;4iWKQcWdja9X&O(2&Gm>q=O z(U=?52zn&LS0VG5eXIRg>I#Z|xRgIjV?fD{*TpPd&(b|Cg%kZ_`&5aPO!-M;#kPQO zA$i}b8aMd==*EV_k_kT=y9TAv`~Z;>ItbG~`2S*$_r-XZ!&iuA3n^ujXY%%o4DA@B z`SiOr6yS%{ zEnb1rM)Gd3$#6jPlT1eF%+Qfybd<$HQw+rfcIeQ-ya86$R@|{dfrKZPLh{F;VTz&M zU`yb5fjpe+h)uh4E*+2Rzq}&KNQ2VA79|ZTrIU`>aKA@yFO}z}|?;drBGU zfD(Jv^8#uC`^?1?#Ub|O33nfAFwbfnJR6Z`6)*g;Nu1L01dOOQItt2Iy9=JNT%&{4 z4Bb4+NE?-);}39QP5~wU7XS`0m%$x7#C4_s_(oB8J=I!!7@lJQTbK)}R@$xbjFnrR zUNC2XA_AS|fGf=J5ncn&K0q7FMCS#<_r)`&H#&pheih;IwUbT|U;*<1P~v|vFdF76 zgeUP$2h3njqS|PC;~8I9=?sVY5z2$z@H)^Obo#-Z1=<2w4YDxz(|;%B7IXlV-;JcKg>CxhQL~20?gkjrvANPZiVv4 zv-Ljat}bGVcIOa(f?yn(HMyvWfR3iDmI{;|1Rr#H;U zKuLaA0B$hXB0Q|3Y|D|1$u5 z4y3!4t^av2kAV3xTmP6kl5gyEvq6bGtpUcvjLW|0`X@5e8s)#h*1rN~)PwG2w*CoE zAs4#)K-GbGzzOC`geUbs4FI2Y6WRKo1M@JLAF}liHADw;t$Pxb$kQrd9L%_cjIMuQ znAC`oS_Fb3v#2v7LQ2heVHcd+$8A7*=)OW69C!i=pY zy1Af4p4I^#F#lxh|KGL$^N63+zdyi*|DB)|umEs?xg74K{-*%#VNPJ{KL%!7nD4Ol z9}06Xn2&;z`dSXS!u$c@N&Wx3_J577{~-9Wfd5ob;(swP8s=(*C-F@O%wXQa*8g0X zhr?XV*1s6$elVW~Z2_zX++oIrZ~w9VUt;S&0RFqd|6WivU=c71<_d%-_2CC}gn1KN z|FdDXgZTkl|6wrqfjJYD@N*?F7Uqu#PvrUEwf~!J{RhKO5BN_5CH!6rxWN1t;Yt0^ z1Ukd~CtLqA z@TC4{0G(jo#@7Elm`A|;gsuMwn0YXt0W|>D0OMiCC4c|1{a<10KM?-S;eS7FJ#=(pW2>)aIzs=Tv2>kbi|0AFz zy=A}{m}?N8@Ke?PliB)Lwf|DK{-y9^3IFFnTLS9<514U*p(clFhpXLNYqp|HH91DD zG&QLXnj8%iO-HJeCda`@Q=MwB$x&;g*_ATWRwg^{Kj!Y@Sl z4kUd0R+`!*yq1ZkfQ0uq($pZ~)!S%Vlkir?ng%3%i?*8QnebFA%9wO1ls2VHX;FI6 zd-S0LwV>1~14@lDr0DO^DDvJzPG07zwqMeV&v*ySu9r5^FWG4;S?^&!6JQiqF0GTQ z{IkpS(BZHHlU?^=?E>Y2WWArBfi=Vt0Hr;gOJ*63@hX(q$cgtXv=g&=0s{x$cVmT| z{yv1=g-GUISY{VsR|i)S8xbHCD;naZUo5dHEmaR1sPG!$BslkP!60NkO`w0x+Wqavv>2NVZdtH5)Z1CQ|>fM`y zb_`hl#Bfj6)7Z|{56YGo-`(8T{iN>Mxkux)d0DR#I-Oe|WOS-iEjJ^~b=K*+635)d z^X@vnYXt_5X!-4h zqXCiAOPy~UJbXHJ#GONjt%`ftQ6*jryo#>26%?M!tUuA!{NnM+TQ+6iZn^ht){ZQ- zUOLM)`NxV|T(+pzKe}wL)UuU(=#)d91m{Qaf={k@d>W-S>j@`^dpD_%(Sw>5OODR! zl6g{V@5^(^1Mg>5?YgENGw3VTa_s@##P&&s$`M<;Tm#8A8wMQ^tQ~<*u5${Pg$IPR|0|c#lo$ z=H6Q^bie=i6v46ax4bg#lvK{{=T>L#JMJwVTeRuXh=_}K_WWJ{@LpK8$mx5rWRT19 zkhH=q|HlfR#^{Pp>I3=idIzt~HF!3BmZs-HN41_tM*6u+xh<}B&kXfFzC_B^y&rr! z`K92N;n$LxN!N;dcS|bFIB}rpO1lxqr!F)&(SO+Vv!~L;*?HXfthXnRpWE8v`APMy zcaJKEj(PCck?6aBn)G<05#RQy!dO4>#o}Q>e~b)^FgV~BHe3I;;mbdN>2B=R;`<556wxr!?G{+(m#7_gWrk18ezw$@BdYlZ+*KkbJdRGex1@wre)*@ zZR=4R_-6a=ut>d)5o)Pgy4&q-3|}t^(U!ONr8F0fJ-4aN?5yYMeUHwuH9gs4+uFMu z400b-oT_;`w`=JW{rh+CEgkjz{)aEepM^@|A9uOgHh1B)9;ZK*M`uW*$DC?k>8G?xa8UdsrN-U+VCF*rOrd={c#FcAP1hfBV>&>R*{wX0>O}uFTKA zZng2a_rBdHEHrHjvo~rL-R$jK;&U#f*u4Mj;Nw|i1sBy!LudTaSK4PtuKtOgYg=3} zE!Ff}Q=^7K8i!X}n|4?fU^C!?H?Ob8C2^2*ee}Gg`~4UR}2qqP!_is~~Iix5v$t-bk zyyny-(?#u5sclcb@iMj+*rd*w5nX8}7XK=>cf7yD(C_9hi^ZE>m?W>}x*Xdth)&Jj zS6=nuRbgF~MSRHx;jv4P52nwU@jBUMbgvuXQqd1tRC>7e&>Fu!+ zrN^{qT%P44dut^O$5}&t&YaA*-W8c(wqj6<_WHkblG|mkS!@_vlG@$2=GgFGv2}`E z*Q&62rk5Ot_bHj8=@I*WbX-97GM-2NWiy{AoRubjIGizD6JKS%FTdFKoWZ3OTle}i zUDxeT)Vr0qrnN40W4fz#k@Kp6Z<6cY<Pr z&}iZFPqFrvr(7*;l%~3!2KO=6sLk;ncYKZOL|F;8Vb;X?|E#NgbuRzM&$$VO4@RUE z-1ug*GX9Kq!qym{oTEd9`wxsuiXWzzn$+#uw@lsT1?ff}GivyT;(C{x_Qesa4fB;w z#(s5b=8k`zmx<3WaEyL5rpRWqRwZxkrA%t?;>D&p9alQens&x7G^r}uskm6|*V%(- z!jH3Qv7Kky^O+en(wIs*?QI>OvOXYv)gAB54Q(&gKl81xx%kKa{F(=e#hc9q?en$GyrzmH3KxlKuMiuR@Xfj(6}-Gp`HE9#D^?a5Cy z4M|vR)gvXjcUJnPmtT`he%RfpdpPGu)$N?{)CE8Mj%^vKn|y4(?czfj7H0iEm}n0k z;L@kFBHCK}M7hlMV_~?LO}xwO=wmYiClq}vXjxf)_eSQ8uWJ?;m5nt{Jfd&D=Hyjb z%AYG7&n$MCVXm$%w(WS)-o$!|p<%C4Ngg5UsXlRe-(n{%EC_J#a>;h#%zE>rKld9R zf0}4=(3JA2@U!;#z9k@_=#h8qt#%&eZj`z-1%D$Ksh=#dTj+!0)V_Igo z@M*nY+@&G9-tVGpT|Xa9*UfsLY`k;e4f~by9~K))`yUdP&yn0;tUfi@MeXSUUG3NT z1zN}EuF+W1)Z zsdMzMF1_zgEPxBA&; z_S&qr<6q8hSLQO_wy58_p=&o>8+Q7OzTNP5qwVz)-Qj*=*#s7QnS$ZRT)tk-YU5Gl~Z|l{M{nK_0vCLbuRrdMSlv(Lh zJ1e#fd@48VzA?J5hgX#RLp!DOwg-_hPglfwoE$g5t&YLGt^v2_?olp?-Pn0l%=HwF z**~sdo|Dl(N4#uwTtvw?TWR(BZxZp+%_XM=*W)w>0+5tW5-3yNIZ?KE+l(8YUPY-GaN?|~&A1-fPvHk|Tv-}@|S zeA3p7E=S&Ljrlae!TG$!qS2!V+;mh-Y3b0X(rr|y)vKI5LqGV0s12MnGAGhk_u;9@ ztMk5ipE+nZ@p+rMo)6-3y{d*j_bc`0PFwmmcoTW1(EYtW4 zOb3^rn)SKt-R+~#i}xyCOg}!nGQ9Zbs{tWd6`BUKU)qlCQPYz9^4;VeyWR-u{olTP zZdrA2`P=H1HiurHoi6(8eOBuqSMJ{VzC*nEXR6kuU;T_aelwl@=+Q znyQ;0pI_T!#Nzj@d|f{L;iy}`yKlkAZ=2S9zWK}JlmCpEV&5Uzj|^9Qe?0WX$R{}; zXO*l&IsmnmQci_nQg5*oOis+jqu(`_n?2nbcY{ddt`|*4yUYsoQEbc*PoR{n$eO^oK+P7O~Ab+qlrSN&` z=4|ePTN=R!ze@HTnj7;veVlRcBgTiNY27cU9d5ty!+y)x1NTKuirnL9e`@c=-d|Gc zoa}ZU{4sa;pPO@c6)G-fzUrWLB6q*T$rU#jooeyq=CNT%TOJQ+>2`FIa8*WVx1uwA zSCee5Pu^M9+Y?ToSXq)2UuJgp@l3ySZwDpilJ+kQ$;n!ERrlb#Bbmm&n*-JjcwaK) zDL=gXY1^VdYkHlyw9-RoUQpRtDQ6j{DC^wAvCkfb)eej%vJ>Bu8{NN?Sg%}?88(!Le%?^Ap1cNDf?*0bt%$5HDPyAE?N zXIvXITW92v0V&h2u5F(gGEA?KT6Roi>uK47|7P>^_fwZF+gvf?&a$P#6J>VK{5;m( zw(m7Cda2RNzg|R7nP~9ntwZQJuP-~l^nHIZd9!ODt8RWCzB`_OlDf^`sPpm4y!{Rj z+UI?bm{6EJxbG?RHJ92aCa28r)3d{vAK7!cj%pj$)f;`Tay>9&N}Fv{><^fqT;Iw1 z-shbw!fr>kX?fuK;d1Tyxr_ZTXx){i%skc3ta55rYW?t16Za*r^6!)_h!YuF7R(8E zjlQs}r9r`!(4&gpS2P6fDOtrIlcb~9|GM`*&NKL(>5#{h$M-yK*vmolCey+&s?-J5(n~$2T=bJOG?`M@*x?i(e@b$^0SI&XkQ|!aPUWvcgF4X3{yyeQ+ zf*~_rrhAr8clhNqp?gx*C<r>1}IV&09}`5k6%>}xVmWVTG{;_Z+jj6>b0If`Q;)z>nV2e zy6g5=N(Oe(Ilt5(VxL{+o^pq?=a+uhwCwHHZtR4QN9v-w4M=RYV`WTk-=t2(o4Mnz z)yMQtcg@S={J6U}*fGp(X5#1Ap?y3yCnnFR{a{|9*&%$qe_YYWwRZwuy*^pOpSV^x ze@J!a>|z%xG^cA$;a}FJ%hyc~v=V%M*iB+#h) zo%I6@-*?a!x$n&N+BW=&P0z)Hw`@rC{Mo<%meW2xzL!+(FrGDIb#&YELAUzbq#klx z*~+=nUY)xz{!COt*^Abnrce7Zwc0IdwHAp-3r5~Qcx%<=+o?n1Y#rx6oYCWg z;AiUgiY+D< z`Zg&x5-+p0``ZRD&7bvnWWN$=KeyBO{&>GoLw8eU*3mg`2D>}=KWgea@~#tas^sqr zpPp3jO9=7mlA3X2_N^AmKLn?PKWJ%|koF&~ZI$@WP|$CSu2;5p#KjJ>u=;h?fqMt< z2->vU@X7K4u}`!1ls%~Ky!meNa@~{eedCVKJ^Lz)r@j7Mr-V+YjDo^4xV3esXSpuU zbu8)l`2M_zXD?sZ-_P`lzqjN{YjM)#pzs5EKLWnaUMalxrVVGhN1&Ft_*=^nfopUO zJ`R&`ueytjWE*dd`zsT1j`gIW-TA`pi1I zWQEqr%r432Uhb{Rx<4>R``WIS)Yn0Yx(C*l8z!}%A7*eyCt?IIAxONrGH^O4Jlw0^ z3|s7%2(2E~22c~kTASXQa`w(yq*H(XW6O)a!i?g}#;2-1SLJ5?_5JknxdG2Qm6|-} zxvjo8x9;!z?!xiM1XJuXy>9K!p_KQ}SUn$Gy4P{UqfJG7?p%zx_pttNCsB3SAW8A} zw2M{DpD1JyfK9Mp5?KQown%~NyM@SbXp2Xpm}jIOodF7*w~?9P=gIet3$ zzV0o-%jB6QUk!T~UrWj;OzL)}=)j4o$49j5f5Kqlsk76E-KktB|BST{9zNV%we!x#INL}07d=XAC*C;|@?l?&Z-{-S)-%^* zHsc-{^nH9p&(z&Uee5SkjoJRC{xug4gp^LQmaMID5#`1f2#&AL36AgBU3xcVV(4?5 z8!e(YozWko-c7CT=}DSBEH7mb%RP2hzgOQAejBDA57Wpm`n5l^@V0fo;vK7|m85st z7L=dyCa|_gWZ3TQY7ratw(Dx8zBaV6murVC(WHD^Z#p-2(etd?ZRQ;9o8IE2sqKcl zYqwQA$TgVzwC0rllhUqB@7=xs;r{bcq0f$g>GC*UvM{&p%}=L$Op|6rm$yGPCVIJ! zU*)fsVX|PYVb@!6^rx>A?)dd3AYCK~|8=je__lM3-t(9ugS+o0XvF&rRX?7;Kct7C z(7)|xH_@2!BPG#K((i_t)S*;Ac*vt+?^AQqy-UvQxHRV2?fF)jzpBrktu?!z zoxjri_(m&>6TA0i7usmvEYjNOQ{vm(yg20C@!;A0FABzH%?LGB>m%*^#|i!1As1S# z-RY-UYRXfq!NNR6buhJd9AFc$s4vg^LXh~9#=Piy=gEHimwGrRUb$MlQs++o8MkjW zRV!cA7Z)7P^k|Wp9yfkRJa6r?B(vLN^Nqc{i_MK<>Sgx?HI5tlrx#5cl3CftEGe@{ zGk$U6BGaU)+o;s`8N6>#Qf&&hRz}a5@k=Z=yYFaUdehHv$EL*=yH+Qgyx4!tg`1li zE%;DXzOSmT@YRKqc#FrEjtOVXNIy8*CHb{9{6?=R*$>fB>+p1LAHN!XZQXvxX0{Qf zE;eO9T6ipA0t?cCBlUXv=V{vj@L*pqeP0Tx3*vcM{Fn8Q0{1Lu?E*1cM z3v|0rD6|dYB&6?dzcTsx!2LJ6_R0C-pJq{h?a!w*HfKzO_dtPeFl&7&Z(W~y5@MSuteq`S7ZIEvhL^4ANl7V6ei5Q zQIIksex=Q~tqIy^j^_Bp9M~@$IxIeET(_iDJ>AT2*NoB&mh)?7c(~My4I_%}Zz}T* zSJ(L&JN@Nou6AB5JO3!!alvMrqA_cEm0EkL%u6|@ixcNtAI)ytVhL^nmpnGQICStH0FtVokkoP5%BrJ{2cENY~D( zK4rG%z;^4B@FiFPxE>z+_MXi3@Ru2;(sGwR{ew$v%I9CwPQmm)aD1Jxo7%Cu3e(j5 zJyweoLV72s^mutGJ?lqF^4EuTH|%a#{g|^LH9Tj_F~1+jl66NOT5LPNpP5C*U~Q8R zo%^^9(6)|NxXQ{;c!d{!ob3{C6FB2obiucx33tmYTYkj?Kv~h^HAfPS$DUkcuK#C> z?CRn(jw{s7XSj5<6>D3Y*k9~rXt*TABWYBePpbN)*l&660R;;e+Ft6CWL`h>xZ(ak z51J%Ct?;2tzk68w6$J!rxfSdE$gSL?o#(f>$#aT$n*wf_-RG@Y*?LgonTcJ_R3&Jo z6c^5nt9vs>n4czgO^`%-r&!t<+fy zTaZ)sx^T_TydNb2#g#SYZF0)b8tgCp-eYCFy?w&5I9Z{^X;Fd6mr<22!>0X+p8Zr9 zo_Q(Gul}94?vT%}wozHS=|^`OC%<25e`DZAiyzo{fsHHqVMEjx-IhK z%-d$Io!xHs%kj43UCM^8>sK`F+J?1u`d?1lkA63NWytn< z(!q}}*bHi)%CYu6x7cdagX074h5t3M73Y~nc*Xkesq6Oltg-&tgE#G(dBAx0ZYe$I za4WZT>uOPF(kJFbufEwOU3!1_cj+}!Zx(NsS$)6bQ5X7uyt>tL$gVWm)-`#vro8&B z=sY!D{&e7$=#AaYqP#r%D%*XKM?To*9Jk_W%=~dDJ?0tcw4Hl9plj>`<(`;Poj1ZNHUBzOAng&s-`Fi+(dL)Ow)bnfe|M5g1(1> z{j1M=3HKG<4+=W_BDkA+c1W3MjcZW>*Ue;SyK&xKCX7vpjP)o9{64`-`aDhY6oXFS0oAcyqvLhn7&3;=cIvZA-<70BPXAF zsO$YDZ}mjGgJ(SFwt4QA8~4EP`OvCqT<_AU!EcvN*|Y5EjMoW+ruY6^eWujekDq24 zQ9jsoLD}b7r=B0Z{qBWgZ*k@D83K{Tnwt;3%kFmDzUUFN$*|lTxTmO1N zmF4r7)o+*Idws}e!@ni+Wh$W?-!5g@xjHnRlTm`A0G?)?*6=H)3;9^zit-C%G9-M&pvj&`*g^-ilXoqj~=E5*W9mpbn*f3*uuhqJsNjXZVkLwDGR%6(Q(G5 znLmv#ZvUg_<;Q*EuC#Y>%lDmpW4G4bnYU)eV5`;R_}Xg?%4e>-y-Kul z!Jltdjr#m#g@)Ur<(JJfYj3yof!rYV zd11-{ZuaJb!5X&??U8&1-~VA@`+WmnTkeUR6t(x1y<^Ik z-WPY;Io0i+`{UrQ+|7SxUQ`sG(CYB&q{IH)Q;Tk{ICk?%i{mYi4m;}BG9Y7>aMGEg zZlT#GuKX!_Mep#B0Q*jb(L}Ek$39?Hv0}K zc|V|gIRELNMYg9eo#<6FPsd}W^lVvB5f%W(K0KFI8}{f~S!wjZDS<|lJv;a&SM9a> z_RT1{&8Wj)W|hv#yBcz3e_Etm$LZ!RX^%~5^JTnN?M>|WoceoN`@$U^Z&&r)rC2vA z<1+WK&g?PQQU)9u*?#TSX?nv#GLJ2z3N1ZtMVsI7TP&IS{`rWC&C7&Km)&`0S9ap| zIuF0-fxYbidTF$D;*{tY4sRbBeDOLL`o8a%ovxdcFZy+}>hpYuug82h>8C3nbv8b5 z*gr4gdtUp&$%PZvn4jvKoY?+S&pz{0vVV-}pytS(YgE5(!vWW-&)eEe8DW0Feu{Oc z^(R;C{CuxX)a|gt*AKMJov&T4b-{n}%oN$(O0#yS>Ql3(x|@^^zmxxJi70MC*_;AP z!wb=_;ROaQcPWmBUJ+0O+a;yzlM^zr+>U+domd&W(EJjB%SbkFf8H642G$*8$( z)?)eYg-yv#-S>VWE3G8|Fb>+O#F>%G1nUG#D?-)@Sv z-TrmD@m&T=Dh-yN*U7Zo7jf31e2?b$rRUqZ^|n0nal+UE-Jm)HgSVyScbi zO#QWSd9LaG@BZNAg*gWA{hT<{%%jiH*cr)*n=8ye)Q%7Dp!u;V&i_@wowfXuldto2 z*G`JW8>%Xi5C$H=F@T*{J*bWVCEC8J2oPU&dLSkd0qwC#CK4I(L zTfKjsnzOW3%PZx|4MxQ``y9?aVB4XU%Ywa8=8rB1NBYm^7|Cy^|Gciaw#|3Xhi*0P z6UY2W8=C6eYUYio@$a;5eOM9rbaan3L0=rJzFNk5Id1Gc$h*hU$FH|OJa_!-)MDMOt0&j}(l)yz17$xFM;xAI^8Qm0ajC zV{X)n;}@^LdpNbzLuvWWqk461I=>uuAa-Hv0#VVSXv1Tt^LI|?#9bb`J@w}T3zIDs zHYqmxYt6hQOM~0)ANhDzem`kRzd!DscGJ~Z`2J{C<)+;RZgWhJ_V4U;cckmzlBvAv zC!a2Og(U2|k&)U(+2Yph;M0OXN;I`Tl%?X_5`dgn@*Py?AkI?(EC5@;6(DZpz*g+4 zpid9M@c|URAQTEB$TkS({3Pb%349O1+OwajQ}iwbdN(`SgP_0$VNoFY5}KS>gOgk- zcFQp9gW0DLfscDcmLwX}6~banOg^z~cdXMmp}el77cVt=jJ zpE3Ju&Hmc__A~kI*Y>wxyWf88|I4q#fBAL%FF(`&{4=A=uc4`_g`YNlI_yuE{ptPo z)Bo*9`1PNDgqQ#6NBI1|{74=BFF)*jYGrKPx;3drQgy28QdQIM)$@CG{1^6j{Lkz+ zH8uMmf1UovAKeE2!++Q%h@D%Fz^+N`=4u3X(P4*IBd`k)yS^HMt!3B=)(AWjj$`|q zu9lvrzD5gm12sbq_OkuCd&OO=KyZdIJvwTRtj6n334z%D|1Yb$osVILZWeP|5y zK?$&Hl!gH)!T62dzq`n$(2W|lUfWv?ocmtRL+kxr8Q(!od1Iz`!18Tq` zU=)xKbOUw)0l;$roTD}X6M?(H0N@xP2WkNv@k!xWR%$G89q0ob1j2y70Gtm>Z3X;* z$ABG>4a^3<0b0OPzy-Jr^Z@n&!9XR@7Dxmp0}lZk;3NSba0Jc+U4fl|04N7q0SSN?a0jpkjsmlQ4*(9|q*efK zz%`&ZkP3)^YM=wK1t5pW76U_p(?Bfn70?8h0M5WApgXV^5CRo|39t#61Uvu+1DQZ1 z@DVTo)&S#yn*a|;10sO8Kquf&U0$l|<4s;x70cZheU(mjwhd>X3hJ%KKz6N~_Y6@x! zx(#$2=rqu2pie-bfDQv426_hc4CoxtIiP=o{tZfYe`9>26PPQ70@f7Jwbbd z?g!lu8Uh*u`U>H&Hi^fss^s3qtT&?BHyP$_5)Xbor=&@Q0KpvjYs6FU8&~u>k zLFa@10{sO_dIAT43-|*@fG1!D$N;iG))nXlgaYk>DS#~y184xF0Sh1qXao2Fg8(I< zju_$rC*T5L4(tX3ffoSjX^m(p)ks$?GGGCa0^|W@K-1sv>5?=_dL%894oQOxSOE@z zKd=DE14yP9{69pXPIFcZQ|D-Kv^YAP7WlfbJ%`J&;y7^pNd{DDtI|}ZMbc=CzjpX*kG~H1>xe&7 z{F&je6aF0V$HiCh|K+>6W}nEByA#QsiX?6Fb7jc?)BohwATF*sBCN!vUH=#dxoM0z z6tYxhF12U!a1b;XP}x6f;;-5Pa~6PvSGnJ4;!f=QjA|^)qr$CIh~18}ec6k+jsQ66NY4DnEfut(TDz^Es}_JUn+ zP{6+r{2V~ssmQl0%m-obhGz(yECc?JA~>-_861H1fD!7F@Wlc3ok79_3;H5{*rgyW zw;#$+(uGWVUPoA%PrQH}jzat}b5SSjLDL}DdB8Q`9#92*2GnrbS|@-93;`T~=|C*7 z9XJKt0bT(=fOhBL5AXm&fwe$3Pz3x1Pd zdw>(bd7uC&2HpX!F5`YCz!eAq;(?vOd7uRN0Q>^FT;Whwz*v9}%mLN{$v_rxA9w~- z16o%(RCi!FFb$9bvA{|o8OQ-11C;>h8sq~o2ZjTafnXp8NC0*N`9L912D}A+04=VA zpTJOH5)ck72X+D3z+IpW_yXt@a40Td1&jfv0Wu&CSPg6i_5eqL9N;EU0=xx`Z$KV_ zQNT=q4DhOvvgv5u0%N8jMr?wU8!yu%`Gq!=mG7u z7aC+AjP3oP+4qMwX@xO&07m*jm3*JC!d0ke%iFsn&~)}4ge(N<{x+c8Vo0WCO%+KKt+ZfXx^LHnS! zAHZztAZ8DTF{??Z8V*iU^bZn?nFAJ@ovXrF;V|xohbZO==L?Vn;^|WiaBdUD9B6?{ zq@)r2;2^T3ha)rS>!cbVRVT@iBVXW&e0+tEqR7oid{`(1I5ahcJ&1su5aI3W$ee43 z(}?)w+$Ytg2LZ8sa@YlZe!xGtDW%~!P=dtpyCZ$%0#1ozK6Uy>FXW^i9B)g9mc;TK zk0&4}+>z6Zh)aOYARJLZzQ^KYT@z) zr4k&BBj%G6ryHuSxuDSnAP3p;BbC9nOgQ>r8r9jD|6s)*@K2U>o#FCbR1oR!8TZm+u=wCi5HgLeAR0Vl|2fK zHy{n($US+a3nRz12pdDw)(ZMyoaSEX^KeK@mPV77+33g~Y}a7Hp5muUmYlbSBPWBH z6J=DktdOEFSJ_0$#W>-Z-?aB7rD>D`riI4=ouEU*TeA11tI8K=(DtuTBrbb z&8WO!YwgT&(jJr0vS9M;O*Nrb+e+=&Q6UlqiLpu1k^gnV+H5{~!7 zf8@>+rl~TgH#7Zq6D3TgXVTqTGc|>Y^fxt>WV>;^mB%nTssJCg)85J5f=FG4;Vcwd zBEt~6_hS+!N5eI5Nwgz+8-}&2N>Mc~*38EJk2hYD9I1k_HPC3J@3w5_1Lq(#(==3m z38QdcJ@Sp_(JVcc7@%LGJAa&MhLhl#NYPAGrE0HXwBg{@AYlwnZ;illcVud)YE|r{5tCpDIehUWM1gWJ7hOFjiM0OM zI2WR)VQAx|W#d$N5t=JA<)o;W^m+l74DgfV4rr~|KarXBVcU>>`!rDs{J0+u&Zz}>f4)E;z>?~MLBL=D%dG#OxZ^yZ zxkXLrg3-g58m2Zzs3ecxd=3hW`>XDJ5oXyl|L!^CcarnfyQ**9N7e27-5XEl z*Y?zFH&2>z%cLA)h8i99{;HeXs<4pIrX{GnI=4d@X=a#<^PXG6oZ{}PF14qna^I_I zBYN_S!u-OXkyQ`4VN~(wAn_X-7U5`H3|&@y=F8TH+(ub}L2n(749~%^kWhW1mHsA7 zN4|D7yfard;i&`f`&2sOT}Q)KC9(P{yz2?m>e-@8Xm!}Gp<+P{{xb0%WLlJ0^^Jw$ z)cv&Sxd@q#(ZT~bc$WrUo60Nsq}Cn3epX*nT2fhuXa(WH3Yxxnd-Vhpd*)C;+R#%6 zF80?xXrY&j_f)mY$85L%V0AVI8!Qj8#_4Gl%Kjdf3NN+Vk+81&u&gah$j`}(-&?!m zH{H|I`{G@|%@YTGY*wrSL^`LZjq=H>uBECn^o|PY(x7F8&!phmU4=`KiZzIPEFd=4 zC^RBmo8EikjN5bbr-$eT5Cb0FJpYlDOW<5mzql?|tBp&zF?)Jpw0E^haD^Oo3{3>9 z!hE=oaUGjh{lCfzv8zkNQPf<~Aq{>-D~qEUdX~2CVxQ>Hlqw8UH|x+9IP|4>Hl>yd zv%{3{+K?fqHOeid@tSv4q zM-XsLyQfci_krw_Bpe1SHEnz{^pqtP;5e2_MdYD*DqT|o!7ZW`F5|0vhZ_%OQ(b0* zk)KHnn93#T>3WQrHubr%S) z0*B2H?Z3w~nT4EBez-T^S8;8|@*K-@@fwCRXs)ltF5n(<|wW>A4r8)hO$J^4j{zKwzlj z;&nG9OoHdH(z3WHx}ar+3hj7)Y~rm8%IX*ALO&1B$x5GuC;_3+x>8B0i3{Kat|rz! zdUmPS_oC7$3?>R;36&MOqK}GlB0b|o00U_K{pari0t4V05zpC@hq#pZA5?_clnaza z#JAseY)eQh`X%f@aI7AR|7*}r-+}m@C{v(;X+l`0(nV;izOTi<8ZZ92<3NDdT2MZRlt>K zv>*J9(Z~=D#oc+7^h63!F$r)4grc#h^5W`Ajp(XW$~k2!Msn!Q-OrrY zkX^G7x~=-m^aYhaE>U97&n%x;)lin1KE7uhG5-IaMU1~>O=5h{!=bwvABP(-8plgCLX*+ce{ePlm5NDh-D^xKn^`Mc%MP*=>lsA{5(%~`?>>M*In!RVwzYdUKd}AB)>3d3>30DnDc&pf|+GbHFL~d z%#x3%IA`^;=Qu@9F3;z)`CM;>_ZKnQe@1ST9|m2@pa3=kns&WDOh2N(t@kmmGBS;U zWqW<#8vPM(|R4e@hios7vw*(96ga@itVB?c|haFfxr75YZ~Nqw|YX)H9_ zjIUuhkwG3IpVKwgdTThVV=>mqnpiVi&RPJ~Re)<7+rT!ncJ?&e$~xFi*2(s;y=))b zA42>jJHtL=UF>>iq%+pp;y&kgx-Yr^=KkLOqkFBF<0bk7{U7?ae~bS!{||n;%#yis zt~@9E2b+Su!G8sx1z1#_2Ac-_z6j8KM;~b1Z5+VLE*NXfr_A?F8@SV9y==W@owm+d z+w7zEr}kOl}_XjxaVG&l@w%-C1FT1qSFBI{mjpk3!I zaN3<=UWRw4x5Zl}o)`ZiPKl-RLkUBa@cEzCpVt=wCwKl$+CNLq!z?F}rqEQHMhDPA zbTHK^r4AKz0?ntjbSr(8{*Hc0M_Y5Olh*sz2z!csr~Ryb9ELneYyzmej-6(=J9C|f zoORC2j>j*!>%9Zsi(-`D=zr+z&t}ZylFU?*s?jsbU?>}Gqpea`+Nt6_`Sz3e_v<)iK{_Z4@Lq;i6y@e`39ca@O=p7;#Q<_p~i z-BIF&;FUn@ifp@^$R zn#FR_B3i{NvGyX24*Wb{ON-{(ZGK{YWhRkSLWzg@ZY8y3A)wq!o&%n~49Rkud`!L} ziF7y}O*x%ND}Xuo(3SLQ`aIoD|CJ_KDb_%1sFh_^TP;=|c=nV0Ab*Sh+56H<7T1Zn zkT21>rLUf@Z_#(^c}B7En#ElxuGF7)rM}Ymxv|0MFm46kuXTRw9CO}tPJ)MbIbS*F zL8mFaFCW0K=jnU|AHz-VaLKdyP1xm`ynq+;3SPrwd#aRYaEnvM<`RUV4gNuFnUTc?{fO7vNcH)EY5kv9Zc{+<409 zG!7ZZjE{{Jv%h(VxxicoS@x*8#r(bb2lF%Yf|*MCkuk&|Ib;TzMeYVxz73rJ80Up= zz%lxOUjPYnVS|XTR5Q&yYo3RRUm|EDm86jYWDprlw4wy<3)C0rMS3ZywhA~K(;M|B z{c`7!%kiRgnn6d>F&FWqEIO6uK+@*Z*|dNbfiG5o#_MQ|Hqs{A3|eoYt#lP#OWWuM zx|y~E2e;A=x)Ty$58X@mK?)qChv^Y|j2@>aAP>&ak7yVD0zBe83=|WAsi{_)HNYBV z4Yty)3~Qt{2Im=SIhL>{0E4GmIaaQfZ_Ty}tRkz_s(=isvtm}G)dYpSR+j*~M@`!= z4vS;rgg7I*#92tO4!H+><%m2XKayv0o=6J@2ioR@@OK@Zd=KBt_woIpiNpK|KgN%9 zts|=2ZymG-*n{j`d$wH=@|iYUI}z1s*yB_^O&_2S2G!^~)u-y1`uoq{83g_Z>oK@G diff --git a/win32/libs/websockets.lib b/win32/libs/websockets.lib index e369204bf82d4be74e884813bb691fb7605f6f78..4b94bbcc0880813a976ea248d9bcee5616662f55 100644 GIT binary patch literal 66876 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 BfdK#j

C(s6+x$lzGIPHLJf&<5(VDG9MG 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 diff --git a/android/x86/include/websockets/libwebsockets.h b/android/x86/include/websockets/libwebsockets.h index 7efeba1f..460c7326 100644 --- a/android/x86/include/websockets/libwebsockets.h +++ b/android/x86/include/websockets/libwebsockets.h @@ -27,84 +27,31 @@ #ifdef __cplusplus #include #include -#ifdef MBED_OPERATORS -#include "mbed-drivers/mbed.h" -#include "sal-iface-eth/EthernetInterface.h" -#include "sockets/TCPListener.h" -#include "sal-stack-lwip/lwipv4_init.h" - -namespace { -} -using namespace mbed::Sockets::v0; - - -struct sockaddr_in; -struct lws; - -class lws_conn { - public: - lws_conn(): - ts(NULL), - wsi(NULL), - writeable(1), - awaiting_on_writeable(0) - { - } - -public: - void set_wsi(struct lws *_wsi) { wsi = _wsi; } - int actual_onRX(Socket *s); - void onRX(Socket *s); - void onError(Socket *s, socket_error_t err); - void onDisconnect(TCPStream *s); - void onSent(Socket *s, uint16_t len); - void serialized_writeable(struct lws *wsi); - -public: - TCPStream *ts; - -public: - struct lws *wsi; - char writeable; - char awaiting_on_writeable; -}; - -class lws_conn_listener : lws_conn { -public: - lws_conn_listener(): - srv(SOCKET_STACK_LWIP_IPV4) - { - srv.setOnError(TCPStream::ErrorHandler_t(this, - &lws_conn_listener::onError)); - } - - void start(const uint16_t port); /**< start listening */ - -protected: - void onRX(Socket *s); /**< incoming data ready */ - void onError(Socket *s, socket_error_t err); /**< if error occurs */ - void onIncoming(TCPListener *s, void *impl); /**< new connection */ - void onDisconnect(TCPStream *s); /**< disconnection */ - -public: - TCPListener srv; -}; - -#endif - +# extern "C" { #else #include #endif -#if defined(MBED_OPERATORS) || defined(LWS_WITH_ESP8266) +#include "lws_config.h" + +/* + * CARE: everything using cmake defines needs to be below here + */ + +#if defined(LWS_WITH_ESP8266) struct sockaddr_in; #define LWS_POSIX 0 #else #define LWS_POSIX 1 #endif -#include "lws_config.h" +#if defined(LWS_HAS_INTPTR_T) +#include +#define lws_intptr_t intptr_t +#else +typedef unsigned long long lws_intptr_t; +#endif #if defined(WIN32) || defined(_WIN32) #ifndef WIN32_LEAN_AND_MEAN @@ -125,7 +72,7 @@ struct sockaddr_in; // Visual studio older than 2015 and WIN_CE has only _stricmp #if (defined(_MSC_VER) && _MSC_VER < 1900) || defined(_WIN32_WCE) #define strcasecmp _stricmp -#else +#elif !defined(__MINGW32__) #define strcasecmp stricmp #endif #define getdtablesize() 30000 @@ -134,6 +81,7 @@ struct sockaddr_in; #define LWS_VISIBLE #define LWS_WARN_UNUSED_RESULT #define LWS_WARN_DEPRECATED +#define LWS_FORMAT(string_index) #ifdef LWS_DLL #ifdef LWS_INTERNAL @@ -147,8 +95,11 @@ struct sockaddr_in; #define LWS_INVALID_FILE INVALID_HANDLE_VALUE #define LWS_O_RDONLY _O_RDONLY +#define LWS_O_WRONLY _O_WRONLY +#define LWS_O_CREAT _O_CREAT +#define LWS_O_TRUNC _O_TRUNC -#if !defined(_MSC_VER) || _MSC_VER < 1900 /* Visual Studio 2015 already defines this in */ +#if !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER < 1900) /* Visual Studio 2015 already defines this in */ #define lws_snprintf _snprintf #endif @@ -156,8 +107,15 @@ struct sockaddr_in; #define __func__ __FUNCTION__ #endif +#if !defined(__MINGW32__) &&(!defined(_MSC_VER) || _MSC_VER < 1900) && !defined(snprintf) +#define snprintf(buf,len, format,...) _snprintf_s(buf, len,len, format, __VA_ARGS__) +#endif + #else /* NOT WIN32 */ #include +#if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) +#include +#endif #if defined(__NetBSD__) || defined(__FreeBSD__) #include @@ -165,14 +123,21 @@ struct sockaddr_in; #define LWS_INLINE inline #define LWS_O_RDONLY O_RDONLY +#define LWS_O_WRONLY O_WRONLY +#define LWS_O_CREAT O_CREAT +#define LWS_O_TRUNC O_TRUNC -#if !defined(MBED_OPERATORS) && !defined(LWS_WITH_ESP8266) +#if !defined(LWS_WITH_ESP8266) && !defined(OPTEE_TA) && !defined(LWS_WITH_ESP32) #include #include #define LWS_INVALID_FILE -1 #else -#define getdtablesize() (20) +#define getdtablesize() (30) +#if defined(LWS_WITH_ESP32) #define LWS_INVALID_FILE NULL +#else +#define LWS_INVALID_FILE NULL +#endif #endif #if defined(__GNUC__) @@ -186,10 +151,12 @@ struct sockaddr_in; #define LWS_VISIBLE __attribute__((visibility("default"))) #define LWS_WARN_DEPRECATED __attribute__ ((deprecated)) +#define LWS_FORMAT(string_index) __attribute__ ((format(printf, string_index, string_index+1))) #else #define LWS_VISIBLE #define LWS_WARN_UNUSED_RESULT #define LWS_WARN_DEPRECATED +#define LWS_FORMAT(string_index) #endif #if defined(__ANDROID__) @@ -199,15 +166,18 @@ struct sockaddr_in; #endif -#ifdef LWS_USE_LIBEV +#ifdef LWS_WITH_LIBEV #include -#endif /* LWS_USE_LIBEV */ -#ifdef LWS_USE_LIBUV +#endif /* LWS_WITH_LIBEV */ +#ifdef LWS_WITH_LIBUV #include #ifdef LWS_HAVE_UV_VERSION_H #include #endif -#endif /* LWS_USE_LIBUV */ +#endif /* LWS_WITH_LIBUV */ +#ifdef LWS_WITH_LIBEVENT +#include +#endif /* LWS_WITH_LIBEVENT */ #ifndef LWS_EXTERN #define LWS_EXTERN extern @@ -216,9 +186,11 @@ struct sockaddr_in; #ifdef _WIN32 #define random rand #else +#if !defined(OPTEE_TA) #include #include #endif +#endif #ifdef LWS_OPENSSL_SUPPORT @@ -231,28 +203,24 @@ struct sockaddr_in; #include #endif /* not USE_OLD_CYASSL */ #else -#if defined(LWS_USE_POLARSSL) -#include -struct lws_polarssl_context { - x509_crt ca; /**< ca */ - x509_crt certificate; /**< cert */ - rsa_context key; /**< key */ -}; -typedef struct lws_polarssl_context SSL_CTX; -typedef ssl_context SSL; -#else -#if defined(LWS_USE_MBEDTLS) +#if defined(LWS_WITH_MBEDTLS) +#if defined(LWS_WITH_ESP32) +/* this filepath is passed to us but without quotes or <> */ +#undef MBEDTLS_CONFIG_FILE +#define MBEDTLS_CONFIG_FILE +#endif #include -#else +#endif #include +#if !defined(LWS_WITH_MBEDTLS) #include -#endif /* not USE_MBEDTLS */ -#endif /* not USE_POLARSSL */ +#endif #endif /* not USE_WOLFSSL */ #endif #define CONTEXT_PORT_NO_LISTEN -1 +#define CONTEXT_PORT_NO_LISTEN_SERVER -2 /** \defgroup log Logging * @@ -277,11 +245,12 @@ enum lws_log_levels { LLL_EXT = 1 << 7, LLL_CLIENT = 1 << 8, LLL_LATENCY = 1 << 9, + LLL_USER = 1 << 10, - LLL_COUNT = 10 /* set to count of valid flags */ + LLL_COUNT = 11 /* set to count of valid flags */ }; -LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...); +LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...) LWS_FORMAT(2); LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl); /** * lwsl_timestamp: generate logging timestamp string @@ -295,15 +264,18 @@ LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl LWS_VISIBLE LWS_EXTERN int lwsl_timestamp(int level, char *p, int len); +/* these guys are unconditionally included */ + #define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__) +#define lwsl_user(...) _lws_log(LLL_USER, __VA_ARGS__) #if !defined(LWS_WITH_NO_LOGS) -/* notice, warn and log are always compiled in */ +/* notice and warn are usually included by being compiled in */ #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) #endif /* - * weaker logging can be deselected at configure time using --disable-debug + * weaker logging can be deselected by telling CMake to build in RELEASE mode * that gets rid of the overhead of checking while keeping _warn and _err * active */ @@ -315,7 +287,6 @@ lwsl_timestamp(int level, char *p, int len); #ifdef _DEBUG #if defined(LWS_WITH_NO_LOGS) /* notice, warn and log are always compiled in */ -//#define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__) #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) #endif @@ -326,17 +297,9 @@ lwsl_timestamp(int level, char *p, int len); #define lwsl_ext(...) _lws_log(LLL_EXT, __VA_ARGS__) #define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__) #define lwsl_latency(...) _lws_log(LLL_LATENCY, __VA_ARGS__) -/** - * lwsl_hexdump() - helper to hexdump a buffer (DEBUG builds only) - * - * \param buf: buffer start to dump - * \param len: length of buffer to dump - */ -LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); #else /* no debug */ #if defined(LWS_WITH_NO_LOGS) -//#define lwsl_err(...) do {} while(0) #define lwsl_warn(...) do {} while(0) #define lwsl_notice(...) do {} while(0) #endif @@ -347,10 +310,44 @@ LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); #define lwsl_ext(...) do {} while(0) #define lwsl_client(...) do {} while(0) #define lwsl_latency(...) do {} while(0) -#define lwsl_hexdump(a, b) #endif +/** + * lwsl_hexdump() - helper to hexdump a buffer + * + * \param level: one of LLL_ constants + * \param buf: buffer start to dump + * \param len: length of buffer to dump + * + * If \p level is visible, does a nice hexdump -C style dump of \p buf for + * \p len bytes. This can be extremely convenient while debugging. + */ +LWS_VISIBLE LWS_EXTERN void +lwsl_hexdump_level(int level, const void *vbuf, size_t len); + +/** + * lwsl_hexdump() - helper to hexdump a buffer (DEBUG builds only) + * + * \param buf: buffer start to dump + * \param len: length of buffer to dump + * + * Calls through to lwsl_hexdump_level(LLL_DEBUG, ... for compatability. + * It's better to use lwsl_hexdump_level(level, ... directly so you can control + * the visibility. + */ +LWS_VISIBLE LWS_EXTERN void +lwsl_hexdump(const void *buf, size_t len); + +/** + * lws_is_be() - returns nonzero if the platform is Big Endian + */ +static LWS_INLINE int lws_is_be(void) { + const int probe = ~0xff; + + return *(const char *)&probe; +} + /** * lws_set_log_level() - Set the logging bitfield * \param level: OR together the LLL_ debug contexts you want output from @@ -359,7 +356,8 @@ LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); * the default stderr one. * * log level defaults to "err", "warn" and "notice" contexts enabled and - * emission on stderr. + * emission on stderr. If stderr is a tty (according to isatty()) then + * the output is coloured according to the log level using ANSI escapes. */ LWS_VISIBLE LWS_EXTERN void lws_set_log_level(int level, @@ -377,6 +375,18 @@ lws_set_log_level(int level, LWS_VISIBLE LWS_EXTERN void lwsl_emit_syslog(int level, const char *line); +/** + * lwsl_visible() - returns true if the log level should be printed + * + * \param level: one of LLL_ log level indexes + * + * This is useful if you have to do work to generate the log content, you + * can skip the work if the log level used to print it is not actually + * enabled at runtime. + */ +LWS_VISIBLE LWS_EXTERN int +lwsl_visible(int level); + ///@} @@ -423,30 +433,7 @@ struct lws_pollfd { #define LWS_POLLOUT (FD_WRITE) #else -#if defined(MBED_OPERATORS) -/* it's a class lws_conn * */ -typedef void * lws_sockfd_type; -typedef void * lws_filefd_type; -#define lws_sockfd_valid(sfd) (!!sfd) -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 -struct lws; - -void * mbed3_create_tcp_stream_socket(void); -void mbed3_delete_tcp_stream_socket(void *sockfd); -void mbed3_tcp_stream_bind(void *sock, int port, struct lws *); -void mbed3_tcp_stream_accept(void *sock, struct lws *); -#else #if defined(LWS_WITH_ESP8266) #include @@ -476,7 +463,7 @@ void esp8266_tcp_stream_accept(lws_sockfd_type fd, struct lws *wsi); #include #include "ets_sys.h" -int ets_snprintf(char *str, size_t size, const char *format, ...); +int ets_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3); #define snprintf ets_snprintf typedef os_timer_t uv_timer_t; @@ -512,6 +499,206 @@ static inline void uv_timer_stop(uv_timer_t *t) os_timer_disarm(t); } +#else +#if defined(LWS_WITH_ESP32) + +typedef int lws_sockfd_type; +typedef int lws_filefd_type; +#define lws_sockfd_valid(sfd) (sfd >= 0) +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 + +#include +#include +#include +#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" + +#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 inline void uv_timer_init(void *l, uv_timer_t *t) +{ + (void)l; + *t = NULL; +} + +extern void esp32_uvtimer_cb(TimerHandle_t t); + +static 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 inline void uv_timer_stop(uv_timer_t *t) +{ + xTimerStop(*t, 0); +} + +static inline void uv_close(uv_handle_t *h, void *v) +{ + free(pvTimerGetTimerID((uv_timer_t)h)); + xTimerDelete(*(uv_timer_t *)h, 0); +} + +/* ESP32 helper declarations */ + +#include +#include + +#define LWS_PLUGIN_STATIC +#define LWS_MAGIC_REBOOT_TYPE_ADS 0x50001ffc +#define LWS_MAGIC_REBOOT_TYPE_REQ_FACTORY 0xb00bcafe +#define LWS_MAGIC_REBOOT_TYPE_FORCED_FACTORY 0xfaceb00b +#define LWS_MAGIC_REBOOT_TYPE_FORCED_FACTORY_BUTTON 0xf0cedfac + + +/* user code provides these */ + +extern void +lws_esp32_identify_physical_device(void); + +/* lws-plat-esp32 provides these */ + +typedef void (*lws_cb_scan_done)(uint16_t count, wifi_ap_record_t *recs, void *arg); + +enum genled_state { + LWSESP32_GENLED__INIT, + LWSESP32_GENLED__LOST_NETWORK, + LWSESP32_GENLED__NO_NETWORK, + LWSESP32_GENLED__CONN_AP, + LWSESP32_GENLED__GOT_IP, + LWSESP32_GENLED__OK, +}; + +struct lws_group_member { + struct lws_group_member *next; + uint64_t last_seen; + char model[16]; + char role[16]; + char host[32]; + char mac[20]; + int width, height; + struct ip4_addr addr; + struct ip6_addr addrv6; + uint8_t flags; +}; + +#define LWS_SYSTEM_GROUP_MEMBER_ADD 1 +#define LWS_SYSTEM_GROUP_MEMBER_CHANGE 2 +#define LWS_SYSTEM_GROUP_MEMBER_REMOVE 3 + +#define LWS_GROUP_FLAG_SELF 1 + +struct lws_esp32 { + char sta_ip[16]; + char sta_mask[16]; + char sta_gw[16]; + char serial[16]; + char opts[16]; + char model[16]; + char group[16]; + char role[16]; + char ssid[4][16]; + char password[4][32]; + char active_ssid[32]; + char access_pw[16]; + char hostname[32]; + char mac[20]; + mdns_server_t *mdns; + char region; + char inet; + char conn_ap; + + enum genled_state genled; + uint64_t genled_t; + + lws_cb_scan_done scan_consumer; + void *scan_consumer_arg; + struct lws_group_member *first; + int extant_group_members; +}; + +struct lws_esp32_image { + uint32_t romfs; + uint32_t romfs_len; + uint32_t json; + uint32_t json_len; +}; + +extern struct lws_esp32 lws_esp32; +struct lws_vhost; + +extern esp_err_t +lws_esp32_event_passthru(void *ctx, system_event_t *event); +extern void +lws_esp32_wlan_config(void); +extern void +lws_esp32_wlan_start_ap(void); +extern void +lws_esp32_wlan_start_station(void); +struct lws_context_creation_info; +extern void +lws_esp32_set_creation_defaults(struct lws_context_creation_info *info); +extern struct lws_context * +lws_esp32_init(struct lws_context_creation_info *, struct lws_vhost **pvh); +extern int +lws_esp32_wlan_nvs_get(int retry); +extern esp_err_t +lws_nvs_set_str(nvs_handle handle, const char* key, const char* value); +extern void +lws_esp32_restart_guided(uint32_t type); +extern const esp_partition_t * +lws_esp_ota_get_boot_partition(void); +extern int +lws_esp32_get_image_info(const esp_partition_t *part, struct lws_esp32_image *i, char *json, int json_len); +extern int +lws_esp32_leds_network_indication(void); + +extern uint32_t lws_esp32_get_reboot_type(void); +extern uint16_t lws_esp32_sine_interp(int n); + +/* required in external code by esp32 plat (may just return if no leds) */ +extern void lws_esp32_leds_timer_cb(TimerHandle_t th); #else typedef int lws_sockfd_type; typedef int lws_filefd_type; @@ -525,6 +712,36 @@ typedef int lws_filefd_type; #define LWS_POLLOUT (POLLOUT) #endif + +#if (defined(WIN32) || defined(_WIN32)) && !defined(__MINGW32__) +/* ... */ +#define ssize_t SSIZE_T +#endif + +#if defined(WIN32) && defined(LWS_HAVE__STAT32I64) +#include +#include +#endif + +#if defined(LWS_HAVE_STDINT_H) +#include +#else +#if defined(WIN32) || defined(_WIN32) +/* !!! >:-[ */ +typedef unsigned __int32 uint32_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int8 uint8_t; +#else +typedef unsigned int uint32_t; +typedef unsigned short uint16_t; +typedef unsigned char uint8_t; +#endif +#endif + +typedef unsigned long long lws_filepos_t; +typedef long long lws_fileofs_t; +typedef uint32_t lws_fop_flags_t; + /** struct lws_pollargs - argument structure for all external poll related calls * passed in via 'in' */ struct lws_pollargs { @@ -641,6 +858,38 @@ struct lws_context; /* needed even with extensions disabled for create context */ struct lws_extension; +/*! \defgroup lwsmeta lws-meta + * + * ##lws-meta protocol + * + * The protocol wraps other muxed connections inside one tcp connection. + * + * Commands are assigned from 0x41 up (so they are valid unicode) + */ +///@{ + +enum lws_meta_commands { + LWS_META_CMD_OPEN_SUBCHANNEL = 'A', + /**< Client requests to open new subchannel + */ + LWS_META_CMD_OPEN_RESULT, + /**< Result of client request to open new subchannel */ + LWS_META_CMD_CLOSE_NOTIFY, + /**< Notification of subchannel closure */ + LWS_META_CMD_CLOSE_RQ, + /**< client requests to close a subchannel */ + LWS_META_CMD_WRITE, + /**< connection writes something to specific channel index */ + + /****** add new things just above ---^ ******/ +}; + +/* channel numbers are transported offset by 0x20 so they are valid unicode */ + +#define LWS_META_TRANSPORT_OFFSET 0x20 + +///@} + /*! \defgroup usercb User Callback * * ##User protocol callback @@ -654,6 +903,10 @@ struct lws_extension; */ ///@{ +struct lws_ssl_info { + int where; + int ret; +}; /* * NOTE: These public enums are part of the abi. If you want to add one, @@ -820,7 +1073,7 @@ enum lws_callback_reasons { LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS = 22, /**< if configured for * including OpenSSL support, this callback allows your user code - * to load extra certifcates into the server which allow it to + * to load extra certificates into the server which allow it to * verify the validity of certificates returned by clients. user * is the server's OpenSSL SSL_CTX* */ LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION = 23, @@ -874,8 +1127,7 @@ enum lws_callback_reasons { * and with in being the extension name, len is 0 and user is * valid. Note though at this time the ESTABLISHED callback hasn't * happened yet so if you initialize user content there, user - * content during this callback might not be useful for anything. - * Notice this callback comes to protocols[0]. */ + * content during this callback might not be useful for anything. */ LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED = 26, /**< When a client * connection is being prepared to start a handshake to a server, @@ -966,45 +1218,127 @@ enum lws_callback_reasons { * connection. */ LWS_CALLBACK_WS_EXT_DEFAULTS = 39, - /**< */ + /**< Gives client connections an opportunity to adjust negotiated + * extension defaults. `user` is the extension name that was + * negotiated (eg, "permessage-deflate"). `in` points to a + * buffer and `len` is the buffer size. The user callback can + * set the buffer to a string describing options the extension + * should parse. Or just ignore for defaults. */ LWS_CALLBACK_CGI = 40, - /**< */ + /**< CGI: CGI IO events on stdin / out / err are sent here on + * protocols[0]. The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. */ LWS_CALLBACK_CGI_TERMINATED = 41, - /**< */ + /**< CGI: The related CGI process ended, this is called before + * the wsi is closed. Used to, eg, terminate chunking. + * The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. The child PID that terminated is in len. */ LWS_CALLBACK_CGI_STDIN_DATA = 42, - /**< */ + /**< CGI: Data is, to be sent to the CGI process stdin, eg from + * a POST body. The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. */ LWS_CALLBACK_CGI_STDIN_COMPLETED = 43, - /**< */ + /**< CGI: no more stdin is coming. The provided + * `lws_callback_http_dummy()` handles this and the callback + * should be directed there if you use CGI. */ LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44, - /**< */ + /**< The HTTP client connection has succeeded, and is now + * connected to the server */ LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45, - /**< */ + /**< The HTTP client connection is closing */ LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46, - /**< */ + /**< This simply indicates data was received on the HTTP client + * connection. It does NOT drain or provide the data. + * This exists to neatly allow a proxying type situation, + * where this incoming data will go out on another connection. + * If the outgoing connection stalls, we should stall processing + * the incoming data. So a handler for this in that case should + * simply set a flag to indicate there is incoming data ready + * and ask for a writeable callback on the outgoing connection. + * In the writable callback he can check the flag and then get + * and drain the waiting incoming data using lws_http_client_read(). + * This will use callbacks to LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ + * to get and drain the incoming data, where it should be sent + * back out on the outgoing connection. */ LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47, - /**< */ + /**< The client transaction completed... at the moment this + * is the same as closing since transaction pipelining on + * client side is not yet supported. */ LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48, - /**< */ + /**< This is generated by lws_http_client_read() used to drain + * incoming data. In the case the incoming data was chunked, + * it will be split into multiple smaller callbacks for each + * chunk block, removing the chunk headers. If not chunked, + * it will appear all in one callback. */ LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49, - /**< */ + /**< By default, all HTTP handling is done in protocols[0]. + * However you can bind different protocols (by name) to + * different parts of the URL space using callback mounts. This + * callback occurs in the new protocol when a wsi is bound + * to that protocol. Any protocol allocation related to the + * http transaction processing should be created then. + * These specific callbacks are necessary because with HTTP/1.1, + * a single connection may perform at series of different + * transactions at different URLs, thus the lifetime of the + * protocol bind is just for one transaction, not connection. */ LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50, - /**< */ + /**< This is called when a transaction is unbound from a protocol. + * It indicates the connection completed its transaction and may + * do something different now. Any protocol allocation related + * to the http transaction processing should be destroyed. */ LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51, - /**< */ + /**< This gives the user code a chance to forbid an http access. + * `in` points to a `struct lws_process_html_args`, which + * describes the URL, and a bit mask describing the type of + * authentication required. If the callback returns nonzero, + * the transaction ends with HTTP_STATUS_UNAUTHORIZED. */ LWS_CALLBACK_PROCESS_HTML = 52, - /**< */ + /**< This gives your user code a chance to mangle outgoing + * HTML. `in` points to a `struct lws_process_html_args` + * which describes the buffer containing outgoing HTML. + * The buffer may grow up to `.max_len` (currently +128 + * bytes per buffer). + * */ LWS_CALLBACK_ADD_HEADERS = 53, - /**< */ + /**< This gives your user code a chance to add headers to a + * transaction bound to your protocol. `in` points to a + * `struct lws_process_html_args` describing a buffer and length + * you can add headers into using the normal lws apis. + * + * Only `args->p` and `args->len` are valid, and `args->p` should + * be moved on by the amount of bytes written, if any. Eg + * + * case LWS_CALLBACK_ADD_HEADERS: + * + * struct lws_process_html_args *args = + * (struct lws_process_html_args *)in; + * + * if (lws_add_http_header_by_name(wsi, + * (unsigned char *)"set-cookie:", + * (unsigned char *)cookie, cookie_len, + * (unsigned char **)&args->p, + * (unsigned char *)args->p + args->max_len)) + * return 1; + * + * break; + */ LWS_CALLBACK_SESSION_INFO = 54, - /**< */ + /**< This is only generated by user code using generic sessions. + * It's used to get a `struct lws_session_info` filled in by + * generic sessions with information about the logged-in user. + * See the messageboard sample for an example of how to use. */ LWS_CALLBACK_GS_EVENT = 55, - /**< */ + /**< Indicates an event happened to the Generic Sessions session. + * `in` contains a `struct lws_gs_event_args` describing the event. */ LWS_CALLBACK_HTTP_PMO = 56, /**< per-mount options for this connection, called before * the normal LWS_CALLBACK_HTTP when the mount has per-mount - * options + * options. */ LWS_CALLBACK_CLIENT_HTTP_WRITEABLE = 57, /**< when doing an HTTP type client connection, you can call @@ -1015,11 +1349,76 @@ enum lws_callback_reasons { * From this callback, when you have sent everything, you should let * lws know by calling lws_client_http_body_pending(wsi, 0) */ + LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION = 58, + /**< Similar to LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION + * this callback is called during OpenSSL verification of the cert + * sent from the server to the client. It is sent to protocol[0] + * callback as no protocol has been negotiated on the connection yet. + * Notice that the wsi is set because lws_client_connect_via_info was + * successful. + * + * See http://www.openssl.org/docs/ssl/SSL_CTX_set_verify.html + * to understand more detail about the OpenSSL callback that + * generates this libwebsockets callback and the meanings of the + * arguments passed. In this callback, user is the x509_ctx, + * in is the ssl pointer and len is preverify_ok. + * + * THIS IS NOT RECOMMENDED BUT if a cert validation error shall be + * overruled and cert shall be accepted as ok, + * X509_STORE_CTX_set_error((X509_STORE_CTX*)user, X509_V_OK); must be + * called and return value must be 0 to mean the cert is OK; + * returning 1 will fail the cert in any case. + * + * This also means that if you don't handle this callback then + * the default callback action of returning 0 will not accept the + * certificate in case of a validation error decided by the SSL lib. + * + * This is expected and secure behaviour when validating certificates. + * + * Note: LCCSCF_ALLOW_SELFSIGNED and + * LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK still work without this + * callback being implemented. + */ + LWS_CALLBACK_RAW_RX = 59, + /**< RAW mode connection RX */ + LWS_CALLBACK_RAW_CLOSE = 60, + /**< RAW mode connection is closing */ + LWS_CALLBACK_RAW_WRITEABLE = 61, + /**< RAW mode connection may be written */ + LWS_CALLBACK_RAW_ADOPT = 62, + /**< RAW mode connection was adopted (equivalent to 'wsi created') */ + LWS_CALLBACK_RAW_ADOPT_FILE = 63, + /**< RAW mode file was adopted (equivalent to 'wsi created') */ + LWS_CALLBACK_RAW_RX_FILE = 64, + /**< RAW mode file has something to read */ + LWS_CALLBACK_RAW_WRITEABLE_FILE = 65, + /**< RAW mode file is writeable */ + LWS_CALLBACK_RAW_CLOSE_FILE = 66, + /**< RAW mode wsi that adopted a file is closing */ + LWS_CALLBACK_SSL_INFO = 67, + /**< SSL connections only. An event you registered an + * interest in at the vhost has occurred on a connection + * using the vhost. in is a pointer to a + * struct lws_ssl_info containing information about the + * event*/ + LWS_CALLBACK_CHILD_WRITE_VIA_PARENT = 68, + /**< Child has been marked with parent_carries_io attribute, so + * lws_write directs the to this callback at the parent, + * in is a struct lws_write_passthru containing the args + * the lws_write() was called with. + */ + LWS_CALLBACK_CHILD_CLOSING = 69, + /**< Sent to parent to notify them a child is closing / being + * destroyed. in is the child wsi. + */ + LWS_CALLBACK_CGI_PROCESS_ATTACH = 70, + /**< CGI: Sent when the CGI process is spawned for the wsi. The + * len parameter is the PID of the child process */ /****** add new things just above ---^ ******/ LWS_CALLBACK_USER = 1000, - /**< user code can use any including / above without fear of clashes */ + /**< user code can use any including above without fear of clashes */ }; @@ -1042,10 +1441,99 @@ enum lws_callback_reasons { typedef int lws_callback_function(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len); + +#define LWS_CB_REASON_AUX_BF__CGI 1 +#define LWS_CB_REASON_AUX_BF__PROXY 2 +#define LWS_CB_REASON_AUX_BF__CGI_CHUNK_END 4 +#define LWS_CB_REASON_AUX_BF__CGI_HEADERS 8 ///@} -/*! \defgroup extensions +/*! \defgroup generic hash + * ## Generic Hash related functions * + * Lws provides generic hash / digest accessors that abstract the ones + * provided by whatever OpenSSL library you are linking against. + * + * It lets you use the same code if you build against mbedtls or OpenSSL + * for example. + */ +///@{ + +#ifdef LWS_OPENSSL_SUPPORT + +#if defined(LWS_WITH_MBEDTLS) +#include +#include +#include +#endif + +#define LWS_GENHASH_TYPE_SHA1 0 +#define LWS_GENHASH_TYPE_SHA256 1 +#define LWS_GENHASH_TYPE_SHA512 2 + +struct lws_genhash_ctx { + uint8_t type; +#if defined(LWS_WITH_MBEDTLS) + union { + mbedtls_sha1_context sha1; + mbedtls_sha256_context sha256; + mbedtls_sha512_context sha512; + } u; +#else + const EVP_MD *evp_type; + EVP_MD_CTX *mdctx; +#endif +}; + +/** lws_genhash_size() - get hash size in bytes + * + * \param type: one of LWS_GENHASH_TYPE_... + * + * Returns number of bytes in this type of hash + */ +LWS_VISIBLE LWS_EXTERN size_t LWS_WARN_UNUSED_RESULT +lws_genhash_size(int type); + +/** lws_genhash_init() - prepare your struct lws_genhash_ctx for use + * + * \param ctx: your struct lws_genhash_ctx + * \param type: one of LWS_GENHASH_TYPE_... + * + * Initializes the hash context for the type you requested + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_genhash_init(struct lws_genhash_ctx *ctx, int type); + +/** lws_genhash_update() - digest len bytes of the buffer starting at in + * + * \param ctx: your struct lws_genhash_ctx + * \param in: start of the bytes to digest + * \param len: count of bytes to digest + * + * Updates the state of your hash context to reflect digesting len bytes from in + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_genhash_update(struct lws_genhash_ctx *ctx, const void *in, size_t len); + +/** lws_genhash_destroy() - copy out the result digest and destroy the ctx + * + * \param ctx: your struct lws_genhash_ctx + * \param result: NULL, or where to copy the result hash + * + * Finalizes the hash and copies out the digest. Destroys any allocations such + * that ctx can safely go out of scope after calling this. + * + * NULL result is supported so that you can destroy the ctx cleanly on error + * conditions, where there is no valid result. + */ +LWS_VISIBLE LWS_EXTERN int +lws_genhash_destroy(struct lws_genhash_ctx *ctx, void *result); + +#endif + +///@} + +/*! \defgroup extensions Extension related functions * ##Extension releated functions * * Ws defines optional extensions, lws provides the ability to implement these @@ -1217,7 +1705,7 @@ lws_set_extension_option(struct lws *wsi, const char *ext_name, * client and server for how to do. */ static LWS_INLINE LWS_WARN_DEPRECATED const struct lws_extension * -lws_get_internal_extensions() { return NULL; } +lws_get_internal_extensions(void) { return NULL; } /** * lws_ext_parse_options() - deal with parsing negotiated extension options @@ -1297,8 +1785,8 @@ struct lws_protocols { * be able to consume it all without having to return to the event * loop. That is supported in lws. * - * This also controls how much may be sent at once at the moment, - * although this is likely to change. + * If .tx_packet_size is 0, this also controls how much may be sent at once + * for backwards compatibility. */ unsigned int id; /**< ignored by lws, but useful to contain user information bound @@ -1309,6 +1797,15 @@ struct lws_protocols { * capability flags based on selected protocol version, etc. */ void *user; /**< ignored by lws, but user code can pass a pointer here it can later access from the protocol callback */ + size_t tx_packet_size; + /**< 0 indicates restrict send() size to .rx_buffer_size for backwards- + * compatibility. + * If greater than zero, a single send() is restricted to this amount + * and any remainder is buffered by lws and sent afterwards also in + * these size chunks. Since that is expensive, it's preferable + * to restrict one fragment you are trying to send to match this + * size. + */ /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility */ @@ -1369,6 +1866,23 @@ lws_protocol_vh_priv_zalloc(struct lws_vhost *vhost, const struct lws_protocols LWS_VISIBLE LWS_EXTERN void * lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *prot); +/** + * lws_adjust_protocol_psds - change a vhost protocol's per session data size + * + * \param wsi: a connection with the protocol to change + * \param new_size: the new size of the per session data size for the protocol + * + * Returns user_space for the wsi, after allocating + * + * This should not be used except to initalize a vhost protocol's per session + * data size one time, before any connections are accepted. + * + * Sometimes the protocol wraps another protocol and needs to discover and set + * its per session data size at runtime. + */ +LWS_VISIBLE LWS_EXTERN void * +lws_adjust_protocol_psds(struct lws *wsi, size_t new_size); + /** * lws_finalize_startup() - drop initial process privileges * @@ -1380,6 +1894,9 @@ lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *pr LWS_VISIBLE LWS_EXTERN int lws_finalize_startup(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN int +lws_protocol_init(struct lws_context *context); + #ifdef LWS_WITH_PLUGINS /* PLUGINS implies LIBUV */ @@ -1469,10 +1986,10 @@ struct lws_gs_event_args { ///@} -/*! \defgroup context-and-vhost +/*! \defgroup context-and-vhost context and vhost related functions + * ##Context and Vhost releated functions * \ingroup lwsapi * - * ##Context and Vhost releated functions * * LWS requires that there is one context, in which you may define multiple * vhosts. Each vhost is a virtual host, with either its own listen port @@ -1543,12 +2060,42 @@ enum lws_context_options { * even if it happened without a debugger in place. You can disable * that by giving this option. */ + LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN = (1 << 19), + /**< For backwards-compatibility reasons, by default + * lws prepends "http://" to the origin you give in the client + * connection info struct. If you give this flag when you create + * the context, only the string you give in the client connect + * info for .origin (if any) will be used directly. + */ + LWS_SERVER_OPTION_FALLBACK_TO_RAW = (1 << 20), + /**< (VH) if invalid http is coming in the first line, */ + LWS_SERVER_OPTION_LIBEVENT = (1 << 21), + /**< (CTX) Use libevent event loop */ + LWS_SERVER_OPTION_ONLY_RAW = (1 << 22), + /**< (VH) All connections to this vhost / port are RAW as soon as + * the connection is accepted, no HTTP is going to be coming. + */ + LWS_SERVER_OPTION_ALLOW_LISTEN_SHARE = (1 << 23), + /**< (VH) Set to allow multiple listen sockets on one interface + + * address + port. The default is to strictly allow only one + * listen socket at a time. This is automatically selected if you + * have multiple service threads. + */ + LWS_SERVER_OPTION_CREATE_VHOST_SSL_CTX = (1 << 24), + /**< (VH) Force setting up the vhost SSL_CTX, even though the user + * code doesn't explicitly provide a cert in the info struct. It + * implies the user code is going to provide a cert at the + * LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS callback, which + * provides the vhost SSL_CTX * in the user parameter. + */ /****** add new things just above ---^ ******/ }; #define lws_check_opt(c, f) (((c) & (f)) == (f)) +struct lws_plat_file_ops; + /** struct lws_context_creation_info - parameters to create context and /or vhost with * * This is also used to create vhosts.... if LWS_SERVER_OPTION_EXPLICIT_VHOSTS @@ -1560,10 +2107,10 @@ enum lws_context_options { */ struct lws_context_creation_info { int port; - /**< VHOST: Port to listen on... you can use CONTEXT_PORT_NO_LISTEN to - * suppress listening on any port, that's what you want if you are - * not running a websocket server at all but just using it as a - * client */ + /**< VHOST: Port to listen on. Use CONTEXT_PORT_NO_LISTEN to suppress + * listening for a client. Use CONTEXT_PORT_NO_LISTEN_SERVER if you are + * writing a server but you are using \ref sock-adopt instead of the + * built-in listener */ const char *iface; /**< VHOST: NULL to bind the listen socket to all interfaces, or the * interface name, eg, "eth2" @@ -1582,23 +2129,38 @@ struct lws_context_creation_info { /**< CONTEXT: NULL or struct lws_token_limits pointer which is initialized * with a token length limit for each possible WSI_TOKEN_ */ const char *ssl_private_key_password; - /**< VHOST: NULL or the passphrase needed for the private key */ + /**< VHOST: NULL or the passphrase needed for the private key. (For + * backwards compatibility, this can also be used to pass the client + * cert passphrase when setting up a vhost client SSL context, but it is + * preferred to use .client_ssl_private_key_password for that.) */ const char *ssl_cert_filepath; /**< VHOST: If libwebsockets was compiled to use ssl, and you want * to listen using SSL, set to the filepath to fetch the - * server cert from, otherwise NULL for unencrypted */ + * server cert from, otherwise NULL for unencrypted. (For backwards + * compatibility, this can also be used to pass the client certificate + * when setting up a vhost client SSL context, but it is preferred to + * use .client_ssl_cert_filepath for that.) */ const char *ssl_private_key_filepath; /**< VHOST: filepath to private key if wanting SSL mode; - * if this is set to NULL but sll_cert_filepath is set, the + * if this is set to NULL but ssl_cert_filepath is set, the * OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY callback is called * to allow setting of the private key directly via openSSL - * library calls */ + * library calls. (For backwards compatibility, this can also be used + * to pass the client cert private key filepath when setting up a + * vhost client SSL context, but it is preferred to use + * .client_ssl_private_key_filepath for that.) */ const char *ssl_ca_filepath; - /**< VHOST: CA certificate filepath or NULL */ + /**< VHOST: CA certificate filepath or NULL. (For backwards + * compatibility, this can also be used to pass the client CA + * filepath when setting up a vhost client SSL context, + * but it is preferred to use .client_ssl_ca_filepath for that.) */ const char *ssl_cipher_list; /**< VHOST: List of valid ciphers to use (eg, * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" - * or you can leave it as NULL to get "DEFAULT" */ + * or you can leave it as NULL to get "DEFAULT" (For backwards + * compatibility, this can also be used to pass the client cipher + * list when setting up a vhost client SSL context, + * but it is preferred to use .client_ssl_cipher_list for that.)*/ const char *http_proxy_address; /**< VHOST: If non-NULL, attempts to proxy via the given address. * If proxy auth is required, use format "username:password\@server:port" */ @@ -1611,8 +2173,14 @@ struct lws_context_creation_info { unsigned int options; /**< VHOST + CONTEXT: 0, or LWS_SERVER_OPTION_... bitfields */ void *user; - /**< CONTEXT: optional user pointer that can be recovered via the context - * pointer using lws_context_user */ + /**< VHOST + CONTEXT: optional user pointer that will be associated + * with the context when creating the context (and can be retrieved by + * lws_context_user(context), or with the vhost when creating the vhost + * (and can be retrieved by lws_vhost_user(vhost)). You will need to + * use LWS_SERVER_OPTION_EXPLICIT_VHOSTS and create the vhost separately + * if you care about giving the context and vhost different user pointer + * values. + */ int ka_time; /**< CONTEXT: 0 for no TCP keepalive, otherwise apply this keepalive * timeout to all libwebsocket sockets, client or server */ @@ -1708,6 +2276,110 @@ struct lws_context_creation_info { /**< VHOST: pointer to optional linked list of per-vhost * canned headers that are added to server responses */ + const struct lws_protocol_vhost_options *reject_service_keywords; + /**< CONTEXT: Optional list of keywords and rejection codes + text. + * + * The keywords are checked for existing in the user agent string. + * + * Eg, "badrobot" "404 Not Found" + */ + void *external_baggage_free_on_destroy; + /**< CONTEXT: NULL, or pointer to something externally malloc'd, that + * should be freed when the context is destroyed. This allows you to + * automatically sync the freeing action to the context destruction + * action, so there is no need for an external free() if the context + * succeeded to create. + */ + + const char *client_ssl_private_key_password; + /**< VHOST: Client SSL context init: NULL or the passphrase needed + * for the private key */ + const char *client_ssl_cert_filepath; + /**< VHOST: Client SSL context init:T he certificate the client + * should present to the peer on connection */ + const char *client_ssl_private_key_filepath; + /**< VHOST: Client SSL context init: filepath to client private key + * if this is set to NULL but client_ssl_cert_filepath is set, you + * can handle the LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS + * callback of protocols[0] to allow setting of the private key directly + * via openSSL library calls */ + const char *client_ssl_ca_filepath; + /**< VHOST: Client SSL context init: CA certificate filepath or NULL */ + const char *client_ssl_cipher_list; + /**< VHOST: Client SSL context init: List of valid ciphers to use (eg, + * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" + * or you can leave it as NULL to get "DEFAULT" */ + + const struct lws_plat_file_ops *fops; + /**< CONTEXT: NULL, or pointer to an array of fops structs, terminated + * by a sentinel with NULL .open. + * + * If NULL, lws provides just the platform file operations struct for + * backwards compatibility. + */ + int simultaneous_ssl_restriction; + /**< CONTEXT: 0 (no limit) or limit of simultaneous SSL sessions possible.*/ + const char *socks_proxy_address; + /**< VHOST: If non-NULL, attempts to proxy via the given address. + * If proxy auth is required, use format "username:password\@server:port" */ + unsigned int socks_proxy_port; + /**< VHOST: If socks_proxy_address was non-NULL, uses this port */ +#if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) + cap_value_t caps[4]; + /**< CONTEXT: array holding Linux capabilities you want to + * continue to be available to the server after it transitions + * to a noprivileged user. Usually none are needed but for, eg, + * .bind_iface, CAP_NET_RAW is required. This gives you a way + * to still have the capability but drop root. + */ + char count_caps; + /**< CONTEXT: count of Linux capabilities in .caps[]. 0 means + * no capabilities will be inherited from root (the default) */ +#endif + int bind_iface; + /**< VHOST: nonzero to strictly bind sockets to the interface name in + * .iface (eg, "eth2"), using SO_BIND_TO_DEVICE. + * + * Requires SO_BINDTODEVICE support from your OS and CAP_NET_RAW + * capability. + * + * Notice that common things like access network interface IP from + * your local machine use your lo / loopback interface and will be + * disallowed by this. + */ + int ssl_info_event_mask; + /**< VHOST: mask of ssl events to be reported on LWS_CALLBACK_SSL_INFO + * callback for connections on this vhost. The mask values are of + * the form SSL_CB_ALERT, defined in openssl/ssl.h. The default of + * 0 means no info events will be reported. + */ + unsigned int timeout_secs_ah_idle; + /**< VHOST: seconds to allow a client to hold an ah without using it. + * 0 defaults to 10s. */ + unsigned short ip_limit_ah; + /**< CONTEXT: max number of ah a single IP may use simultaneously + * 0 is no limit. This is a soft limit: if the limit is + * reached, connections from that IP will wait in the ah + * waiting list and not be able to acquire an ah until + * a connection belonging to the IP relinquishes one it + * already has. + */ + unsigned short ip_limit_wsi; + /**< CONTEXT: max number of wsi a single IP may use simultaneously. + * 0 is no limit. This is a hard limit, connections from + * the same IP will simply be dropped once it acquires the + * amount of simultaneous wsi / accepted connections + * given here. + */ + uint32_t http2_settings[7]; + /**< CONTEXT: after context creation http2_settings[1] thru [6] have + * been set to the lws platform default values. + * VHOST: if http2_settings[0] is nonzero, the values given in + * http2_settings[1]..[6] are used instead of the lws + * platform default values. + * Just leave all at 0 if you don't care. + */ + /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility * @@ -1744,7 +2416,7 @@ struct lws_context_creation_info { * * HTTP requests are sent always to the FIRST protocol in protocol, since * at that time websocket protocol has not been negotiated. Other - * protocols after the first one never see any HTTP callack activity. + * protocols after the first one never see any HTTP callback activity. * * The server created is a simple http server by default; part of the * websocket standard is upgrading this http connection to a websocket one. @@ -1767,6 +2439,43 @@ lws_create_context(struct lws_context_creation_info *info); LWS_VISIBLE LWS_EXTERN void lws_context_destroy(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN void +lws_context_destroy2(struct lws_context *context); + +typedef int (*lws_reload_func)(void); + +/** + * lws_context_deprecate() - Deprecate the websocket context + * + * \param context: Websocket context + * \param cb: Callback notified when old context listen sockets are closed + * + * This function is used on an existing context before superceding it + * with a new context. + * + * It closes any listen sockets in the context, so new connections are + * not possible. + * + * And it marks the context to be deleted when the number of active + * connections into it falls to zero. + * + * Otherwise if you attach the deprecated context to the replacement + * context when it has been created using lws_context_attach_deprecated() + * both any deprecated and the new context will service their connections. + * + * This is aimed at allowing seamless configuration reloads. + * + * The callback cb will be called after the listen sockets are actually + * closed and may be reopened. In the callback the new context should be + * configured and created. (With libuv, socket close happens async after + * more loop events). + */ +LWS_VISIBLE LWS_EXTERN void +lws_context_deprecate(struct lws_context *context, lws_reload_func cb); + +LWS_VISIBLE LWS_EXTERN int +lws_context_is_deprecated(struct lws_context *context); + /** * lws_set_proxy() - Setups proxy to lws_context. * \param vhost: pointer to struct lws_vhost you want set proxy for @@ -1787,6 +2496,25 @@ lws_context_destroy(struct lws_context *context); LWS_VISIBLE LWS_EXTERN int lws_set_proxy(struct lws_vhost *vhost, const char *proxy); +/** + * lws_set_socks() - Setup socks to lws_context. + * \param vhost: pointer to struct lws_vhost you want set socks for + * \param socks: pointer to c string containing socks in format address:port + * + * Returns 0 if socks string was parsed and socks was setup. + * Returns -1 if socks is NULL or has incorrect format. + * + * This is only required if your OS does not provide the socks_proxy + * environment variable (eg, OSX) + * + * IMPORTANT! You should call this function right after creation of the + * lws_context and before call to connect. If you call this + * function after connect behavior is undefined. + * This function will override proxy settings made on lws_context + * creation with genenv() call. + */ +LWS_VISIBLE LWS_EXTERN int +lws_set_socks(struct lws_vhost *vhost, const char *socks); struct lws_vhost; @@ -1799,10 +2527,26 @@ struct lws_vhost; * members of the info struct. You can create many vhosts inside one context * if you created the context with the option LWS_SERVER_OPTION_EXPLICIT_VHOSTS */ -LWS_EXTERN LWS_VISIBLE struct lws_vhost * +LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_create_vhost(struct lws_context *context, struct lws_context_creation_info *info); +/** + * lws_vhost_destroy() - Destroy a vhost (virtual server context) + * + * \param vh: pointer to result of lws_create_vhost() + * + * This function destroys a vhost. Normally, if you just want to exit, + * then lws_destroy_context() will take care of everything. If you want + * to destroy an individual vhost and all connections and allocations, you + * can do it with this. + * + * If the vhost has a listen sockets shared by other vhosts, it will be given + * to one of the vhosts sharing it rather than closed. + */ +LWS_VISIBLE LWS_EXTERN void +lws_vhost_destroy(struct lws_vhost *vh); + /** * lwsws_get_config_globals() - Parse a JSON server config file * \param info: pointer to struct with parameters @@ -1869,9 +2613,24 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len); * \param context: the context * \param buf: buffer to fill with JSON * \param len: max length of buf + * \param hide_vhosts: nonzero to not provide per-vhost mount etc information + * + * Generates a JSON description of vhost state into buf */ LWS_VISIBLE LWS_EXTERN int -lws_json_dump_context(const struct lws_context *context, char *buf, int len); +lws_json_dump_context(const struct lws_context *context, char *buf, int len, + int hide_vhosts); + +/** + * lws_vhost_user() - get the user data associated with the vhost + * \param vhost: Websocket vhost + * + * This returns the optional user pointer that can be attached to + * a vhost when it was created. Lws never dereferences this pointer, it only + * sets it when the vhost is created, and returns it using this api. + */ +LWS_VISIBLE LWS_EXTERN void * +lws_vhost_user(struct lws_vhost *vhost); /** * lws_context_user() - get the user data associated with the context @@ -1909,8 +2668,8 @@ struct lws_protocol_vhost_options { * served from a filesystem, or it is a cgi etc. */ enum lws_mount_protocols { - LWSMPRO_HTTP = 0, /**< not supported yet */ - LWSMPRO_HTTPS = 1, /**< not supported yet */ + LWSMPRO_HTTP = 0, /**< http reverse proxy */ + LWSMPRO_HTTPS = 1, /**< https reverse proxy */ LWSMPRO_FILE = 2, /**< serve from filesystem directory */ LWSMPRO_CGI = 3, /**< pass to CGI to handle */ LWSMPRO_REDIR_HTTP = 4, /**< redirect to http:// url */ @@ -1956,14 +2715,27 @@ struct lws_http_mount { unsigned char origin_protocol; /**< one of enum lws_mount_protocols */ unsigned char mountpoint_len; /**< length of mountpoint string */ + + const char *basic_auth_login_file; + /**nxt; \ + } \ +} + +/** + * lws_start_foreach_llp(): linkedlist pointer iterator helper start + * + * \param type: type of iteration, eg, struct xyz ** + * \param it: iterator var name to create + * \param start: start of list + * + * This helper creates an iterator and starts a while (it) { + * loop. The iterator runs through the linked list starting at the + * address of start and ends when it gets a NULL. + * The while loop should be terminated using lws_start_foreach_llp(). + * + * This helper variant iterates using a pointer to the previous linked-list + * element. That allows you to easily delete list members by rewriting the + * previous pointer to the element's next pointer. + */ +#define lws_start_foreach_llp(type, it, start)\ +{ \ + type it = &(start); \ + while (*(it)) { + +/** + * lws_end_foreach_llp(): linkedlist pointer iterator helper end + * + * \param it: same iterator var name given when starting + * \param nxt: member name in the iterator pointing to next list element + * + * This helper is the partner for lws_start_foreach_llp() that ends the + * while loop. + */ + +#define lws_end_foreach_llp(it, nxt) \ + it = &(*(it))->nxt; \ + } \ +} + /** * lws_snprintf(): snprintf that truncates the returned length too * @@ -3620,7 +4729,7 @@ lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr, * reach the limit the reported length doesn't exceed the limit. */ LWS_VISIBLE LWS_EXTERN int -lws_snprintf(char *str, size_t size, const char *format, ...); +lws_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3); /** * lws_get_random(): fill a buffer with platform random data @@ -3636,7 +4745,7 @@ lws_snprintf(char *str, size_t size, const char *format, ...); LWS_VISIBLE LWS_EXTERN int lws_get_random(struct lws_context *context, void *buf, int len); /** - * lws_daemonize(): fill a buffer with platform random data + * lws_daemonize(): make current process run in the background * * \param _lock_path: the filepath to write the lock file * @@ -3661,6 +4770,19 @@ lws_get_library_version(void); LWS_VISIBLE LWS_EXTERN void * lws_wsi_user(struct lws *wsi); +/** + * lws_wsi_set_user() - set the user data associated with the client connection + * \param wsi: lws connection + * \param user: user data + * + * By default lws allocates this and it's not legal to externally set it + * yourself. However client connections may have it set externally when the + * connection is created... if so, this api can be used to modify it at + * runtime additionally. + */ +LWS_VISIBLE LWS_EXTERN void +lws_set_wsi_user(struct lws *wsi, void *user); + /** * lws_parse_uri: cut up prot:/ads:port/path into pieces * Notice it does so by dropping '\0' into input string @@ -3683,7 +4805,7 @@ LWS_VISIBLE LWS_EXTERN unsigned long lws_now_secs(void); /** - * lws_get_context - Allow geting lws_context from a Websocket connection + * lws_get_context - Allow getting lws_context from a Websocket connection * instance * * With this function, users can access context in the callback function. @@ -3725,6 +4847,45 @@ lws_get_parent(const struct lws *wsi); LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT lws_get_child(const struct lws *wsi); +/** + * lws_parent_carries_io() - mark wsi as needing to send messages via parent + * + * \param wsi: child lws connection + */ + +LWS_VISIBLE LWS_EXTERN void +lws_set_parent_carries_io(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void * +lws_get_opaque_parent_data(const struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void +lws_set_opaque_parent_data(struct lws *wsi, void *data); + +LWS_VISIBLE LWS_EXTERN int +lws_get_child_pending_on_writable(const struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void +lws_clear_child_pending_on_writable(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN int +lws_get_close_length(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN unsigned char * +lws_get_close_payload(struct lws *wsi); + +/** + * lws_get_network_wsi() - Returns wsi that has the tcp connection for this wsi + * + * \param wsi: wsi you have + * + * Returns wsi that has the tcp connection (which may be the incoming wsi) + * + * HTTP/1 connections will always return the incoming wsi + * HTTP/2 connections may return a different wsi that has the tcp connection + */ +LWS_VISIBLE LWS_EXTERN +struct lws *lws_get_network_wsi(struct lws *wsi); /* * \deprecated DEPRECATED Note: this is not normally needed as a user api. @@ -3732,7 +4893,7 @@ lws_get_child(const struct lws *wsi); * useful when integrating with other app poll loop service code. */ LWS_VISIBLE LWS_EXTERN int -lws_read(struct lws *wsi, unsigned char *buf, size_t len); +lws_read(struct lws *wsi, unsigned char *buf, lws_filepos_t len); /** * lws_set_allocator() - custom allocator support @@ -3742,7 +4903,7 @@ lws_read(struct lws *wsi, unsigned char *buf, size_t len); * Allows you to replace the allocator (and deallocator) used by lws */ LWS_VISIBLE LWS_EXTERN void -lws_set_allocator(void *(*realloc)(void *ptr, size_t size)); +lws_set_allocator(void *(*realloc)(void *ptr, size_t size, const char *reason)); ///@} /** \defgroup wsstatus Websocket status APIs @@ -3762,11 +4923,20 @@ lws_send_pipe_choked(struct lws *wsi); /** * lws_is_final_fragment() - tests if last part of ws message + * * \param wsi: lws connection */ LWS_VISIBLE LWS_EXTERN int lws_is_final_fragment(struct lws *wsi); +/** + * lws_is_first_fragment() - tests if first part of ws message + * + * \param wsi: lws connection + */ +LWS_VISIBLE LWS_EXTERN int +lws_is_first_fragment(struct lws *wsi); + /** * lws_get_reserved_bits() - access reserved bits of ws frame * \param wsi: lws connection @@ -3821,8 +4991,242 @@ lws_is_ssl(struct lws *wsi); */ LWS_VISIBLE LWS_EXTERN int lws_is_cgi(struct lws *wsi); + +#ifdef LWS_OPENSSL_SUPPORT +/** + * lws_get_ssl() - Return wsi's SSL context structure + * \param wsi: websocket connection + * + * Returns pointer to the SSL library's context structure + */ +LWS_VISIBLE LWS_EXTERN SSL* +lws_get_ssl(struct lws *wsi); +#endif ///@} +/** \defgroup lws_ring LWS Ringbuffer APIs + * ##lws_ring: generic ringbuffer struct + * + * Provides an abstract ringbuffer api supporting one head and one or an + * unlimited number of tails. + * + * All of the members are opaque and manipulated by lws_ring_...() apis. + * + * The lws_ring and its buffer is allocated at runtime on the heap, using + * + * - lws_ring_create() + * - lws_ring_destroy() + * + * It may contain any type, the size of the "element" stored in the ring + * buffer and the number of elements is given at creation time. + * + * When you create the ringbuffer, you can optionally provide an element + * destroy callback that frees any allocations inside the element. This is then + * automatically called for elements with no tail behind them, ie, elements + * which don't have any pending consumer are auto-freed. + * + * Whole elements may be inserted into the ringbuffer and removed from it, using + * + * - lws_ring_insert() + * - lws_ring_consume() + * + * You can find out how many whole elements are free or waiting using + * + * - lws_ring_get_count_free_elements() + * - lws_ring_get_count_waiting_elements() + * + * In addition there are special purpose optional byte-centric apis + * + * - lws_ring_next_linear_insert_range() + * - lws_ring_bump_head() + * + * which let you, eg, read() directly into the ringbuffer without needing + * an intermediate bounce buffer. + * + * The accessors understand that the ring wraps, and optimizes insertion and + * consumption into one or two memcpy()s depending on if the head or tail + * wraps. + * + * lws_ring only supports a single head, but optionally multiple tails with + * an API to inform it when the "oldest" tail has moved on. You can give + * NULL where-ever an api asks for a tail pointer, and it will use an internal + * single tail pointer for convenience. + * + * The "oldest tail", which is the only tail if you give it NULL instead of + * some other tail, is used to track which elements in the ringbuffer are + * still unread by anyone. + * + * - lws_ring_update_oldest_tail() + */ +///@{ +struct lws_ring; + +/** + * lws_ring_create(): create a new ringbuffer + * + * \param element_len: the size in bytes of one element in the ringbuffer + * \param count: the number of elements the ringbuffer can contain + * \param destroy_element: NULL, or callback to be called for each element + * that is removed from the ringbuffer due to the + * oldest tail moving beyond it + * + * Creates the ringbuffer and allocates the storage. Returns the new + * lws_ring *, or NULL if the allocation failed. + * + * If non-NULL, destroy_element will get called back for every element that is + * retired from the ringbuffer after the oldest tail has gone past it, and for + * any element still left in the ringbuffer when it is destroyed. It replaces + * all other element destruction code in your user code. + */ +LWS_VISIBLE LWS_EXTERN struct lws_ring * +lws_ring_create(size_t element_len, size_t count, + void (*destroy_element)(void *element)); + +/** + * lws_ring_destroy(): destroy a previously created ringbuffer + * + * \param ring: the struct lws_ring to destroy + * + * Destroys the ringbuffer allocation and the struct lws_ring itself. + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_destroy(struct lws_ring *ring); + +/** + * lws_ring_get_count_free_elements(): return how many elements can fit + * in the free space + * + * \param ring: the struct lws_ring to report on + * + * Returns how much room is left in the ringbuffer for whole element insertion. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_get_count_free_elements(struct lws_ring *ring); + +/** + * lws_ring_get_count_waiting_elements(): return how many elements can be consumed + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * Returns how many elements are waiting to be consumed from the perspective + * of the tail pointer given. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_get_count_waiting_elements(struct lws_ring *ring, uint32_t *tail); + +/** + * lws_ring_insert(): attempt to insert up to max_count elements from src + * + * \param ring: the struct lws_ring to report on + * \param src: the array of elements to be inserted + * \param max_count: the number of available elements at src + * + * Attempts to insert as many of the elements at src as possible, up to the + * maximum max_count. Returns the number of elements actually inserted. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_insert(struct lws_ring *ring, const void *src, size_t max_count); + +/** + * lws_ring_consume(): attempt to copy out and remove up to max_count elements + * to src + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * \param dest: the array of elements to be inserted. or NULL for no copy + * \param max_count: the number of available elements at src + * + * Attempts to copy out as many waiting elements as possible into dest, from + * the perspective of the given tail, up to max_count. If dest is NULL, the + * copying out is not done but the elements are logically consumed as usual. + * NULL dest is useful in combination with lws_ring_get_element(), where you + * can use the element direct from the ringbuffer and then call this with NULL + * dest to logically consume it. + * + * Increments the tail position according to how many elements could be + * consumed. + * + * Returns the number of elements consumed. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_consume(struct lws_ring *ring, uint32_t *tail, void *dest, + size_t max_count); + +/** + * lws_ring_get_element(): get a pointer to the next waiting element for tail + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * Points to the next element that tail would consume, directly in the + * ringbuffer. This lets you write() or otherwise use the element without + * having to copy it out somewhere first. + * + * After calling this, you must call lws_ring_consume(ring, &tail, NULL, 1) + * which will logically consume the element you used up and increment your + * tail (tail may also be NULL there if you use a single tail). + * + * Returns NULL if no waiting element, or a const void * pointing to it. + */ +LWS_VISIBLE LWS_EXTERN const void * +lws_ring_get_element(struct lws_ring *ring, uint32_t *tail); + +/** + * lws_ring_update_oldest_tail(): free up elements older than tail for reuse + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * If you are using multiple tails, you must use this API to inform the + * lws_ring when none of the tails still need elements in the fifo any more, + * by updating it when the "oldest" tail has moved on. + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_update_oldest_tail(struct lws_ring *ring, uint32_t tail); + +/** + * lws_ring_get_oldest_tail(): get current oldest available data index + * + * \param ring: the struct lws_ring to report on + * + * If you are initializing a new ringbuffer consumer, you can set its tail to + * this to start it from the oldest ringbuffer entry still available. + */ +LWS_VISIBLE LWS_EXTERN uint32_t +lws_ring_get_oldest_tail(struct lws_ring *ring); + +/** + * lws_ring_next_linear_insert_range(): used to write directly into the ring + * + * \param ring: the struct lws_ring to report on + * \param start: pointer to a void * set to the start of the next ringbuffer area + * \param bytes: pointer to a size_t set to the max length you may use from *start + * + * This provides a low-level, bytewise access directly into the ringbuffer + * allowing direct insertion of data without having to use a bounce buffer. + * + * The api reports the position and length of the next linear range that can + * be written in the ringbuffer, ie, up to the point it would wrap, and sets + * *start and *bytes accordingly. You can then, eg, directly read() into + * *start for up to *bytes, and use lws_ring_bump_head() to update the lws_ring + * with what you have done. + * + * Returns nonzero if no insertion is currently possible. + */ +LWS_VISIBLE LWS_EXTERN int +lws_ring_next_linear_insert_range(struct lws_ring *ring, void **start, + size_t *bytes); + +/** + * lws_ring_bump_head(): used to write directly into the ring + * + * \param ring: the struct lws_ring to operate on + * \param bytes: the number of bytes you inserted at the current head + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_bump_head(struct lws_ring *ring, size_t bytes); +///@} /** \defgroup sha SHA and B64 helpers * ##SHA and B64 helpers @@ -3880,7 +5284,7 @@ lws_b64_decode_string(const char *in, char *out, int out_size); * However for most cases, binding the cgi to http in and out, the default * lws implementation already does the right thing. */ -#ifdef LWS_WITH_CGI + enum lws_enum_stdinouterr { LWS_STDIN = 0, LWS_STDOUT = 1, @@ -3893,6 +5297,8 @@ enum lws_cgi_hdr_state { LCHS_LF1, LCHS_CR2, LCHS_LF2, + LHCS_RESPONSE, + LHCS_DUMP_HEADERS, LHCS_PAYLOAD, LCHS_SINGLE_0A, }; @@ -3905,13 +5311,14 @@ struct lws_cgi_args { int len; /**< length */ }; - +#ifdef LWS_WITH_CGI /** * lws_cgi: spawn network-connected cgi process * * \param wsi: connection to own the process * \param exec_array: array of "exec-name" "arg1" ... "argn" NULL - * \param script_uri_path_len: how many chars on the left of the uri are the path to the cgi + * \param script_uri_path_len: how many chars on the left of the uri are the + * path to the cgi, or -1 to spawn without URL-related env vars * \param timeout_secs: seconds script should be allowed to run * \param mp_cgienv: pvo list with per-vhost cgi options to put in env */ @@ -3935,6 +5342,16 @@ lws_cgi_write_split_stdout_headers(struct lws *wsi); */ LWS_VISIBLE LWS_EXTERN int lws_cgi_kill(struct lws *wsi); + +/** + * lws_cgi_get_stdwsi: get wsi for stdin, stdout, or stderr + * + * \param wsi: parent wsi that has cgi + * \param ch: which of LWS_STDIN, LWS_STDOUT or LWS_STDERR + */ +LWS_VISIBLE LWS_EXTERN struct lws * +lws_cgi_get_stdwsi(struct lws *wsi, enum lws_enum_stdinouterr ch); + #endif ///@} @@ -3961,24 +5378,85 @@ lws_cgi_kill(struct lws *wsi); * These provide platform-agnostic ways to deal with filesystem access in the * library and in the user code. */ + +#if defined(LWS_WITH_ESP32) +/* sdk preprocessor defs? compiler issue? gets confused with member names */ +#define LWS_FOP_OPEN _open +#define LWS_FOP_CLOSE _close +#define LWS_FOP_SEEK_CUR _seek_cur +#define LWS_FOP_READ _read +#define LWS_FOP_WRITE _write +#else +#define LWS_FOP_OPEN open +#define LWS_FOP_CLOSE close +#define LWS_FOP_SEEK_CUR seek_cur +#define LWS_FOP_READ read +#define LWS_FOP_WRITE write +#endif + +#define LWS_FOP_FLAGS_MASK ((1 << 23) - 1) +#define LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP (1 << 24) +#define LWS_FOP_FLAG_COMPR_IS_GZIP (1 << 25) +#define LWS_FOP_FLAG_MOD_TIME_VALID (1 << 26) +#define LWS_FOP_FLAG_VIRTUAL (1 << 27) + +struct lws_plat_file_ops; + +struct lws_fop_fd { + lws_filefd_type fd; + /**< real file descriptor related to the file... */ + const struct lws_plat_file_ops *fops; + /**< fops that apply to this fop_fd */ + void *filesystem_priv; + /**< ignored by lws; owned by the fops handlers */ + lws_filepos_t pos; + /**< generic "position in file" */ + lws_filepos_t len; + /**< generic "length of file" */ + lws_fop_flags_t flags; + /**< copy of the returned flags */ + uint32_t mod_time; + /**< optional "modification time of file", only valid if .open() + * set the LWS_FOP_FLAG_MOD_TIME_VALID flag */ +}; +typedef struct lws_fop_fd *lws_fop_fd_t; + +struct lws_fops_index { + const char *sig; /* NULL or vfs signature, eg, ".zip/" */ + uint8_t len; /* length of above string */ +}; + struct lws_plat_file_ops { - lws_filefd_type (*open)(struct lws *wsi, const char *filename, - unsigned long *filelen, int flags); + lws_fop_fd_t (*LWS_FOP_OPEN)(const struct lws_plat_file_ops *fops, + const char *filename, const char *vpath, + lws_fop_flags_t *flags); /**< Open file (always binary access if plat supports it) - * filelen is filled on exit to be the length of the file - * flags should be set to O_RDONLY or O_RDWR */ - int (*close)(struct lws *wsi, lws_filefd_type fd); - /**< close file */ - unsigned long (*seek_cur)(struct lws *wsi, lws_filefd_type fd, - long offset_from_cur_pos); + * vpath may be NULL, or if the fops understands it, the point at which + * the filename's virtual part starts. + * *flags & LWS_FOP_FLAGS_MASK should be set to O_RDONLY or O_RDWR. + * If the file may be gzip-compressed, + * LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP is set. If it actually is + * gzip-compressed, then the open handler should OR + * LWS_FOP_FLAG_COMPR_IS_GZIP on to *flags before returning. + */ + int (*LWS_FOP_CLOSE)(lws_fop_fd_t *fop_fd); + /**< close file AND set the pointer to NULL */ + lws_fileofs_t (*LWS_FOP_SEEK_CUR)(lws_fop_fd_t fop_fd, + lws_fileofs_t offset_from_cur_pos); /**< seek from current position */ - int (*read)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len); + int (*LWS_FOP_READ)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); /**< Read from file, on exit *amount is set to amount actually read */ - int (*write)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len); + int (*LWS_FOP_WRITE)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); /**< Write to file, on exit *amount is set to amount actually written */ + struct lws_fops_index fi[3]; + /**< vfs path signatures implying use of this fops */ + + const struct lws_plat_file_ops *next; + /**< NULL or next fops in list */ + /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility */ }; @@ -3990,84 +5468,144 @@ struct lws_plat_file_ops { */ LWS_VISIBLE LWS_EXTERN struct lws_plat_file_ops * LWS_WARN_UNUSED_RESULT lws_get_fops(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN void +lws_set_fops(struct lws_context *context, const struct lws_plat_file_ops *fops); +/** + * lws_vfs_tell() - get current file position + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT +lws_vfs_tell(lws_fop_fd_t fop_fd); +/** + * lws_vfs_get_length() - get current file total length in bytes + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT +lws_vfs_get_length(lws_fop_fd_t fop_fd); +/** + * lws_vfs_get_mod_time() - get time file last modified + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN uint32_t LWS_WARN_UNUSED_RESULT +lws_vfs_get_mod_time(lws_fop_fd_t fop_fd); +/** + * lws_vfs_file_seek_set() - seek relative to start of file + * + * \param fop_fd: fop_fd we are seeking in + * \param offset: offset from start of file + */ +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +lws_vfs_file_seek_set(lws_fop_fd_t fop_fd, lws_fileofs_t offset); +/** + * lws_vfs_file_seek_end() - seek relative to end of file + * + * \param fop_fd: fop_fd we are seeking in + * \param offset: offset from start of file + */ +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +lws_vfs_file_seek_end(lws_fop_fd_t fop_fd, lws_fileofs_t offset); + +extern struct lws_plat_file_ops fops_zip; /** - * lws_plat_file_open() - file open operations + * lws_plat_file_open() - open vfs filepath * - * \param wsi: connection doing the opening - * \param filename: filename to open - * \param filelen: length of file (filled in by call) - * \param flags: open flags + * \param fops: file ops struct that applies to this descriptor + * \param vfs_path: filename to open + * \param flags: pointer to open flags + * + * The vfs_path is scanned for known fops signatures, and the open directed + * to any matching fops open. + * + * User code should use this api to perform vfs opens. + * + * returns semi-opaque handle */ -static LWS_INLINE lws_filefd_type LWS_WARN_UNUSED_RESULT -lws_plat_file_open(struct lws *wsi, const char *filename, - unsigned long *filelen, int flags) -{ - return lws_get_fops(lws_get_context(wsi))->open(wsi, filename, - filelen, flags); -} +LWS_VISIBLE LWS_EXTERN lws_fop_fd_t LWS_WARN_UNUSED_RESULT +lws_vfs_file_open(const struct lws_plat_file_ops *fops, const char *vfs_path, + lws_fop_flags_t *flags); /** * lws_plat_file_close() - close file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle to close */ static LWS_INLINE int -lws_plat_file_close(struct lws *wsi, lws_filefd_type fd) +lws_vfs_file_close(lws_fop_fd_t *fop_fd) { - return lws_get_fops(lws_get_context(wsi))->close(wsi, fd); + return (*fop_fd)->fops->LWS_FOP_CLOSE(fop_fd); } /** * lws_plat_file_seek_cur() - close file * - * \param wsi: connection opened by - * \param fd: file descriptor + * + * \param fop_fd: file handle * \param offset: position to seek to */ -static LWS_INLINE unsigned long -lws_plat_file_seek_cur(struct lws *wsi, lws_filefd_type fd, long offset) +static LWS_INLINE lws_fileofs_t +lws_vfs_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset) { - return lws_get_fops(lws_get_context(wsi))->seek_cur(wsi, fd, offset); + return fop_fd->fops->LWS_FOP_SEEK_CUR(fop_fd, offset); } /** * lws_plat_file_read() - read from file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle * \param amount: how much to read (rewritten by call) * \param buf: buffer to write to * \param len: max length */ static LWS_INLINE int LWS_WARN_UNUSED_RESULT -lws_plat_file_read(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len) +lws_vfs_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len) { - return lws_get_fops(lws_get_context(wsi))->read(wsi, fd, amount, buf, - len); + return fop_fd->fops->LWS_FOP_READ(fop_fd, amount, buf, len); } /** * lws_plat_file_write() - write from file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle * \param amount: how much to write (rewritten by call) * \param buf: buffer to read from * \param len: max length */ static LWS_INLINE int LWS_WARN_UNUSED_RESULT -lws_plat_file_write(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len) +lws_vfs_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len) { - return lws_get_fops(lws_get_context(wsi))->write(wsi, fd, amount, buf, - len); + return fop_fd->fops->LWS_FOP_WRITE(fop_fd, amount, buf, len); } + +/* these are the platform file operations implementations... they can + * be called directly and used in fops arrays + */ + +LWS_VISIBLE LWS_EXTERN lws_fop_fd_t +_lws_plat_file_open(const struct lws_plat_file_ops *fops, const char *filename, + const char *vpath, lws_fop_flags_t *flags); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_close(lws_fop_fd_t *fop_fd); +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +_lws_plat_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); + +LWS_VISIBLE LWS_EXTERN int +lws_alloc_vfs_file(struct lws_context *context, const char *filename, + uint8_t **buf, lws_filepos_t *amount); //@} -/** \defgroup smtp - * \ingroup lwsapi +/** \defgroup smtp SMTP related functions * ##SMTP related functions + * \ingroup lwsapi * * These apis let you communicate with a local SMTP server to send email from * lws. It handles all the SMTP sequencing and protocol actions. @@ -4189,6 +5727,59 @@ lws_email_destroy(struct lws_email *email); #endif //@} +/* + * Stats are all uint64_t numbers that start at 0. + * Index names here have the convention + * + * _C_ counter + * _B_ byte count + * _MS_ millisecond count + */ + +enum { + LWSSTATS_C_CONNECTIONS, /**< count incoming connections */ + LWSSTATS_C_API_CLOSE, /**< count calls to close api */ + LWSSTATS_C_API_READ, /**< count calls to read from socket api */ + LWSSTATS_C_API_LWS_WRITE, /**< count calls to lws_write API */ + LWSSTATS_C_API_WRITE, /**< count calls to write API */ + LWSSTATS_C_WRITE_PARTIALS, /**< count of partial writes */ + LWSSTATS_C_WRITEABLE_CB_REQ, /**< count of writable callback requests */ + LWSSTATS_C_WRITEABLE_CB_EFF_REQ, /**< count of effective writable callback requests */ + LWSSTATS_C_WRITEABLE_CB, /**< count of writable callbacks */ + LWSSTATS_C_SSL_CONNECTIONS_FAILED, /**< count of failed SSL connections */ + LWSSTATS_C_SSL_CONNECTIONS_ACCEPTED, /**< count of accepted SSL connections */ + LWSSTATS_C_SSL_CONNECTIONS_ACCEPT_SPIN, /**< count of SSL_accept() attempts */ + LWSSTATS_C_SSL_CONNS_HAD_RX, /**< count of accepted SSL conns that have had some RX */ + LWSSTATS_C_TIMEOUTS, /**< count of timed-out connections */ + LWSSTATS_C_SERVICE_ENTRY, /**< count of entries to lws service loop */ + LWSSTATS_B_READ, /**< aggregate bytes read */ + LWSSTATS_B_WRITE, /**< aggregate bytes written */ + LWSSTATS_B_PARTIALS_ACCEPTED_PARTS, /**< aggreate of size of accepted write data from new partials */ + LWSSTATS_MS_SSL_CONNECTIONS_ACCEPTED_DELAY, /**< aggregate delay in accepting connection */ + LWSSTATS_MS_WRITABLE_DELAY, /**< aggregate delay between asking for writable and getting cb */ + LWSSTATS_MS_WORST_WRITABLE_DELAY, /**< single worst delay between asking for writable and getting cb */ + LWSSTATS_MS_SSL_RX_DELAY, /**< aggregate delay between ssl accept complete and first RX */ + LWSSTATS_C_PEER_LIMIT_AH_DENIED, /**< number of times we would have given an ah but for the peer limit */ + LWSSTATS_C_PEER_LIMIT_WSI_DENIED, /**< number of times we would have given a wsi but for the peer limit */ + + /* Add new things just above here ---^ + * This is part of the ABI, don't needlessly break compatibility */ + LWSSTATS_SIZE +}; + +#if defined(LWS_WITH_STATS) + +LWS_VISIBLE LWS_EXTERN uint64_t +lws_stats_get(struct lws_context *context, int index); +LWS_VISIBLE LWS_EXTERN void +lws_stats_log_dump(struct lws_context *context); +#else +static LWS_INLINE uint64_t +lws_stats_get(struct lws_context *context, int index) { return 0; } +static LWS_INLINE void +lws_stats_log_dump(struct lws_context *context) { } +#endif + #ifdef __cplusplus } #endif diff --git a/android/x86/include/websockets/lws_config.h b/android/x86/include/websockets/lws_config.h index bf49e46e..8e894aa6 100644 --- a/android/x86/include/websockets/lws_config.h +++ b/android/x86/include/websockets/lws_config.h @@ -6,7 +6,7 @@ #endif #endif -#define LWS_INSTALL_DATADIR "/Users/james/Project/cocos2d-x-3rd-party-libs-src/contrib/install-android/arm/share" +#define LWS_INSTALL_DATADIR "/Users/cocos/Github/cocos2d-x-3rd-party-libs-src/contrib/install-android/arm64/share" /* Define to 1 to use wolfSSL/CyaSSL as a replacement for OpenSSL. * LWS_OPENSSL_SUPPORT needs to be set also for this to work. */ @@ -15,25 +15,27 @@ /* Also define to 1 (in addition to USE_WOLFSSL) when using the (older) CyaSSL library */ /* #undef USE_OLD_CYASSL */ +/* #undef LWS_WITH_BORINGSSL */ -/* #undef LWS_USE_MBEDTLS */ -/* #undef LWS_USE_POLARSSL */ +/* #undef LWS_WITH_MBEDTLS */ +/* #undef LWS_WITH_POLARSSL */ /* #undef LWS_WITH_ESP8266 */ +/* #undef LWS_WITH_ESP32 */ /* #undef LWS_WITH_PLUGINS */ /* #undef LWS_WITH_NO_LOGS */ /* The Libwebsocket version */ -#define LWS_LIBRARY_VERSION "2.1.0" +#define LWS_LIBRARY_VERSION "2.4.2" #define LWS_LIBRARY_VERSION_MAJOR 2 -#define LWS_LIBRARY_VERSION_MINOR 1 -#define LWS_LIBRARY_VERSION_PATCH 0 +#define LWS_LIBRARY_VERSION_MINOR 4 +#define LWS_LIBRARY_VERSION_PATCH 2 /* LWS_LIBRARY_VERSION_NUMBER looks like 1005001 for e.g. version 1.5.1 */ #define LWS_LIBRARY_VERSION_NUMBER (LWS_LIBRARY_VERSION_MAJOR*1000000)+(LWS_LIBRARY_VERSION_MINOR*1000)+LWS_LIBRARY_VERSION_PATCH /* The current git commit hash that we're building from */ -#define LWS_BUILD_HASH "james@James-Chen.local-v3.4-138-g60b1a6f" +#define LWS_BUILD_HASH "cocos@cocoss-MacBook-Pro.local-v3.4-182-g408ba56" /* Build with OpenSSL support */ #define LWS_OPENSSL_SUPPORT @@ -48,19 +50,22 @@ /* #undef LWS_NO_EXTENSIONS */ /* Enable libev io loop */ -/* #undef LWS_USE_LIBEV */ +/* #undef LWS_WITH_LIBEV */ /* Enable libuv io loop */ -/* #undef LWS_USE_LIBUV */ +#define LWS_WITH_LIBUV + +/* Enable libevent io loop */ +/* #undef LWS_WITH_LIBEVENT */ /* Build with support for ipv6 */ -#define LWS_USE_IPV6 +#define LWS_WITH_IPV6 /* Build with support for UNIX domain socket */ -/* #undef LWS_USE_UNIX_SOCK */ +/* #undef LWS_WITH_UNIX_SOCK */ /* Build with support for HTTP2 */ -/* #undef LWS_USE_HTTP2 */ +/* #undef LWS_WITH_HTTP2 */ /* Turn on latency measuring code */ /* #undef LWS_LATENCY */ @@ -69,7 +74,7 @@ #define LWS_NO_DAEMONIZE /* Build without server support */ -#define LWS_NO_SERVER +/* #undef LWS_NO_SERVER */ /* Build without client support */ /* #undef LWS_NO_CLIENT */ @@ -85,8 +90,9 @@ /* SSL server using ECDH certificate */ /* #undef LWS_SSL_SERVER_WITH_ECDH_CERT */ -#define LWS_HAVE_SSL_CTX_set1_param -#define LWS_HAVE_X509_VERIFY_PARAM_set1_host +/* #undef LWS_HAVE_SSL_CTX_set1_param */ +/* #undef LWS_HAVE_X509_VERIFY_PARAM_set1_host */ +/* #undef LWS_HAVE_RSA_SET0_KEY */ /* #undef LWS_HAVE_UV_VERSION_H */ @@ -99,14 +105,18 @@ /* HTTP Proxy support */ /* #undef LWS_WITH_HTTP_PROXY */ +/* HTTP Ranges support */ +#define LWS_WITH_RANGES + /* Http access log support */ /* #undef LWS_WITH_ACCESS_LOG */ /* #undef LWS_WITH_SERVER_STATUS */ /* #undef LWS_WITH_STATEFUL_URLDECODE */ +/* #undef LWS_WITH_PEER_LIMITS */ /* Maximum supported service threads */ -#define LWS_MAX_SMP 32 +#define LWS_MAX_SMP 1 /* Lightweight JSON Parser */ /* #undef LWS_WITH_LEJP */ @@ -114,4 +124,33 @@ /* SMTP */ /* #undef LWS_WITH_SMTP */ +/* OPTEE */ +/* #undef LWS_PLAT_OPTEE */ + +/* ZIP FOPS */ +#define LWS_WITH_ZIP_FOPS +#define LWS_HAVE_STDINT_H + +/* #undef LWS_AVOID_SIGPIPE_IGN */ + +/* #undef LWS_FALLBACK_GETHOSTBYNAME */ + +/* #undef LWS_WITH_STATS */ +/* #undef LWS_WITH_SOCKS5 */ + +#define LWS_HAVE_SYS_CAPABILITY_H +/* #undef LWS_HAVE_LIBCAP */ + +#define LWS_HAVE_ATOLL +/* #undef LWS_HAVE__ATOI64 */ +/* #undef LWS_HAVE__STAT32I64 */ + +/* OpenSSL various APIs */ + +/* #undef LWS_HAVE_TLS_CLIENT_METHOD */ +/* #undef LWS_HAVE_TLSV1_2_CLIENT_METHOD */ +/* #undef LWS_HAVE_SSL_SET_INFO_CALLBACK */ + +#define LWS_HAS_INTPTR_T + diff --git a/android/x86/libwebsockets.a b/android/x86/libwebsockets.a index 861114eee3ba2f1c3cac752151b47af8da349197..c16327ccb0cf94e08c1fb626cafc79095f93742d 100644 GIT binary patch literal 296770 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%0APdGd1Zm;`}bNnNOCm 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 aSJscp`u$u8lH7sz2Xdk(FKd^kJrWZ> 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%0AN@ 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 diff --git a/ios/include/websockets/libwebsockets.h b/ios/include/websockets/libwebsockets.h index 7efeba1f..af0dcf16 100644 --- a/ios/include/websockets/libwebsockets.h +++ b/ios/include/websockets/libwebsockets.h @@ -27,84 +27,31 @@ #ifdef __cplusplus #include #include -#ifdef MBED_OPERATORS -#include "mbed-drivers/mbed.h" -#include "sal-iface-eth/EthernetInterface.h" -#include "sockets/TCPListener.h" -#include "sal-stack-lwip/lwipv4_init.h" - -namespace { -} -using namespace mbed::Sockets::v0; - - -struct sockaddr_in; -struct lws; - -class lws_conn { - public: - lws_conn(): - ts(NULL), - wsi(NULL), - writeable(1), - awaiting_on_writeable(0) - { - } - -public: - void set_wsi(struct lws *_wsi) { wsi = _wsi; } - int actual_onRX(Socket *s); - void onRX(Socket *s); - void onError(Socket *s, socket_error_t err); - void onDisconnect(TCPStream *s); - void onSent(Socket *s, uint16_t len); - void serialized_writeable(struct lws *wsi); - -public: - TCPStream *ts; - -public: - struct lws *wsi; - char writeable; - char awaiting_on_writeable; -}; - -class lws_conn_listener : lws_conn { -public: - lws_conn_listener(): - srv(SOCKET_STACK_LWIP_IPV4) - { - srv.setOnError(TCPStream::ErrorHandler_t(this, - &lws_conn_listener::onError)); - } - - void start(const uint16_t port); /**< start listening */ - -protected: - void onRX(Socket *s); /**< incoming data ready */ - void onError(Socket *s, socket_error_t err); /**< if error occurs */ - void onIncoming(TCPListener *s, void *impl); /**< new connection */ - void onDisconnect(TCPStream *s); /**< disconnection */ - -public: - TCPListener srv; -}; - -#endif - +# extern "C" { #else #include #endif -#if defined(MBED_OPERATORS) || defined(LWS_WITH_ESP8266) +#include "lws_config.h" + +/* + * CARE: everything using cmake defines needs to be below here + */ + +#if defined(LWS_WITH_ESP8266) struct sockaddr_in; #define LWS_POSIX 0 #else #define LWS_POSIX 1 #endif -#include "lws_config.h" +#if defined(LWS_HAS_INTPTR_T) +#include +#define lws_intptr_t intptr_t +#else +typedef unsigned long long lws_intptr_t; +#endif #if defined(WIN32) || defined(_WIN32) #ifndef WIN32_LEAN_AND_MEAN @@ -125,7 +72,7 @@ struct sockaddr_in; // Visual studio older than 2015 and WIN_CE has only _stricmp #if (defined(_MSC_VER) && _MSC_VER < 1900) || defined(_WIN32_WCE) #define strcasecmp _stricmp -#else +#elif !defined(__MINGW32__) #define strcasecmp stricmp #endif #define getdtablesize() 30000 @@ -134,6 +81,7 @@ struct sockaddr_in; #define LWS_VISIBLE #define LWS_WARN_UNUSED_RESULT #define LWS_WARN_DEPRECATED +#define LWS_FORMAT(string_index) #ifdef LWS_DLL #ifdef LWS_INTERNAL @@ -147,8 +95,11 @@ struct sockaddr_in; #define LWS_INVALID_FILE INVALID_HANDLE_VALUE #define LWS_O_RDONLY _O_RDONLY +#define LWS_O_WRONLY _O_WRONLY +#define LWS_O_CREAT _O_CREAT +#define LWS_O_TRUNC _O_TRUNC -#if !defined(_MSC_VER) || _MSC_VER < 1900 /* Visual Studio 2015 already defines this in */ +#if !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER < 1900) /* Visual Studio 2015 already defines this in */ #define lws_snprintf _snprintf #endif @@ -156,8 +107,15 @@ struct sockaddr_in; #define __func__ __FUNCTION__ #endif +#if !defined(__MINGW32__) &&(!defined(_MSC_VER) || _MSC_VER < 1900) && !defined(snprintf) +#define snprintf(buf,len, format,...) _snprintf_s(buf, len,len, format, __VA_ARGS__) +#endif + #else /* NOT WIN32 */ #include +#if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) +#include +#endif #if defined(__NetBSD__) || defined(__FreeBSD__) #include @@ -165,14 +123,21 @@ struct sockaddr_in; #define LWS_INLINE inline #define LWS_O_RDONLY O_RDONLY +#define LWS_O_WRONLY O_WRONLY +#define LWS_O_CREAT O_CREAT +#define LWS_O_TRUNC O_TRUNC -#if !defined(MBED_OPERATORS) && !defined(LWS_WITH_ESP8266) +#if !defined(LWS_WITH_ESP8266) && !defined(OPTEE_TA) && !defined(LWS_WITH_ESP32) #include #include #define LWS_INVALID_FILE -1 #else -#define getdtablesize() (20) +#define getdtablesize() (30) +#if defined(LWS_WITH_ESP32) #define LWS_INVALID_FILE NULL +#else +#define LWS_INVALID_FILE NULL +#endif #endif #if defined(__GNUC__) @@ -186,10 +151,12 @@ struct sockaddr_in; #define LWS_VISIBLE __attribute__((visibility("default"))) #define LWS_WARN_DEPRECATED __attribute__ ((deprecated)) +#define LWS_FORMAT(string_index) __attribute__ ((format(printf, string_index, string_index+1))) #else #define LWS_VISIBLE #define LWS_WARN_UNUSED_RESULT #define LWS_WARN_DEPRECATED +#define LWS_FORMAT(string_index) #endif #if defined(__ANDROID__) @@ -199,15 +166,18 @@ struct sockaddr_in; #endif -#ifdef LWS_USE_LIBEV +#ifdef LWS_WITH_LIBEV #include -#endif /* LWS_USE_LIBEV */ -#ifdef LWS_USE_LIBUV -#include +#endif /* LWS_WITH_LIBEV */ +#ifdef LWS_WITH_LIBUV +#include "uv.h" #ifdef LWS_HAVE_UV_VERSION_H #include #endif -#endif /* LWS_USE_LIBUV */ +#endif /* LWS_WITH_LIBUV */ +#ifdef LWS_WITH_LIBEVENT +#include +#endif /* LWS_WITH_LIBEVENT */ #ifndef LWS_EXTERN #define LWS_EXTERN extern @@ -216,9 +186,11 @@ struct sockaddr_in; #ifdef _WIN32 #define random rand #else +#if !defined(OPTEE_TA) #include #include #endif +#endif #ifdef LWS_OPENSSL_SUPPORT @@ -231,28 +203,24 @@ struct sockaddr_in; #include #endif /* not USE_OLD_CYASSL */ #else -#if defined(LWS_USE_POLARSSL) -#include -struct lws_polarssl_context { - x509_crt ca; /**< ca */ - x509_crt certificate; /**< cert */ - rsa_context key; /**< key */ -}; -typedef struct lws_polarssl_context SSL_CTX; -typedef ssl_context SSL; -#else -#if defined(LWS_USE_MBEDTLS) +#if defined(LWS_WITH_MBEDTLS) +#if defined(LWS_WITH_ESP32) +/* this filepath is passed to us but without quotes or <> */ +#undef MBEDTLS_CONFIG_FILE +#define MBEDTLS_CONFIG_FILE +#endif #include -#else -#include -#include -#endif /* not USE_MBEDTLS */ -#endif /* not USE_POLARSSL */ +#endif +#include "openssl/ssl.h" +#if !defined(LWS_WITH_MBEDTLS) +#include "openssl/err.h" +#endif #endif /* not USE_WOLFSSL */ #endif #define CONTEXT_PORT_NO_LISTEN -1 +#define CONTEXT_PORT_NO_LISTEN_SERVER -2 /** \defgroup log Logging * @@ -277,11 +245,12 @@ enum lws_log_levels { LLL_EXT = 1 << 7, LLL_CLIENT = 1 << 8, LLL_LATENCY = 1 << 9, + LLL_USER = 1 << 10, - LLL_COUNT = 10 /* set to count of valid flags */ + LLL_COUNT = 11 /* set to count of valid flags */ }; -LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...); +LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...) LWS_FORMAT(2); LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl); /** * lwsl_timestamp: generate logging timestamp string @@ -295,15 +264,18 @@ LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl LWS_VISIBLE LWS_EXTERN int lwsl_timestamp(int level, char *p, int len); +/* these guys are unconditionally included */ + #define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__) +#define lwsl_user(...) _lws_log(LLL_USER, __VA_ARGS__) #if !defined(LWS_WITH_NO_LOGS) -/* notice, warn and log are always compiled in */ +/* notice and warn are usually included by being compiled in */ #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) #endif /* - * weaker logging can be deselected at configure time using --disable-debug + * weaker logging can be deselected by telling CMake to build in RELEASE mode * that gets rid of the overhead of checking while keeping _warn and _err * active */ @@ -315,7 +287,6 @@ lwsl_timestamp(int level, char *p, int len); #ifdef _DEBUG #if defined(LWS_WITH_NO_LOGS) /* notice, warn and log are always compiled in */ -//#define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__) #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) #endif @@ -326,17 +297,9 @@ lwsl_timestamp(int level, char *p, int len); #define lwsl_ext(...) _lws_log(LLL_EXT, __VA_ARGS__) #define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__) #define lwsl_latency(...) _lws_log(LLL_LATENCY, __VA_ARGS__) -/** - * lwsl_hexdump() - helper to hexdump a buffer (DEBUG builds only) - * - * \param buf: buffer start to dump - * \param len: length of buffer to dump - */ -LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); #else /* no debug */ #if defined(LWS_WITH_NO_LOGS) -//#define lwsl_err(...) do {} while(0) #define lwsl_warn(...) do {} while(0) #define lwsl_notice(...) do {} while(0) #endif @@ -347,10 +310,44 @@ LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); #define lwsl_ext(...) do {} while(0) #define lwsl_client(...) do {} while(0) #define lwsl_latency(...) do {} while(0) -#define lwsl_hexdump(a, b) #endif +/** + * lwsl_hexdump() - helper to hexdump a buffer + * + * \param level: one of LLL_ constants + * \param buf: buffer start to dump + * \param len: length of buffer to dump + * + * If \p level is visible, does a nice hexdump -C style dump of \p buf for + * \p len bytes. This can be extremely convenient while debugging. + */ +LWS_VISIBLE LWS_EXTERN void +lwsl_hexdump_level(int level, const void *vbuf, size_t len); + +/** + * lwsl_hexdump() - helper to hexdump a buffer (DEBUG builds only) + * + * \param buf: buffer start to dump + * \param len: length of buffer to dump + * + * Calls through to lwsl_hexdump_level(LLL_DEBUG, ... for compatability. + * It's better to use lwsl_hexdump_level(level, ... directly so you can control + * the visibility. + */ +LWS_VISIBLE LWS_EXTERN void +lwsl_hexdump(const void *buf, size_t len); + +/** + * lws_is_be() - returns nonzero if the platform is Big Endian + */ +static LWS_INLINE int lws_is_be(void) { + const int probe = ~0xff; + + return *(const char *)&probe; +} + /** * lws_set_log_level() - Set the logging bitfield * \param level: OR together the LLL_ debug contexts you want output from @@ -359,7 +356,8 @@ LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len); * the default stderr one. * * log level defaults to "err", "warn" and "notice" contexts enabled and - * emission on stderr. + * emission on stderr. If stderr is a tty (according to isatty()) then + * the output is coloured according to the log level using ANSI escapes. */ LWS_VISIBLE LWS_EXTERN void lws_set_log_level(int level, @@ -377,6 +375,18 @@ lws_set_log_level(int level, LWS_VISIBLE LWS_EXTERN void lwsl_emit_syslog(int level, const char *line); +/** + * lwsl_visible() - returns true if the log level should be printed + * + * \param level: one of LLL_ log level indexes + * + * This is useful if you have to do work to generate the log content, you + * can skip the work if the log level used to print it is not actually + * enabled at runtime. + */ +LWS_VISIBLE LWS_EXTERN int +lwsl_visible(int level); + ///@} @@ -423,30 +433,7 @@ struct lws_pollfd { #define LWS_POLLOUT (FD_WRITE) #else -#if defined(MBED_OPERATORS) -/* it's a class lws_conn * */ -typedef void * lws_sockfd_type; -typedef void * lws_filefd_type; -#define lws_sockfd_valid(sfd) (!!sfd) -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 -struct lws; - -void * mbed3_create_tcp_stream_socket(void); -void mbed3_delete_tcp_stream_socket(void *sockfd); -void mbed3_tcp_stream_bind(void *sock, int port, struct lws *); -void mbed3_tcp_stream_accept(void *sock, struct lws *); -#else #if defined(LWS_WITH_ESP8266) #include @@ -476,7 +463,7 @@ void esp8266_tcp_stream_accept(lws_sockfd_type fd, struct lws *wsi); #include #include "ets_sys.h" -int ets_snprintf(char *str, size_t size, const char *format, ...); +int ets_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3); #define snprintf ets_snprintf typedef os_timer_t uv_timer_t; @@ -512,6 +499,206 @@ static inline void uv_timer_stop(uv_timer_t *t) os_timer_disarm(t); } +#else +#if defined(LWS_WITH_ESP32) + +typedef int lws_sockfd_type; +typedef int lws_filefd_type; +#define lws_sockfd_valid(sfd) (sfd >= 0) +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 + +#include +#include +#include +#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" + +#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 inline void uv_timer_init(void *l, uv_timer_t *t) +{ + (void)l; + *t = NULL; +} + +extern void esp32_uvtimer_cb(TimerHandle_t t); + +static 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 inline void uv_timer_stop(uv_timer_t *t) +{ + xTimerStop(*t, 0); +} + +static inline void uv_close(uv_handle_t *h, void *v) +{ + free(pvTimerGetTimerID((uv_timer_t)h)); + xTimerDelete(*(uv_timer_t *)h, 0); +} + +/* ESP32 helper declarations */ + +#include +#include + +#define LWS_PLUGIN_STATIC +#define LWS_MAGIC_REBOOT_TYPE_ADS 0x50001ffc +#define LWS_MAGIC_REBOOT_TYPE_REQ_FACTORY 0xb00bcafe +#define LWS_MAGIC_REBOOT_TYPE_FORCED_FACTORY 0xfaceb00b +#define LWS_MAGIC_REBOOT_TYPE_FORCED_FACTORY_BUTTON 0xf0cedfac + + +/* user code provides these */ + +extern void +lws_esp32_identify_physical_device(void); + +/* lws-plat-esp32 provides these */ + +typedef void (*lws_cb_scan_done)(uint16_t count, wifi_ap_record_t *recs, void *arg); + +enum genled_state { + LWSESP32_GENLED__INIT, + LWSESP32_GENLED__LOST_NETWORK, + LWSESP32_GENLED__NO_NETWORK, + LWSESP32_GENLED__CONN_AP, + LWSESP32_GENLED__GOT_IP, + LWSESP32_GENLED__OK, +}; + +struct lws_group_member { + struct lws_group_member *next; + uint64_t last_seen; + char model[16]; + char role[16]; + char host[32]; + char mac[20]; + int width, height; + struct ip4_addr addr; + struct ip6_addr addrv6; + uint8_t flags; +}; + +#define LWS_SYSTEM_GROUP_MEMBER_ADD 1 +#define LWS_SYSTEM_GROUP_MEMBER_CHANGE 2 +#define LWS_SYSTEM_GROUP_MEMBER_REMOVE 3 + +#define LWS_GROUP_FLAG_SELF 1 + +struct lws_esp32 { + char sta_ip[16]; + char sta_mask[16]; + char sta_gw[16]; + char serial[16]; + char opts[16]; + char model[16]; + char group[16]; + char role[16]; + char ssid[4][16]; + char password[4][32]; + char active_ssid[32]; + char access_pw[16]; + char hostname[32]; + char mac[20]; + mdns_server_t *mdns; + char region; + char inet; + char conn_ap; + + enum genled_state genled; + uint64_t genled_t; + + lws_cb_scan_done scan_consumer; + void *scan_consumer_arg; + struct lws_group_member *first; + int extant_group_members; +}; + +struct lws_esp32_image { + uint32_t romfs; + uint32_t romfs_len; + uint32_t json; + uint32_t json_len; +}; + +extern struct lws_esp32 lws_esp32; +struct lws_vhost; + +extern esp_err_t +lws_esp32_event_passthru(void *ctx, system_event_t *event); +extern void +lws_esp32_wlan_config(void); +extern void +lws_esp32_wlan_start_ap(void); +extern void +lws_esp32_wlan_start_station(void); +struct lws_context_creation_info; +extern void +lws_esp32_set_creation_defaults(struct lws_context_creation_info *info); +extern struct lws_context * +lws_esp32_init(struct lws_context_creation_info *, struct lws_vhost **pvh); +extern int +lws_esp32_wlan_nvs_get(int retry); +extern esp_err_t +lws_nvs_set_str(nvs_handle handle, const char* key, const char* value); +extern void +lws_esp32_restart_guided(uint32_t type); +extern const esp_partition_t * +lws_esp_ota_get_boot_partition(void); +extern int +lws_esp32_get_image_info(const esp_partition_t *part, struct lws_esp32_image *i, char *json, int json_len); +extern int +lws_esp32_leds_network_indication(void); + +extern uint32_t lws_esp32_get_reboot_type(void); +extern uint16_t lws_esp32_sine_interp(int n); + +/* required in external code by esp32 plat (may just return if no leds) */ +extern void lws_esp32_leds_timer_cb(TimerHandle_t th); #else typedef int lws_sockfd_type; typedef int lws_filefd_type; @@ -525,6 +712,36 @@ typedef int lws_filefd_type; #define LWS_POLLOUT (POLLOUT) #endif + +#if (defined(WIN32) || defined(_WIN32)) && !defined(__MINGW32__) +/* ... */ +#define ssize_t SSIZE_T +#endif + +#if defined(WIN32) && defined(LWS_HAVE__STAT32I64) +#include +#include +#endif + +#if defined(LWS_HAVE_STDINT_H) +#include +#else +#if defined(WIN32) || defined(_WIN32) +/* !!! >:-[ */ +typedef unsigned __int32 uint32_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int8 uint8_t; +#else +typedef unsigned int uint32_t; +typedef unsigned short uint16_t; +typedef unsigned char uint8_t; +#endif +#endif + +typedef unsigned long long lws_filepos_t; +typedef long long lws_fileofs_t; +typedef uint32_t lws_fop_flags_t; + /** struct lws_pollargs - argument structure for all external poll related calls * passed in via 'in' */ struct lws_pollargs { @@ -641,6 +858,38 @@ struct lws_context; /* needed even with extensions disabled for create context */ struct lws_extension; +/*! \defgroup lwsmeta lws-meta + * + * ##lws-meta protocol + * + * The protocol wraps other muxed connections inside one tcp connection. + * + * Commands are assigned from 0x41 up (so they are valid unicode) + */ +///@{ + +enum lws_meta_commands { + LWS_META_CMD_OPEN_SUBCHANNEL = 'A', + /**< Client requests to open new subchannel + */ + LWS_META_CMD_OPEN_RESULT, + /**< Result of client request to open new subchannel */ + LWS_META_CMD_CLOSE_NOTIFY, + /**< Notification of subchannel closure */ + LWS_META_CMD_CLOSE_RQ, + /**< client requests to close a subchannel */ + LWS_META_CMD_WRITE, + /**< connection writes something to specific channel index */ + + /****** add new things just above ---^ ******/ +}; + +/* channel numbers are transported offset by 0x20 so they are valid unicode */ + +#define LWS_META_TRANSPORT_OFFSET 0x20 + +///@} + /*! \defgroup usercb User Callback * * ##User protocol callback @@ -654,6 +903,10 @@ struct lws_extension; */ ///@{ +struct lws_ssl_info { + int where; + int ret; +}; /* * NOTE: These public enums are part of the abi. If you want to add one, @@ -820,7 +1073,7 @@ enum lws_callback_reasons { LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS = 22, /**< if configured for * including OpenSSL support, this callback allows your user code - * to load extra certifcates into the server which allow it to + * to load extra certificates into the server which allow it to * verify the validity of certificates returned by clients. user * is the server's OpenSSL SSL_CTX* */ LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION = 23, @@ -874,8 +1127,7 @@ enum lws_callback_reasons { * and with in being the extension name, len is 0 and user is * valid. Note though at this time the ESTABLISHED callback hasn't * happened yet so if you initialize user content there, user - * content during this callback might not be useful for anything. - * Notice this callback comes to protocols[0]. */ + * content during this callback might not be useful for anything. */ LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED = 26, /**< When a client * connection is being prepared to start a handshake to a server, @@ -966,45 +1218,127 @@ enum lws_callback_reasons { * connection. */ LWS_CALLBACK_WS_EXT_DEFAULTS = 39, - /**< */ + /**< Gives client connections an opportunity to adjust negotiated + * extension defaults. `user` is the extension name that was + * negotiated (eg, "permessage-deflate"). `in` points to a + * buffer and `len` is the buffer size. The user callback can + * set the buffer to a string describing options the extension + * should parse. Or just ignore for defaults. */ LWS_CALLBACK_CGI = 40, - /**< */ + /**< CGI: CGI IO events on stdin / out / err are sent here on + * protocols[0]. The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. */ LWS_CALLBACK_CGI_TERMINATED = 41, - /**< */ + /**< CGI: The related CGI process ended, this is called before + * the wsi is closed. Used to, eg, terminate chunking. + * The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. The child PID that terminated is in len. */ LWS_CALLBACK_CGI_STDIN_DATA = 42, - /**< */ + /**< CGI: Data is, to be sent to the CGI process stdin, eg from + * a POST body. The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. */ LWS_CALLBACK_CGI_STDIN_COMPLETED = 43, - /**< */ + /**< CGI: no more stdin is coming. The provided + * `lws_callback_http_dummy()` handles this and the callback + * should be directed there if you use CGI. */ LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44, - /**< */ + /**< The HTTP client connection has succeeded, and is now + * connected to the server */ LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45, - /**< */ + /**< The HTTP client connection is closing */ LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46, - /**< */ + /**< This simply indicates data was received on the HTTP client + * connection. It does NOT drain or provide the data. + * This exists to neatly allow a proxying type situation, + * where this incoming data will go out on another connection. + * If the outgoing connection stalls, we should stall processing + * the incoming data. So a handler for this in that case should + * simply set a flag to indicate there is incoming data ready + * and ask for a writeable callback on the outgoing connection. + * In the writable callback he can check the flag and then get + * and drain the waiting incoming data using lws_http_client_read(). + * This will use callbacks to LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ + * to get and drain the incoming data, where it should be sent + * back out on the outgoing connection. */ LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47, - /**< */ + /**< The client transaction completed... at the moment this + * is the same as closing since transaction pipelining on + * client side is not yet supported. */ LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48, - /**< */ + /**< This is generated by lws_http_client_read() used to drain + * incoming data. In the case the incoming data was chunked, + * it will be split into multiple smaller callbacks for each + * chunk block, removing the chunk headers. If not chunked, + * it will appear all in one callback. */ LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49, - /**< */ + /**< By default, all HTTP handling is done in protocols[0]. + * However you can bind different protocols (by name) to + * different parts of the URL space using callback mounts. This + * callback occurs in the new protocol when a wsi is bound + * to that protocol. Any protocol allocation related to the + * http transaction processing should be created then. + * These specific callbacks are necessary because with HTTP/1.1, + * a single connection may perform at series of different + * transactions at different URLs, thus the lifetime of the + * protocol bind is just for one transaction, not connection. */ LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50, - /**< */ + /**< This is called when a transaction is unbound from a protocol. + * It indicates the connection completed its transaction and may + * do something different now. Any protocol allocation related + * to the http transaction processing should be destroyed. */ LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51, - /**< */ + /**< This gives the user code a chance to forbid an http access. + * `in` points to a `struct lws_process_html_args`, which + * describes the URL, and a bit mask describing the type of + * authentication required. If the callback returns nonzero, + * the transaction ends with HTTP_STATUS_UNAUTHORIZED. */ LWS_CALLBACK_PROCESS_HTML = 52, - /**< */ + /**< This gives your user code a chance to mangle outgoing + * HTML. `in` points to a `struct lws_process_html_args` + * which describes the buffer containing outgoing HTML. + * The buffer may grow up to `.max_len` (currently +128 + * bytes per buffer). + * */ LWS_CALLBACK_ADD_HEADERS = 53, - /**< */ + /**< This gives your user code a chance to add headers to a + * transaction bound to your protocol. `in` points to a + * `struct lws_process_html_args` describing a buffer and length + * you can add headers into using the normal lws apis. + * + * Only `args->p` and `args->len` are valid, and `args->p` should + * be moved on by the amount of bytes written, if any. Eg + * + * case LWS_CALLBACK_ADD_HEADERS: + * + * struct lws_process_html_args *args = + * (struct lws_process_html_args *)in; + * + * if (lws_add_http_header_by_name(wsi, + * (unsigned char *)"set-cookie:", + * (unsigned char *)cookie, cookie_len, + * (unsigned char **)&args->p, + * (unsigned char *)args->p + args->max_len)) + * return 1; + * + * break; + */ LWS_CALLBACK_SESSION_INFO = 54, - /**< */ + /**< This is only generated by user code using generic sessions. + * It's used to get a `struct lws_session_info` filled in by + * generic sessions with information about the logged-in user. + * See the messageboard sample for an example of how to use. */ LWS_CALLBACK_GS_EVENT = 55, - /**< */ + /**< Indicates an event happened to the Generic Sessions session. + * `in` contains a `struct lws_gs_event_args` describing the event. */ LWS_CALLBACK_HTTP_PMO = 56, /**< per-mount options for this connection, called before * the normal LWS_CALLBACK_HTTP when the mount has per-mount - * options + * options. */ LWS_CALLBACK_CLIENT_HTTP_WRITEABLE = 57, /**< when doing an HTTP type client connection, you can call @@ -1015,11 +1349,76 @@ enum lws_callback_reasons { * From this callback, when you have sent everything, you should let * lws know by calling lws_client_http_body_pending(wsi, 0) */ + LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION = 58, + /**< Similar to LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION + * this callback is called during OpenSSL verification of the cert + * sent from the server to the client. It is sent to protocol[0] + * callback as no protocol has been negotiated on the connection yet. + * Notice that the wsi is set because lws_client_connect_via_info was + * successful. + * + * See http://www.openssl.org/docs/ssl/SSL_CTX_set_verify.html + * to understand more detail about the OpenSSL callback that + * generates this libwebsockets callback and the meanings of the + * arguments passed. In this callback, user is the x509_ctx, + * in is the ssl pointer and len is preverify_ok. + * + * THIS IS NOT RECOMMENDED BUT if a cert validation error shall be + * overruled and cert shall be accepted as ok, + * X509_STORE_CTX_set_error((X509_STORE_CTX*)user, X509_V_OK); must be + * called and return value must be 0 to mean the cert is OK; + * returning 1 will fail the cert in any case. + * + * This also means that if you don't handle this callback then + * the default callback action of returning 0 will not accept the + * certificate in case of a validation error decided by the SSL lib. + * + * This is expected and secure behaviour when validating certificates. + * + * Note: LCCSCF_ALLOW_SELFSIGNED and + * LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK still work without this + * callback being implemented. + */ + LWS_CALLBACK_RAW_RX = 59, + /**< RAW mode connection RX */ + LWS_CALLBACK_RAW_CLOSE = 60, + /**< RAW mode connection is closing */ + LWS_CALLBACK_RAW_WRITEABLE = 61, + /**< RAW mode connection may be written */ + LWS_CALLBACK_RAW_ADOPT = 62, + /**< RAW mode connection was adopted (equivalent to 'wsi created') */ + LWS_CALLBACK_RAW_ADOPT_FILE = 63, + /**< RAW mode file was adopted (equivalent to 'wsi created') */ + LWS_CALLBACK_RAW_RX_FILE = 64, + /**< RAW mode file has something to read */ + LWS_CALLBACK_RAW_WRITEABLE_FILE = 65, + /**< RAW mode file is writeable */ + LWS_CALLBACK_RAW_CLOSE_FILE = 66, + /**< RAW mode wsi that adopted a file is closing */ + LWS_CALLBACK_SSL_INFO = 67, + /**< SSL connections only. An event you registered an + * interest in at the vhost has occurred on a connection + * using the vhost. in is a pointer to a + * struct lws_ssl_info containing information about the + * event*/ + LWS_CALLBACK_CHILD_WRITE_VIA_PARENT = 68, + /**< Child has been marked with parent_carries_io attribute, so + * lws_write directs the to this callback at the parent, + * in is a struct lws_write_passthru containing the args + * the lws_write() was called with. + */ + LWS_CALLBACK_CHILD_CLOSING = 69, + /**< Sent to parent to notify them a child is closing / being + * destroyed. in is the child wsi. + */ + LWS_CALLBACK_CGI_PROCESS_ATTACH = 70, + /**< CGI: Sent when the CGI process is spawned for the wsi. The + * len parameter is the PID of the child process */ /****** add new things just above ---^ ******/ LWS_CALLBACK_USER = 1000, - /**< user code can use any including / above without fear of clashes */ + /**< user code can use any including above without fear of clashes */ }; @@ -1042,10 +1441,99 @@ enum lws_callback_reasons { typedef int lws_callback_function(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len); + +#define LWS_CB_REASON_AUX_BF__CGI 1 +#define LWS_CB_REASON_AUX_BF__PROXY 2 +#define LWS_CB_REASON_AUX_BF__CGI_CHUNK_END 4 +#define LWS_CB_REASON_AUX_BF__CGI_HEADERS 8 ///@} -/*! \defgroup extensions +/*! \defgroup generic hash + * ## Generic Hash related functions * + * Lws provides generic hash / digest accessors that abstract the ones + * provided by whatever OpenSSL library you are linking against. + * + * It lets you use the same code if you build against mbedtls or OpenSSL + * for example. + */ +///@{ + +#ifdef LWS_OPENSSL_SUPPORT + +#if defined(LWS_WITH_MBEDTLS) +#include +#include +#include +#endif + +#define LWS_GENHASH_TYPE_SHA1 0 +#define LWS_GENHASH_TYPE_SHA256 1 +#define LWS_GENHASH_TYPE_SHA512 2 + +struct lws_genhash_ctx { + uint8_t type; +#if defined(LWS_WITH_MBEDTLS) + union { + mbedtls_sha1_context sha1; + mbedtls_sha256_context sha256; + mbedtls_sha512_context sha512; + } u; +#else + const EVP_MD *evp_type; + EVP_MD_CTX *mdctx; +#endif +}; + +/** lws_genhash_size() - get hash size in bytes + * + * \param type: one of LWS_GENHASH_TYPE_... + * + * Returns number of bytes in this type of hash + */ +LWS_VISIBLE LWS_EXTERN size_t LWS_WARN_UNUSED_RESULT +lws_genhash_size(int type); + +/** lws_genhash_init() - prepare your struct lws_genhash_ctx for use + * + * \param ctx: your struct lws_genhash_ctx + * \param type: one of LWS_GENHASH_TYPE_... + * + * Initializes the hash context for the type you requested + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_genhash_init(struct lws_genhash_ctx *ctx, int type); + +/** lws_genhash_update() - digest len bytes of the buffer starting at in + * + * \param ctx: your struct lws_genhash_ctx + * \param in: start of the bytes to digest + * \param len: count of bytes to digest + * + * Updates the state of your hash context to reflect digesting len bytes from in + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_genhash_update(struct lws_genhash_ctx *ctx, const void *in, size_t len); + +/** lws_genhash_destroy() - copy out the result digest and destroy the ctx + * + * \param ctx: your struct lws_genhash_ctx + * \param result: NULL, or where to copy the result hash + * + * Finalizes the hash and copies out the digest. Destroys any allocations such + * that ctx can safely go out of scope after calling this. + * + * NULL result is supported so that you can destroy the ctx cleanly on error + * conditions, where there is no valid result. + */ +LWS_VISIBLE LWS_EXTERN int +lws_genhash_destroy(struct lws_genhash_ctx *ctx, void *result); + +#endif + +///@} + +/*! \defgroup extensions Extension related functions * ##Extension releated functions * * Ws defines optional extensions, lws provides the ability to implement these @@ -1217,7 +1705,7 @@ lws_set_extension_option(struct lws *wsi, const char *ext_name, * client and server for how to do. */ static LWS_INLINE LWS_WARN_DEPRECATED const struct lws_extension * -lws_get_internal_extensions() { return NULL; } +lws_get_internal_extensions(void) { return NULL; } /** * lws_ext_parse_options() - deal with parsing negotiated extension options @@ -1297,8 +1785,8 @@ struct lws_protocols { * be able to consume it all without having to return to the event * loop. That is supported in lws. * - * This also controls how much may be sent at once at the moment, - * although this is likely to change. + * If .tx_packet_size is 0, this also controls how much may be sent at once + * for backwards compatibility. */ unsigned int id; /**< ignored by lws, but useful to contain user information bound @@ -1309,6 +1797,15 @@ struct lws_protocols { * capability flags based on selected protocol version, etc. */ void *user; /**< ignored by lws, but user code can pass a pointer here it can later access from the protocol callback */ + size_t tx_packet_size; + /**< 0 indicates restrict send() size to .rx_buffer_size for backwards- + * compatibility. + * If greater than zero, a single send() is restricted to this amount + * and any remainder is buffered by lws and sent afterwards also in + * these size chunks. Since that is expensive, it's preferable + * to restrict one fragment you are trying to send to match this + * size. + */ /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility */ @@ -1369,6 +1866,23 @@ lws_protocol_vh_priv_zalloc(struct lws_vhost *vhost, const struct lws_protocols LWS_VISIBLE LWS_EXTERN void * lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *prot); +/** + * lws_adjust_protocol_psds - change a vhost protocol's per session data size + * + * \param wsi: a connection with the protocol to change + * \param new_size: the new size of the per session data size for the protocol + * + * Returns user_space for the wsi, after allocating + * + * This should not be used except to initalize a vhost protocol's per session + * data size one time, before any connections are accepted. + * + * Sometimes the protocol wraps another protocol and needs to discover and set + * its per session data size at runtime. + */ +LWS_VISIBLE LWS_EXTERN void * +lws_adjust_protocol_psds(struct lws *wsi, size_t new_size); + /** * lws_finalize_startup() - drop initial process privileges * @@ -1380,6 +1894,9 @@ lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *pr LWS_VISIBLE LWS_EXTERN int lws_finalize_startup(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN int +lws_protocol_init(struct lws_context *context); + #ifdef LWS_WITH_PLUGINS /* PLUGINS implies LIBUV */ @@ -1469,10 +1986,10 @@ struct lws_gs_event_args { ///@} -/*! \defgroup context-and-vhost +/*! \defgroup context-and-vhost context and vhost related functions + * ##Context and Vhost releated functions * \ingroup lwsapi * - * ##Context and Vhost releated functions * * LWS requires that there is one context, in which you may define multiple * vhosts. Each vhost is a virtual host, with either its own listen port @@ -1543,12 +2060,42 @@ enum lws_context_options { * even if it happened without a debugger in place. You can disable * that by giving this option. */ + LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN = (1 << 19), + /**< For backwards-compatibility reasons, by default + * lws prepends "http://" to the origin you give in the client + * connection info struct. If you give this flag when you create + * the context, only the string you give in the client connect + * info for .origin (if any) will be used directly. + */ + LWS_SERVER_OPTION_FALLBACK_TO_RAW = (1 << 20), + /**< (VH) if invalid http is coming in the first line, */ + LWS_SERVER_OPTION_LIBEVENT = (1 << 21), + /**< (CTX) Use libevent event loop */ + LWS_SERVER_OPTION_ONLY_RAW = (1 << 22), + /**< (VH) All connections to this vhost / port are RAW as soon as + * the connection is accepted, no HTTP is going to be coming. + */ + LWS_SERVER_OPTION_ALLOW_LISTEN_SHARE = (1 << 23), + /**< (VH) Set to allow multiple listen sockets on one interface + + * address + port. The default is to strictly allow only one + * listen socket at a time. This is automatically selected if you + * have multiple service threads. + */ + LWS_SERVER_OPTION_CREATE_VHOST_SSL_CTX = (1 << 24), + /**< (VH) Force setting up the vhost SSL_CTX, even though the user + * code doesn't explicitly provide a cert in the info struct. It + * implies the user code is going to provide a cert at the + * LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS callback, which + * provides the vhost SSL_CTX * in the user parameter. + */ /****** add new things just above ---^ ******/ }; #define lws_check_opt(c, f) (((c) & (f)) == (f)) +struct lws_plat_file_ops; + /** struct lws_context_creation_info - parameters to create context and /or vhost with * * This is also used to create vhosts.... if LWS_SERVER_OPTION_EXPLICIT_VHOSTS @@ -1560,10 +2107,10 @@ enum lws_context_options { */ struct lws_context_creation_info { int port; - /**< VHOST: Port to listen on... you can use CONTEXT_PORT_NO_LISTEN to - * suppress listening on any port, that's what you want if you are - * not running a websocket server at all but just using it as a - * client */ + /**< VHOST: Port to listen on. Use CONTEXT_PORT_NO_LISTEN to suppress + * listening for a client. Use CONTEXT_PORT_NO_LISTEN_SERVER if you are + * writing a server but you are using \ref sock-adopt instead of the + * built-in listener */ const char *iface; /**< VHOST: NULL to bind the listen socket to all interfaces, or the * interface name, eg, "eth2" @@ -1582,23 +2129,38 @@ struct lws_context_creation_info { /**< CONTEXT: NULL or struct lws_token_limits pointer which is initialized * with a token length limit for each possible WSI_TOKEN_ */ const char *ssl_private_key_password; - /**< VHOST: NULL or the passphrase needed for the private key */ + /**< VHOST: NULL or the passphrase needed for the private key. (For + * backwards compatibility, this can also be used to pass the client + * cert passphrase when setting up a vhost client SSL context, but it is + * preferred to use .client_ssl_private_key_password for that.) */ const char *ssl_cert_filepath; /**< VHOST: If libwebsockets was compiled to use ssl, and you want * to listen using SSL, set to the filepath to fetch the - * server cert from, otherwise NULL for unencrypted */ + * server cert from, otherwise NULL for unencrypted. (For backwards + * compatibility, this can also be used to pass the client certificate + * when setting up a vhost client SSL context, but it is preferred to + * use .client_ssl_cert_filepath for that.) */ const char *ssl_private_key_filepath; /**< VHOST: filepath to private key if wanting SSL mode; - * if this is set to NULL but sll_cert_filepath is set, the + * if this is set to NULL but ssl_cert_filepath is set, the * OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY callback is called * to allow setting of the private key directly via openSSL - * library calls */ + * library calls. (For backwards compatibility, this can also be used + * to pass the client cert private key filepath when setting up a + * vhost client SSL context, but it is preferred to use + * .client_ssl_private_key_filepath for that.) */ const char *ssl_ca_filepath; - /**< VHOST: CA certificate filepath or NULL */ + /**< VHOST: CA certificate filepath or NULL. (For backwards + * compatibility, this can also be used to pass the client CA + * filepath when setting up a vhost client SSL context, + * but it is preferred to use .client_ssl_ca_filepath for that.) */ const char *ssl_cipher_list; /**< VHOST: List of valid ciphers to use (eg, * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" - * or you can leave it as NULL to get "DEFAULT" */ + * or you can leave it as NULL to get "DEFAULT" (For backwards + * compatibility, this can also be used to pass the client cipher + * list when setting up a vhost client SSL context, + * but it is preferred to use .client_ssl_cipher_list for that.)*/ const char *http_proxy_address; /**< VHOST: If non-NULL, attempts to proxy via the given address. * If proxy auth is required, use format "username:password\@server:port" */ @@ -1611,8 +2173,14 @@ struct lws_context_creation_info { unsigned int options; /**< VHOST + CONTEXT: 0, or LWS_SERVER_OPTION_... bitfields */ void *user; - /**< CONTEXT: optional user pointer that can be recovered via the context - * pointer using lws_context_user */ + /**< VHOST + CONTEXT: optional user pointer that will be associated + * with the context when creating the context (and can be retrieved by + * lws_context_user(context), or with the vhost when creating the vhost + * (and can be retrieved by lws_vhost_user(vhost)). You will need to + * use LWS_SERVER_OPTION_EXPLICIT_VHOSTS and create the vhost separately + * if you care about giving the context and vhost different user pointer + * values. + */ int ka_time; /**< CONTEXT: 0 for no TCP keepalive, otherwise apply this keepalive * timeout to all libwebsocket sockets, client or server */ @@ -1708,6 +2276,110 @@ struct lws_context_creation_info { /**< VHOST: pointer to optional linked list of per-vhost * canned headers that are added to server responses */ + const struct lws_protocol_vhost_options *reject_service_keywords; + /**< CONTEXT: Optional list of keywords and rejection codes + text. + * + * The keywords are checked for existing in the user agent string. + * + * Eg, "badrobot" "404 Not Found" + */ + void *external_baggage_free_on_destroy; + /**< CONTEXT: NULL, or pointer to something externally malloc'd, that + * should be freed when the context is destroyed. This allows you to + * automatically sync the freeing action to the context destruction + * action, so there is no need for an external free() if the context + * succeeded to create. + */ + + const char *client_ssl_private_key_password; + /**< VHOST: Client SSL context init: NULL or the passphrase needed + * for the private key */ + const char *client_ssl_cert_filepath; + /**< VHOST: Client SSL context init:T he certificate the client + * should present to the peer on connection */ + const char *client_ssl_private_key_filepath; + /**< VHOST: Client SSL context init: filepath to client private key + * if this is set to NULL but client_ssl_cert_filepath is set, you + * can handle the LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS + * callback of protocols[0] to allow setting of the private key directly + * via openSSL library calls */ + const char *client_ssl_ca_filepath; + /**< VHOST: Client SSL context init: CA certificate filepath or NULL */ + const char *client_ssl_cipher_list; + /**< VHOST: Client SSL context init: List of valid ciphers to use (eg, + * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" + * or you can leave it as NULL to get "DEFAULT" */ + + const struct lws_plat_file_ops *fops; + /**< CONTEXT: NULL, or pointer to an array of fops structs, terminated + * by a sentinel with NULL .open. + * + * If NULL, lws provides just the platform file operations struct for + * backwards compatibility. + */ + int simultaneous_ssl_restriction; + /**< CONTEXT: 0 (no limit) or limit of simultaneous SSL sessions possible.*/ + const char *socks_proxy_address; + /**< VHOST: If non-NULL, attempts to proxy via the given address. + * If proxy auth is required, use format "username:password\@server:port" */ + unsigned int socks_proxy_port; + /**< VHOST: If socks_proxy_address was non-NULL, uses this port */ +#if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) + cap_value_t caps[4]; + /**< CONTEXT: array holding Linux capabilities you want to + * continue to be available to the server after it transitions + * to a noprivileged user. Usually none are needed but for, eg, + * .bind_iface, CAP_NET_RAW is required. This gives you a way + * to still have the capability but drop root. + */ + char count_caps; + /**< CONTEXT: count of Linux capabilities in .caps[]. 0 means + * no capabilities will be inherited from root (the default) */ +#endif + int bind_iface; + /**< VHOST: nonzero to strictly bind sockets to the interface name in + * .iface (eg, "eth2"), using SO_BIND_TO_DEVICE. + * + * Requires SO_BINDTODEVICE support from your OS and CAP_NET_RAW + * capability. + * + * Notice that common things like access network interface IP from + * your local machine use your lo / loopback interface and will be + * disallowed by this. + */ + int ssl_info_event_mask; + /**< VHOST: mask of ssl events to be reported on LWS_CALLBACK_SSL_INFO + * callback for connections on this vhost. The mask values are of + * the form SSL_CB_ALERT, defined in openssl/ssl.h. The default of + * 0 means no info events will be reported. + */ + unsigned int timeout_secs_ah_idle; + /**< VHOST: seconds to allow a client to hold an ah without using it. + * 0 defaults to 10s. */ + unsigned short ip_limit_ah; + /**< CONTEXT: max number of ah a single IP may use simultaneously + * 0 is no limit. This is a soft limit: if the limit is + * reached, connections from that IP will wait in the ah + * waiting list and not be able to acquire an ah until + * a connection belonging to the IP relinquishes one it + * already has. + */ + unsigned short ip_limit_wsi; + /**< CONTEXT: max number of wsi a single IP may use simultaneously. + * 0 is no limit. This is a hard limit, connections from + * the same IP will simply be dropped once it acquires the + * amount of simultaneous wsi / accepted connections + * given here. + */ + uint32_t http2_settings[7]; + /**< CONTEXT: after context creation http2_settings[1] thru [6] have + * been set to the lws platform default values. + * VHOST: if http2_settings[0] is nonzero, the values given in + * http2_settings[1]..[6] are used instead of the lws + * platform default values. + * Just leave all at 0 if you don't care. + */ + /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility * @@ -1744,7 +2416,7 @@ struct lws_context_creation_info { * * HTTP requests are sent always to the FIRST protocol in protocol, since * at that time websocket protocol has not been negotiated. Other - * protocols after the first one never see any HTTP callack activity. + * protocols after the first one never see any HTTP callback activity. * * The server created is a simple http server by default; part of the * websocket standard is upgrading this http connection to a websocket one. @@ -1767,6 +2439,43 @@ lws_create_context(struct lws_context_creation_info *info); LWS_VISIBLE LWS_EXTERN void lws_context_destroy(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN void +lws_context_destroy2(struct lws_context *context); + +typedef int (*lws_reload_func)(void); + +/** + * lws_context_deprecate() - Deprecate the websocket context + * + * \param context: Websocket context + * \param cb: Callback notified when old context listen sockets are closed + * + * This function is used on an existing context before superceding it + * with a new context. + * + * It closes any listen sockets in the context, so new connections are + * not possible. + * + * And it marks the context to be deleted when the number of active + * connections into it falls to zero. + * + * Otherwise if you attach the deprecated context to the replacement + * context when it has been created using lws_context_attach_deprecated() + * both any deprecated and the new context will service their connections. + * + * This is aimed at allowing seamless configuration reloads. + * + * The callback cb will be called after the listen sockets are actually + * closed and may be reopened. In the callback the new context should be + * configured and created. (With libuv, socket close happens async after + * more loop events). + */ +LWS_VISIBLE LWS_EXTERN void +lws_context_deprecate(struct lws_context *context, lws_reload_func cb); + +LWS_VISIBLE LWS_EXTERN int +lws_context_is_deprecated(struct lws_context *context); + /** * lws_set_proxy() - Setups proxy to lws_context. * \param vhost: pointer to struct lws_vhost you want set proxy for @@ -1787,6 +2496,25 @@ lws_context_destroy(struct lws_context *context); LWS_VISIBLE LWS_EXTERN int lws_set_proxy(struct lws_vhost *vhost, const char *proxy); +/** + * lws_set_socks() - Setup socks to lws_context. + * \param vhost: pointer to struct lws_vhost you want set socks for + * \param socks: pointer to c string containing socks in format address:port + * + * Returns 0 if socks string was parsed and socks was setup. + * Returns -1 if socks is NULL or has incorrect format. + * + * This is only required if your OS does not provide the socks_proxy + * environment variable (eg, OSX) + * + * IMPORTANT! You should call this function right after creation of the + * lws_context and before call to connect. If you call this + * function after connect behavior is undefined. + * This function will override proxy settings made on lws_context + * creation with genenv() call. + */ +LWS_VISIBLE LWS_EXTERN int +lws_set_socks(struct lws_vhost *vhost, const char *socks); struct lws_vhost; @@ -1799,10 +2527,26 @@ struct lws_vhost; * members of the info struct. You can create many vhosts inside one context * if you created the context with the option LWS_SERVER_OPTION_EXPLICIT_VHOSTS */ -LWS_EXTERN LWS_VISIBLE struct lws_vhost * +LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_create_vhost(struct lws_context *context, struct lws_context_creation_info *info); +/** + * lws_vhost_destroy() - Destroy a vhost (virtual server context) + * + * \param vh: pointer to result of lws_create_vhost() + * + * This function destroys a vhost. Normally, if you just want to exit, + * then lws_destroy_context() will take care of everything. If you want + * to destroy an individual vhost and all connections and allocations, you + * can do it with this. + * + * If the vhost has a listen sockets shared by other vhosts, it will be given + * to one of the vhosts sharing it rather than closed. + */ +LWS_VISIBLE LWS_EXTERN void +lws_vhost_destroy(struct lws_vhost *vh); + /** * lwsws_get_config_globals() - Parse a JSON server config file * \param info: pointer to struct with parameters @@ -1869,9 +2613,24 @@ lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len); * \param context: the context * \param buf: buffer to fill with JSON * \param len: max length of buf + * \param hide_vhosts: nonzero to not provide per-vhost mount etc information + * + * Generates a JSON description of vhost state into buf */ LWS_VISIBLE LWS_EXTERN int -lws_json_dump_context(const struct lws_context *context, char *buf, int len); +lws_json_dump_context(const struct lws_context *context, char *buf, int len, + int hide_vhosts); + +/** + * lws_vhost_user() - get the user data associated with the vhost + * \param vhost: Websocket vhost + * + * This returns the optional user pointer that can be attached to + * a vhost when it was created. Lws never dereferences this pointer, it only + * sets it when the vhost is created, and returns it using this api. + */ +LWS_VISIBLE LWS_EXTERN void * +lws_vhost_user(struct lws_vhost *vhost); /** * lws_context_user() - get the user data associated with the context @@ -1909,8 +2668,8 @@ struct lws_protocol_vhost_options { * served from a filesystem, or it is a cgi etc. */ enum lws_mount_protocols { - LWSMPRO_HTTP = 0, /**< not supported yet */ - LWSMPRO_HTTPS = 1, /**< not supported yet */ + LWSMPRO_HTTP = 0, /**< http reverse proxy */ + LWSMPRO_HTTPS = 1, /**< https reverse proxy */ LWSMPRO_FILE = 2, /**< serve from filesystem directory */ LWSMPRO_CGI = 3, /**< pass to CGI to handle */ LWSMPRO_REDIR_HTTP = 4, /**< redirect to http:// url */ @@ -1956,14 +2715,27 @@ struct lws_http_mount { unsigned char origin_protocol; /**< one of enum lws_mount_protocols */ unsigned char mountpoint_len; /**< length of mountpoint string */ + + const char *basic_auth_login_file; + /**nxt; \ + } \ +} + +/** + * lws_start_foreach_llp(): linkedlist pointer iterator helper start + * + * \param type: type of iteration, eg, struct xyz ** + * \param it: iterator var name to create + * \param start: start of list + * + * This helper creates an iterator and starts a while (it) { + * loop. The iterator runs through the linked list starting at the + * address of start and ends when it gets a NULL. + * The while loop should be terminated using lws_start_foreach_llp(). + * + * This helper variant iterates using a pointer to the previous linked-list + * element. That allows you to easily delete list members by rewriting the + * previous pointer to the element's next pointer. + */ +#define lws_start_foreach_llp(type, it, start)\ +{ \ + type it = &(start); \ + while (*(it)) { + +/** + * lws_end_foreach_llp(): linkedlist pointer iterator helper end + * + * \param it: same iterator var name given when starting + * \param nxt: member name in the iterator pointing to next list element + * + * This helper is the partner for lws_start_foreach_llp() that ends the + * while loop. + */ + +#define lws_end_foreach_llp(it, nxt) \ + it = &(*(it))->nxt; \ + } \ +} + /** * lws_snprintf(): snprintf that truncates the returned length too * @@ -3620,7 +4729,7 @@ lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr, * reach the limit the reported length doesn't exceed the limit. */ LWS_VISIBLE LWS_EXTERN int -lws_snprintf(char *str, size_t size, const char *format, ...); +lws_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3); /** * lws_get_random(): fill a buffer with platform random data @@ -3636,7 +4745,7 @@ lws_snprintf(char *str, size_t size, const char *format, ...); LWS_VISIBLE LWS_EXTERN int lws_get_random(struct lws_context *context, void *buf, int len); /** - * lws_daemonize(): fill a buffer with platform random data + * lws_daemonize(): make current process run in the background * * \param _lock_path: the filepath to write the lock file * @@ -3661,6 +4770,19 @@ lws_get_library_version(void); LWS_VISIBLE LWS_EXTERN void * lws_wsi_user(struct lws *wsi); +/** + * lws_wsi_set_user() - set the user data associated with the client connection + * \param wsi: lws connection + * \param user: user data + * + * By default lws allocates this and it's not legal to externally set it + * yourself. However client connections may have it set externally when the + * connection is created... if so, this api can be used to modify it at + * runtime additionally. + */ +LWS_VISIBLE LWS_EXTERN void +lws_set_wsi_user(struct lws *wsi, void *user); + /** * lws_parse_uri: cut up prot:/ads:port/path into pieces * Notice it does so by dropping '\0' into input string @@ -3683,7 +4805,7 @@ LWS_VISIBLE LWS_EXTERN unsigned long lws_now_secs(void); /** - * lws_get_context - Allow geting lws_context from a Websocket connection + * lws_get_context - Allow getting lws_context from a Websocket connection * instance * * With this function, users can access context in the callback function. @@ -3725,6 +4847,45 @@ lws_get_parent(const struct lws *wsi); LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT lws_get_child(const struct lws *wsi); +/** + * lws_parent_carries_io() - mark wsi as needing to send messages via parent + * + * \param wsi: child lws connection + */ + +LWS_VISIBLE LWS_EXTERN void +lws_set_parent_carries_io(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void * +lws_get_opaque_parent_data(const struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void +lws_set_opaque_parent_data(struct lws *wsi, void *data); + +LWS_VISIBLE LWS_EXTERN int +lws_get_child_pending_on_writable(const struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void +lws_clear_child_pending_on_writable(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN int +lws_get_close_length(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN unsigned char * +lws_get_close_payload(struct lws *wsi); + +/** + * lws_get_network_wsi() - Returns wsi that has the tcp connection for this wsi + * + * \param wsi: wsi you have + * + * Returns wsi that has the tcp connection (which may be the incoming wsi) + * + * HTTP/1 connections will always return the incoming wsi + * HTTP/2 connections may return a different wsi that has the tcp connection + */ +LWS_VISIBLE LWS_EXTERN +struct lws *lws_get_network_wsi(struct lws *wsi); /* * \deprecated DEPRECATED Note: this is not normally needed as a user api. @@ -3732,7 +4893,7 @@ lws_get_child(const struct lws *wsi); * useful when integrating with other app poll loop service code. */ LWS_VISIBLE LWS_EXTERN int -lws_read(struct lws *wsi, unsigned char *buf, size_t len); +lws_read(struct lws *wsi, unsigned char *buf, lws_filepos_t len); /** * lws_set_allocator() - custom allocator support @@ -3742,7 +4903,7 @@ lws_read(struct lws *wsi, unsigned char *buf, size_t len); * Allows you to replace the allocator (and deallocator) used by lws */ LWS_VISIBLE LWS_EXTERN void -lws_set_allocator(void *(*realloc)(void *ptr, size_t size)); +lws_set_allocator(void *(*realloc)(void *ptr, size_t size, const char *reason)); ///@} /** \defgroup wsstatus Websocket status APIs @@ -3762,11 +4923,20 @@ lws_send_pipe_choked(struct lws *wsi); /** * lws_is_final_fragment() - tests if last part of ws message + * * \param wsi: lws connection */ LWS_VISIBLE LWS_EXTERN int lws_is_final_fragment(struct lws *wsi); +/** + * lws_is_first_fragment() - tests if first part of ws message + * + * \param wsi: lws connection + */ +LWS_VISIBLE LWS_EXTERN int +lws_is_first_fragment(struct lws *wsi); + /** * lws_get_reserved_bits() - access reserved bits of ws frame * \param wsi: lws connection @@ -3821,8 +4991,242 @@ lws_is_ssl(struct lws *wsi); */ LWS_VISIBLE LWS_EXTERN int lws_is_cgi(struct lws *wsi); + +#ifdef LWS_OPENSSL_SUPPORT +/** + * lws_get_ssl() - Return wsi's SSL context structure + * \param wsi: websocket connection + * + * Returns pointer to the SSL library's context structure + */ +LWS_VISIBLE LWS_EXTERN SSL* +lws_get_ssl(struct lws *wsi); +#endif ///@} +/** \defgroup lws_ring LWS Ringbuffer APIs + * ##lws_ring: generic ringbuffer struct + * + * Provides an abstract ringbuffer api supporting one head and one or an + * unlimited number of tails. + * + * All of the members are opaque and manipulated by lws_ring_...() apis. + * + * The lws_ring and its buffer is allocated at runtime on the heap, using + * + * - lws_ring_create() + * - lws_ring_destroy() + * + * It may contain any type, the size of the "element" stored in the ring + * buffer and the number of elements is given at creation time. + * + * When you create the ringbuffer, you can optionally provide an element + * destroy callback that frees any allocations inside the element. This is then + * automatically called for elements with no tail behind them, ie, elements + * which don't have any pending consumer are auto-freed. + * + * Whole elements may be inserted into the ringbuffer and removed from it, using + * + * - lws_ring_insert() + * - lws_ring_consume() + * + * You can find out how many whole elements are free or waiting using + * + * - lws_ring_get_count_free_elements() + * - lws_ring_get_count_waiting_elements() + * + * In addition there are special purpose optional byte-centric apis + * + * - lws_ring_next_linear_insert_range() + * - lws_ring_bump_head() + * + * which let you, eg, read() directly into the ringbuffer without needing + * an intermediate bounce buffer. + * + * The accessors understand that the ring wraps, and optimizes insertion and + * consumption into one or two memcpy()s depending on if the head or tail + * wraps. + * + * lws_ring only supports a single head, but optionally multiple tails with + * an API to inform it when the "oldest" tail has moved on. You can give + * NULL where-ever an api asks for a tail pointer, and it will use an internal + * single tail pointer for convenience. + * + * The "oldest tail", which is the only tail if you give it NULL instead of + * some other tail, is used to track which elements in the ringbuffer are + * still unread by anyone. + * + * - lws_ring_update_oldest_tail() + */ +///@{ +struct lws_ring; + +/** + * lws_ring_create(): create a new ringbuffer + * + * \param element_len: the size in bytes of one element in the ringbuffer + * \param count: the number of elements the ringbuffer can contain + * \param destroy_element: NULL, or callback to be called for each element + * that is removed from the ringbuffer due to the + * oldest tail moving beyond it + * + * Creates the ringbuffer and allocates the storage. Returns the new + * lws_ring *, or NULL if the allocation failed. + * + * If non-NULL, destroy_element will get called back for every element that is + * retired from the ringbuffer after the oldest tail has gone past it, and for + * any element still left in the ringbuffer when it is destroyed. It replaces + * all other element destruction code in your user code. + */ +LWS_VISIBLE LWS_EXTERN struct lws_ring * +lws_ring_create(size_t element_len, size_t count, + void (*destroy_element)(void *element)); + +/** + * lws_ring_destroy(): destroy a previously created ringbuffer + * + * \param ring: the struct lws_ring to destroy + * + * Destroys the ringbuffer allocation and the struct lws_ring itself. + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_destroy(struct lws_ring *ring); + +/** + * lws_ring_get_count_free_elements(): return how many elements can fit + * in the free space + * + * \param ring: the struct lws_ring to report on + * + * Returns how much room is left in the ringbuffer for whole element insertion. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_get_count_free_elements(struct lws_ring *ring); + +/** + * lws_ring_get_count_waiting_elements(): return how many elements can be consumed + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * Returns how many elements are waiting to be consumed from the perspective + * of the tail pointer given. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_get_count_waiting_elements(struct lws_ring *ring, uint32_t *tail); + +/** + * lws_ring_insert(): attempt to insert up to max_count elements from src + * + * \param ring: the struct lws_ring to report on + * \param src: the array of elements to be inserted + * \param max_count: the number of available elements at src + * + * Attempts to insert as many of the elements at src as possible, up to the + * maximum max_count. Returns the number of elements actually inserted. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_insert(struct lws_ring *ring, const void *src, size_t max_count); + +/** + * lws_ring_consume(): attempt to copy out and remove up to max_count elements + * to src + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * \param dest: the array of elements to be inserted. or NULL for no copy + * \param max_count: the number of available elements at src + * + * Attempts to copy out as many waiting elements as possible into dest, from + * the perspective of the given tail, up to max_count. If dest is NULL, the + * copying out is not done but the elements are logically consumed as usual. + * NULL dest is useful in combination with lws_ring_get_element(), where you + * can use the element direct from the ringbuffer and then call this with NULL + * dest to logically consume it. + * + * Increments the tail position according to how many elements could be + * consumed. + * + * Returns the number of elements consumed. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_consume(struct lws_ring *ring, uint32_t *tail, void *dest, + size_t max_count); + +/** + * lws_ring_get_element(): get a pointer to the next waiting element for tail + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * Points to the next element that tail would consume, directly in the + * ringbuffer. This lets you write() or otherwise use the element without + * having to copy it out somewhere first. + * + * After calling this, you must call lws_ring_consume(ring, &tail, NULL, 1) + * which will logically consume the element you used up and increment your + * tail (tail may also be NULL there if you use a single tail). + * + * Returns NULL if no waiting element, or a const void * pointing to it. + */ +LWS_VISIBLE LWS_EXTERN const void * +lws_ring_get_element(struct lws_ring *ring, uint32_t *tail); + +/** + * lws_ring_update_oldest_tail(): free up elements older than tail for reuse + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * If you are using multiple tails, you must use this API to inform the + * lws_ring when none of the tails still need elements in the fifo any more, + * by updating it when the "oldest" tail has moved on. + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_update_oldest_tail(struct lws_ring *ring, uint32_t tail); + +/** + * lws_ring_get_oldest_tail(): get current oldest available data index + * + * \param ring: the struct lws_ring to report on + * + * If you are initializing a new ringbuffer consumer, you can set its tail to + * this to start it from the oldest ringbuffer entry still available. + */ +LWS_VISIBLE LWS_EXTERN uint32_t +lws_ring_get_oldest_tail(struct lws_ring *ring); + +/** + * lws_ring_next_linear_insert_range(): used to write directly into the ring + * + * \param ring: the struct lws_ring to report on + * \param start: pointer to a void * set to the start of the next ringbuffer area + * \param bytes: pointer to a size_t set to the max length you may use from *start + * + * This provides a low-level, bytewise access directly into the ringbuffer + * allowing direct insertion of data without having to use a bounce buffer. + * + * The api reports the position and length of the next linear range that can + * be written in the ringbuffer, ie, up to the point it would wrap, and sets + * *start and *bytes accordingly. You can then, eg, directly read() into + * *start for up to *bytes, and use lws_ring_bump_head() to update the lws_ring + * with what you have done. + * + * Returns nonzero if no insertion is currently possible. + */ +LWS_VISIBLE LWS_EXTERN int +lws_ring_next_linear_insert_range(struct lws_ring *ring, void **start, + size_t *bytes); + +/** + * lws_ring_bump_head(): used to write directly into the ring + * + * \param ring: the struct lws_ring to operate on + * \param bytes: the number of bytes you inserted at the current head + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_bump_head(struct lws_ring *ring, size_t bytes); +///@} /** \defgroup sha SHA and B64 helpers * ##SHA and B64 helpers @@ -3880,7 +5284,7 @@ lws_b64_decode_string(const char *in, char *out, int out_size); * However for most cases, binding the cgi to http in and out, the default * lws implementation already does the right thing. */ -#ifdef LWS_WITH_CGI + enum lws_enum_stdinouterr { LWS_STDIN = 0, LWS_STDOUT = 1, @@ -3893,6 +5297,8 @@ enum lws_cgi_hdr_state { LCHS_LF1, LCHS_CR2, LCHS_LF2, + LHCS_RESPONSE, + LHCS_DUMP_HEADERS, LHCS_PAYLOAD, LCHS_SINGLE_0A, }; @@ -3905,13 +5311,14 @@ struct lws_cgi_args { int len; /**< length */ }; - +#ifdef LWS_WITH_CGI /** * lws_cgi: spawn network-connected cgi process * * \param wsi: connection to own the process * \param exec_array: array of "exec-name" "arg1" ... "argn" NULL - * \param script_uri_path_len: how many chars on the left of the uri are the path to the cgi + * \param script_uri_path_len: how many chars on the left of the uri are the + * path to the cgi, or -1 to spawn without URL-related env vars * \param timeout_secs: seconds script should be allowed to run * \param mp_cgienv: pvo list with per-vhost cgi options to put in env */ @@ -3935,6 +5342,16 @@ lws_cgi_write_split_stdout_headers(struct lws *wsi); */ LWS_VISIBLE LWS_EXTERN int lws_cgi_kill(struct lws *wsi); + +/** + * lws_cgi_get_stdwsi: get wsi for stdin, stdout, or stderr + * + * \param wsi: parent wsi that has cgi + * \param ch: which of LWS_STDIN, LWS_STDOUT or LWS_STDERR + */ +LWS_VISIBLE LWS_EXTERN struct lws * +lws_cgi_get_stdwsi(struct lws *wsi, enum lws_enum_stdinouterr ch); + #endif ///@} @@ -3961,24 +5378,85 @@ lws_cgi_kill(struct lws *wsi); * These provide platform-agnostic ways to deal with filesystem access in the * library and in the user code. */ + +#if defined(LWS_WITH_ESP32) +/* sdk preprocessor defs? compiler issue? gets confused with member names */ +#define LWS_FOP_OPEN _open +#define LWS_FOP_CLOSE _close +#define LWS_FOP_SEEK_CUR _seek_cur +#define LWS_FOP_READ _read +#define LWS_FOP_WRITE _write +#else +#define LWS_FOP_OPEN open +#define LWS_FOP_CLOSE close +#define LWS_FOP_SEEK_CUR seek_cur +#define LWS_FOP_READ read +#define LWS_FOP_WRITE write +#endif + +#define LWS_FOP_FLAGS_MASK ((1 << 23) - 1) +#define LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP (1 << 24) +#define LWS_FOP_FLAG_COMPR_IS_GZIP (1 << 25) +#define LWS_FOP_FLAG_MOD_TIME_VALID (1 << 26) +#define LWS_FOP_FLAG_VIRTUAL (1 << 27) + +struct lws_plat_file_ops; + +struct lws_fop_fd { + lws_filefd_type fd; + /**< real file descriptor related to the file... */ + const struct lws_plat_file_ops *fops; + /**< fops that apply to this fop_fd */ + void *filesystem_priv; + /**< ignored by lws; owned by the fops handlers */ + lws_filepos_t pos; + /**< generic "position in file" */ + lws_filepos_t len; + /**< generic "length of file" */ + lws_fop_flags_t flags; + /**< copy of the returned flags */ + uint32_t mod_time; + /**< optional "modification time of file", only valid if .open() + * set the LWS_FOP_FLAG_MOD_TIME_VALID flag */ +}; +typedef struct lws_fop_fd *lws_fop_fd_t; + +struct lws_fops_index { + const char *sig; /* NULL or vfs signature, eg, ".zip/" */ + uint8_t len; /* length of above string */ +}; + struct lws_plat_file_ops { - lws_filefd_type (*open)(struct lws *wsi, const char *filename, - unsigned long *filelen, int flags); + lws_fop_fd_t (*LWS_FOP_OPEN)(const struct lws_plat_file_ops *fops, + const char *filename, const char *vpath, + lws_fop_flags_t *flags); /**< Open file (always binary access if plat supports it) - * filelen is filled on exit to be the length of the file - * flags should be set to O_RDONLY or O_RDWR */ - int (*close)(struct lws *wsi, lws_filefd_type fd); - /**< close file */ - unsigned long (*seek_cur)(struct lws *wsi, lws_filefd_type fd, - long offset_from_cur_pos); + * vpath may be NULL, or if the fops understands it, the point at which + * the filename's virtual part starts. + * *flags & LWS_FOP_FLAGS_MASK should be set to O_RDONLY or O_RDWR. + * If the file may be gzip-compressed, + * LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP is set. If it actually is + * gzip-compressed, then the open handler should OR + * LWS_FOP_FLAG_COMPR_IS_GZIP on to *flags before returning. + */ + int (*LWS_FOP_CLOSE)(lws_fop_fd_t *fop_fd); + /**< close file AND set the pointer to NULL */ + lws_fileofs_t (*LWS_FOP_SEEK_CUR)(lws_fop_fd_t fop_fd, + lws_fileofs_t offset_from_cur_pos); /**< seek from current position */ - int (*read)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len); + int (*LWS_FOP_READ)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); /**< Read from file, on exit *amount is set to amount actually read */ - int (*write)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len); + int (*LWS_FOP_WRITE)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); /**< Write to file, on exit *amount is set to amount actually written */ + struct lws_fops_index fi[3]; + /**< vfs path signatures implying use of this fops */ + + const struct lws_plat_file_ops *next; + /**< NULL or next fops in list */ + /* Add new things just above here ---^ * This is part of the ABI, don't needlessly break compatibility */ }; @@ -3990,84 +5468,144 @@ struct lws_plat_file_ops { */ LWS_VISIBLE LWS_EXTERN struct lws_plat_file_ops * LWS_WARN_UNUSED_RESULT lws_get_fops(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN void +lws_set_fops(struct lws_context *context, const struct lws_plat_file_ops *fops); +/** + * lws_vfs_tell() - get current file position + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT +lws_vfs_tell(lws_fop_fd_t fop_fd); +/** + * lws_vfs_get_length() - get current file total length in bytes + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT +lws_vfs_get_length(lws_fop_fd_t fop_fd); +/** + * lws_vfs_get_mod_time() - get time file last modified + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN uint32_t LWS_WARN_UNUSED_RESULT +lws_vfs_get_mod_time(lws_fop_fd_t fop_fd); +/** + * lws_vfs_file_seek_set() - seek relative to start of file + * + * \param fop_fd: fop_fd we are seeking in + * \param offset: offset from start of file + */ +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +lws_vfs_file_seek_set(lws_fop_fd_t fop_fd, lws_fileofs_t offset); +/** + * lws_vfs_file_seek_end() - seek relative to end of file + * + * \param fop_fd: fop_fd we are seeking in + * \param offset: offset from start of file + */ +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +lws_vfs_file_seek_end(lws_fop_fd_t fop_fd, lws_fileofs_t offset); + +extern struct lws_plat_file_ops fops_zip; /** - * lws_plat_file_open() - file open operations + * lws_plat_file_open() - open vfs filepath * - * \param wsi: connection doing the opening - * \param filename: filename to open - * \param filelen: length of file (filled in by call) - * \param flags: open flags + * \param fops: file ops struct that applies to this descriptor + * \param vfs_path: filename to open + * \param flags: pointer to open flags + * + * The vfs_path is scanned for known fops signatures, and the open directed + * to any matching fops open. + * + * User code should use this api to perform vfs opens. + * + * returns semi-opaque handle */ -static LWS_INLINE lws_filefd_type LWS_WARN_UNUSED_RESULT -lws_plat_file_open(struct lws *wsi, const char *filename, - unsigned long *filelen, int flags) -{ - return lws_get_fops(lws_get_context(wsi))->open(wsi, filename, - filelen, flags); -} +LWS_VISIBLE LWS_EXTERN lws_fop_fd_t LWS_WARN_UNUSED_RESULT +lws_vfs_file_open(const struct lws_plat_file_ops *fops, const char *vfs_path, + lws_fop_flags_t *flags); /** * lws_plat_file_close() - close file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle to close */ static LWS_INLINE int -lws_plat_file_close(struct lws *wsi, lws_filefd_type fd) +lws_vfs_file_close(lws_fop_fd_t *fop_fd) { - return lws_get_fops(lws_get_context(wsi))->close(wsi, fd); + return (*fop_fd)->fops->LWS_FOP_CLOSE(fop_fd); } /** * lws_plat_file_seek_cur() - close file * - * \param wsi: connection opened by - * \param fd: file descriptor + * + * \param fop_fd: file handle * \param offset: position to seek to */ -static LWS_INLINE unsigned long -lws_plat_file_seek_cur(struct lws *wsi, lws_filefd_type fd, long offset) +static LWS_INLINE lws_fileofs_t +lws_vfs_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset) { - return lws_get_fops(lws_get_context(wsi))->seek_cur(wsi, fd, offset); + return fop_fd->fops->LWS_FOP_SEEK_CUR(fop_fd, offset); } /** * lws_plat_file_read() - read from file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle * \param amount: how much to read (rewritten by call) * \param buf: buffer to write to * \param len: max length */ static LWS_INLINE int LWS_WARN_UNUSED_RESULT -lws_plat_file_read(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len) +lws_vfs_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len) { - return lws_get_fops(lws_get_context(wsi))->read(wsi, fd, amount, buf, - len); + return fop_fd->fops->LWS_FOP_READ(fop_fd, amount, buf, len); } /** * lws_plat_file_write() - write from file * - * \param wsi: connection opened by - * \param fd: file descriptor + * \param fop_fd: file handle * \param amount: how much to write (rewritten by call) * \param buf: buffer to read from * \param len: max length */ static LWS_INLINE int LWS_WARN_UNUSED_RESULT -lws_plat_file_write(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, - unsigned char *buf, unsigned long len) +lws_vfs_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len) { - return lws_get_fops(lws_get_context(wsi))->write(wsi, fd, amount, buf, - len); + return fop_fd->fops->LWS_FOP_WRITE(fop_fd, amount, buf, len); } + +/* these are the platform file operations implementations... they can + * be called directly and used in fops arrays + */ + +LWS_VISIBLE LWS_EXTERN lws_fop_fd_t +_lws_plat_file_open(const struct lws_plat_file_ops *fops, const char *filename, + const char *vpath, lws_fop_flags_t *flags); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_close(lws_fop_fd_t *fop_fd); +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +_lws_plat_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); + +LWS_VISIBLE LWS_EXTERN int +lws_alloc_vfs_file(struct lws_context *context, const char *filename, + uint8_t **buf, lws_filepos_t *amount); //@} -/** \defgroup smtp - * \ingroup lwsapi +/** \defgroup smtp SMTP related functions * ##SMTP related functions + * \ingroup lwsapi * * These apis let you communicate with a local SMTP server to send email from * lws. It handles all the SMTP sequencing and protocol actions. @@ -4189,6 +5727,59 @@ lws_email_destroy(struct lws_email *email); #endif //@} +/* + * Stats are all uint64_t numbers that start at 0. + * Index names here have the convention + * + * _C_ counter + * _B_ byte count + * _MS_ millisecond count + */ + +enum { + LWSSTATS_C_CONNECTIONS, /**< count incoming connections */ + LWSSTATS_C_API_CLOSE, /**< count calls to close api */ + LWSSTATS_C_API_READ, /**< count calls to read from socket api */ + LWSSTATS_C_API_LWS_WRITE, /**< count calls to lws_write API */ + LWSSTATS_C_API_WRITE, /**< count calls to write API */ + LWSSTATS_C_WRITE_PARTIALS, /**< count of partial writes */ + LWSSTATS_C_WRITEABLE_CB_REQ, /**< count of writable callback requests */ + LWSSTATS_C_WRITEABLE_CB_EFF_REQ, /**< count of effective writable callback requests */ + LWSSTATS_C_WRITEABLE_CB, /**< count of writable callbacks */ + LWSSTATS_C_SSL_CONNECTIONS_FAILED, /**< count of failed SSL connections */ + LWSSTATS_C_SSL_CONNECTIONS_ACCEPTED, /**< count of accepted SSL connections */ + LWSSTATS_C_SSL_CONNECTIONS_ACCEPT_SPIN, /**< count of SSL_accept() attempts */ + LWSSTATS_C_SSL_CONNS_HAD_RX, /**< count of accepted SSL conns that have had some RX */ + LWSSTATS_C_TIMEOUTS, /**< count of timed-out connections */ + LWSSTATS_C_SERVICE_ENTRY, /**< count of entries to lws service loop */ + LWSSTATS_B_READ, /**< aggregate bytes read */ + LWSSTATS_B_WRITE, /**< aggregate bytes written */ + LWSSTATS_B_PARTIALS_ACCEPTED_PARTS, /**< aggreate of size of accepted write data from new partials */ + LWSSTATS_MS_SSL_CONNECTIONS_ACCEPTED_DELAY, /**< aggregate delay in accepting connection */ + LWSSTATS_MS_WRITABLE_DELAY, /**< aggregate delay between asking for writable and getting cb */ + LWSSTATS_MS_WORST_WRITABLE_DELAY, /**< single worst delay between asking for writable and getting cb */ + LWSSTATS_MS_SSL_RX_DELAY, /**< aggregate delay between ssl accept complete and first RX */ + LWSSTATS_C_PEER_LIMIT_AH_DENIED, /**< number of times we would have given an ah but for the peer limit */ + LWSSTATS_C_PEER_LIMIT_WSI_DENIED, /**< number of times we would have given a wsi but for the peer limit */ + + /* Add new things just above here ---^ + * This is part of the ABI, don't needlessly break compatibility */ + LWSSTATS_SIZE +}; + +#if defined(LWS_WITH_STATS) + +LWS_VISIBLE LWS_EXTERN uint64_t +lws_stats_get(struct lws_context *context, int index); +LWS_VISIBLE LWS_EXTERN void +lws_stats_log_dump(struct lws_context *context); +#else +static LWS_INLINE uint64_t +lws_stats_get(struct lws_context *context, int index) { return 0; } +static LWS_INLINE void +lws_stats_log_dump(struct lws_context *context) { } +#endif + #ifdef __cplusplus } #endif diff --git a/ios/include/websockets/lws_config.h b/ios/include/websockets/lws_config.h index 2b5be4ae..88b0dda8 100644 --- a/ios/include/websockets/lws_config.h +++ b/ios/include/websockets/lws_config.h @@ -1,11 +1,156 @@ -#ifdef __arm64__ -#include "lws_config-arm64.h" -#elif __arm__ -#include "lws_config-arm32.h" -#elif __i386__ -#include "lws_config-i386.h" -#elif __x86_64__ -#include "lws_config-x86_64.h" -#else -#error "Unsupported architecture!" +/* lws_config.h Generated from lws_config.h.in */ + +#ifndef NDEBUG + #ifndef _DEBUG + #define _DEBUG + #endif #endif + +#define LWS_INSTALL_DATADIR "/Users/cocos/Github/cocos2d-x-3rd-party-libs-src/contrib/install-ios/x86_64/share" + +/* Define to 1 to use wolfSSL/CyaSSL as a replacement for OpenSSL. + * LWS_OPENSSL_SUPPORT needs to be set also for this to work. */ +/* #undef USE_WOLFSSL */ + +/* Also define to 1 (in addition to USE_WOLFSSL) when using the + (older) CyaSSL library */ +/* #undef USE_OLD_CYASSL */ +/* #undef LWS_WITH_BORINGSSL */ + +/* #undef LWS_WITH_MBEDTLS */ +/* #undef LWS_WITH_POLARSSL */ +/* #undef LWS_WITH_ESP8266 */ +/* #undef LWS_WITH_ESP32 */ + +/* #undef LWS_WITH_PLUGINS */ +/* #undef LWS_WITH_NO_LOGS */ + +/* The Libwebsocket version */ +#define LWS_LIBRARY_VERSION "2.4.2" + +#define LWS_LIBRARY_VERSION_MAJOR 2 +#define LWS_LIBRARY_VERSION_MINOR 4 +#define LWS_LIBRARY_VERSION_PATCH 2 +/* LWS_LIBRARY_VERSION_NUMBER looks like 1005001 for e.g. version 1.5.1 */ +#define LWS_LIBRARY_VERSION_NUMBER (LWS_LIBRARY_VERSION_MAJOR*1000000)+(LWS_LIBRARY_VERSION_MINOR*1000)+LWS_LIBRARY_VERSION_PATCH + +/* The current git commit hash that we're building from */ +#define LWS_BUILD_HASH "cocos@cocoss-MacBook-Pro.local-v3.4-182-g408ba56" + +/* Build with OpenSSL support */ +#define LWS_OPENSSL_SUPPORT + +/* The client should load and trust CA root certs it finds in the OS */ +#define LWS_SSL_CLIENT_USE_OS_CA_CERTS + +/* Sets the path where the client certs should be installed. */ +#define LWS_OPENSSL_CLIENT_CERTS "../share" + +/* Turn off websocket extensions */ +/* #undef LWS_NO_EXTENSIONS */ + +/* Enable libev io loop */ +/* #undef LWS_WITH_LIBEV */ + +/* Enable libuv io loop */ +#define LWS_WITH_LIBUV + +/* Enable libevent io loop */ +/* #undef LWS_WITH_LIBEVENT */ + +/* Build with support for ipv6 */ +#define LWS_WITH_IPV6 + +/* Build with support for UNIX domain socket */ +/* #undef LWS_WITH_UNIX_SOCK */ + +/* Build with support for HTTP2 */ +/* #undef LWS_WITH_HTTP2 */ + +/* Turn on latency measuring code */ +/* #undef LWS_LATENCY */ + +/* Don't build the daemonizeation api */ +#define LWS_NO_DAEMONIZE + +/* Build without server support */ +/* #undef LWS_NO_SERVER */ + +/* Build without client support */ +/* #undef LWS_NO_CLIENT */ + +/* If we should compile with MinGW support */ +/* #undef LWS_MINGW_SUPPORT */ + +/* Use the BSD getifaddrs that comes with libwebsocket, for uclibc support */ +/* #undef LWS_BUILTIN_GETIFADDRS */ + +/* use SHA1() not internal libwebsockets_SHA1 */ +/* #undef LWS_SHA1_USE_OPENSSL_NAME */ + +/* SSL server using ECDH certificate */ +/* #undef LWS_SSL_SERVER_WITH_ECDH_CERT */ +#define LWS_HAVE_SSL_CTX_set1_param +#define LWS_HAVE_X509_VERIFY_PARAM_set1_host +#define LWS_HAVE_RSA_SET0_KEY + +/* #undef LWS_HAVE_UV_VERSION_H */ + +/* CGI apis */ +/* #undef LWS_WITH_CGI */ + +/* whether the Openssl is recent enough, and / or built with, ecdh */ +#define LWS_HAVE_OPENSSL_ECDH_H + +/* HTTP Proxy support */ +/* #undef LWS_WITH_HTTP_PROXY */ + +/* HTTP Ranges support */ +#define LWS_WITH_RANGES + +/* Http access log support */ +/* #undef LWS_WITH_ACCESS_LOG */ +/* #undef LWS_WITH_SERVER_STATUS */ + +/* #undef LWS_WITH_STATEFUL_URLDECODE */ +/* #undef LWS_WITH_PEER_LIMITS */ + +/* Maximum supported service threads */ +#define LWS_MAX_SMP 1 + +/* Lightweight JSON Parser */ +/* #undef LWS_WITH_LEJP */ + +/* SMTP */ +/* #undef LWS_WITH_SMTP */ + +/* OPTEE */ +/* #undef LWS_PLAT_OPTEE */ + +/* ZIP FOPS */ +#define LWS_WITH_ZIP_FOPS +#define LWS_HAVE_STDINT_H + +/* #undef LWS_AVOID_SIGPIPE_IGN */ + +/* #undef LWS_FALLBACK_GETHOSTBYNAME */ + +/* #undef LWS_WITH_STATS */ +/* #undef LWS_WITH_SOCKS5 */ + +/* #undef LWS_HAVE_SYS_CAPABILITY_H */ +/* #undef LWS_HAVE_LIBCAP */ + +#define LWS_HAVE_ATOLL +/* #undef LWS_HAVE__ATOI64 */ +/* #undef LWS_HAVE__STAT32I64 */ + +/* OpenSSL various APIs */ + +#define LWS_HAVE_TLS_CLIENT_METHOD +#define LWS_HAVE_TLSV1_2_CLIENT_METHOD +#define LWS_HAVE_SSL_SET_INFO_CALLBACK + +#define LWS_HAS_INTPTR_T + + diff --git a/ios/libs/libwebsockets.a b/ios/libs/libwebsockets.a index e3dc38e39abfaea5f4eade1ec74d383f6c48065a..45a4a1cd0b18e6330c4175081274120463c41ac1 100644 GIT binary patch literal 921752 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