Opened 8 years ago

Closed 8 years ago

#262 closed enhancement (fixed)

allow `IConnectionHintHandler.hint_to_endpoint` to return a Deferred

Reported by: Brian Warner Owned by:
Priority: major Milestone: 0.12.0
Component: network Version: 0.9.1
Keywords: Cc:

Description

hint_to_endpoint() should be able to return a Deferred (which fires with a tuple), rather than being required to return the tuple synchronously.

That should make #246 (the Tor handler) easier to write. I'd like it to connect to (or launch) a Tor instance first, then learn the SOCKS port, then return a SOCKS endpoint using that port.

To do this with a synchronous hint_to_endpoint(), it needs to create a custom Endpoint class that waits for the Tor connection/launch in its connect() method, so we couldn't re-use the SOCKS endpoint code.

This will require some work in connection.TubConnector.connectToAll, to wrap a maybeDeferred() around the call to get_endpoint, and to detect NoLocationHintsError differently.

(I should have done this the first time around, but it looked too hard)

Change History (1)

comment:1 Changed 8 years ago by Brian Warner

Resolution: fixed
Status: newclosed

Closed by [cd249ed4].

Note: See TracTickets for help on using tickets.