diff options
author | Nick Mathewson <nickm@torproject.org> | 2005-06-24 23:42:15 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2005-06-24 23:42:15 +0000 |
commit | b759fe4b8df2fc512b2ce5e0e9422cce8ebc3bb7 (patch) | |
tree | e483134ea1bfece422714b16f177efde290f4f9a | |
parent | c831a9f7017dcc6adac47bf0bf897632c0000a0d (diff) | |
download | tor-b759fe4b8df2fc512b2ce5e0e9422cce8ebc3bb7.tar.gz tor-b759fe4b8df2fc512b2ce5e0e9422cce8ebc3bb7.zip |
It is not the end of the world when a router descriptor has an unrecognized kwd
svn:r4480
-rw-r--r-- | doc/tor-spec.txt | 11 | ||||
-rw-r--r-- | src/or/routerparse.c | 2 |
2 files changed, 9 insertions, 4 deletions
diff --git a/doc/tor-spec.txt b/doc/tor-spec.txt index 4c515f4198..aa54549a02 100644 --- a/doc/tor-spec.txt +++ b/doc/tor-spec.txt @@ -852,9 +852,14 @@ after "directory-signature". This digest is then padded with PKCS.1, and signed with the directory server's signing key. If software encounters an unrecognized keyword in a single router descriptor, -it should reject only that router descriptor, and continue using the -others. If it encounters an unrecognized keyword in the directory header, -it should reject the entire directory. +it MUST reject only that router descriptor, and continue using the +others. Because this mechanism is used to add 'critical' extensions to +future versions of the router descriptor format, implementation should treat +it as a normal occurrence and not, for example, report it to the user as an +error. [Versions of Tor prior to 0.1.1 did this.] + +If software encounters an unrecognized keyword in the directory header, +it SHOULD reject the entire directory. 7.4. Network-status descriptor diff --git a/src/or/routerparse.c b/src/or/routerparse.c index f2a3515af6..65e5e1356f 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -853,7 +853,7 @@ router_parse_entry_from_string(const char *s, const char *end) goto err; } if ((tok = find_first_by_keyword(tokens, _UNRECOGNIZED))) { - log_fn(LOG_WARN, "Unrecognized keyword '%s'; skipping descriptor.", + log_fn(LOG_INFO, "Unrecognized critical keyword '%s'; skipping descriptor. (It may be from another version of Tor.)", tok->args[0]); goto err; } |