]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Add GETINFO consensus/{valid-{after,until},fresh-until}
authorNick Mathewson <nickm@torproject.org>
Wed, 28 Jan 2015 16:28:21 +0000 (11:28 -0500)
committerNick Mathewson <nickm@torproject.org>
Wed, 28 Jan 2015 16:28:21 +0000 (11:28 -0500)
src/or/networkstatus.c

index a25413a12f1b699defeb8ed2c78597a77fe410cd..9d6d5abe6a51568e823a94777ee6fb81a2dbbbb8 100644 (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;
   }