Return a descriptive error for 'GETINFO status/fresh-relay-descs'

This commit is contained in:
Neel Chauhan
2020-04-12 13:13:50 -07:00
parent 80031db32a
commit 8e59b8560a
2 changed files with 22 additions and 2 deletions
+6
View File
@@ -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.
+16 -2
View File
@@ -1331,8 +1331,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;