]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
dirauth: Warn when failing to post during a vote
authorSebastian Hahn <sebastian@torproject.org>
Thu, 1 Feb 2024 09:34:30 +0000 (10:34 +0100)
committerSebastian Hahn <sebastian@torproject.org>
Thu, 1 Feb 2024 09:34:30 +0000 (10:34 +0100)
The only way to figure out that posting a vote or signatures to another
dirauth failed is by counting how many success messages there are on
notice level, and noticing that it is fewer than the number of
configured dirauths.

Closes #40910.

src/feature/dirclient/dirclient.c

index 84eefdd90b59763fc8ed1d359e6e4211664caa0f..9aa3164a65644dd336d599301d52675464929e0f 100644 (file)
@@ -101,7 +101,7 @@ dir_conn_purpose_to_string(int purpose)
     case DIR_PURPOSE_UPLOAD_DIR:
       return "server descriptor upload";
     case DIR_PURPOSE_UPLOAD_VOTE:
-      return "server vote upload";
+      return "consensus vote upload";
     case DIR_PURPOSE_UPLOAD_SIGNATURES:
       return "consensus signature upload";
     case DIR_PURPOSE_FETCH_SERVERDESC:
@@ -763,6 +763,11 @@ connection_dir_client_request_failed(dir_connection_t *conn)
              "directory server at %s; will retry",
              connection_describe_peer(TO_CONN(conn)));
     connection_dir_download_routerdesc_failed(conn);
+  } else if (conn->base_.purpose == DIR_PURPOSE_UPLOAD_VOTE ||
+             conn->base_.purpose == DIR_PURPOSE_UPLOAD_SIGNATURES) {
+    log_warn(LD_DIR, "Failed to post %s to %s.",
+             dir_conn_purpose_to_string(conn->base_.purpose),
+             connection_describe_peer(TO_CONN(conn)));
   }
 }