Fix scoped link-local clobbering and the in-flight start-death race
The daemon's is_link_local_v6 guard could not see scoped fe80::…%iface hosts, so a later link-local mDNS resolution could clobber a good routable IPv4 host and break the session until the next re-resolution. Strip the %zone before parsing. Also invalidate a StartCast when the session dies (or StopCast fires) between negotiation and StartFinished, so the dead session is torn down instead of installed and the UI is not left stuck on Casting; add daemon actor tests for both races. Hardening: dedupe Cast/DLNA re-resolution forwards, tolerate a TRANSITIONING DLNA renderer after Play, fall back to if-addrs for LAN-IP enumeration when ip(8) is missing, harden the HTTP token fallback, and null-guard the estimated-bandwidth FFI getter.
This commit is contained in:
parent
99a04c800b
commit
b5ea779c06
8 changed files with 289 additions and 12 deletions
|
|
@ -21,6 +21,10 @@ gstreamer-video = "0.25"
|
|||
tiny_http = "0.12"
|
||||
rupnp = "3.0.0"
|
||||
futures-util = "0.3.33"
|
||||
# Fallback LAN-IP enumeration used only when the `ip` command is unavailable
|
||||
# (net.rs) -- already a transitive dep via mdns-sd, so this adds no new crate
|
||||
# to the build.
|
||||
if-addrs = "0.15"
|
||||
breadcast-caststream-sys = { path = "../breadcast-caststream-sys" }
|
||||
|
||||
[dev-dependencies]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue