Sfoglia il codice sorgente

Merge branch 'maint-0.2.8'

Nick Mathewson 8 anni fa
parent
commit
e9e6a1f547
2 ha cambiato i file con 6 aggiunte e 12 eliminazioni
  1. 0 2
      changes/bug18816
  2. 6 10
      src/or/routerlist.c

+ 0 - 2
changes/bug18816

@@ -1,6 +1,4 @@
   o Minor bugfix (bootstrap):
     - Consistently use the consensus download schedule for
       authority certificates.
-    - When downloading authority certificates fails, switch from
-      using a fallback to using an authority.
       Resolves ticket 18816; fix on fddb814fe in 0.2.4.13-alpha.

+ 6 - 10
src/or/routerlist.c

@@ -912,14 +912,12 @@ authority_certs_fetch_missing(networkstatus_t *status, time_t now)
     } SMARTLIST_FOREACH_END(d);
 
     if (smartlist_len(fps) > 1) {
-      static int want_auth = 0;
       resource = smartlist_join_strings(fps, "", 0, NULL);
+      /* We want certs from mirrors, because they will almost always succeed.
+       */
       directory_get_from_dirserver(DIR_PURPOSE_FETCH_CERTIFICATE, 0,
                                    resource, PDS_RETRY_IF_NO_SERVERS,
-                                   want_auth ? DL_WANT_AUTHORITY
-                                             : DL_WANT_ANY_DIRSERVER);
-      /* on failure, swap between using fallbacks and authorities */
-      want_auth = !want_auth;
+                                   DL_WANT_ANY_DIRSERVER);
       tor_free(resource);
     }
     /* else we didn't add any: they were all pending */
@@ -961,14 +959,12 @@ authority_certs_fetch_missing(networkstatus_t *status, time_t now)
     } SMARTLIST_FOREACH_END(d);
 
     if (smartlist_len(fp_pairs) > 1) {
-      static int want_auth = 0;
       resource = smartlist_join_strings(fp_pairs, "", 0, NULL);
+      /* We want certs from mirrors, because they will almost always succeed.
+       */
       directory_get_from_dirserver(DIR_PURPOSE_FETCH_CERTIFICATE, 0,
                                    resource, PDS_RETRY_IF_NO_SERVERS,
-                                   want_auth ? DL_WANT_AUTHORITY
-                                             : DL_WANT_ANY_DIRSERVER);
-      /* on failure, swap between using fallbacks and authorities */
-      want_auth = !want_auth;
+                                   DL_WANT_ANY_DIRSERVER);
       tor_free(resource);
     }
     /* else they were all pending */