Tags: warmcat/libwebsockets
Tags
ss-cpp: export the lss classes from the shared library The lib is built with -fvisibility=hidden, so the C++ classes were only reachable from the static lib; minimal-secure-streams-cpp failed to link against websockets_shared with an undefined lssFile::lssFile. Mark the classes LWS_VISIBLE, and cast the example's char arithmetic so it is clean under -Wconversion. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
sonar-push-settings: take the token from the environment or a fixed path Sonar's taint analysis objected to opening a path taken from argv. Read the token from SONAR_TOKEN, falling back to scratch/.sonar_token at the top of the tree, and give the script the exec bit it was meant to have. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
md: blind coverity to the guarded CR strip CID 913630 reports an underflow on the llen decrement that removes a trailing CR before the newline, and then flags the value flowing into md_staged_is_sep(). The decrement sits behind an llen != 0 test on the same line, so it cannot wrap; coverity fails to carry the range from the condition into the arithmetic. Users run lws through coverity themselves and would meet this on every scan, so hide both CR-strip sites from the coverity build rather than leave it to be dismissed per dashboard. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
custom-headers example: remove the empty, unreferenced error.css It has been an empty file since the 2016 android test-server import and nothing in the example mounts or links it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
backtrace: make the delta base index an int, not a char On unsigned-char targets, 'char hit = -1' is a -Werror=sign-conversion error. The sentinel is only meaningful when n == 0, which the use site already guards on, and the old 'hit &&' test also silently refused a base index of 0. Keep it as an int and test hit >= 0; the decoder already accepts any 3-bit base index. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
sai: sys-extras: not the dhcp client LWS_WITH_SYS_DHCP_CLIENT gates the system state at LWS_SYSTATE_DHCP until an interface has been configured by the dhcp client, which never happens on a builder, so with it on every client test in the suite timed out. It only makes sense for applications that run the dhcp client. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
hl-html: fix clang -Wnull-pointer-subtraction in the span header emit lws_ptr_diff_size_t() is for the difference between two pointers, but the <span> header emit passed it two integers, with the literal 0 tail becoming (char *)0: subtracting a null pointer is UB and clang 16+ rightly refuses it under -Werror. The room calculation is already a plain size_t, so pass it directly. Reproduced with clang 19 (-Werror,-Wnull-pointer-subtraction at the same site) before the change and verified clean after; gcc build and the full ctest suite (178 tests, incl. test-hl's html emitter) pass.
test-hl: fix MSVC C4334 on the flow-control budget shift 1u << m computes in 32 bits and implicitly widens to the 64-bit size_t budget, which MSVC flags as C4334 under -Werror. Shift in the target width instead, matching the existing (size_t)1 << m use at :955 in the same file.
test-hl: fix MSVC C4334 on the flow-control budget shift 1u << m computes in 32 bits and implicitly widens to the 64-bit size_t budget, which MSVC flags as C4334 under -Werror. Shift in the target width instead, matching the existing (size_t)1 << m use at :955 in the same file.
api-test-reclaim: allocate through lws_buflist, not the lws allocator The test drove the simulated heap limit with lws_realloc() directly. That is only declared in lws-eventlib-exports.h, which is included for LWS_WITH_NETWORK builds alone, so every nonetwork platform failed to build it with an implicit declaration; and the allocator is not meant to be public api in any case: the lws_ allocators are for core code, user code uses malloc() / free(). The test wants allocations the lws heap accounting sees, so it now makes them through lws_buflist, a public core api whose segments come from the lws allocator: each block is a buflist holding one segment, tenants charge what the heap actually accounted for it (segment header included, or an eviction fell short of the retry's need and took the next tenant too), and the same evict / pin / clean-failure sequence holds. Passes with and without LWS_WITH_NETWORK. api-test-qpack carried an unused lws_free() prototype: gone.
PreviousNext