Commit 91077d3a authored by Fergus Dall's avatar Fergus Dall
Browse files

Update the limits in max_dl_per_request for IPv6 address length

parent d062baac
Loading
Loading
Loading
Loading

changes/17573

0 → 100644
+3 −0
Original line number Diff line number Diff line
  o Minor bigfixes (IPv6):
    - Update the limits in max_dl_per_request for IPv6 address
      length. Closes ticket 17573.
+10 −3
Original line number Diff line number Diff line
@@ -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. */