Merge remote-tracking branch 'public/bug5954'

This commit is contained in:
Nick Mathewson 2012-05-30 16:38:20 -04:00
commit 37f42c2f58
2 changed files with 11 additions and 1 deletions

5
changes/bug5954 Normal file
View File

@ -0,0 +1,5 @@
o Minor features (controller):
- Expose our view of whether we have gone dormant to the
controller, via a new "GETINFO dormant" value. Due to bug 4718,
torbutton needs this to avoid excessive version checking. Fixes
bug 5954.

View File

@ -30,6 +30,7 @@
#include "nodelist.h" #include "nodelist.h"
#include "policies.h" #include "policies.h"
#include "reasons.h" #include "reasons.h"
#include "rephist.h"
#include "router.h" #include "router.h"
#include "routerlist.h" #include "routerlist.h"
#include "routerparse.h" #include "routerparse.h"
@ -1397,6 +1398,9 @@ getinfo_helper_misc(control_connection_t *conn, const char *question,
*answer = options_dump(get_options(), 1); *answer = options_dump(get_options(), 1);
} else if (!strcmp(question, "info/names")) { } else if (!strcmp(question, "info/names")) {
*answer = list_getinfo_options(); *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")) { } else if (!strcmp(question, "events/names")) {
int i; int i;
smartlist_t *event_names = smartlist_new(); smartlist_t *event_names = smartlist_new();
@ -2138,12 +2142,13 @@ static const getinfo_item_t getinfo_items[] = {
"Brief summary of router status by nickname (v2 directory format)."), "Brief summary of router status by nickname (v2 directory format)."),
PREFIX("ns/purpose/", networkstatus, PREFIX("ns/purpose/", networkstatus,
"Brief summary of router status by purpose (v2 directory format)."), "Brief summary of router status by purpose (v2 directory format)."),
ITEM("network-status", dir, ITEM("network-status", dir,
"Brief summary of router status (v1 directory format)"), "Brief summary of router status (v1 directory format)"),
ITEM("circuit-status", events, "List of current circuits originating here."), ITEM("circuit-status", events, "List of current circuits originating here."),
ITEM("stream-status", events,"List of current streams."), ITEM("stream-status", events,"List of current streams."),
ITEM("orconn-status", events, "A list of current OR connections."), 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), PREFIX("address-mappings/", events, NULL),
DOC("address-mappings/all", "Current address mappings."), DOC("address-mappings/all", "Current address mappings."),
DOC("address-mappings/cache", "Current cached DNS replies."), DOC("address-mappings/cache", "Current cached DNS replies."),