Bladeren bron

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

Nick Mathewson 9 jaren geleden
bovenliggende
commit
32dad3b83b
1 gewijzigde bestanden met toevoegingen van 19 en 1 verwijderingen
  1. 19 1
      src/or/networkstatus.c

+ 19 - 1
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;
   }