Opened 14 years ago

Last modified 7 years ago

#253 closed defect (Fixed)

need router.exit to resolve correctly even without having descriptor in advance

Reported by: goodell Owned by:
Priority: Low Milestone:
Component: Core Tor/Tor Version:
Severity: Keywords:
Cc: goodell Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

The correction introduced in 0.1.1.13-alpha that fixes the semantics of
REDIRECTSTREAM also breaks the ability for routername.exit to correctly
determine the target address for the stream for cases in which we do not
have the descriptor at the time that the stream is created. The reason
is that the controller must now specify an explicit address when it uses
REDIRECTSTREAM; it cannot simply provide routername.exit and hand it
back to Tor, assuming that Tor will take care of binding it to a circuit
that may have been constructed since the time at which the stream was
created. So this means that the controller needs to be able to parse
descriptors in order to find the address in the descriptor of the
exit node for this circuit. This process breaks an important
abstraction.

One possible solution is to allow REDIRECTSTREAM to be called with a
special address argument, such as "0.0.0.0", that will designate to
Tor that we want Tor to direct this stream to the IP address given in
the descriptor of the exit node for the circuit to which it is attached.
A concern with this approach is that it means two different circumstances
under which Tor must determine the address for a SOCKS request given
as routername.exit.

[Automatically added by flyspray2trac: Operating System: All]

Child Tickets

Change History (3)

comment:1 Changed 14 years ago by arma

I fixed this by doing address rewriting in all three cases:
-- When the controller is not involved
-- When the controller asks to attachstream to circid 0
-- When the controller asks to attachstream to a specific circuit.

We used to be doing only the first two cases.

comment:2 Changed 14 years ago by arma

flyspray2trac: bug closed.

comment:3 Changed 7 years ago by nickm

Component: Tor ClientTor
Note: See TracTickets for help on using tickets.