Skip to content

UxPlayEnhanced v1.1.0-beta.1

Pre-release
Pre-release

Choose a tag to compare

@Kylepossible Kylepossible released this 07 Aug 21:15

Pre-release. Built from the beta branch, not master. Install it alongside 1.0.3 rather than over it — the installer uses a versioned directory (app-1.1.0-beta.1), so both can coexist.

Minor bump rather than patch: discovery behaviour and the tray's logging pipeline both change.

Discovery

  • mDNS is advertised on every up IPv4 interface, not only the one routing toward the internet. A PC on Ethernet and Wi-Fi is now reachable from either network, an active VPN no longer hides the LAN, and a machine with no default route works instead of failing with failed to detect local IP address. Each interface advertises its own address, and the list is rechecked every 15 seconds so joining Wi-Fi or raising a VPN is picked up without a restart. (#5)
  • Goodbye packets now actually carry TTL 0. They were being sent with TTL 4500, so clients kept stale records after shutdown — the documented behaviour was never what shipped. (#5)
  • Duplicate TXT keys are replaced, not appended, matching Bonjour's TXTRecordSetValue. Previously a key set twice appeared twice, and clients use the first occurrence per RFC 6763 §6.4, so the later value was silently ignored. (#6)

Tray

  • The tray no longer re-reads and re-parses 128 KB of log for every menu entry, every second. UxPlay's output is piped in and folded into an in-memory snapshot as it arrives. (#4)
  • The log now rotates at 5 MB with two backups, so a long-running receiver cannot fill the disk. (#4)
  • Status: Audio error now clears when a new audio connection starts, rather than when the error scrolls out of the buffer. (#4)

Installer and scripts

  • The uninstaller no longer deletes the folder it is run from. It shipped inside the portable ZIP, so running it from an extracted download recursively deleted that download. It now resolves the target from the registry InstallLocation and refuses any path outside %ProgramFiles%\UxPlayEnhanced. (#3)
  • The debug launcher writes to %LOCALAPPDATA%\UxPlayEnhanced\Logs\ instead of next to the executable, which after installation is a Program Files path a normal user cannot write to — so debug sessions previously died before capturing anything. (#8)

Project

  • Licence corrected to GPL-3.0. UxPlay is GPL-3.0, not LGPL-2.1 as previously stated, and this project ships a patched uxplay.exe. (#2)
  • Building with USE_EMBEDDED_MDNS=OFF no longer fails on duplicate symbols after build.sh has run once. (#7)

Testing status

The C changes were compiled and linked with the project's MinGW64 toolchain, and interface enumeration, packet TTLs, TXT semantics, tray parsing, log rotation and the uninstaller path checks all have tests. The packaged uxplay.exe was smoke-tested and starts correctly, reporting the interface it advertises on.

Not yet tested: no live AirPlay session against a real device, and this was built on a machine with a single network interface, so the multi-interface path has not been exercised on real multi-homed hardware. That is the main thing worth trying if you are running this beta.

Corresponding source: the beta branch at tag v1.1.0-beta.1, plus the pinned lib/uxplay submodule commit.