Tweak error handling for #25852

This commit is contained in:
rl1987 2018-05-10 16:45:57 +03:00
parent 8ad97b7dcf
commit 036df13a03
3 changed files with 10 additions and 9 deletions

View File

@ -131,11 +131,12 @@ routerinfo_err_to_string(int err)
return "Key digest failed";
case TOR_ROUTERINFO_ERROR_CANNOT_GENERATE:
return "Cannot generate descriptor";
case TOR_ROUTERINFO_ERROR_NOT_SO_FAST:
return "Too soon; not ready yet";
case TOR_ROUTERINFO_ERROR_DESC_REBUILDING:
return "Descriptor still rebuilding - not ready yet";
}
log_warn(LD_BUG, "unknown errno %d", err);
log_warn(LD_BUG, "unknown routerinfo error %d - shouldn't happen", err);
tor_assert_unreached();
return "Unknown error";
}
@ -157,7 +158,7 @@ routerinfo_err_is_transient(int err)
return 0; // XXX: bug?
case TOR_ROUTERINFO_ERROR_CANNOT_GENERATE:
return 1;
case TOR_ROUTERINFO_ERROR_NOT_SO_FAST:
case TOR_ROUTERINFO_ERROR_DESC_REBUILDING:
return 1;
}
@ -2099,7 +2100,7 @@ router_get_my_routerinfo_with_err,(int *err))
if (!desc_routerinfo) {
if (err)
*err = TOR_ROUTERINFO_ERROR_NOT_SO_FAST;
*err = TOR_ROUTERINFO_ERROR_DESC_REBUILDING;
return NULL;
}
@ -2530,7 +2531,7 @@ router_rebuild_descriptor(int force)
* learn that it's time to try again when ip_address_changed()
* marks it dirty. */
desc_clean_since = time(NULL);
return TOR_ROUTERINFO_ERROR_NOT_SO_FAST;
return TOR_ROUTERINFO_ERROR_DESC_REBUILDING;
}
log_info(LD_OR, "Rebuilding relay descriptor%s", force ? " (forced)" : "");

View File

@ -19,7 +19,7 @@
#define TOR_ROUTERINFO_ERROR_NOT_A_SERVER (-3)
#define TOR_ROUTERINFO_ERROR_DIGEST_FAILED (-4)
#define TOR_ROUTERINFO_ERROR_CANNOT_GENERATE (-5)
#define TOR_ROUTERINFO_ERROR_NOT_SO_FAST (-6)
#define TOR_ROUTERINFO_ERROR_DESC_REBUILDING (-6)
crypto_pk_t *get_onion_key(void);
time_t get_onion_key_set_at(void);

View File

@ -1712,13 +1712,13 @@ test_policies_getinfo_helper_policies(void *arg)
tt_ptr_op(errmsg, OP_NE, NULL);
tt_str_op(errmsg, OP_EQ, "Cannot generate descriptor");
routerinfo_err = TOR_ROUTERINFO_ERROR_NOT_SO_FAST;
routerinfo_err = TOR_ROUTERINFO_ERROR_DESC_REBUILDING;
rv = getinfo_helper_policies(NULL, "exit-policy/full", &answer,
&errmsg);
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, "Too soon; not ready yet");
tt_str_op(errmsg, OP_EQ, "Descriptor still rebuilding - not ready yet");
done:
tor_free(answer);