[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: Turning off a server
On Mon, Oct 01, 2007 at 04:31:20PM -0700, Michael_google gmail_Gersten wrote:
> If it is in
> use, at least that tor client knows not to open any new TCP
> connections over that circuit.
>
> I think that's the "missing" element. There is no way that I know of
> for a circuit to refuse any new TCP connection while still staying
> open for existing ones.
Actually, that feature exists right now. Look for calls to
we_are_hibernating() in various places in the code (command.c and
connection_edge.c in particular).
> And even better is being able to notify that
> originating client that new TCP connections will be rejected before
> hand, so that a new circuit can be prepared ahead of time.
As soon as the first stream is refused with reason
END_STREAM_REASON_HIBERNATING, the client will give up on that circuit
for new streams, and try a new circuit -- see edge_reason_is_retriable().
Hope that helps,
--Roger