|
@@ -1861,7 +1861,10 @@ version_from_platform(const char *platform)
|
|
|
int
|
|
|
routerstatus_format_entry(char *buf, size_t buf_len,
|
|
|
routerstatus_t *rs, const char *version,
|
|
|
- int first_line_only)
|
|
|
+ int first_line_only, int v2_format)
|
|
|
+/* XXX: first_line_only and v2_format should probably be be both
|
|
|
+ * replaced by a single purpose parameter.
|
|
|
+ */
|
|
|
{
|
|
|
int r;
|
|
|
struct in_addr in;
|
|
@@ -1912,8 +1915,7 @@ routerstatus_format_entry(char *buf, size_t buf_len,
|
|
|
cp = buf + strlen(buf);
|
|
|
/* NOTE: Whenever this list expands, be sure to increase MAX_FLAG_LINE_LEN*/
|
|
|
r = tor_snprintf(cp, buf_len - (cp-buf),
|
|
|
- "s%s%s%s%s%s%s%s%s%s%s%s%s%s\n"
|
|
|
- "w Bandwidth=%d\n",
|
|
|
+ "s%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
|
|
|
/* These must stay in alphabetical order. */
|
|
|
rs->is_authority?" Authority":"",
|
|
|
rs->is_bad_directory?" BadDirectory":"",
|
|
@@ -1927,8 +1929,7 @@ routerstatus_format_entry(char *buf, size_t buf_len,
|
|
|
rs->is_stable?" Stable":"",
|
|
|
rs->is_unnamed?" Unnamed":"",
|
|
|
rs->is_v2_dir?" V2Dir":"",
|
|
|
- rs->is_valid?" Valid":"",
|
|
|
- router_get_advertised_bandwidth_capped(desc));
|
|
|
+ rs->is_valid?" Valid":"");
|
|
|
if (r<0) {
|
|
|
log_warn(LD_BUG, "Not enough space in buffer.");
|
|
|
return -1;
|
|
@@ -1944,14 +1945,24 @@ routerstatus_format_entry(char *buf, size_t buf_len,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- summary = policy_summarize(desc->exit_policy);
|
|
|
- if (summary) {
|
|
|
- r = tor_snprintf(cp, buf_len - (cp-buf), "p %s\n", summary);
|
|
|
+ if (!v2_format) {
|
|
|
+ r = tor_snprintf(cp, buf_len - (cp-buf),
|
|
|
+ "w Bandwidth=%d\n",
|
|
|
+ router_get_advertised_bandwidth_capped(desc));
|
|
|
if (r<0) {
|
|
|
log_warn(LD_BUG, "Not enough space in buffer.");
|
|
|
return -1;
|
|
|
}
|
|
|
- tor_free(summary);
|
|
|
+
|
|
|
+ summary = policy_summarize(desc->exit_policy);
|
|
|
+ if (summary) {
|
|
|
+ r = tor_snprintf(cp, buf_len - (cp-buf), "p %s\n", summary);
|
|
|
+ if (r<0) {
|
|
|
+ log_warn(LD_BUG, "Not enough space in buffer.");
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ tor_free(summary);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
@@ -2459,7 +2470,7 @@ generate_v2_networkstatus_opinion(void)
|
|
|
if (digestmap_get(omit_as_sybil, ri->cache_info.identity_digest))
|
|
|
clear_status_flags_on_sybil(&rs);
|
|
|
|
|
|
- if (routerstatus_format_entry(outp, endp-outp, &rs, version, 0)) {
|
|
|
+ if (routerstatus_format_entry(outp, endp-outp, &rs, version, 0, 1)) {
|
|
|
log_warn(LD_BUG, "Unable to print router status.");
|
|
|
tor_free(version);
|
|
|
goto done;
|