Browse Source

Implement "getinfo status/circuit-established"

svn:r10120
Roger Dingledine 18 years ago
parent
commit
43411ceed3
2 changed files with 10 additions and 0 deletions
  1. 1 0
      ChangeLog
  2. 9 0
      src/or/control.c

+ 1 - 0
ChangeLog

@@ -80,6 +80,7 @@ Changes in version 0.2.0.1-alpha - 2007-??-??
       preemptively.
     - Let the controller specify HOP=%d as an argument to ATTACHSTREAM,
       so we can exit from the middle of the circuit.
+    - Implement "getinfo status/circuit-established".
 
   o Minor features (other):
     - Correctly report Windows 95 OSR2 and Windows 98 SE.

+ 9 - 0
src/or/control.c

@@ -1462,6 +1462,12 @@ getinfo_helper_events(control_connection_t *control_conn,
     *answer = smartlist_join_strings(mappings, "\r\n", 0, NULL);
     SMARTLIST_FOREACH(mappings, char *, cp, tor_free(cp));
     smartlist_free(mappings);
+  } else if (!strcmpstart(question, "status/")) {
+    if (!strcmp(question, "status/circuit-established")) {
+      *answer = tor_strdup(has_completed_circuit ? "1" : "0");
+    } else {
+      return 0;
+    }
   }
   return 0;
 }
@@ -1538,6 +1544,9 @@ static const getinfo_item_t getinfo_items[] = {
   DOC("addr-mappings/cache", "Current cached DNS replies."),
   DOC("addr-mappings/config", "Current address mappings from configuration."),
   DOC("addr-mappings/control", "Current address mappings from controller."),
+  PREFIX("status/", events, NULL),
+  DOC("status/circuit-established",
+      "Whether we think client functionality is working."),
 
   ITEM("address", misc, "IP address of this Tor host, if we can guess it."),
   ITEM("dir-usage", misc, "Breakdown of bytes transferred over DirPort."),