diff --git a/src/app/config/config.c b/src/app/config/config.c
index 901ed92e57..e568d0a580 100644
--- a/src/app/config/config.c
+++ b/src/app/config/config.c
@@ -5632,27 +5632,6 @@ warn_nonlocal_client_ports(const smartlist_t *ports,
} SMARTLIST_FOREACH_END(port);
}
-/** Warn for every Extended ORPort port in ports that is on a
- * publicly routable address. */
-static 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 port_cfg_t in ports, warn if any controller port
* there is listening on any non-loopback address. If forbid_nonlocal
* is true, then emit a stronger warning and remove the port from the list.
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 ports 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 port_cfg_t in ports, check them for internal
* consistency and warn as appropriate. On Unix-based OSes, set
* *n_low_ports_out 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,