You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHubβs verified signature.
π¨ Security advisory: an unauthenticated peer could make a TCP or TLS server unavailable. Affects 0.9.0 through 1.5.0. See GHSA-x8fh-359r-wgxm, #213 and #214.
π‘οΈ Hardened against panics. Lints deny common sources of panics, and CI proves that parsing, answering requests and formatting replies can't panic for any input.
π License update. The license now prohibits using the library to build or test other implementations of the protocol, including by mining it with AI tools or using it as an oracle, and reserves AI training. See #224.
π MinTlsVersion is a minimum.V1_2 now allows TLS 1.3, and V1_3 no longer allows TLS 1.2. See #212.
π A request's timeout covers sending it; one that can't be sent in time fails with Io(TimedOut) and the connection is reopened. See #215.
π A read whose range is empty or runs past address 0xFFFF fails with InvalidRange before anything is sent. See #235.
π Out-of-range settings, such as a zero timeout or queue size or reversed retry bounds, are adjusted to valid values. See #236, #241 and #302.
π Servers ignore requests for units they don't serve and validate requests as the standard requires. See #274, #277, #280 and #284.
π RTU readers resynchronize after a bad frame instead of reopening the port, and frames are separated by the required silence. See #269, #297 and #345.
π Ordinary traffic no longer logs warnings; received frames log under rodbus::common::frame. See #242, #243 and #346.
π‘οΈ TLS client handshakes time out after 5 seconds, and a request's write is bounded by its timeout. See #215.
π‘οΈ Bindings: a TLS server without an authorization handler applies its address filter, and roles containing NUL are refused. See #220 and #221.
π‘οΈ Each file attached to a GitHub release has a build provenance attestation that gh attestation verify checks, and the jars on Maven Central are signed with a new key, DFD7 6A43 C349 DBF5 46AB 9033 C6FB 909E 94CB 1619. See #384.
β Channel::shutdown() and ServerHandle::shutdown() end a task while handles are still alive. See #198.
β Non-spawning create_*_server_task() functions return a ServerTask for the caller to spawn. See #188.
β Configuration and task types implement Debug, without key material. See #240.
β Prebuilt C/C++ bindings for 32-bit x86 Linux (i686-unknown-linux-gnu). See #370.
π The client ignores responses from a unit it didn't address. See #223.
π IPv4 address filters match IPv4-mapped peers on dual-stack servers. See #260.
π Bindings: a single coil write returns the WriteHandler's exception instead of always ILLEGAL_DATA_ADDRESS. See #364.