瀏覽代碼

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


svn:r8553

Roger Dingledine 19 年之前
父節點
當前提交
0fb7a7de95
共有 1 個文件被更改,包括 6 次插入5 次删除
  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) {