]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
control: Don't check if Server is an HSDir for HSPOST
authorDavid Goulet <dgoulet@torproject.org>
Wed, 15 Nov 2017 19:37:11 +0000 (14:37 -0500)
committerNick Mathewson <nickm@torproject.org>
Wed, 6 Dec 2017 00:39:46 +0000 (19:39 -0500)
This is removed for two reasons. First, HSDir accepts descriptor even though
they don't think they are in fact an HSDir. This is to avoid consensus desync
between client/service and directories.

Second, our malicious HSDir scanner uses the HSPOST command to post on all
relays in order to test them before they could become HSDir. We had to remove
that check from the tor code that the scanner uses.

Thus, this check should not be enforced by the control port for the above use
cases. It is also a bit more complex with v3 support for which not all HSDir
support it so basically irrelevant check.

Signed-off-by: David Goulet <dgoulet@torproject.org>
src/or/control.c

index 24e3ebe7dd56a79f4fb94cfe26f897244555dbf3..7ade90ea8b878a8ead8c94b22bd3d4b989c61520 100644 (file)
@@ -4370,11 +4370,6 @@ handle_control_hspost(control_connection_t *conn,
                                    server);
           goto done;
         }
-        if (!node->rs->is_hs_dir) {
-          connection_printf_to_buf(conn, "552 Server \"%s\" is not a HSDir"
-                                         "\r\n", server);
-          goto done;
-        }
         /* Valid server, add it to our local list. */
         if (!hs_dirs)
           hs_dirs = smartlist_new();