summaryrefslogtreecommitdiff
path: root/doc/control-spec.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/control-spec.txt')
-rw-r--r--doc/control-spec.txt49
1 files changed, 34 insertions, 15 deletions
diff --git a/doc/control-spec.txt b/doc/control-spec.txt
index 106564c225..1904a0fa32 100644
--- a/doc/control-spec.txt
+++ b/doc/control-spec.txt
@@ -489,16 +489,11 @@ $Id$
"status/client"
"status/server"
- These two special cases of internal Tor values return a (possibly
- empty) list of status events from Section 4.1.10 that Tor believes
- are still accurate. Controllers can use them to get a summary of
- any current problems with Tor's operation.
- [The answers should include notice events, not just warns and
- errs, for example so Tor can learn whether any circuits have been
- established yet.-RD]
- [notice, warn, and errs need to be separated here, though.
- Otherwise, when we add a new status event type in the future,
- controllers won't know whether it's good or bad. -NM]
+ "status/general"
+ These provide a (possibly empty) newline-separated list of status
+ events from Section 4.1.10 that Tor believes are still
+ accurate. Controllers can use them to get a summary of any current
+ problems with Tor's operation.
[Does this mean that Tor must keep state on its side of all the
statuses it's sent, and recognize when they're cancelled out,
@@ -794,8 +789,8 @@ $Id$
S: 650 CIRC 1000 EXTENDED moria1,moria2
S: 250 ORPORT=0
- Clients SHOULD tolerate more arguments in an asynchonous reply than
- expected, and SHOULD tolerate more lines in an asynchronous reply than
+ Clients MUST tolerate more arguments in an asynchonous reply than
+ expected, and MUST tolerate more lines in an asynchronous reply than
expected. For instance, a client that expects a CIRC message like:
650 CIRC 1000 EXTENDED moria1,moria2
should tolerate:
@@ -954,12 +949,25 @@ $Id$
4.1.10. Status events
+ Status events (STATUS_GENERAL, STATUS_CLIENT, and STATUS_SERVER) are sent
+ based on occurrences in the Tor process pertaining to the general state of
+ the program. Generally, they correspond to log messages of severity Notice
+ or higher. They differ from log messages in that their format is a
+ specified interface.
+
[Don't rely on any of these until we work out more of the details. -RD]
Syntax:
- "650" SP Type SP Severity SP Action SP Arguments
- Type = "STATUS_GENERAL" / "STATUS_CLIENT" / "STATUS_SERVER"
- Severity = "NOTICE" / "WARN" / "ERR"
+ "650" SP StatusType SP StatusSeverity SP StatusAction
+ [SP StatusArguments] CRLF
+
+ StatusType = "STATUS_GENERAL" / "STATUS_CLIENT" / "STATUS_SERVER"
+ StatusSeverity = "NOTICE" / "WARN" / "ERR"
+ StatusAction = 1*ALPHA
+ StatusArguments = StatusArgument *(SP StatusArgument)
+ StatusArgument = StatusKeyword '=' StatusValue
+ StatusKeyword = 1*(ALNUM / "_")
+ StatusValue = 1*(ALNUM / '_') / QuotedString
Action is a string, and Arguments is a series of keyword=value
pairs on the same line. Values may be space-terminated strings,
@@ -969,6 +977,10 @@ $Id$
VERBOSE_NAMES; see the explanations in the USEFEATURE section
for details.
+ Controllers MUST tolerate unrecognized actions and arguments, MUST
+ tolerate missing arguments, and MUST tolerate arguments that arrive
+ in any order.
+
Actions for STATUS_GENERAL events can be as follows:
CLOCK_JUMPED
@@ -999,6 +1011,13 @@ do for each. -RD]
"CURRENT=version"
"REASON=NEW/OLD/UNRECOMMENDED"
"RECOMMENDED=\"version, version, ...\""
+ Tor has found that directory servers don't recommend its version of
+ the Tor software. RECOMMENDED is a comma-and-space-separated string
+ of Tor versions that are recommended. REASON is NEW if this version
+ of Tor is newer than any recommended version, OLD if this version of
+ Tor is older than any recommended version, and UNRECOMMENDED if
+ some recommended versions of Tor are newer and some are old than this
+ version.
TOO_MANY_CONNECTIONS
"CURRENT=NUM"