Forwarded request #1193269 from smolsheep
- Make the main shared library require the evlib plugin.
- Update to 4.3.3:
* cmake: ssl lib paths
* gcc: fix mbedtls missing enum
* libuv: fix idle being stopped when there is still pending stuff
* server: Always return result of _lws_vhost_init_server_af
* pt_destroy: possible leaking pipe side
* pmd: fix ws parser for non pmd packet with pmd ext enabled
* b64: lws_b64_decode_stateful truncates response
* clean: gcc13 false positive uninitialized
* mbedtls: if we have tls1.2 only accept exactly that
* cmake: mbedtls: mbedtls_ssl_conf_alpn_protocols check
* mbedtls: auto adapt to changed session constant
* msvc: avoid error about mixed ellipsis and cond
* mbedtls: print library version
* tls: mbedtls-3.5.0: correct privkey size
* ss: http: support PATCH
* openssl: Add lws ctx ref to client vhost's SSL_CTX
* openssl: Properly report OpenSSL error in
lws_tls_client_connect
* openssl-server: enum vs int disagreement
* openssl3: change deprecated warnings suppression
* tests: disable tests with jig rot
* remove LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY
callback
* vhost: remove from defer binding on destroy
* fix build on QNX 6.5.0
* lib/secure-streams: Fix clang build error
`-Wunused-but-set-variable`
* ws: tell caller we closed wsi on handshake failure
* spa: file upload fix
* logs: setup earlier so we can use on fail path
* test-apps: use correct EXTERNAL_POLL flag
* lib/tls/CMakeLists.txt: fix build without threads
* http: server: correct plugin name in error
* http: server: mounts: dont assume Basic Auth if no FILE_OPS
- Remove fix-gcc13-build.patch as PR 2824 was merged
- Place evlib_uv.so into own package to fix SR#1112213
OBS-URL: https://build.opensuse.org/request/show/1204598
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libwebsockets?expand=0&rev=17
- Update to 4.3.3:
* cmake: ssl lib paths
* gcc: fix mbedtls missing enum
* libuv: fix idle being stopped when there is still pending stuff
* server: Always return result of _lws_vhost_init_server_af
* pt_destroy: possible leaking pipe side
* pmd: fix ws parser for non pmd packet with pmd ext enabled
* b64: lws_b64_decode_stateful truncates response
* clean: gcc13 false positive uninitialized
* mbedtls: if we have tls1.2 only accept exactly that
* cmake: mbedtls: mbedtls_ssl_conf_alpn_protocols check
* mbedtls: auto adapt to changed session constant
* msvc: avoid error about mixed ellipsis and cond
* mbedtls: print library version
* tls: mbedtls-3.5.0: correct privkey size
* ss: http: support PATCH
* openssl: Add lws ctx ref to client vhost's SSL_CTX
* openssl: Properly report OpenSSL error in
lws_tls_client_connect
* openssl-server: enum vs int disagreement
* openssl3: change deprecated warnings suppression
* tests: disable tests with jig rot
* remove LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY
callback
* vhost: remove from defer binding on destroy
* fix build on QNX 6.5.0
* lib/secure-streams: Fix clang build error
`-Wunused-but-set-variable`
* ws: tell caller we closed wsi on handshake failure
* spa: file upload fix
* logs: setup earlier so we can use on fail path
* test-apps: use correct EXTERNAL_POLL flag
* lib/tls/CMakeLists.txt: fix build without threads
* http: server: correct plugin name in error
* http: server: mounts: dont assume Basic Auth if no FILE_OPS
- Remove fix-gcc13-build.patch as PR 2824 was merged
- Place evlib_uv.so into own package to fix SR#1112213
OBS-URL: https://build.opensuse.org/package/show/network:messaging:mqtt/libwebsockets?expand=0&rev=36
- update to 4.3.2:
* http: lws_add_http_header_by_name: add colon if needed
* logs: openssl session: improve detection of INFO enabled
* logs: lock log context refcount changes
* route: fix nl groups and local ipv6 ads
* ss: mqtt: fix wrong QoS value on Birth message
* ss: http: ensure SS points to wsi when using wsi pointing to SS
* ss: reject direct protocol metadata if NULL ss wsi
* h1: deal with WAITING_CONNECT in ops-h1
* route: extend lws_route_uidx_t from 1 byte to 2 bytes
* gcc12: fix potential test app string overflow
* h1: remove assert on unexpected POLLIN state just hangup
* sul: add clear advice for zombie suls
* logs: use finegrained level test on unix-sockets.c
* acme: update for v2
* threadpool: improve relationship with LWS_HAVE_PTHREAD_H
* h2: access log: POST: prepare log
* mqtt: fix wrong awsiot field set on SUBSCRIBE
OBS-URL: https://build.opensuse.org/request/show/989974
OBS-URL: https://build.opensuse.org/package/show/network:messaging:mqtt/libwebsockets?expand=0&rev=28
- Update to version 4.3.0
* Add full CBOR stream parsing and writing support, with huge
amount of test vectors and resumable printf type write apis.
See ./READMEs/README.cbor-lecp.md
* Add COSE key and signing / validation support with huge amount
of test vectors.
cose_sign[1] ES256/384/512, RS256/384/512
cose_mac0 HS256/384/512
See ./READMEs/README.cbor-cose.md
* JIT Trust: for constrained devices, provides a way to determine
the trusted CA certs the peer requires, and instantiate just
those. This allows generic client browsing without the
overhead of ~130 x.509 CA certs in memory permanently.
* Add support for client Netscape cookie jar with caching.
* Secure Streams: issue LWSSSCS_EVENT_WAIT_CANCELLED state() when
lws_cancel_service() called, so cross-thread events can be
handled in SS.
* Actively assert() on attempt to destroy SS handles still active
in the call stack, use DESTROY_ME returns instead so caller can
choose how to handle it.
* Improved Client Connection Error report strings for tls errors
* SMP: Use a private fakewsi for PROTOCOL_INIT so pts cannot try
to use the same one concurrently.
* MbedTLS v3 support for all release changes, as well as
retaining support for v2.x
* MQTT client: support QoS2
* Event lib ops can now be set at context creation time directly
* Extra APIs to recover AKID and SKID from x.509 in mbedtls and
openssl
* Improve http redirect to handle h2-> h2 cleanly
OBS-URL: https://build.opensuse.org/request/show/923353
OBS-URL: https://build.opensuse.org/package/show/network:messaging:mqtt/libwebsockets?expand=0&rev=26
- Update to version 4.2.0
* RFC7231 date and time parsing and retry-after wired up to
lws_retry.
* `LWS_WITH_SUL_DEBUGGING` checks that no sul belonging to
Secure Streams and wsi objects are left registered on
destruction.
* Netlink monitoring on Linux dynamically tracks interface
address and routing changes, and immediately closes
connections on invalidated routes.
* RFC6724 DNS results sorting over ipv4 + ipv6 results,
according to available dynamic route information.
* Support new event library, sdevent (systemd native loop), via
`LWS_WITH_SDEVENT`.
* Reduce .rodata cost of role structs by making them sparse.
* Additional Secure Streams QA tests and runtime state
transition validation.
* SMD-over-ss-proxy documentation and helpers to simplify
forwarding.
* SSPC stream buffering at proxy and client set from policy by
streamtype.
* Trigger Captive Portal Detection if DNS resolution fails.
* Switch all logs related to wsi and Secure Streams to use
unique, descriptive tags instead of pointers (which may be
reallocated).
* Use NOITCE logging for Secure Streams and wsi lifecycle
logging using tags.
* Update SSPC serialization to include versioning on initial
handshake, and pass client pid to proxy so related objects are
tagged with it.
* Enable errors on -Wconversion pedantic type-related build
OBS-URL: https://build.opensuse.org/request/show/886262
OBS-URL: https://build.opensuse.org/package/show/network:messaging:mqtt/libwebsockets?expand=0&rev=24
- Update to version 4.1.6
- NEW: CMakeLists.txt has been refactored and modernized into
smaller CMakeLists.txt
- NEW: event lib support on Unix is now built into dynamically
loaded plugins and brought in at runtime, allowing all of the
support to be built in isolation without conflicts, and
separately packaged with individual dependencies.
See ./READMEs/event-libs.md for details and how to force the
old static build into lws method.
- NEW: Captive Portal Detection. Lws can determine if the
active default route is able to connect to the internet, or
is in a captive portal type situation, by trying to connect
to a remote server that will respond in an unusual way, like
provide a 204.
- NEW: Secure streams: Support system trust store if it exists
- NEW: lws_struct: BLOB support
- NEW: lws_sul: Now provides two sorted timer domains, a
default one as before, and another whose scheduled events are
capable to wake the system from suspend
- NEW: System Message Distribution: lws_smd provides a very
lightweight way to pass short messages between subsystems both
in RTOS type case where the subsystems are all on the lws
event loop, and in the case participants are in different
processes, using Secure Streams proxying. Participants
register a bitmap of message classes they care about; if no
particpant cares about a particular message, it is rejected
at allocation time for the sender, making it cheap to provide
messages speculatively.
See lib/system/smd/README.md for full details.
- NEW: lws_drivers: wrappers for SDK driver abstractions (or
OBS-URL: https://build.opensuse.org/request/show/853190
OBS-URL: https://build.opensuse.org/package/show/network:messaging:mqtt/libwebsockets?expand=0&rev=22
- update to 4.0.20:
* mbedtls: only free crt_parse when something came back
* lejp: enable negative integers
* context_destroy: backport event-lib fixes from master
* libevent: enforce no event state duplication
* multipart: quote boundary
* clean: additional-lws_intptr_t
* ss: add api test with ctest integration
* PEER_LIMITS: make sure to close socketfd on deny
* unix domain: fix path name length
* libev: fix destroy path and example typo
* ss: make sure to use LWS_WRITE_HTTP_FINAL with SS EOM flag
* h2: client: do not apply host header if h2 negotiated by alpn
* strexp: reset out offset each time
OBS-URL: https://build.opensuse.org/request/show/828323
OBS-URL: https://build.opensuse.org/package/show/network:messaging:mqtt/libwebsockets?expand=0&rev=18
- Update to version 4.0.1
* NEW: Lws is now under the MIT license, see ./LICENSE for details
* NEW: GLIB native event loop support, lws + gtk example
* NEW: native lws MQTT client... supports client stream binding like h2 when
multiple logical connections are going to the same endpoint over MQTT, they
transparently and independently share the one connection + tls tunnel
* NEW: "Secure Streams"... if you are making a device with client connections
to the internet or cloud, this allows separation of the communications
policy (endpoints, tls cert validation, protocols, etc) from the code, with
the goal you can combine streams, change protocols and cloud provision, and
reflect that in the device's JSON policy document without having to change
any code.
* NEW: lws_system: New lightweight and efficient Asynchronous DNS resolver
implementation for both A and AAAA records, supports recursive (without
recursion in code) lookups, caching, and getaddrinfo() compatible results
scheme (from cache directly without per-consumer allocation). Able to
perform DNS lookups without introducing latency in the event loop.
* NEW: lws_system: ntpclient implementation with interface for setting system
time via lws_system ops
* NEW: lws_system: dhcpclient implementation
* NEW: Connection validity tracking, autoproduce PING/PONG for protocols that
support it if not informed that the connection has passed data in both
directions recently enough
* NEW: lws_retry: standardized exponential backoff and retry timing based
around backoff table and lws_sul
* NEW: there are official public helpers for unaligned de/serialization of all
common types, see eh, lws_ser_wu16be() in include/libwebsockets/lws-misc.h
* NEW: lws_tls_client_vhost_extra_cert_mem() api allows attaching extra certs
to a client vhost from DER in memory
* NEW: lws_system: generic blobs support passing auth tokens, per-connection
OBS-URL: https://build.opensuse.org/request/show/783522
OBS-URL: https://build.opensuse.org/package/show/network:messaging:mqtt/libwebsockets?expand=0&rev=16
- Update to version 3.2.1
* This is the last planned release under LGPLv2+SLE. It's not planned to be
maintained like previous releases, please switch to master for the latest
stuff or continue to use v3.1-stable until the next release under the
new MIT license.
* NEW: completely refactored scheduler with a unified, sorted us-resolution
linked-list implementation. All polled checks like timeout are migrated
to use the new timers, which also work on the event lib implementations.
Faster operation, us-resolution timeouts and generic scheduled callbacks
from the event loop.
* NEW: lws_dsh specialized buffer memory allocator that can borrow space
from other cooperating buffers on the same list.
* NEW: lws_sequencer allows managing multi-connection processes and
retries
* NEW: memory buffer cert support
* NEW: LWS_WITH_NETWORK in CMake... can be configured without any network-
related code at all
* NEW: JOSE / JWK / JWS / JWE support, for all common ciphers and algs,
works on OpenSSL and mbedtls backends
* NEW: gencrypto now has genaes and genec in addition to genrsa, works
on OpenSSL and mbedtls backends
* NEW: raw_proxy role
* NEW: Basic Auth works on ws connections
* CHANGE: REMOVED: LWS_WITH_GENRSA, LWS_WITH_GENHASH, LWS_WITH_GENEC,
LWS_WITH_GENAES have all been removed and combined into LWS_WITH_GENCRYPTO
* CHANGE: REMOVED: LWS_WITH_JWS, LWS_WITH_JWE have been removed and combined
into LWS_WITH_JOSE
- Update to version 3.1.0
* CHANGE: REMOVED: lws_client_connect() and lws_client_connect_extended()
compatibility apis for lws_client_connect_via_info() have been marked as
OBS-URL: https://build.opensuse.org/request/show/758742
OBS-URL: https://build.opensuse.org/package/show/network:messaging:mqtt/libwebsockets?expand=0&rev=14
- Update to version 3.0.0
* CHANGE: Clients used to call LWS_CALLBACK_CLOSED same as servers...
LWS_CALLBACK_CLIENT_CLOSED has been introduced and is called for clients
now.
* CHANGE: LWS_CALLBACK_CLIENT_CONNECTION_ERROR used to only be directed at
protocols[0]. However in many cases, the protocol to bind to was provided
at client connection info time and the wsi bound accordingly. In those
cases, CONNECTION_ERROR is directed at the bound protocol, not protcols[0]
any more.
* CHANGE: CMAKE: the following cmake defaults have changed with this version:
- LWS_WITH_ZIP_FOPS: now defaults OFF
- LWS_WITH_RANGES: now defaults OFF
- LWS_WITH_ZLIB: now defaults OFF
- LWS_WITHOUT_EXTENSIONS: now defaults ON
* CHANGE: REMOVED: lws_alloc_vfs_file() (read a file to malloc buffer)
* CHANGE: REMOVED: lws_read() (no longer useful outside of lws internals)
* CHANGE: REMOVED: ESP8266... ESP32 is now within the same price range and much
more performant
* CHANGE: soname bump... don't forget to `ldconfig`
* NEW: all event libraries support "foreign" loop integration where lws itself
if just a temporary user of the loop unrelated to the actual loop lifecycle.
OBS-URL: https://build.opensuse.org/request/show/605144
OBS-URL: https://build.opensuse.org/package/show/network:messaging:mqtt/libwebsockets?expand=0&rev=12
- Update to version 2.4.0
* HTTP/2 server support is now mature and usable! LWS_WITH_HTTP2=1 enables it.
Uses ALPN to serve HTTP/2, HTTP/1 and ws[s] connections all from the same
listen port seamlessly. (Requires ALPN-capable OpenSSL 1.1 or mbedTLS).
* LWS_WITH_MBEDTLS=1 at CMake now builds and works against mbedTLS instead of
OpenSSL. Most things work identically, although on common targets where
OpenSSL has acceleration, mbedTLS is many times slower in operation. However
it is a lot smaller codewise.
* Generic hash apis introduced that work the same on mbedTLS or OpenSSL backend
* LWS_WITH_PEER_LIMITS tracks IPs across all vhosts and allows restrictions on
both the number of simultaneous connections and wsi in use for any single IP
* lws_ring apis provide a generic single- or multi-tail ringbuffer... mirror
protocol now uses this. Features include ring elements may be sized to fit
structs in the ringbuffer, callback when no tail any longer needs an element
and it can be deleted, and zerocopy options to write new members directly
into the ringbuffer, and use the ringbuffer element by address too.
* abstract ssh 2 server plugin included, with both plugin and standalone
demos provided. You can bind the plugin to a vhost and also serve full-
strength ssh from the vhost. IO from the ssh server is controlled by an
"ops" struct of callbacks for tx, rx, auth etc.
* Many fixes, cleanups, source refactors and other improvements.
- rebase patch:
* libwebsockets-norpmtools.patch
OBS-URL: https://build.opensuse.org/request/show/535491
OBS-URL: https://build.opensuse.org/package/show/network:messaging:mqtt/libwebsockets?expand=0&rev=9
- Update to version 2.3.0
* ESP32 OpenSSL support for client and server
* ESP32 4 x WLAN credential slots may be configured
* Libevent event loop support
* SOCKS5 proxy support
* lws_meta protocol for websocket connection multiplexing
* lws_vhost_destroy() added... allows dynamic removal of listening
vhosts. Vhosts with shared listen sockets adopt the listen socket
automatically if the owner is destroyed.
* IPv6 on Windows
* Improved CGI handling suitable for general CGI scripting, eg, PHP
* Convert even the "old style" test servers to use statically included
plugin sources
* LWS_WITH_STATS cmake option dumps resource usage and timing information
every few seconds to debug log, including latency information about
delay from asking for writeable callback to getting it
* Large (> 2GB) files may be served
* LWS_WITH_HTTP_PROXY Cmake option adds proxying mounts
* Workaround for libev build by disabling -Werror on the test app
* HTTP2 support disabled since no way to serve websockets on it
OBS-URL: https://build.opensuse.org/request/show/530398
OBS-URL: https://build.opensuse.org/package/show/network:messaging:mqtt/libwebsockets?expand=0&rev=4