aboutsummaryrefslogtreecommitdiff
path: root/src/or/control.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2007-07-16 16:58:11 +0000
committerNick Mathewson <nickm@torproject.org>2007-07-16 16:58:11 +0000
commit26a25edaec6a71173e866d4632ace6af22de892f (patch)
tree3acaebe5c7b2bdca3ca7036fed53bc3a4810ba34 /src/or/control.c
parent483c1e9017f4ac2ef4c0652e3402887578a265d6 (diff)
downloadtor-26a25edaec6a71173e866d4632ace6af22de892f.tar.gz
tor-26a25edaec6a71173e866d4632ace6af22de892f.zip
r13777@catbus: nickm | 2007-07-16 12:58:08 -0400
Patch from tup: new address-mappings/ GETINFO that includes expiry times. svn:r10844
Diffstat (limited to 'src/or/control.c')
-rw-r--r--src/or/control.c35
1 files changed, 25 insertions, 10 deletions
diff --git a/src/or/control.c b/src/or/control.c
index f103982e0f..775dda3c35 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -1457,22 +1457,28 @@ getinfo_helper_events(control_connection_t *control_conn,
*answer = smartlist_join_strings(status, "\r\n", 0, NULL);
SMARTLIST_FOREACH(status, char *, cp, tor_free(cp));
smartlist_free(status);
- } else if (!strcmpstart(question, "addr-mappings/")) {
+ } else if (!strcmpstart(question, "addr-mappings/") ||
+ !strcmpstart(question, "address-mappings/")) {
+ /* XXXX020 Warn about deprecated addr-mappings variant? Or wait for
+ * 0.2.1.x? */
time_t min_e, max_e;
smartlist_t *mappings;
- if (!strcmp(question, "addr-mappings/all")) {
+ int want_expiry = !strcmpstart(question, "address-mappings/");
+ question += strlen(want_expiry ? "address-mappings/"
+ : "addr-mappings/");
+ if (!strcmp(question, "all")) {
min_e = 0; max_e = TIME_MAX;
- } else if (!strcmp(question, "addr-mappings/cache")) {
+ } else if (!strcmp(question, "cache")) {
min_e = 2; max_e = TIME_MAX;
- } else if (!strcmp(question, "addr-mappings/config")) {
+ } else if (!strcmp(question, "config")) {
min_e = 0; max_e = 0;
- } else if (!strcmp(question, "addr-mappings/control")) {
+ } else if (!strcmp(question, "control")) {
min_e = 1; max_e = 1;
} else {
return 0;
}
mappings = smartlist_create();
- addressmap_get_mappings(mappings, min_e, max_e);
+ addressmap_get_mappings(mappings, min_e, max_e, want_expiry);
*answer = smartlist_join_strings(mappings, "\r\n", 0, NULL);
SMARTLIST_FOREACH(mappings, char *, cp, tor_free(cp));
smartlist_free(mappings);
@@ -1587,11 +1593,20 @@ static const getinfo_item_t getinfo_items[] = {
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."),
+ PREFIX("address-mappings/", events, NULL),
+ DOC("address-mappings/all", "Current address mappings."),
+ DOC("address-mappings/cache", "Current cached DNS replies."),
+ DOC("address-mappings/config",
+ "Current address mappings from configuration."),
+ DOC("address-mappings/control", "Current address mappings from controller."),
PREFIX("addr-mappings/", events, NULL),
- DOC("addr-mappings/all", "Current address mappings."),
- DOC("addr-mappings/cache", "Current cached DNS replies."),
- DOC("addr-mappings/config", "Current address mappings from configuration."),
- DOC("addr-mappings/control", "Current address mappings from controller."),
+ DOC("addr-mappings/all", "Current address mappings without expiry times."),
+ DOC("addr-mappings/cache",
+ "Current cached DNS replies without expiry times."),
+ DOC("addr-mappings/config",
+ "Current address mappings from configuration without expiry times."),
+ DOC("addr-mappings/control",
+ "Current address mappings from controller without expiry times."),
PREFIX("status/", events, NULL),
DOC("status/circuit-established",
"Whether we think client functionality is working."),