summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGeorge Kadianakis <desnacked@riseup.net>2020-05-21 16:22:47 +0300
committerGeorge Kadianakis <desnacked@riseup.net>2020-05-21 16:22:47 +0300
commitfb281daf293f791999e3b1ead0f6dd77afd10eb1 (patch)
treedfaa01b3f3c1891019fd6f7f67314e7eafc57e8b /src
parentca13249dcc3e9974c35d6c29a2622a5c8d4cf32e (diff)
parent8e59b8560a4ce372497ea7bf5bcddff0c5211ebc (diff)
downloadtor-fb281daf293f791999e3b1ead0f6dd77afd10eb1.tar.gz
tor-fb281daf293f791999e3b1ead0f6dd77afd10eb1.zip
Merge branch 'tor-github/pr/1861'
Diffstat (limited to 'src')
-rw-r--r--src/feature/control/control_getinfo.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/feature/control/control_getinfo.c b/src/feature/control/control_getinfo.c
index 685deb8ecc..b2d0c9680d 100644
--- 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;