fix(cast): localize UPnP URL compatibility and harden crash diagnostics
Keep http 1.5 and tolerate empty or relative service URLs in a local rupnp patch. Cover standard DLNA SOAP requests and malformed descriptions. Avoid logger locks in fatal handlers, flush emitted log batches, and preserve CI symbols after smoke failures. cx
This commit is contained in:
35 files changed
+2990
-264
No files matched your search
@@ -18,18 +18,9 @@ tiny_http = "0.12"
|
||||
rupnp = { version = "3", features = ["full_device_spec"] }
|
||||
futures-util = "0.3"
|
||||
|
||||
# PINNED, do not bump without reading this (#745, 2.1.0 regression):
|
||||
# rupnp parses a device description's SCPDURL / controlURL / eventSubURL as
|
||||
# `http::uri::PathAndQuery`. http 1.5.0 rewrote that parser and now REJECTS
|
||||
# two shapes 1.4.0 accepted -- an empty element (ErrorKind::Empty, printed as
|
||||
# "empty string") and any relative URL without a leading slash
|
||||
# (PathDoesNotStartWithSlash). Both are common in old UPnP firmware, so the
|
||||
# bump made rupnp drop those renderers entirely: a KEF LSX gen 1 that worked
|
||||
# in 2.0.2 (http 1.4.0) reported "Visible Renderers: 0" in 2.1.0. The pin is
|
||||
# workspace-wide by unification and is guarded by
|
||||
# tests/dlna_description_tolerance.rs -- if that suite fails, this pin was
|
||||
# lifted. Drop it only once rupnp stops using PathAndQuery for relative URLs.
|
||||
http = "=1.4.0"
|
||||
# The workspace patches rupnp's service endpoint parser for legacy UPnP URLs
|
||||
# (#745). Keep http current; never downgrade the whole HTTP graph for a device.
|
||||
http = "1.5"
|
||||
|
||||
# Serialization
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
|
||||
Reference in new issue
Block a user