Open sush126 opened 2 months ago
Recent lws supports it on freertos... it uses two UDP sockets back - back to simulate a pipe().
i am using v4.3.2 can you please mention which recent version i can use it which has support for freertos LWS_CALLBACK_EVENT_WAIT_CANCELLED event
It should have it, but does your lwip / freertos build support udp?
yes LWS_WITH_UDP is defined , please find below lws_config.h file
/ lws_config.h Generated from lws_config.h.in /
#ifndef _DEBUG
#define _DEBUG
#endif
/ LWS_LIBRARY_VERSION_NUMBER looks like 1005001 for e.g. version 1.5.1 /
(LWS_LIBRARY_VERSION_MINOR * 1000) + \
LWS_LIBRARY_VERSION_PATCH
/ #undef LWS_ESP_PLATFORM / / #undef LWS_LIBRARY_VERSION_NUMBER /
/ #undef LWS_EXT_PTHREAD_LIBRARIES /
/ #undef LWS_AVOID_SIGPIPE_IGN /
/ #undef LWS_BUILTIN_GETIFADDRS /
/ #undef LWS_DETECTED_PLAT_IOS / / #undef LWS_FALLBACK_GETHOSTBYNAME /
/ #undef LWS_HAVE__ATOI64 /
/ #undef LWS_HAVE_BN_bn2binpad / / #undef LWS_HAVE_CLOCK_GETTIME / / #undef LWS_HAVE_EC_POINT_get_affine_coordinates / / #undef LWS_HAVE_EC_KEY_new_by_curve_name / / #undef LWS_HAVE_ECDSA_SIG_set0 / / #undef LWS_HAVE_EVP_MD_CTX_free / / #undef LWS_HAVE_EVP_aes_128_wrap / / #undef LWS_HAVE_EVP_aes_128_cfb8 / / #undef LWS_HAVE_EVP_aes_128_cfb128 / / #undef LWS_HAVE_EVP_aes_192_cfb8 / / #undef LWS_HAVE_EVP_aes_192_cfb128 / / #undef LWS_HAVE_EVP_aes_256_cfb8 / / #undef LWS_HAVE_EVP_aes_256_cfb128 / / #undef LWS_HAVE_EVP_aes_128_ofb / / #undef LWS_HAVE_EVP_aes_128_xts / / #undef LWS_HAVE_EVP_aes_128_ctr / / #undef LWS_HAVE_EVP_aes_128_ecb / / #undef LWS_HAVE_EVP_PKEY_new_raw_private_key / / #undef LWS_HAVE_EXECVPE /
/ #undef LWS_HAVE_GETGRGID_R / / #undef LWS_HAVE_GETGRNAM_R / / #undef LWS_HAVE_GETPWUID_R / / #undef LWS_HAVE_GETPWNAM_R / / #undef LWS_HAVE_LIBCAP / / #undef LWS_HAVE_HMAC_CTX_new /
/ #undef LWS_HAVE_mbedtls_md_setup / / #undef LWS_HAVE_mbedtls_net_init / / #undef LWS_HAVE_mbedtls_rsa_complete / / #undef LWS_HAVE_mbedtls_internal_aes_encrypt / / #undef LWS_HAVE_mbedtls_ssl_conf_alpn_protocols / / #undef LWS_HAVE_mbedtls_ssl_get_alpn_protocol / / #undef LWS_HAVE_mbedtls_ssl_conf_sni / / #undef LWS_HAVE_mbedtls_ssl_set_hs_ca_chain / / #undef LWS_HAVE_mbedtls_ssl_set_hs_own_cert / / #undef LWS_HAVE_mbedtls_ssl_set_hs_authmode / / #undef LWS_HAVE_mbedtls_ssl_set_verify / / #undef LWS_HAVE_mbedtls_x509_crt_parse_file /
/ #undef LWS_HAVE_MBEDTLS_AUTH_KEY_ID / / #undef LWS_HAVE_NEW_UV_VERSION_H / / #undef LWS_HAVE_OPENSSL_ECDH_H / / #undef LWS_HAVE_OPENSSL_STACK / / #undef LWS_HAVE_PIPE2 / / #undef LWS_HAVE_EVENTFD /
/ #undef LWS_HAVE_RSA_SET0_KEY / / #undef LWS_HAVE_RSA_verify_pss_mgf1 / / #undef LWS_HAVE_SSL_CTX_get0_certificate / / #undef LWS_HAVE_SSL_CTX_load_verify_file / / #undef LWS_HAVE_SSL_CTX_load_verify_dir / / #undef LWS_HAVE_SSL_CTX_set1_param / / #undef LWS_HAVE_SSL_CTX_set_ciphersuites / / #undef LWS_HAVE_SSL_EXTRA_CHAIN_CERTS / / #undef LWS_HAVE_SSL_get0_alpn_selected / / #undef LWS_HAVE_SSL_CTX_EVP_PKEY_new_raw_private_key / / #undef LWS_HAVE_SSL_set_alpn_protos / / #undef LWS_HAVE_SSL_SET_INFO_CALLBACK / / #undef LWS_HAVE_SSL_SESSION_set_time / / #undef LWS_HAVE_SSL_SESSION_up_ref / / #undef LWS_HAVE__STAT32I64 /
/ #undef LWS_HAVE_SYS_CAPABILITY_H / / #undef LWS_HAVE_TIMEGM / / #undef LWS_HAVE_TLS_CLIENT_METHOD / / #undef LWS_HAVE_TLSV1_2_CLIENT_METHOD /
/ #undef LWS_HAVE_UV_VERSION_H / / #undef LWS_HAVE_VFORK / / #undef LWS_HAVE_X509_get_key_usage / / #undef LWS_HAVE_X509_VERIFY_PARAM_set1_host /
/ #undef LWS_MINGW_SUPPORT / / #undef LWS_NO_CLIENT /
/ #undef LWS_PLAT_OPTEE / / #undef LWS_PLAT_UNIX /
/ #undef LWS_ROLE_CGI / / #undef LWS_ROLE_DBUS /
/ #undef LWS_ROLE_RAW_PROXY /
/ #undef LWS_ROLE_MQTT / / #undef LWS_SHA1_USE_OPENSSL_NAME /
/ #undef LWS_SSL_SERVER_WITH_ECDH_CERT /
/ #undef LWS_TLS_LOG_PLAINTEXT_RX / / #undef LWS_TLS_LOG_PLAINTEXT_TX / / #undef LWS_WITH_ABSTRACT / / #undef LWS_WITH_ACCESS_LOG / / #undef LWS_WITH_ACME / / #undef LWS_WITH_ALSA / / #undef LWS_WITH_SYS_ASYNC_DNS / / #undef LWS_WITH_BORINGSSL / / #undef LWS_WITH_CGI / / #undef LWS_WITH_CONMON / / #undef LWS_WITH_COSE / / #undef LWS_WITH_CUSTOM_HEADERS / / #undef LWS_WITH_DEPRECATED_LWS_DLL / / #undef LWS_WITH_DETAILED_LATENCY / / #undef LWS_WITH_DIR / / #undef LWS_WITH_DRIVERS / / #undef LWS_WITH_ESP32 / / #undef LWS_HAVE_EVBACKEND_LINUXAIO / / #undef LWS_HAVE_EVBACKEND_IOURING / / #undef LWS_WITH_EXTERNAL_POLL / / #undef LWS_WITH_FILE_OPS / / #undef LWS_WITH_FSMOUNT / / #undef LWS_WITH_FTS / / #undef LWS_WITH_GENCRYPTO / / #undef LWS_WITH_GENERIC_SESSIONS / / #undef LWS_WITH_GLIB / / #undef LWS_WITH_GTK /
/ #undef LWS_WITH_HTTP_BROTLI / / #undef LWS_HTTP_HEADERS_ALL / / #undef LWS_WITH_HTTP_PROXY / / #undef LWS_WITH_HTTP_STREAM_COMPRESSION /
/ #undef LWS_WITH_IPV6 / / #undef LWS_WITH_JOSE / / #undef LWS_WITH_CBOR /
/ #undef LWS_WITH_LIBEV / / #undef LWS_WITH_LIBEVENT / / #undef LWS_WITH_LIBUV / / #undef LWS_WITH_SDEVENT /
/ #undef LWS_WITH_MINIZ / / #undef LWS_WITH_NETLINK /
/ #undef LWS_WITH_NO_LOGS / / #undef LWS_WITH_CACHE_NSCOOKIEJAR /
/ #undef LWS_WITH_SPAWN / / #undef LWS_WITH_PEER_LIMITS / / #undef LWS_WITH_PLUGINS / / #undef LWS_WITH_PLUGINS_BUILTIN / / #undef LWS_WITH_POLARSSL /
/ #undef LWS_WITH_RFC6724 / / #undef LWS_WITH_SECURE_STREAMS / / #undef LWS_WITH_SECURE_STREAMS_CPP / / #undef LWS_WITH_SECURE_STREAMS_SYS_AUTH_API_AMAZON_COM / / #undef LWS_WITH_SECURE_STREAMS_PROXY_API / / #undef LWS_WITH_SECURE_STREAMS_STATIC_POLICY_ONLY / / #undef LWS_WITH_SECURE_STREAMS_AUTH_SIGV4 / / #undef LWS_WITH_SECURE_STREAMS_BUFFER_DUMP / / #undef LWS_WITH_SS_DIRECT_PROTOCOL_STR / / #undef LWS_WITH_SELFTESTS / / #undef LWS_WITH_SEQUENCER / / #undef LWS_WITH_SERVER_STATUS /
/ #undef LWS_WITH_SMTP / / #undef LWS_WITH_SOCKS5 / / #undef LWS_WITH_STATEFUL_URLDECODE / / #undef LWS_WITH_STATS / / #undef LWS_WITH_STRUCT_SQLITE3 / / #undef LWS_WITH_STRUCT_JSON / / #undef LWS_WITH_SUL_DEBUGGING / / #undef LWS_WITH_SQLITE3 / / #undef LWS_WITH_SYS_DHCP_CLIENT / / #undef LWS_WITH_SYS_FAULT_INJECTION / / #undef LWS_WITH_SYS_METRICS / / #undef LWS_WITH_SYS_NTPCLIENT /
/ #undef LWS_WITH_THREADPOOL /
/ #undef LWS_WITH_TLS_JIT_TRUST /
#define LWS_WITH_UDP / #undef LWS_WITH_ULOOP / / #undef LWS_WITH_UNIX_SOCK / / #undef LWS_WITH_ZIP_FOPS / / #undef USE_OLD_CYASSL / / #undef USE_WOLFSSL / / #undef LWS_WITH_EVENT_LIBS / / #undef LWS_WITH_EVLIB_PLUGINS / / #undef LWS_WITH_LIBUV_INTERNAL / / #undef LWS_WITH_PLUGINS_API / / #undef LWS_HAVE_RTA_PREF /
Not lws, but your LWIP and FreeRTOS itself are configured for UDP support?
@lws-team UDP support is added in lwip and freertos .
Well... OK. Then you'll have to debug it, is it giving back an error when you cancel the service?
Any sign in the verbose logs?
Try main branch of lws instead?
Below are the logs with v4.3.2 .
[LWS][1970/01/01 00:00:03:5260] N: 145192: lws_create_context: LWS: 4.3.2-v4.3.2-2-g9d0a696d, NET CLI SRV H1 H2 WS MbedTLS IPv6-absent
[LWS][1970/01/01 00:00:03:5270] I: 145192: lws_create_context: Event loop: poll
[LWS][1970/01/01 00:00:03:5270] D: 145016: _realloc: size 32: lws_smd_register (free heap 144984)
[LWS][1970/01/01 00:00:03:5270] I: 144976: lws_smd_register: peer 0x2001aa00 (cou nt 1) registered [LWS][1970/01/01 00:00:03:5270] D: 144976: _realloc: size 240: fds table (free heap 144736)
[LWS][1970/01/01 00:00:03:5280] I: 144728: lws_create _context: ctx: 3932B (1884 ctx + pt(1 thr x 2048)), pt-fds: 30, fdmap: 240
[LWS] [1970/01/01 00:00:03:5280] I: 144728: lws_create_context: http: ah_data: 4096, ah: 752, max count 30 [LWS][1970/01/01 00:00:03:5330] D: 144552: _realloc: size 120: esp32 lws_lookup (free heap 144432)
[LWS][1970/01/01 00:00:03:5330] N: 144424: mem: platform fd map: 120 bytes
[LWS][[LWS][1970/01/01 00:00:03:5940] D: 107080: _realloc: size 996: __lws_wsi_create_with_role (f[LWS][1970/01/01 00:00:03: 5940] D: 106072: : lws_vhost_bind_wsi: vh Node_lx_0.txt: wsi none/none, count_bo und_wsi 1
[LWS][1970/01/01 00:00:03:5950] D: 106072: _realloc: size 316: client ws struct (free heap 105756) [LWS][1970/01/01 00:00:03:5950] D: 105744: : lws_role _transition: wsistate 0x10000200, ops h1
[LWS][1970/01/01 00:00:03:5950] I: 105744: : lws_client_connect_via_info: role binding to h1
[LWS][1970/01/01 00:00:03:5950] I: 105744: : lws_client_connect_via_info: vh Node[LWS][1970/01/01 00:00:08:5 440] D: 99624: heap :99624 (-8664) [LWS][1970/01/01 00:00:08:5440] I: 99624: [vh|0|default||-1]: lws_tls_check_cert_lifetime: vhost default: no cert
I am not going to be able to debug this for you, it only happens on your platform.
It looks like your serial logs are truncated quite badly, unless it's a cut-and-paste problem (terminal emulator window width?) you will need to do something about it.
You should be seeing an info log from lib/plat/freertos/freertos-pipe.c
during init
lwsl_info("%s: cancel UDP skt port %d\n", __func__,
ntohs(si->sin_port));
but it's hard to tell if it's missing with the logs all mangled.
Thanks @lws-team . This is working fine , i have configured wrong in lwip.
Hi @lws-team , "On the Unix platform, when I call the lws_cancel_service() API, I receive the LWS_CALLBACK_EVENT_WAIT_CANCELLED event in the WebSocket callback function (lwscallback). However, on the FreeRTOS platform, I do not receive this event. Are there any similar events that I should expect from libwebsocket? I need to trigger lws_writable from within the callback function based on an event. Could you please suggest a solution for this?"