aboutsummaryrefslogtreecommitdiff
path: root/src/feature/relay
diff options
context:
space:
mode:
authorteor <teor@torproject.org>2019-10-30 16:55:21 +1000
committerteor <teor@torproject.org>2019-10-31 12:34:20 +1000
commit8036954bf5fd6bd6752b3e4b4e6c52e68dd4ddcb (patch)
tree04e1a5e1512ca8241a4bc7e507cdeaccbf746822 /src/feature/relay
parent23faa03ffc28e8d1132370e861756e84d659be5e (diff)
downloadtor-8036954bf5fd6bd6752b3e4b4e6c52e68dd4ddcb.tar.gz
tor-8036954bf5fd6bd6752b3e4b4e6c52e68dd4ddcb.zip
config: Move warn_nonlocal_ext_orports() to relay
Part of 32213.
Diffstat (limited to 'src/feature/relay')
-rw-r--r--src/feature/relay/relay_config.c21
-rw-r--r--src/feature/relay/relay_config.h3
2 files changed, 24 insertions, 0 deletions
diff --git a/src/feature/relay/relay_config.c b/src/feature/relay/relay_config.c
index 7ef2a15132..d8c4f0f100 100644
--- a/src/feature/relay/relay_config.c
+++ b/src/feature/relay/relay_config.c
@@ -111,6 +111,27 @@ get_effective_bwburst(const or_options_t *options)
return (uint32_t)bw;
}
+/** Warn for every Extended ORPort port in <b>ports</b> that is on a
+ * publicly routable address. */
+void
+warn_nonlocal_ext_orports(const smartlist_t *ports, const char *portname)
+{
+ SMARTLIST_FOREACH_BEGIN(ports, const port_cfg_t *, port) {
+ if (port->type != CONN_TYPE_EXT_OR_LISTENER)
+ continue;
+ if (port->is_unix_addr)
+ continue;
+ /* XXX maybe warn even if address is RFC1918? */
+ if (!tor_addr_is_internal(&port->addr, 1)) {
+ log_warn(LD_CONFIG, "You specified a public address '%s' for %sPort. "
+ "This is not advised; this address is supposed to only be "
+ "exposed on localhost so that your pluggable transport "
+ "proxies can connect to it.",
+ fmt_addrport(&port->addr, port->port), portname);
+ }
+ } SMARTLIST_FOREACH_END(port);
+}
+
/** Given a list of <b>port_cfg_t</b> in <b>ports</b>, check them for internal
* consistency and warn as appropriate. On Unix-based OSes, set
* *<b>n_low_ports_out</b> to the number of sub-1024 ports we will be
diff --git a/src/feature/relay/relay_config.h b/src/feature/relay/relay_config.h
index 3a9ea418ba..13ab0fe7f2 100644
--- a/src/feature/relay/relay_config.h
+++ b/src/feature/relay/relay_config.h
@@ -24,6 +24,9 @@ void relay_config_free_all(void);
uint32_t get_effective_bwrate(const or_options_t *options);
uint32_t get_effective_bwburst(const or_options_t *options);
+void warn_nonlocal_ext_orports(const smartlist_t *ports,
+ const char *portname);
+
int parse_ports_relay(or_options_t *options,
char **msg,
smartlist_t *ports_out,