Просмотр исходного кода

Implement "getinfo status/circuit-established"

svn:r10120
Roger Dingledine 19 лет назад
Родитель
Сommit
43411ceed3
2 измененных файлов с 10 добавлено и 0 удалено
  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."),