Przeglądaj źródła

Implement "getinfo status/circuit-established"

svn:r10120
Roger Dingledine 19 lat temu
rodzic
commit
43411ceed3
2 zmienionych plików z 10 dodań i 0 usunięć
  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.
       preemptively.
     - Let the controller specify HOP=%d as an argument to ATTACHSTREAM,
     - Let the controller specify HOP=%d as an argument to ATTACHSTREAM,
       so we can exit from the middle of the circuit.
       so we can exit from the middle of the circuit.
+    - Implement "getinfo status/circuit-established".
 
 
   o Minor features (other):
   o Minor features (other):
     - Correctly report Windows 95 OSR2 and Windows 98 SE.
     - 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);
     *answer = smartlist_join_strings(mappings, "\r\n", 0, NULL);
     SMARTLIST_FOREACH(mappings, char *, cp, tor_free(cp));
     SMARTLIST_FOREACH(mappings, char *, cp, tor_free(cp));
     smartlist_free(mappings);
     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;
   return 0;
 }
 }
@@ -1538,6 +1544,9 @@ static const getinfo_item_t getinfo_items[] = {
   DOC("addr-mappings/cache", "Current cached DNS replies."),
   DOC("addr-mappings/cache", "Current cached DNS replies."),
   DOC("addr-mappings/config", "Current address mappings from configuration."),
   DOC("addr-mappings/config", "Current address mappings from configuration."),
   DOC("addr-mappings/control", "Current address mappings from controller."),
   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("address", misc, "IP address of this Tor host, if we can guess it."),
   ITEM("dir-usage", misc, "Breakdown of bytes transferred over DirPort."),
   ITEM("dir-usage", misc, "Breakdown of bytes transferred over DirPort."),