|
@@ -1746,6 +1746,7 @@ router_dump_router_to_string(char *s, size_t maxlen, routerinfo_t *router,
|
|
|
char digest[DIGEST_LEN];
|
|
|
char published[ISO_TIME_LEN+1];
|
|
|
char fingerprint[FINGERPRINT_LEN+1];
|
|
|
+ int has_extra_info_digest;
|
|
|
char extra_info_digest[HEX_DIGEST_LEN+1];
|
|
|
size_t onion_pkeylen, identity_pkeylen;
|
|
|
size_t written;
|
|
@@ -1796,8 +1797,13 @@ router_dump_router_to_string(char *s, size_t maxlen, routerinfo_t *router,
|
|
|
family_line = tor_strdup("");
|
|
|
}
|
|
|
|
|
|
- base16_encode(extra_info_digest, sizeof(extra_info_digest),
|
|
|
- router->cache_info.extra_info_digest, DIGEST_LEN);
|
|
|
+ has_extra_info_digest =
|
|
|
+ tor_digest_is_zero(router->cache_info.extra_info_digest);
|
|
|
+
|
|
|
+ if (has_extra_info_digest) {
|
|
|
+ base16_encode(extra_info_digest, sizeof(extra_info_digest),
|
|
|
+ router->cache_info.extra_info_digest, DIGEST_LEN);
|
|
|
+ }
|
|
|
|
|
|
/* Generate the easy portion of the router descriptor. */
|
|
|
result = tor_snprintf(s, maxlen,
|
|
@@ -1808,7 +1814,7 @@ router_dump_router_to_string(char *s, size_t maxlen, routerinfo_t *router,
|
|
|
"opt fingerprint %s\n"
|
|
|
"uptime %ld\n"
|
|
|
"bandwidth %d %d %d\n"
|
|
|
- "opt extra-info-digest %s\n%s"
|
|
|
+ "%s%s%s%s"
|
|
|
"onion-key\n%s"
|
|
|
"signing-key\n%s"
|
|
|
"%s%s%s%s",
|
|
@@ -1823,7 +1829,9 @@ router_dump_router_to_string(char *s, size_t maxlen, routerinfo_t *router,
|
|
|
(int) router->bandwidthrate,
|
|
|
(int) router->bandwidthburst,
|
|
|
(int) router->bandwidthcapacity,
|
|
|
- extra_info_digest,
|
|
|
+ has_extra_info_digest ? "opt extra-info-digest " : "",
|
|
|
+ has_extra_info_digest ? extra_info_digest : "",
|
|
|
+ has_extra_info_digest ? "\n" : "",
|
|
|
options->DownloadExtraInfo ? "opt caches-extra-info\n" : "",
|
|
|
onion_pkey, identity_pkey,
|
|
|
family_line,
|