diff --git a/changes/ticket40664 b/changes/ticket40664 new file mode 100644 index 0000000000..729b6ff02a --- /dev/null +++ b/changes/ticket40664 @@ -0,0 +1,3 @@ + o Minor feature (authority): + - Reject 0.4.6.x series at the authority level. Closes ticket 40664. + diff --git a/src/feature/dirauth/process_descs.c b/src/feature/dirauth/process_descs.c index 6a9cc5e95f..3cdace452f 100644 --- a/src/feature/dirauth/process_descs.c +++ b/src/feature/dirauth/process_descs.c @@ -412,6 +412,15 @@ dirserv_rejects_tor_version(const char *platform, return true; } + /* Reject 0.4.6.x series. */ + if (tor_version_as_new_as(platform, "0.4.6.0") && + !tor_version_as_new_as(platform, "0.4.7.0-alpha-dev")) { + if (msg) { + *msg = please_upgrade_string; + } + return true; + } + return false; } diff --git a/src/test/test_process_descs.c b/src/test/test_process_descs.c index 1471bec18e..abcb6ae2fe 100644 --- a/src/test/test_process_descs.c +++ b/src/test/test_process_descs.c @@ -47,13 +47,21 @@ test_process_descs_versions(void *arg) { "Tor 0.4.3.0-alpha-dev", true }, { "Tor 0.4.3.8", true }, { "Tor 0.4.4.9", true }, + + /* The 0.4.5.x series stable is supported. */ { "Tor 0.4.5.5-rc", true }, - // new enough to be supported { "Tor 0.4.5.6", false }, - { "Tor 0.4.6.0-alpha-dev", false }, - { "Tor 0.4.6.5", false }, + { "Tor 0.4.5.15", false }, + + { "Tor 0.4.6.0-alpha-dev", true }, + { "Tor 0.4.6.1-alpha", true }, + { "Tor 0.4.6.5", true }, + { "Tor 0.4.6.50", true }, /* Non existing one in the 0.4.6 series */ + { "Tor 0.4.7.0-alpha-dev", false }, { "Tor 0.4.7.3-alpha", false }, + { "Tor 0.4.7.12", false }, + // Very far in the future { "Tor 100.100.1.5", false }, };