소스 검색

Implement "getinfo status/circuit-established"

svn:r10120
Roger Dingledine 19 년 전
부모
커밋
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."),