summaryrefslogtreecommitdiff
path: root/src/or/policies.c
diff options
context:
space:
mode:
authorteor (Tim Wilson-Brown) <teor2345@gmail.com>2015-11-23 08:46:26 +1100
committerNick Mathewson <nickm@torproject.org>2015-11-25 22:26:10 -0500
commite14f9dd44f637c0211530e5e630eba1a129d1650 (patch)
tree200b515f20004c01f7e9df49d115e70d48f095df /src/or/policies.c
parent289b184e112885d4feb9569c77d322995b9417c7 (diff)
downloadtor-e14f9dd44f637c0211530e5e630eba1a129d1650.tar.gz
tor-e14f9dd44f637c0211530e5e630eba1a129d1650.zip
fixup! Add controller getinfo exit-policy/reject-private
Stop ignoring ExitPolicyRejectPrivate in getinfo exit-policy/reject-private. Fix a memory leak. Set ExitPolicyRejectPrivate in the unit tests, and make a mock function declaration static.
Diffstat (limited to 'src/or/policies.c')
-rw-r--r--src/or/policies.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/or/policies.c b/src/or/policies.c
index 4d9b17cc32..ec11375636 100644
--- a/src/or/policies.c
+++ b/src/or/policies.c
@@ -2140,14 +2140,20 @@ getinfo_helper_policies(control_connection_t *conn,
} else if (!strcmp(question, "exit-policy/reject-private/relay")) {
const or_options_t *options = get_options();
const routerinfo_t *me = router_get_my_routerinfo();
- smartlist_t *private_policy_list = smartlist_new();
- smartlist_t *configured_addresses = smartlist_new();
if (!me) {
*errmsg = "router_get_my_routerinfo returned NULL";
return -1;
}
+ if (!options->ExitPolicyRejectPrivate) {
+ *answer = tor_strdup("");
+ return 0;
+ }
+
+ smartlist_t *private_policy_list = smartlist_new();
+ smartlist_t *configured_addresses = smartlist_new();
+
/* Add the configured addresses to the tor_addr_t* list */
policies_add_ipv4h_to_smartlist(configured_addresses, me->addr);
policies_add_addr_to_smartlist(configured_addresses, &me->ipv6_addr);
@@ -2162,6 +2168,7 @@ getinfo_helper_policies(control_connection_t *conn,
*answer = policy_dump_to_string(private_policy_list, 1, 1);
addr_policy_list_free(private_policy_list);
+ addr_policy_list_free(configured_addresses);
} else if (!strcmpstart(question, "exit-policy/")) {
const routerinfo_t *me = router_get_my_routerinfo();