diff options
author | Nick Mathewson <nickm@torproject.org> | 2012-05-24 10:42:55 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2012-05-24 10:42:55 -0400 |
commit | 2418bc95946bd568e960f6ed42b0cd4dce3b835b (patch) | |
tree | cd50ae2806f38d97ee2a2d097ddea9e83be7f311 /src | |
parent | 75fc4dbbcabaedc715f0f9e883ccab1c9634e787 (diff) | |
download | tor-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.c | 7 |
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."), |