Bladeren bron

Merge branch 'maint-0.2.2'

Conflicts:
	src/or/config.c
Roger Dingledine 12 jaren geleden
bovenliggende
commit
c7cbd06d5f
4 gewijzigde bestanden met toevoegingen van 13 en 9 verwijderingen
  1. 5 2
      doc/tor.1.txt
  2. 3 3
      src/or/config.c
  3. 3 2
      src/or/directory.c
  4. 2 2
      src/or/or.h

+ 5 - 2
doc/tor.1.txt

@@ -1555,8 +1555,11 @@ DIRECTORY AUTHORITY SERVER OPTIONS
 
 **BridgePassword** __Password__::
     If set, contains an HTTP authenticator that tells a bridge authority to
-    serve all requested bridge information.  Used for debugging.  (Default:
-    not set.)
+    serve all requested bridge information. Used by the (only partially
+    implemented) "bridge community" design, where a community of bridge
+    relay operators all use an alternate bridge directory authority,
+    and their target user audience can periodically fetch the list of
+    available community bridges to stay up-to-date. (Default: not set.)
 
 **V3AuthVotingInterval** __N__ **minutes**|**hours**::
     V3 authoritative directories only. Configures the server's preferred voting

+ 3 - 3
src/or/config.c

@@ -813,7 +813,7 @@ or_options_free(or_options_t *options)
                       rs, routerset_free(rs));
     smartlist_free(options->NodeFamilySets);
   }
-  tor_free(options->BridgePassword_AuthDigest);
+  tor_free(options->_BridgePassword_AuthDigest);
   config_free(&options_format, options);
 }
 
@@ -1559,8 +1559,8 @@ options_act(const or_options_t *old_options)
                "BridgePassword.");
       return -1;
     }
-    options->BridgePassword_AuthDigest = tor_malloc(DIGEST256_LEN);
-    crypto_digest256(options->BridgePassword_AuthDigest,
+    options->_BridgePassword_AuthDigest = tor_malloc(DIGEST256_LEN);
+    crypto_digest256(options->_BridgePassword_AuthDigest,
                      http_authenticator, strlen(http_authenticator),
                      DIGEST_SHA256);
     tor_free(http_authenticator);

+ 3 - 2
src/or/directory.c

@@ -3217,7 +3217,7 @@ directory_handle_command_get(dir_connection_t *conn, const char *headers,
   }
 
   if (options->BridgeAuthoritativeDir &&
-      options->BridgePassword_AuthDigest &&
+      options->_BridgePassword_AuthDigest &&
       connection_dir_is_encrypted(conn) &&
       !strcmp(url,"/tor/networkstatus-bridges")) {
     char *status;
@@ -3229,7 +3229,8 @@ directory_handle_command_get(dir_connection_t *conn, const char *headers,
 
     /* now make sure the password is there and right */
     if (!header ||
-        tor_memneq(digest, options->BridgePassword_AuthDigest, DIGEST256_LEN)) {
+        tor_memneq(digest,
+                   options->_BridgePassword_AuthDigest, DIGEST256_LEN)) {
       write_http_status_line(conn, 404, "Not found");
       tor_free(header);
       goto done;

+ 2 - 2
src/or/or.h

@@ -3048,8 +3048,8 @@ typedef struct {
    * for bridge statuses -- but only if the requests use this password. */
   char *BridgePassword;
   /** If BridgePassword is set, this is a SHA256 digest of the basic http
-   * authenticator for it. */
-  char *BridgePassword_AuthDigest;
+   * authenticator for it. Used so we can do a time-independent comparison. */
+  char *_BridgePassword_AuthDigest;
 
   int UseBridges; /**< Boolean: should we start all circuits with a bridge? */
   config_line_t *Bridges; /**< List of bootstrap bridge addresses. */