[or-cvs] r17513: {tor} Directory mirrors no longer fetch the v1 directory or runnin (in tor/trunk: . src/or)

arma at seul.org arma at seul.org
Sun Dec 7 23:53:40 UTC 2008


Author: arma
Date: 2008-12-07 18:53:39 -0500 (Sun, 07 Dec 2008)
New Revision: 17513

Modified:
   tor/trunk/ChangeLog
   tor/trunk/src/or/directory.c
   tor/trunk/src/or/main.c
   tor/trunk/src/or/or.h
Log:
Directory mirrors no longer fetch the v1 directory or
running-routers files. They are obsolete, and nobody asks for them
anymore. This is the first step to making v1 authorities obsolete.


Modified: tor/trunk/ChangeLog
===================================================================
--- tor/trunk/ChangeLog	2008-12-07 23:43:55 UTC (rev 17512)
+++ tor/trunk/ChangeLog	2008-12-07 23:53:39 UTC (rev 17513)
@@ -1,4 +1,4 @@
-Changes in version 0.2.1.8-alpha - 2008-12-06
+Changes in version 0.2.1.8-alpha - 2008-12-08
   o Major features:
     - New DirPortFrontPage option that takes an html file and publishes
       it as "/" on the DirPort. Now relay operators can provide a
@@ -47,6 +47,9 @@
     - Report the case where all signatures in a detached set are rejected
       differently than the case where there is an error handling the
       detached set. r17446
+    - Directory mirrors no longer fetch the v1 directory or
+      running-routers files. They are obsolete, and nobody asks for them
+      anymore. This is the first step to making v1 authorities obsolete.
 
   o Minor features (controller):
     - Return circuit purposes in response to GETINFO circuit-status. Fixes

Modified: tor/trunk/src/or/directory.c
===================================================================
--- tor/trunk/src/or/directory.c	2008-12-07 23:43:55 UTC (rev 17512)
+++ tor/trunk/src/or/directory.c	2008-12-07 23:53:39 UTC (rev 17513)
@@ -105,11 +105,9 @@
     return 1;
   if (router_purpose == ROUTER_PURPOSE_BRIDGE && has_completed_circuit)
     return 1; /* if no circuits yet, we may need this info to bootstrap. */
-  if (dir_purpose == DIR_PURPOSE_FETCH_DIR ||
-      dir_purpose == DIR_PURPOSE_UPLOAD_DIR ||
+  if (dir_purpose == DIR_PURPOSE_UPLOAD_DIR ||
       dir_purpose == DIR_PURPOSE_UPLOAD_VOTE ||
       dir_purpose == DIR_PURPOSE_UPLOAD_SIGNATURES ||
-      dir_purpose == DIR_PURPOSE_FETCH_RUNNING_LIST ||
       dir_purpose == DIR_PURPOSE_FETCH_NETWORKSTATUS ||
       dir_purpose == DIR_PURPOSE_FETCH_STATUS_VOTE ||
       dir_purpose == DIR_PURPOSE_FETCH_DETACHED_SIGNATURES ||
@@ -150,8 +148,6 @@
 {
   switch (purpose)
     {
-    case DIR_PURPOSE_FETCH_DIR:
-      return "v1 directory fetch";
     case DIR_PURPOSE_FETCH_RENDDESC:
       return "hidden-service descriptor fetch";
     case DIR_PURPOSE_UPLOAD_DIR:
@@ -162,8 +158,6 @@
       return "server vote upload";
     case DIR_PURPOSE_UPLOAD_SIGNATURES:
       return "consensus signature upload";
-    case DIR_PURPOSE_FETCH_RUNNING_LIST:
-      return "running-routers fetch";
     case DIR_PURPOSE_FETCH_NETWORKSTATUS:
       return "network-status fetch";
     case DIR_PURPOSE_FETCH_SERVERDESC:
@@ -324,10 +318,6 @@
       type = (router_purpose == ROUTER_PURPOSE_BRIDGE ? BRIDGE_AUTHORITY :
                                                         V2_AUTHORITY);
       break;
-    case DIR_PURPOSE_FETCH_DIR:
-    case DIR_PURPOSE_FETCH_RUNNING_LIST:
-      type = V1_AUTHORITY;
-      break;
     case DIR_PURPOSE_FETCH_RENDDESC:
       type = HIDSERV_AUTHORITY;
       break;
@@ -559,13 +549,7 @@
   }
   if (entry_list_can_grow(get_options()))
     router_set_status(conn->identity_digest, 0); /* don't try him again */
-  if (conn->_base.purpose == DIR_PURPOSE_FETCH_DIR ||
-      conn->_base.purpose == DIR_PURPOSE_FETCH_RUNNING_LIST) {
-    log_info(LD_DIR, "Giving up on directory server at '%s:%d'; retrying",
-             conn->_base.address, conn->_base.port);
-    directory_get_from_dirserver(conn->_base.purpose, conn->router_purpose,
-                                 NULL, 0 /* don't retry_if_no_servers */);
-  } else if (conn->_base.purpose == DIR_PURPOSE_FETCH_NETWORKSTATUS) {
+  if (conn->_base.purpose == DIR_PURPOSE_FETCH_NETWORKSTATUS) {
     log_info(LD_DIR, "Giving up on directory server at '%s'; retrying",
              conn->_base.address);
     connection_dir_download_networkstatus_failed(conn, -1);
@@ -981,18 +965,6 @@
   }
 
   switch (purpose) {
-    case DIR_PURPOSE_FETCH_DIR:
-      tor_assert(!resource);
-      tor_assert(!payload);
-      httpcommand = "GET";
-      url = tor_strdup("/tor/dir.z");
-      break;
-    case DIR_PURPOSE_FETCH_RUNNING_LIST:
-      tor_assert(!resource);
-      tor_assert(!payload);
-      httpcommand = "GET";
-      url = tor_strdup("/tor/running-routers");
-      break;
     case DIR_PURPOSE_FETCH_NETWORKSTATUS:
       tor_assert(resource);
       httpcommand = "GET";
@@ -1568,44 +1540,6 @@
     }
   }
 
-  if (conn->_base.purpose == DIR_PURPOSE_FETCH_DIR) {
-    /* fetch/process the directory to cache it. */
-    log_info(LD_DIR,"Received directory (size %d) from server '%s:%d'",
-             (int)body_len, conn->_base.address, conn->_base.port);
-    if (status_code != 200) {
-      log_warn(LD_DIR,"Received http status code %d (%s) from server "
-               "'%s:%d' while fetching directory. I'll try again soon.",
-               status_code, escaped(reason), conn->_base.address,
-               conn->_base.port);
-      tor_free(body); tor_free(headers); tor_free(reason);
-      return -1;
-    }
-    if (router_parse_directory(body) < 0) {
-      log_notice(LD_DIR,"I failed to parse the directory I fetched from "
-                 "'%s:%d'. Ignoring.", conn->_base.address, conn->_base.port);
-    }
-  }
-
-  if (conn->_base.purpose == DIR_PURPOSE_FETCH_RUNNING_LIST) {
-    /* just update our list of running routers, if this list is new info */
-    log_info(LD_DIR,"Received running-routers list (size %d)", (int)body_len);
-    if (status_code != 200) {
-      log_warn(LD_DIR,"Received http status code %d (%s) from server "
-               "'%s:%d' while fetching running-routers. I'll try again soon.",
-               status_code, escaped(reason), conn->_base.address,
-               conn->_base.port);
-      tor_free(body); tor_free(headers); tor_free(reason);
-      return -1;
-    }
-    if (router_parse_runningrouters(body)<0) {
-      log_warn(LD_DIR,
-               "Bad running-routers from server '%s:%d'. I'll try again soon.",
-               conn->_base.address, conn->_base.port);
-      tor_free(body); tor_free(headers); tor_free(reason);
-      return -1;
-    }
-  }
-
   if (conn->_base.purpose == DIR_PURPOSE_FETCH_NETWORKSTATUS) {
     smartlist_t *which = NULL;
     networkstatus_source_t source;
@@ -2264,8 +2198,6 @@
   char *key;
   const char *kind = NULL;
   switch (purpose) {
-    case DIR_PURPOSE_FETCH_DIR:           kind = "dl/dir"; break;
-    case DIR_PURPOSE_FETCH_RUNNING_LIST:  kind = "dl/running-routers"; break;
     case DIR_PURPOSE_FETCH_NETWORKSTATUS: kind = "dl/status"; break;
     case DIR_PURPOSE_FETCH_CONSENSUS:     kind = "dl/consensus"; break;
     case DIR_PURPOSE_FETCH_CERTIFICATE:   kind = "dl/cert"; break;
@@ -2504,11 +2436,6 @@
       log_info(LD_DIRSERV,"Client asked for the mirrored directory, but we "
                "don't have a good one yet. Sending 503 Dir not available.");
       write_http_status_line(conn, 503, "Directory unavailable");
-      /* try to get a new one now */
-      if (!already_fetching_directory(DIR_PURPOSE_FETCH_DIR) &&
-          !should_delay_dir_fetches(options))
-        directory_get_from_dirserver(DIR_PURPOSE_FETCH_DIR,
-                                     ROUTER_PURPOSE_GENERAL, NULL, 1);
       goto done;
     }
     if (d->published < if_modified_since) {
@@ -2548,11 +2475,6 @@
     cached_dir_t *d = dirserv_get_runningrouters();
     if (!d) {
       write_http_status_line(conn, 503, "Directory unavailable");
-      /* try to get a new one now */
-      if (!already_fetching_directory(DIR_PURPOSE_FETCH_RUNNING_LIST) &&
-          !should_delay_dir_fetches(options))
-        directory_get_from_dirserver(DIR_PURPOSE_FETCH_RUNNING_LIST,
-                                     ROUTER_PURPOSE_GENERAL, NULL, 1);
       goto done;
     }
     if (d->published < if_modified_since) {

Modified: tor/trunk/src/or/main.c
===================================================================
--- tor/trunk/src/or/main.c	2008-12-07 23:43:55 UTC (rev 17512)
+++ tor/trunk/src/or/main.c	2008-12-07 23:53:39 UTC (rev 17513)
@@ -822,8 +822,6 @@
 static void
 run_scheduled_events(time_t now)
 {
-  static time_t time_to_fetch_directory = 0;
-  static time_t time_to_fetch_running_routers = 0;
   static time_t last_rotated_x509_certificate = 0;
   static time_t time_to_check_v3_certificate = 0;
   static time_t time_to_check_listeners = 0;
@@ -974,33 +972,6 @@
     time_to_dump_geoip_stats = now + DUMP_GEOIP_STATS_INTERVAL;
   }
 
-  /** 2. Periodically, we consider getting a new directory, getting a
-   * new running-routers list, and/or force-uploading our descriptor
-   * (if we've passed our internal checks). */
-  if (time_to_fetch_directory < now) {
-    /* Only caches actually need to fetch v1 directories now. */
-    if (directory_fetches_dir_info_early(options) &&
-        !authdir_mode_v1(options) && any_trusted_dir_is_v1_authority() &&
-        !should_delay_dir_fetches(options))
-      directory_get_from_dirserver(DIR_PURPOSE_FETCH_DIR,
-                                   ROUTER_PURPOSE_GENERAL, NULL, 1);
-/** How often do we (as a cache) fetch a new V1 directory? */
-#define V1_DIR_FETCH_PERIOD (12*60*60)
-    time_to_fetch_directory = now + V1_DIR_FETCH_PERIOD;
-  }
-
-  /* Caches need to fetch running_routers; directory clients don't. */
-  if (time_to_fetch_running_routers < now) {
-    if (directory_fetches_dir_info_early(options) &&
-        !authdir_mode_v1(options) && any_trusted_dir_is_v1_authority() &&
-        !should_delay_dir_fetches(options))
-      directory_get_from_dirserver(DIR_PURPOSE_FETCH_RUNNING_LIST,
-                                   ROUTER_PURPOSE_GENERAL, NULL, 1);
-/** How often do we (as a cache) fetch a new V1 runningrouters document? */
-#define V1_RUNNINGROUTERS_FETCH_PERIOD (12*60*60)
-    time_to_fetch_running_routers = now + V1_RUNNINGROUTERS_FETCH_PERIOD;
-  }
-
   /* Remove old information from rephist and the rend cache. */
   if (time_to_clean_caches < now) {
     rep_history_clean(now - options->RephistTrackTime);
@@ -1010,6 +981,9 @@
     time_to_clean_caches = now + CLEAN_CACHES_INTERVAL;
   }
 
+  /** 2. Periodically, we consider force-uploading our descriptor
+   * (if we've passed our internal checks). */
+
 /** How often do we check whether part of our router info has changed in a way
  * that would require an upload? */
 #define CHECK_DESCRIPTOR_INTERVAL (60)

Modified: tor/trunk/src/or/or.h
===================================================================
--- tor/trunk/src/or/or.h	2008-12-07 23:43:55 UTC (rev 17512)
+++ tor/trunk/src/or/or.h	2008-12-07 23:53:39 UTC (rev 17513)
@@ -317,12 +317,7 @@
 #define CONTROL_CONN_STATE_NEEDAUTH 2
 #define _CONTROL_CONN_STATE_MAX 2
 
-#define _DIR_PURPOSE_MIN 1
-/** A connection to a directory server: download a directory. */
-#define DIR_PURPOSE_FETCH_DIR 1
-/** A connection to a directory server: download just the list
- * of running routers. */
-#define DIR_PURPOSE_FETCH_RUNNING_LIST 2
+#define _DIR_PURPOSE_MIN 3
 /** A connection to a directory server: download a rendezvous
  * descriptor. */
 #define DIR_PURPOSE_FETCH_RENDDESC 3



More information about the tor-commits mailing list