tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit fb281daf293f791999e3b1ead0f6dd77afd10eb1
parent ca13249dcc3e9974c35d6c29a2622a5c8d4cf32e
Author: George Kadianakis <desnacked@riseup.net>
Date:   Thu, 21 May 2020 16:22:47 +0300

Merge branch 'tor-github/pr/1861'

Diffstat:
Achanges/ticket32873 | 6++++++
Msrc/feature/control/control_getinfo.c | 18++++++++++++++++--
2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/changes/ticket32873 b/changes/ticket32873 @@ -0,0 +1,6 @@ + o Minor features (control port): + - Return a descriptive error message from the 'GETINFO + status/fresh-relay-descs' command on the control port. + Previously, we returned a generic error of "Error + generating descriptor". Closes ticket 32873. Patch by + Neel Chauhan. diff --git a/src/feature/control/control_getinfo.c b/src/feature/control/control_getinfo.c @@ -1332,8 +1332,22 @@ getinfo_helper_events(control_connection_t *control_conn, } routerinfo_t *r; extrainfo_t *e; - if (router_build_fresh_descriptor(&r, &e) < 0) { - *errmsg = "Error generating descriptor"; + int result; + if ((result = router_build_fresh_descriptor(&r, &e)) < 0) { + switch (result) { + case TOR_ROUTERINFO_ERROR_NO_EXT_ADDR: + *errmsg = "Cannot get relay address while generating descriptor"; + break; + case TOR_ROUTERINFO_ERROR_DIGEST_FAILED: + *errmsg = "Key digest failed"; + break; + case TOR_ROUTERINFO_ERROR_CANNOT_GENERATE: + *errmsg = "Cannot generate router descriptor"; + break; + default: + *errmsg = "Error generating descriptor"; + break; + } return -1; } size_t size = r->cache_info.signed_descriptor_len + 1;