Browse Source

Bugfix: when we tunnel our dir fetches via tor, don't believe
the X-Forwarded-For header.


svn:r8553

Roger Dingledine 19 years ago
parent
commit
0fb7a7de95
1 changed files with 6 additions and 5 deletions
  1. 6 5
      src/or/directory.c

+ 6 - 5
src/or/directory.c

@@ -837,7 +837,6 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
   int skewed=0;
   int allow_partial = conn->_base.purpose == DIR_PURPOSE_FETCH_SERVERDESC;
   int was_compressed=0;
-  char *guess;
 
   switch (fetch_from_buf_http(conn->_base.inbuf,
                               &headers, MAX_HEADERS_SIZE,
@@ -871,10 +870,12 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
             escaped(reason));
 
   /* now check if it's got any hints for us about our IP address. */
-  guess = http_get_header(headers, X_ADDRESS_HEADER);
-  if (guess) {
-    router_new_address_suggestion(guess);
-    tor_free(guess);
+  if (conn->dirconn_direct) {
+    char *guess = http_get_header(headers, X_ADDRESS_HEADER);
+    if (guess) {
+      router_new_address_suggestion(guess);
+      tor_free(guess);
+    }
   }
 
   if (date_header > 0) {