mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
Merge remote-tracking branch 'tor-github/pr/268'
This commit is contained in:
commit
61d5bcc1a2
6
changes/bug27034
Normal file
6
changes/bug27034
Normal file
@ -0,0 +1,6 @@
|
||||
o Minor bugfixes (controller):
|
||||
- Consider all routerinfo errors other than "not a server"
|
||||
to be transient for the purpose of "GETINFO exit-policy/*"
|
||||
controller request. Print stacktrace in the unlikely case
|
||||
of failing to recompute routerinfo digest. Fixes bug 27034;
|
||||
bugfix on 0.3.4.1-alpha.
|
@ -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
|
||||
@ -2360,8 +2350,8 @@ router_build_fresh_descriptor(routerinfo_t **r, extrainfo_t **e)
|
||||
}
|
||||
|
||||
ri->identity_pkey = crypto_pk_dup_key(get_server_identity_key());
|
||||
if (crypto_pk_get_digest(ri->identity_pkey,
|
||||
ri->cache_info.identity_digest)<0) {
|
||||
if (BUG(crypto_pk_get_digest(ri->identity_pkey,
|
||||
ri->cache_info.identity_digest) < 0)) {
|
||||
routerinfo_free(ri);
|
||||
return TOR_ROUTERINFO_ERROR_DIGEST_FAILED;
|
||||
}
|
||||
|
@ -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");
|
||||
|
Loading…
Reference in New Issue
Block a user