[tor-commits] [tor/master] Add a compile-time #define to control whether Tor runs in 'tor2web mode'

nickm at torproject.org nickm at torproject.org
Wed Nov 30 19:56:17 UTC 2011


commit 543a36a55ba04e860582e6db53d17e49814ebb81
Author: Robert Ransom <rransom.8774 at 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





More information about the tor-commits mailing list