diff options
author | Roger Dingledine <arma@torproject.org> | 2006-06-13 09:16:09 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2006-06-13 09:16:09 +0000 |
commit | 31b51849b50904e2206f59832bd86217c662dbd8 (patch) | |
tree | 5602436a16a6b9c3275e70437b440a83db8e45c6 /src | |
parent | 279e86f3c88b19ae4a65140567151c183def5931 (diff) | |
download | tor-31b51849b50904e2206f59832bd86217c662dbd8.tar tor-31b51849b50904e2206f59832bd86217c662dbd8.tar.gz |
export the default exit policy via the control port, so controllers
don't need to guess what it is / will be later.
svn:r6615
Diffstat (limited to 'src')
-rw-r--r-- | src/or/control.c | 4 | ||||
-rw-r--r-- | src/or/or.h | 1 | ||||
-rw-r--r-- | src/or/policies.c | 12 |
3 files changed, 17 insertions, 0 deletions
diff --git a/src/or/control.c b/src/or/control.c index abe1759ae..7e06ec3ef 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -1289,12 +1289,14 @@ list_getinfo_options(void) "addr-mappings/configl Addresses remapped from configuration options.\n" "addr-mappings/control Addresses remapped by a controller.\n" "circuit-status Status of each current circuit.\n" + "config-file Current location of the \"torrc\" file.\n" "config/names List of configuration options, types, and documentation.\n" "desc/id/* Server descriptor by hex ID\n" "desc/name/* Server descriptor by nickname.\n" "desc/all-recent Latest server descriptor for every router\n" "dir/server/* Fetch server descriptors -- see dir-spec.txt\n" "entry-guards Which nodes will we use as entry guards?\n" + "exit-policy/default Default lines appended to config->ExitPolicy\n" "info/names List of GETINFO options, types, and documentation.\n" "network-status List of hex IDs, nicknames, server statuses.\n" "orconn-status Status of each current OR connection.\n" @@ -1532,6 +1534,8 @@ handle_getinfo_helper(const char *question, char **answer) cp += d->dir_len; }); *cp = '\0'; + } else if (!strcmpstart(question, "exit-policy/")) { + return policies_getinfo_helper(question, answer); } return 0; } diff --git a/src/or/or.h b/src/or/or.h index 92a7e5f2b..99acf2b41 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -2051,6 +2051,7 @@ int policies_parse_exit_policy(config_line_t *cfg, addr_policy_t **dest, int rejectprivate); int exit_policy_is_general_exit(addr_policy_t *policy); +int policies_getinfo_helper(const char *question, char **answer); void addr_policy_free(addr_policy_t *p); void policies_free_all(void); diff --git a/src/or/policies.c b/src/or/policies.c index 7eff70fc9..31622a012 100644 --- a/src/or/policies.c +++ b/src/or/policies.c @@ -627,6 +627,18 @@ exit_policy_is_general_exit(addr_policy_t *policy) return n_allowed >= 2; } +int +policies_getinfo_helper(const char *question, char **answer) +{ + if (!strcmp(question, "exit-policy/default")) { + *answer = tor_strdup(DEFAULT_EXIT_POLICY); +// } else if (!strcmp(question, "exit-policy/prepend")) { + } else { + *answer = NULL; + } + return 0; +} + /** Release all storage held by <b>p</b> */ void addr_policy_free(addr_policy_t *p) |