Add GETINFO consensus/{valid-{after,until},fresh-until}

This commit is contained in:
Nick Mathewson 2015-01-28 11:28:21 -05:00
parent c240eea0df
commit 32dad3b83b

View File

@ -1915,9 +1915,27 @@ getinfo_helper_networkstatus(control_connection_t *conn,
return *answer ? 0 : -1;
} else if (!strcmp(question, "consensus/packages")) {
const networkstatus_t *ns = networkstatus_get_latest_consensus();
if (ns->package_lines)
if (ns && ns->package_lines)
*answer = smartlist_join_strings(ns->package_lines, "\n", 1, NULL);
return *answer ? 0 : -1;
} else if (!strcmp(question, "consensus/valid-after") ||
!strcmp(question, "consensus/fresh-until") ||
!strcmp(question, "consensus/valid-until")) {
const networkstatus_t *ns = networkstatus_get_latest_consensus();
if (ns) {
time_t t;
if (!strcmp(question, "consensus/valid-after"))
t = ns->valid_after;
else if (!strcmp(question, "consensus/fresh-until"))
t = ns->fresh_until;
else
t = ns->valid_until;
char tbuf[ISO_TIME_LEN+1];
format_iso_time(tbuf, t);
*answer = tor_strdup(tbuf);
}
return *answer ? 0 : -1;
} else {
return 0;
}