summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2005-06-24 23:42:15 +0000
committerNick Mathewson <nickm@torproject.org>2005-06-24 23:42:15 +0000
commitb759fe4b8df2fc512b2ce5e0e9422cce8ebc3bb7 (patch)
treee483134ea1bfece422714b16f177efde290f4f9a
parentc831a9f7017dcc6adac47bf0bf897632c0000a0d (diff)
downloadtor-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.txt11
-rw-r--r--src/or/routerparse.c2
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;
}