summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobert Ransom <rransom.8774@gmail.com>2011-11-23 16:58:15 -0800
committerNick Mathewson <nickm@torproject.org>2011-11-30 14:54:14 -0500
commit543a36a55ba04e860582e6db53d17e49814ebb81 (patch)
treec8d7ac2f7606295b501764b7fd89e29c2c3ccefc /src
parentb2212bf9b4e7f06d7383eb9235392cbdf735bbdb (diff)
downloadtor-543a36a55ba04e860582e6db53d17e49814ebb81.tar.gz
tor-543a36a55ba04e860582e6db53d17e49814ebb81.zip
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.)
Diffstat (limited to 'src')
-rw-r--r--src/or/config.c16
-rw-r--r--src/or/or.h4
2 files changed, 20 insertions, 0 deletions
diff --git a/src/or/config.c b/src/or/config.c
index b2de15e7f0..bddae6fc22 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 8515db6673..8117ee1f86 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