commit 543a36a55ba04e860582e6db53d17e49814ebb81 Author: Robert Ransom rransom.8774@gmail.com Date: Wed Nov 23 16:58:15 2011 -0800
Add a compile-time #define to control whether Tor runs in 'tor2web mode'
The Tor2webMode torrc option is still required to run a Tor client in 'tor2web mode', but now it can't be turned on at runtime in a normal build of Tor. (And a tor2web build of Tor can't be used as a normal Tor client, so we don't have to worry as much about someone distributing packages with this particular pistol accessible to normal users.) --- src/or/config.c | 16 ++++++++++++++++ src/or/or.h | 4 ++++ 2 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/src/or/config.c b/src/or/config.c index b2de15e..bddae6f 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -1294,6 +1294,22 @@ options_act(const or_options_t *old_options) if (consider_adding_dir_authorities(options, old_options) < 0) return -1;
+#ifdef ENABLE_TOR2WEB_MODE + if (!options->Tor2webMode) { + log_err(LD_CONFIG, "This copy of Tor was compiled to run in " + "'tor2web mode'. It can only be run with the Tor2webMode torrc " + "option enabled."); + return -1; + } +#else + if (options->Tor2webMode) { + log_err(LD_CONFIG, "This copy of Tor was not compiled to run in " + "'tor2web mode'. It cannot be run with the Tor2webMode torrc " + "option enabled."); + return -1; + } +#endif + if (options->Bridges) { mark_bridge_list(); for (cl = options->Bridges; cl; cl = cl->next) { diff --git a/src/or/or.h b/src/or/or.h index 8515db6..8117ee1 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -130,6 +130,10 @@ #define cell_t tor_cell_t #endif
+#ifdef ENABLE_TOR2WEB_MODE +#define NON_ANONYMOUS_MODE_ENABLED 1 +#endif + /** Length of longest allowable configured nickname. */ #define MAX_NICKNAME_LEN 19 /** Length of a router identity encoded as a hexadecimal digest, plus