aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2012-05-24 10:42:55 -0400
committerNick Mathewson <nickm@torproject.org>2012-05-24 10:42:55 -0400
commit2418bc95946bd568e960f6ed42b0cd4dce3b835b (patch)
treecd50ae2806f38d97ee2a2d097ddea9e83be7f311 /src
parent75fc4dbbcabaedc715f0f9e883ccab1c9634e787 (diff)
downloadtor-2418bc95946bd568e960f6ed42b0cd4dce3b835b.tar
tor-2418bc95946bd568e960f6ed42b0cd4dce3b835b.tar.gz
New "GETINFO dormant" to report whether Tor has gone idle
Torbutton needs this; see bug 5954 and 4718.
Diffstat (limited to 'src')
-rw-r--r--src/or/control.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/or/control.c b/src/or/control.c
index d6e693285..57dd0f1fd 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -28,6 +28,7 @@
#include "networkstatus.h"
#include "policies.h"
#include "reasons.h"
+#include "rephist.h"
#include "router.h"
#include "routerlist.h"
#include "routerparse.h"
@@ -1408,6 +1409,9 @@ getinfo_helper_misc(control_connection_t *conn, const char *question,
*answer = options_dump(get_options(), 1);
} else if (!strcmp(question, "info/names")) {
*answer = list_getinfo_options();
+ } else if (!strcmp(question, "dormant")) {
+ int dormant = rep_hist_circbuilding_dormant(time(NULL));
+ *answer = tor_strdup(dormant ? "1" : "0");
} else if (!strcmp(question, "events/names")) {
*answer = tor_strdup("CIRC STREAM ORCONN BW DEBUG INFO NOTICE WARN ERR "
"NEWDESC ADDRMAP AUTHDIR_NEWDESCS DESCCHANGED "
@@ -2007,12 +2011,13 @@ static const getinfo_item_t getinfo_items[] = {
"Brief summary of router status by nickname (v2 directory format)."),
PREFIX("ns/purpose/", networkstatus,
"Brief summary of router status by purpose (v2 directory format)."),
-
ITEM("network-status", dir,
"Brief summary of router status (v1 directory format)"),
ITEM("circuit-status", events, "List of current circuits originating here."),
ITEM("stream-status", events,"List of current streams."),
ITEM("orconn-status", events, "A list of current OR connections."),
+ ITEM("dormant", misc,
+ "Is Tor dormant (not building circuits because it's idle)?"),
PREFIX("address-mappings/", events, NULL),
DOC("address-mappings/all", "Current address mappings."),
DOC("address-mappings/cache", "Current cached DNS replies."),