tractor/tractor/ipc
Gud Boi c0692f32b5 Add `Address.rebind_from_sockname` opt-out
Gate `Endpoint.start_listener()`s `getsockname()`-vs-`.addr`
reconciliation on a new per-addr-type `ClassVar[bool]`, set
`True` on both `TCPAddress` and `UDSAddress` so existing
behaviour is bit-for-bit unchanged.

That reconciliation exists ONLY to learn a kernel-assigned
port from a `port=0` tcp bind (its own comment says so). The
incoming `tipc` backend (gh #378) has no late-binding
analogue AND its `getsockname()` answers a `TIPC_ADDR_ID`
port-id rather than the name-seq it published — rebinding
from that would swap a dialable service name for an
un-dialable, un-reconstructable port id.

So opting out is semantically right rather than a hack.

(this patch was generated in some part by `claude-code` using `claude-opus-5` (`anthropic`))
2026-09-01 19:28:17 -04:00
..
__init__.py Move concrete `Address`es to each tpt module 2025-07-08 18:05:05 -04:00
_chan.py Move network APIs to lazy `tractor.net` 2026-09-01 18:10:53 -04:00
_fd_share.py Move concrete `Address`es to each tpt module 2025-07-08 18:05:05 -04:00
_linux.py Address Copilot review nits on PR #462 2026-06-18 13:37:55 -04:00
_mp_bs.py Fix `SharedMemory` under `subint_forkserver` 2026-06-17 17:39:44 -04:00
_ringbuf.py Add buf_size to RBToken and add sender cancel test, move disable_mantracker to its own _mp_bs module 2025-07-08 12:57:28 -04:00
_server.py Add `Address.rebind_from_sockname` opt-out 2026-09-01 19:28:17 -04:00
_shm.py Fix `SharedMemory` under `subint_forkserver` 2026-06-17 17:39:44 -04:00
_tcp.py Add `Address.rebind_from_sockname` opt-out 2026-09-01 19:28:17 -04:00
_transport.py Clarify bounded IPC frame publication 2026-08-25 14:04:48 -04:00
_types.py Restore IPC transport style conventions 2026-08-17 19:37:44 -04:00
_uds.py Add `Address.rebind_from_sockname` opt-out 2026-09-01 19:28:17 -04:00