]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Consider all routerinfo errors other than "not a server" transient
authorrl1987 <rl1987@sdf.lonestar.org>
Wed, 8 Aug 2018 15:47:43 +0000 (18:47 +0300)
committerrl1987 <rl1987@sdf.lonestar.org>
Wed, 8 Aug 2018 15:47:43 +0000 (18:47 +0300)
src/feature/relay/router.c
src/test/test_policy.c

index 0cc4887232e3de37f9539db95bc7762b76507caf..40839f260507a52e9e92cbde1b9998c6d9685766 100644 (file)
@@ -164,22 +164,12 @@ routerinfo_err_to_string(int err)
 int
 routerinfo_err_is_transient(int err)
 {
-  switch (err) {
-    case TOR_ROUTERINFO_ERROR_NO_EXT_ADDR:
-      return 1;
-    case TOR_ROUTERINFO_ERROR_CANNOT_PARSE:
-      return 1;
-    case TOR_ROUTERINFO_ERROR_NOT_A_SERVER:
-      return 0;
-    case TOR_ROUTERINFO_ERROR_DIGEST_FAILED:
-      return 0; // XXX: bug?
-    case TOR_ROUTERINFO_ERROR_CANNOT_GENERATE:
-      return 1;
-    case TOR_ROUTERINFO_ERROR_DESC_REBUILDING:
-      return 1;
-  }
-
-  return 0;
+  /**
+   * For simplicity, we consider all errors other than
+   * "not a server" transient - see discussion on
+   * https://trac.torproject.org/projects/tor/ticket/27034
+   */
+  return err != TOR_ROUTERINFO_ERROR_NOT_A_SERVER;
 }
 
 /** Replace the current onion key with <b>k</b>.  Does not affect
index 4b1adc91f09475b25ba11ff5758900a42d1b26dc..6a07e5b1f8d959c617b0bb4f78f7dcdbbc513855 100644 (file)
@@ -1706,7 +1706,7 @@ test_policies_getinfo_helper_policies(void *arg)
   rv = getinfo_helper_policies(NULL, "exit-policy/full", &answer,
                                &errmsg);
 
-  tt_int_op(rv, OP_EQ, 0);
+  tt_int_op(rv, OP_EQ, -1);
   tt_ptr_op(answer, OP_EQ, NULL);
   tt_ptr_op(errmsg, OP_NE, NULL);
   tt_str_op(errmsg, OP_EQ, "Key digest failed");