Tor rejects all POSTDESCRIPTOR controller requests
In #30091 (moved), we replaced this code:
if (!strcasecmpstart(option, "purpose=")) {
option += strlen("purpose=");
purpose = router_purpose_from_string(option);
if (purpose == ROUTER_PURPOSE_UNKNOWN) {
connection_printf_to_buf(conn, "552 Unknown purpose \"%s\"\r\n",
option);
goto done;
}
}
With this code:
line = config_line_find_case(args->kwargs, "purpose");
if (line) {
purpose = router_purpose_from_string(line->value);
connection_printf_to_buf(conn, "552 Unknown purpose \"%s\"\r\n",
line->value);
goto done;
}
There's no purpose check any more (if (purpose == ROUTER_PURPOSE_UNKNOWN) {), so Tor rejects all POSTDESCRIPTOR requests.
I'm assigning this bug to nickm and cc'ing catalyst, because they were the author and reviewer.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information