[tor-commits] [tor/master] Add GETINFO consensus/{valid-{after, until}, fresh-until}

nickm at torproject.org nickm at torproject.org
Fri Jan 30 12:37:04 UTC 2015


commit 32dad3b83bb21c4f1af4a8e45f539ab8cf8a6779
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Jan 28 11:28:21 2015 -0500

    Add GETINFO consensus/{valid-{after,until},fresh-until}
---
 src/or/networkstatus.c |   20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c
index a25413a..9d6d5ab 100644
--- a/src/or/networkstatus.c
+++ b/src/or/networkstatus.c
@@ -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;
   }





More information about the tor-commits mailing list