Opened 14 years ago

Last modified 7 years ago

#249 closed defect (Implemented)

streams automatically attached to controller circuits

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

Description

Currently, if a controller builds a circuit, then for all streams that Tor manages that match the
exit policy for that circuit, Tor will gladly attach that stream to that circuit. This is sometimes
desirable if a controller exists for the purpose of effecting an alternate selection algorithm for
general-purpose circuits. However, this is undesirable if a controller exists for the purpose of
constructing circuits for special use (e.g. Blossom). So, for each circuit we need a way of
specifying whether Tor is allowed to automatically attach streams to that circuit. I propose that
we have two classes of circuits: PUBLIC and PRIVATE, such that hen Tor is asked to automatically
attach a stream to some circuit, it must choose from among PUBLIC circuits only. Circuits built
via the controller with the EXTENDCIRCUIT command are considered PRIVATE by default. I propose
an additional controller command, SETCIRCUITEXPOSURE, with the following syntax:

"SETCIRCUITEXPOSURE" SP CircuitID SP {0,1}

An argument of '0' sets the circuit with the specified CircuitID to PRIVATE.
An argument of '1' sets the circuit with the specified CircuitID to PUBLIC.

[Automatically added by flyspray2trac: Operating System: All]

Child Tickets

Change History (4)

comment:1 Changed 14 years ago by arma

The plan:

add a 'purpose' flag to extendcircuit, set to 'general' by default, so we don't break
backward compatibility.

and add a new command setcircuitpurpose if you want to change the purpose at other times.

comment:2 Changed 14 years ago by arma

What's the right way to actually implement this in the controller spec?

Do we add another word at the end of the EXTENDCIRCUIT line? That's not good
because it might be serverID.

Perhaps we say "purpose=FOO" and serverIDs can't have = signs in them so that
will work?

Perhaps we should put it at the beginning before the list of serverIDs, so we
fit with the SETEVENTS syntax? I am leaning towards this.

comment:3 Changed 13 years ago by arma

flyspray2trac: bug closed.

comment:4 Changed 7 years ago by nickm

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