From 9dbfb91f179be5dbce705e62d267a2aeed54b1cb Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 29 Sep 2006 03:50:11 +0000 Subject: r8997@Kushana: nickm | 2006-09-28 23:40:22 -0400 [Needs review.] Add a BEGIN_DIR relay cell type for an easier in-protocol way to connect to directory servers through Tor. Previously, clients could only connect to director servers over Tor from exit nodes, but couldn't get directory information anonymously from a non-exit cache without getting a directory server involved. This needs testing, and needs client-side code to actually exercise it. svn:r8527 --- doc/tor-spec.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'doc/tor-spec.txt') diff --git a/doc/tor-spec.txt b/doc/tor-spec.txt index 61f5fd7f15..af3b73cc0c 100644 --- a/doc/tor-spec.txt +++ b/doc/tor-spec.txt @@ -624,6 +624,7 @@ TODO: 10 -- RELAY_DROP [forward or backward] 11 -- RELAY_RESOLVE [forward] 12 -- RELAY_RESOLVED [backward] + 13 -- RELAY_BEGIN_DIR [forward] Commands labelled as "forward" must only be sent by the originator of the circuit. Commands labelled as "backward" must only be sent by @@ -710,6 +711,16 @@ TODO: Relay RELAY_DROP cells are long-range dummies; upon receiving such a cell, the OR or OP must drop it. +6.2.1. Opening a directory stream + + If a Tor server is a directory server, it should respond to a + RELAY_BEGIN_DIR cell as if it had received a BEGIN cell requesting a + connection to its directory port. RELAY_BEGIN_DIR cells ignore exit + policy, since the stream is local to the Tor process. + + If the Tor server is not running a directory service, it should respond + with a REASON_NOTDIRECTORY RELAY_END cell. + 6.3. Closing streams When an anonymized TCP connection is closed, or an edge node @@ -738,6 +749,8 @@ TODO: 12 -- REASON_CONNRESET (Connection was unexpectedly reset) 13 -- REASON_TORPROTOCOL (Sent when closing connection because of Tor protocol violations.) + 14 -- REASON_NOTDIRECTORY (Client send RELAY_BEGIN_DIR to a + non-directory server.) (With REASON_EXITPOLICY, the 4-byte IPv4 address or 16-byte IPv6 address forms the optional data; no other reason currently has extra data. -- cgit v1.2.3-54-g00ecf