summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2005-06-19 20:40:41 +0000
committerNick Mathewson <nickm@torproject.org>2005-06-19 20:40:41 +0000
commit64fc1f7bae174d62c40686ec00674d2671c88258 (patch)
tree6d1a156e462c22f2fd5da207e95c06509c02f347 /doc
parentb5fd75a063e487e845c98530cd2032f303d34462 (diff)
downloadtor-64fc1f7bae174d62c40686ec00674d2671c88258.tar.gz
tor-64fc1f7bae174d62c40686ec00674d2671c88258.zip
Implement all the rest of the new controller protocol, debug a little, add some new features, add ADDRMAP events.
svn:r4460
Diffstat (limited to 'doc')
-rw-r--r--doc/TODO18
-rw-r--r--doc/control-spec.txt26
2 files changed, 29 insertions, 15 deletions
diff --git a/doc/TODO b/doc/TODO
index 25751624e2..cdd6400f79 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -54,15 +54,19 @@ For 0.1.0.x:
for 0.1.1.x:
N . Controller improvements
- . new controller protocol
- . Specify
- . Implement
- - controller should have an event to learn about new addressmappings,
+ o new controller protocol
+ o Specify
+ o Implement
+ . Test, debug
+ o add new getinfo options to enumerate things we only find out about
+ currently via events.
+ o controller should have an event to learn about new addressmappings,
e.g. when we learn a hostname to IP mapping ?
- - make sure err-level log events get flushed to the controller
+ . make sure err-level log events get flushed to the controller
immediately, since tor will exit right after.
- - add new getinfo options to enumerate things we only find out about
- currently via events.
+ o Implement
+ - Test, debug
+ - Switch example controllers to use new protocol
- switch accountingmax to count total in+out, not either in or
out. it's easy to move in this direction (not risky), but hard to
back, out if we decide we prefer it the way it already is. hm.
diff --git a/doc/control-spec.txt b/doc/control-spec.txt
index 348662b2c3..c63e96c8d7 100644
--- a/doc/control-spec.txt
+++ b/doc/control-spec.txt
@@ -159,7 +159,7 @@ $Id$
"SETEVENTS" *(SP EventCode) CRLF
EventCode = "CIRC" / "STREAM" / "ORCONN" / "BW" / "DEBUG" /
- "INFO" / "NOTICE" / "WARN" / "ERR" / "NEWDESC"
+ "INFO" / "NOTICE" / "WARN" / "ERR" / "NEWDESC" / "ADDRMAP"
[XXX We should have an "ADDRESSMAP" event to hear when we learn
about dns resolves, etc, so the controller can keep synced. -RD]
@@ -318,7 +318,7 @@ about dns resolves, etc, so the controller can keep synced. -RD]
"stream-status"
A series of lines as for a stream status event. Each is of the form:
- StreamID SP StreamStatus SP Target CRLF
+ StreamID SP StreamStatus SP CircID SP Target CRLF
"orconn-status"
A series of lines as for an OR connection status event. Each is of the
@@ -344,9 +344,9 @@ about dns resolves, etc, so the controller can keep synced. -RD]
request for the server to extend an existing circuit with that ID according
to the specified path.
- If the request is successful, the server sends a "250 OK" message
- containing a message body consisting of the Circuit ID of the (maybe newly
- created) circuit.
+ If the request is successful, the server sends a reply containing a message
+ body consisting of the Circuit ID of the (maybe newly created) circuit.
+ The syntax is "250" SP "EXTENDED" SP CircuitID CRLF.
3.10 ATTACHSTREAM
@@ -491,6 +491,8 @@ about dns resolves, etc, so the controller can keep synced. -RD]
554 Invalid descriptor
+ 555 Unmanaged entity
+
650 Asynchronous event notification
Unless specified to have specific contents, the human-readable messages
@@ -537,20 +539,22 @@ about dns resolves, etc, so the controller can keep synced. -RD]
The syntax is:
- "650" SP "STREAM" SP StreamID SP StreamStatus SP Target
+ "650" SP "STREAM" SP StreamID SP StreamStatus SP CircID SP Target SP
StreamStatus =
"NEW" / ; New request to connect
"NEWRESOLVE" / ; New request to resolve an address
"SENTCONNECT" / ; Sent a connect cell along a circuit
"SENTRESOLVE" / ; Sent a resolve cell along a circuit
- "SUCCEEDED" / ; Received a successful reply; stream established
+ "SUCCEEDED" / ; Received a reply; stream established
"FAILED" / ; Stream failed and not retriable.
"CLOSED" / ; Stream closed
- "DETACHED" ; Stream detached from circuit; still retriable
+ "DETACHED" ; Detached from circuit; still retriable.
Target = Address ":" Port
+ The circuit ID designates which circuit this stream is attached to. If
+ the stream is unattached, the circuit ID "0" is given.
4.1.3 OR Connection status changed
@@ -580,6 +584,12 @@ about dns resolves, etc, so the controller can keep synced. -RD]
Syntax:
"650" SP "NEWDESC" 1*(SP ServerID)
+4.1.6 New Address mapping
+
+ Syntax:
+ "650" SP "ADDRMAP" SP Address SP Address SP Expiry
+ Expiry = DQOUTE ISOTime DQUOTE / "NEVER"
+
5. Implementation notes
5.1. Authentication