Back to Provenance

3569

.changelog/3569.md

3.3.11.3 KB
Original Source

Added

  • PVControllerDSU — New Tier-0 Swift Package implementing the DSU/CemuHook UDP protocol: typed packet enums with CRC-32/ISO-HDLC stamping, actor DSUSocket for async UDP transport, and Bonjour service advertisement/discovery via DSUServiceAdvertiser / DSUServiceBrowser. Supports iOS, tvOS, macOS, Mac Catalyst, visionOS, and watchOS.
  • DSUFileStorage — Centralised file-storage helper that enforces <Caches>/PVControllerDSU/ on every platform; prevents accidental use of the Documents directory (which is restricted on tvOS). Covered by DSUFileStorageTests with assertions that the URL is never inside Documents.

Fixed

  • DSUSocket init error wrappingNWListener initialisation errors are now consistently thrown as DSUSocketError.listenerFailed instead of propagating raw NWError values.
  • DSUSocket listener failure handlingstartListening() installs a stateUpdateHandler that calls close() when the listener reaches a terminal .failed state, ensuring pending receive() calls are woken up rather than hanging indefinitely.
  • DSUSocket inbound connection cleanup — Inbound connections now install a stateUpdateHandler to evict themselves from the connection dictionary on .failed / .cancelled, complementing the existing receive-loop cleanup.