diff options
author | Nick Mathewson <nickm@torproject.org> | 2017-05-09 10:28:05 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2017-05-09 10:28:51 -0400 |
commit | ff7e8531ec44ce5ebdb7506ab3133e566fddfc20 (patch) | |
tree | ebb1b12222a2914f013b32a19bf3dba1285f81ba | |
parent | 0df22e8f5f5c4e1a329f2930f6eb9ecde1cf9848 (diff) | |
download | tor-ff7e8531ec44ce5ebdb7506ab3133e566fddfc20.tar.gz tor-ff7e8531ec44ce5ebdb7506ab3133e566fddfc20.zip |
Report common reasons for rejecting a relay before uncommon ones
"You're running 0.2.2; upgrade!" is more sensible than "You have no
ntor key!"
Closes ticket 20270; bugfix on 0.2.9.3-alpha.
-rw-r--r-- | changes/bug20270 | 6 | ||||
-rw-r--r-- | src/or/dirserv.c | 11 |
2 files changed, 14 insertions, 3 deletions
diff --git a/changes/bug20270 b/changes/bug20270 new file mode 100644 index 0000000000..d538a358dc --- /dev/null +++ b/changes/bug20270 @@ -0,0 +1,6 @@ + o Minor bugfixes (directory authority): + - When rejecting a router descriptor because the relay is running an + obsolete version of Tor without ntor support, warn about the obsolete + tor version, not the missing ntor key. Fixes bug 20270; + bugfix on 0.2.9.3-alpha. + diff --git a/src/or/dirserv.c b/src/or/dirserv.c index fa3938b5ec..0c707a92d2 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -274,6 +274,13 @@ dirserv_router_get_status(const routerinfo_t *router, const char **msg, return FP_REJECT; } + /* Check for the more usual versions to reject a router first. */ + const uint32_t r = dirserv_get_status_impl(d, router->nickname, + router->addr, router->or_port, + router->platform, msg, severity); + if (r) + return r; + /* dirserv_get_status_impl already rejects versions older than 0.2.4.18-rc, * and onion_curve25519_pkey was introduced in 0.2.4.8-alpha. * But just in case a relay doesn't provide or lies about its version, or @@ -324,9 +331,7 @@ dirserv_router_get_status(const routerinfo_t *router, const char **msg, } } - return dirserv_get_status_impl(d, router->nickname, - router->addr, router->or_port, - router->platform, msg, severity); + return 0; } /** Return true if there is no point in downloading the router described by |