Skip to content

v9.38.1

Choose a tag to compare

@doronz88 doronz88 released this 22 Jul 05:56
· 334 commits to master since this release
841d9ca

Highlights

🐛 Userspace tunnel: fix a startup race in tunnel bring-up

The pytcp stack installs the tunnel's interface address from its own tasks shortly after stack.start() returns. A connection opened on the stack before the address lands fails with gaierror ("Malformed remote IP address"). The CLI's dial path usually added enough event-loop round trips to win this race by accident, but nothing guaranteed it — and embedders connecting right after UserspaceRsdTunnel.aopen() had no such slack. UserspaceTun.up() now waits until the address is actually usable before declaring the tunnel up, so the race is gone for every caller.

# embedders can now connect immediately after aopen() without racing the stack
async with UserspaceRsdTunnel(serial=udid) as rsd:
    await rsd.start_lockdown_service("com.apple.mobile.notification_proxy.shim.remote")

What's Changed

Full Changelog: v9.38.0...v9.38.1