[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor/master] relay: Disable server transport options when the module is disabled
commit 2dfd18018f7ae087c176dca973b1e8c7eea1b8c9
Author: teor <teor@xxxxxxxxxxxxxx>
Date: Thu Oct 31 11:49:17 2019 +1000
relay: Disable server transport options when the module is disabled
This commit:
* disables the ExtORPort, ServerTransportPlugin,
ServerTransportListenAddress, and ServerTransportOptions options,
when the relay module is disabled.
Part of 32213.
---
src/feature/relay/transport_config.h | 36 +++++++++++++++++++++++++++++++++---
1 file changed, 33 insertions(+), 3 deletions(-)
diff --git a/src/feature/relay/transport_config.h b/src/feature/relay/transport_config.h
index c23eee03c..799c51c98 100644
--- a/src/feature/relay/transport_config.h
+++ b/src/feature/relay/transport_config.h
@@ -19,13 +19,13 @@
typedef struct or_options_t or_options_t;
typedef struct smartlist_t smartlist_t;
-char *get_transport_bindaddr_from_config(const char *transport);
-smartlist_t *get_options_for_server_transport(const char *transport);
-
int options_validate_server_transport(const or_options_t *old_options,
or_options_t *options,
char **msg);
+char *get_transport_bindaddr_from_config(const char *transport);
+smartlist_t *get_options_for_server_transport(const char *transport);
+
int options_act_server_transport(const or_options_t *old_options);
#ifdef RELAY_TRANSPORT_CONFIG_PRIVATE
@@ -38,6 +38,36 @@ STATIC smartlist_t *get_options_from_transport_options_line(
#else
+/** When tor is compiled with the relay module disabled, it can't be
+ * configured with server pluggable transports.
+ *
+ * Returns -1 and sets msg to a newly allocated string, if ExtORPort,
+ * ServerTransportPlugin, ServerTransportListenAddr, or
+ * ServerTransportOptions are set in options. Otherwise returns 0. */
+static inline int
+options_validate_server_transport(const or_options_t *old_options,
+ or_options_t *options,
+ char **msg)
+{
+ (void)old_options;
+
+ /* These ExtORPort checks are too strict, and will reject valid configs
+ * that disable ports, like "ExtORPort 0". */
+ if (options->ServerTransportPlugin ||
+ options->ServerTransportListenAddr ||
+ options->ServerTransportOptions ||
+ options->ExtORPort_lines) {
+ /* REJECT() this configuration */
+ *msg = tor_strdup("This tor was built with relay mode disabled. "
+ "It can not be configured with an ExtORPort, "
+ "a ServerTransportPlugin, a ServerTransportListenAddr, "
+ "or ServerTransportOptions.");
+ return -1;
+ }
+
+ return 0;
+}
+
#define get_transport_bindaddr_from_config(transport) \
(((void)(transport)),NULL)
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits