Browse Source

Merge remote-tracking branch 'origin/maint-0.2.2'

Conflicts:
	src/or/config.c
	src/or/or.h
Nick Mathewson 14 years ago
parent
commit
a046966baf
4 changed files with 15 additions and 29 deletions
  1. 7 0
      changes/bug2355_revert
  2. 3 7
      doc/tor.1.txt
  3. 4 10
      src/or/config.c
  4. 1 12
      src/or/or.h

+ 7 - 0
changes/bug2355_revert

@@ -0,0 +1,7 @@
+  o Minor bugfixes:
+    - Revert the UseBridges option to its behavior before 0.2.2.28-beta.
+      When we changed the default behavior to "use bridges if any are
+      listed in the torrc", we broke a number of users who had bridges
+      in their torrc files but who didn't actually want to use them.
+      Partial resolution for bug 3354.
+

+ 3 - 7
doc/tor.1.txt

@@ -726,14 +726,10 @@ The following options are useful only for clients (that is, if
     from the configured bridge authorities when feasible. It will fall back to
     a direct request if the authority responds with a 404. (Default: 0)
 
-**UseBridges** **0**|**1**|**auto**::
-    Make Tor fetch descriptors for each bridge listed in the "Bridge"
+**UseBridges** **0**|**1**::
+    When set, Tor will fetch descriptors for each bridge listed in the "Bridge"
     config lines, and use these relays as both entry guards and directory
-    guards. If the option is 1, bridges must be used and if no bridges are
-    configured Tor will not make any connections until a bridge is configured;
-    if it's "auto", Tor will use bridges if any are configured, otherwise it
-    will connect directly to the Tor network; if it's 0, bridges are not used
-    at all. (Defaults to auto)
+    guards. (Default: 0)
 
 **UseEntryGuards** **0**|**1**::
     If this option is set to 1, we pick a few long-term entry servers, and try

+ 4 - 10
src/or/config.c

@@ -387,7 +387,7 @@ static config_var_t _option_vars[] = {
   V(TransPort,                   PORT,     "0"),
   V(TunnelDirConns,              BOOL,     "1"),
   V(UpdateBridgesFromAuthority,  BOOL,     "0"),
-  VAR("UseBridges",              AUTOBOOL, UseBridges_, "auto"),
+  V(UseBridges,                  BOOL,     "0"),
   V(UseEntryGuards,              BOOL,     "1"),
   V(UseMicrodescriptors,         AUTOBOOL, "0"),
   V(User,                        STRING,   NULL),
@@ -3331,14 +3331,6 @@ options_validate(or_options_t *old_options, or_options_t *options,
            "of the Internet, so they must not set Reachable*Addresses "
            "or FascistFirewall.");
 
-  if (options->UseBridges_ == -1) {
-    options->UseBridges = (options->Bridges &&
-                           !server_mode(options) &&
-                           !options->EntryNodes);
-  } else {
-    options->UseBridges = options->UseBridges_;
-  }
-
   if (options->UseBridges &&
       server_mode(options))
     REJECT("Servers must be able to freely connect to the rest "
@@ -3684,8 +3676,10 @@ options_validate(or_options_t *old_options, or_options_t *options,
   if (validate_dir_authorities(options, old_options) < 0)
     REJECT("Directory authority line did not parse. See logs for details.");
 
+  if (options->UseBridges && !options->Bridges)
+    REJECT("If you set UseBridges, you must specify at least one bridge.");
   if (options->UseBridges && !options->TunnelDirConns)
-    REJECT("TunnelDirConns set to 0 only works with UseBridges set to 0");
+    REJECT("If you set UseBridges, you must set TunnelDirConns.");
   if (options->Bridges) {
     for (cl = options->Bridges; cl; cl = cl->next) {
       if (parse_bridge_line(cl->value, 1)<0)

+ 1 - 12
src/or/or.h

@@ -2646,18 +2646,7 @@ typedef struct {
    * when doing so. */
   char *BridgePassword;
 
-  /** Whether we should start all circuits with a bridge. This is an
-   * "autobool": 1 means strictly yes, 0 means strictly no, and -1 means that
-   * we do iff any bridges are configured, we are not running a server and
-   * have not specified a list of entry nodes.   Don't use this value directly;
-   * use <b>UseBridges</b> instead. */
-  int UseBridges_;
-  /** Effective value of UseBridges. Will be set equally for UseBridges set to
-   * 1 or 0, but for 'auto' it will be set to 1 iff any bridges are
-   * configured, we are not running a server and have not specified a list of
-   * entry nodes. */
-  int UseBridges;
-
+  int UseBridges; /**< Boolean: should we start all circuits with a bridge? */
   config_line_t *Bridges; /**< List of bootstrap bridge addresses. */
 
   int BridgeRelay; /**< Boolean: are we acting as a bridge relay? We make