Merge remote-tracking branch 'neel/b21530'

This commit is contained in:
Nick Mathewson
2018-09-14 09:27:03 -04:00
2 changed files with 21 additions and 28 deletions
+14 -28
View File
@@ -1163,31 +1163,15 @@ validate_addr_policies(const or_options_t *options, char **msg)
REJECT("Error in ExitPolicy entry.");
}
static int warned_about_exitrelay = 0;
static int warned_about_nonexit = 0;
const int exitrelay_setting_is_auto = options->ExitRelay == -1;
const int policy_accepts_something =
! (policy_is_reject_star(addr_policy, AF_INET, 1) &&
policy_is_reject_star(addr_policy, AF_INET6, 1));
if (server_mode(options) &&
! warned_about_exitrelay &&
exitrelay_setting_is_auto &&
policy_accepts_something) {
/* Policy accepts something */
warned_about_exitrelay = 1;
log_warn(LD_CONFIG,
"Tor is running as an exit relay%s. If you did not want this "
"behavior, please set the ExitRelay option to 0. If you do "
"want to run an exit Relay, please set the ExitRelay option "
"to 1 to disable this warning, and for forward compatibility.",
options->ExitPolicy == NULL ?
" with the default exit policy" : "");
if (options->ExitPolicy == NULL && options->ReducedExitPolicy == 0) {
log_warn(LD_CONFIG,
"In a future version of Tor, ExitRelay 0 may become the "
"default when no ExitPolicy is given.");
}
if (!warned_about_nonexit && options->ExitPolicy == NULL &&
options->ExitRelay == -1 && options->ReducedExitPolicy == 0) {
warned_about_nonexit = 1;
log_notice(LD_CONFIG, "By default, Tor does not run as an exit relay. "
"The reason is to prevent your relay from appearing as the "
"source of abusive traffic. If you want to be an exit relay, "
"set ExitRelay to 1.");
}
/* The rest of these calls *append* to addr_policy. So don't actually
@@ -2125,8 +2109,8 @@ policies_copy_outbound_addresses_to_smartlist(smartlist_t *addr_list,
* If <b>or_options->BridgeRelay</b> is false, append entries of default
* Tor exit policy into <b>result</b> smartlist.
*
* If or_options->ExitRelay is false, then make our exit policy into
* "reject *:*" regardless.
* If or_options->ExitRelay is false, or is auto without specifying an exit
* policy, then make our exit policy into "reject *:*" regardless.
*/
int
policies_parse_exit_policy_from_options(const or_options_t *or_options,
@@ -2138,8 +2122,10 @@ policies_parse_exit_policy_from_options(const or_options_t *or_options,
smartlist_t *configured_addresses = NULL;
int rv = 0;
/* Short-circuit for non-exit relays */
if (or_options->ExitRelay == 0) {
/* Short-circuit for non-exit relays, or for relays where we didn't specify
* ExitPolicy or ReducedExitPolicy and ExitRelay is auto. */
if (or_options->ExitRelay == 0 || (or_options->ExitPolicy == NULL &&
or_options->ExitRelay == -1 && or_options->ReducedExitPolicy == 0)) {
append_exit_policy_string(result, "reject *4:*");
append_exit_policy_string(result, "reject *6:*");
return 0;