]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Update the limits in max_dl_per_request for IPv6 address length
authorFergus Dall <fergus@beware.dropbear.id.au>
Tue, 12 Jan 2016 20:19:56 +0000 (06:49 +1030)
committerFergus Dall <fergus@beware.dropbear.id.au>
Tue, 12 Jan 2016 20:27:24 +0000 (06:57 +1030)
changes/17573 [new file with mode: 0644]
src/or/routerlist.c

diff --git a/changes/17573 b/changes/17573
new file mode 100644 (file)
index 0000000..fe1fd1c
--- /dev/null
@@ -0,0 +1,3 @@
+  o Minor bigfixes (IPv6):
+    - Update the limits in max_dl_per_request for IPv6 address
+      length. Closes ticket 17573.
index 853c07d58c69dea8e728caa8c8b87e7b52c3db84..8edab2c63460bf69c992f0e7c9a83d1f99cc0298 100644 (file)
@@ -4440,13 +4440,20 @@ static int
 max_dl_per_request(const or_options_t *options, int purpose)
 {
   /* Since squid does not like URLs >= 4096 bytes we limit it to 96.
-   *   4096 - strlen(http://255.255.255.255/tor/server/d/.z) == 4058
-   *   4058/41 (40 for the hash and 1 for the + that separates them) => 98
+   *   4096 - strlen(http://ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+   *                 /tor/server/d/.z) == 4034
+   *   4034/41 (40 for the hash and 1 for the + that separates them) => 98
    *   So use 96 because it's a nice number.
+   *
+   * For microdescriptors, the calculation is
+   *   4096 - strlen(http://ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+   *                 /tor/micro/d/.z) == 4035
+   *   4035/44 (43 for the hash and 1 for the - that separates them) => 91
+   *   So use 90 because it's a nice number.
    */
   int max = 96;
   if (purpose == DIR_PURPOSE_FETCH_MICRODESC) {
-    max = 92;
+    max = 90;
   }
   /* If we're going to tunnel our connections, we can ask for a lot more
    * in a request. */