mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-10 08:27:04 +00:00
connectAndSyncFiltersIfDisconnected() bailed whenever a socket already existed, so a still-connecting socket built for the wrong transport (e.g. a relay whose Tor classification changed since the dial started) could never be preempted — it blocked until the hung dial timed out. The connected-relay path in RelayPool.reconnectIfNeedsTo already rebuilds ready sockets via needsToReconnect(); this covers the connecting state it cannot see (isConnectionStarted() true but isConnected() false). Now: if a socket exists but reports needsReconnect() (transport/proxy mismatch against the current builder decision), drop it and redial on the correct transport; otherwise leave it. Disconnected relays still honor their reconnect backoff. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>