Browse Source

Start on 0.4.0.1-alpha changelog

Nick Mathewson 5 years ago
parent
commit
49062d72b5
69 changed files with 319 additions and 301 deletions
  1. 319 0
      ChangeLog
  2. 0 4
      changes/bug21900
  3. 0 4
      changes/bug23082
  4. 0 6
      changes/bug24393
  5. 0 3
      changes/bug24661
  6. 0 4
      changes/bug24953
  7. 0 7
      changes/bug25885
  8. 0 3
      changes/bug27707
  9. 0 5
      changes/bug27929
  10. 0 4
      changes/bug28518
  11. 0 3
      changes/bug28569
  12. 0 4
      changes/bug28591
  13. 0 3
      changes/bug28654
  14. 0 5
      changes/bug28895
  15. 0 6
      changes/bug28920
  16. 0 4
      changes/bug28938
  17. 0 5
      changes/bug28989
  18. 0 5
      changes/bug28995
  19. 0 3
      changes/doc28560
  20. 0 4
      changes/doc28805
  21. 0 2
      changes/document_version
  22. 0 5
      changes/feature27244
  23. 0 4
      changes/feature27367
  24. 0 7
      changes/prop297
  25. 0 6
      changes/subsystems
  26. 0 3
      changes/ticket24805
  27. 0 6
      changes/ticket24838
  28. 0 4
      changes/ticket26360
  29. 0 8
      changes/ticket26770
  30. 0 11
      changes/ticket27167
  31. 0 5
      changes/ticket27225
  32. 0 4
      changes/ticket27325
  33. 0 3
      changes/ticket27359
  34. 0 10
      changes/ticket27402
  35. 0 6
      changes/ticket27490
  36. 0 3
      changes/ticket27549
  37. 0 3
      changes/ticket27620
  38. 0 4
      changes/ticket27625
  39. 0 4
      changes/ticket27914
  40. 0 3
      changes/ticket27993
  41. 0 3
      changes/ticket28006
  42. 0 3
      changes/ticket28007
  43. 0 3
      changes/ticket28008
  44. 0 3
      changes/ticket28009
  45. 0 3
      changes/ticket28010
  46. 0 3
      changes/ticket28011
  47. 0 3
      changes/ticket28012
  48. 0 2
      changes/ticket28058
  49. 0 3
      changes/ticket28077
  50. 0 3
      changes/ticket28100
  51. 0 10
      changes/ticket28142
  52. 0 5
      changes/ticket28179
  53. 0 3
      changes/ticket28180
  54. 0 10
      changes/ticket28266
  55. 0 7
      changes/ticket28335
  56. 0 6
      changes/ticket28362
  57. 0 3
      changes/ticket28551
  58. 0 5
      changes/ticket28624
  59. 0 6
      changes/ticket28669
  60. 0 5
      changes/ticket28757
  61. 0 4
      changes/ticket28768
  62. 0 3
      changes/ticket28839
  63. 0 3
      changes/ticket28840
  64. 0 3
      changes/ticket28843
  65. 0 3
      changes/ticket28846
  66. 0 3
      changes/ticket28847
  67. 0 4
      changes/ticket28852
  68. 0 3
      changes/ticket28853
  69. 0 3
      changes/ticket28856

+ 319 - 0
ChangeLog

@@ -1,3 +1,322 @@
+Changes in version 0.4.0.1-alpha - 2019-01-18
+  blurb blurb blurb
+
+  o Major features (battery management, client, dormant mode):
+    - When Tor is running as a client, and it is unused for a long time,
+      it can now enter a "dormant" state. When Tor is dormant, it avoids
+      network activity and CPU wakeups until it is reawoken either by a
+      user request or by a controller command. For more information, see
+      the configuration options starting with "Dormant". Implements
+      tickets 2149 and 28335.
+    - The client's memory of whether it is "dormant", and how long it
+      has spend idle, persists across invocations. Implements
+      ticket 28624.
+    - There is a DormantOnFirstStartup option that integrators can use
+      if they expect that in many cases, Tor will be installed but
+      not used.
+
+  o Major features (bootstrap):
+    - Report the first connection to a relay as the earliest phases of
+      bootstrap progress, regardless of whether it's a connection for
+      building application circuits. This allows finer-grained reporting
+      of early progress than previously possible with the improvements
+      of ticket 27169. Closes tickets 27167 and 27103. Addresses
+      ticket 27308.
+    - Separately report the intermediate stage of having connected to a
+      proxy or pluggable transport, versus succesfully using that proxy
+      or pluggable transport to connect to a relay. Closes tickets 27100
+      and 28884.
+
+  o Major features (circuit padding):
+    - Implement preliminary support for the circuit padding portion of
+      Proposal 254. The implementation supports Adaptive Padding (aka
+      WTF-PAD) state machines for use between experimental clients and
+      relays. Support is also provided for APE-style state machines that
+      use probability distributions instead of histograms to specify
+      inter-packet delay. At the moment, Tor does not provide any
+      padding state machines that are used in normal operation -- this
+      feature exists solely for experimentation in this release. Closes
+      ticket 28142.
+
+  o Major features (refactoring):
+    - Tor now uses an explicit list of its own subsystems when
+      initializing and shutting down. Previously, these systems were
+      managed implicitly though various places throughout the codebase.
+      (There still some subsystems using the old system.) Closes
+      ticket 28330.
+
+  o Minor feature (bootstrap):
+    - When reporting bootstrap progress, stop distinguishing between
+      situations where it seems that only internal paths are available
+      and situations where it seems that external paths are available.
+      Previously, tor would often erroneously report that it had only
+      internal paths. Closes ticket 27402.
+
+  o Minor features (Continuous Integration):
+    - Log Python version during each Travis CI job. Resolves
+      issue 28551.
+
+  o Minor features (controller):
+    - Add a DROPOWNERSHIP command to undo the effects of TAKEOWNERSHIP.
+      Implements ticket 28843.
+
+  o Minor features (developer tooling):
+    - Provide a git hook script to prevent "fixup!" and "squash!"
+      commits from ending up in master. Closes ticket 27993.
+
+  o Minor features (directory authority):
+    - Directory authorities support a new consensus algorithm, under
+      which microdescriptor entries are encoded in a canonical form.
+      This improves their compressibility in transit and on the client.
+      Closes ticket 28266; implements proposal 298.
+
+  o Minor features (directory authority, relay):
+    - Authorities now vote on a "StaleDesc" flag to indicate that a
+      relay's descriptor is so old that the relay should upload again
+      soon. Relays understand this flag, and treat it as a signal to
+      upload a new descriptor. This flag will eventually let us remove
+      the 'published' date from routerstatus entries, and save a great
+      deal of space in our consensus diffs. Closes ticket 26770;
+      implements proposal 293.
+
+  o Minor features (fallback directory mirrors):
+    - Update the fallback whitelist based on operator opt-ins and opt-
+      outs. Closes ticket 24805, patch by Phoul.
+    - Accept fallbacks that deliver reasonably live consensuses.
+      (Consensuses that will become valid less than 24 hours in the
+      future, or that expired less than 24 hours ago.) Closes
+      ticket 28768.
+    - Accept relays that are a fuzzy match to a fallback whitelist
+      entry. If a relay matches at least one fingerprint, IPv4 address,
+      or IPv6 address in the fallback whitelist, it can become a
+      fallback. This reduces the work required to keep the list up to
+      date. Closes ticket 24838.
+
+  o Minor features (FreeBSD):
+    - Warn relay operators if the "net.inet.ip.random_id" sysctl (IP ID
+      randomization) is disabled on their relay if it is running on
+      FreeBSD based operating systems. Closes ticket 28518.
+
+  o Minor features (HTTP standards compliance):
+    - Don't send Content-Type: application/octet-stream for transparently
+      compressed documents, which confused browsers. Closes ticket 28100.
+
+  o Minor features (ipv6):
+    - We add an option ClientAutoIPv6ORPort which makes clients randomly
+      prefer a node's IPv4 or IPv6 ORPort. The random preference is set
+      every time a node is loaded from a new consensus or bridge config.
+      Closes ticket 27490. Patch by Neel Chauhan.
+    - When using addrs_in_same_network_family(), check IPv6 subnets as
+      well as IPv4 ones where possible when a client chooses circuit
+      paths. Previously, we used this function only for IPv4 subnets.
+      Closes ticket 24393. Patch by Neel Chauhan.
+
+  o Minor features (log messages):
+    - Improve log message in HSv3 service that could print out negative
+      revision counters. Closes ticket 27707. Patch by "ffmancera".
+
+  o Minor features (memory usage):
+    - Store microdescriptor family lists with a more compact
+      representation to save memory. Closes ticket 27359.
+    - Tor clients no longer need to keep the full text of a consensus in
+      memory in order to parse it, or apply a diff to it. Instead, they
+      use mmap() to read the consensus files from disk. Closes
+      ticket 27244.
+
+  o Minor features (parsing):
+    - Directory authorities now validate that router descriptors and
+      ExtraInfo documents are in a valid subset of UTF-8, and reject
+      them if not. Closes ticket 27367.
+
+  o Minor features (performance):
+    - Avoid parsing the same protocol-versions string over and over in
+      summarize_protover_flags(). This should save us a huge number of
+      malloc calls on startup, and may reduce memory fragmentation with
+      some allocators. Closes ticket 27225.
+    - Remove a needless memset() call from get_token_arguments, thereby
+      speeding up the tokenization of directory objects by about 20%.
+      Closes ticket 28852.
+    - Replace parse_short_policy() with a faster implementation, to
+      improve microdescriptor parsing time. Closes ticket 28853.
+    - Speed up directory parsing a little by avoiding use of the non-
+      inlined strcmp_len() function. Closes ticket 28856.
+    - Speed up microdesriptor parsing by about 30%, to help improve
+      startup time. Closes ticket 28839.
+
+  o Minor features (pluggable transports):
+    - Add support for emitting STATUS updates to Tor's control port from
+      a pluggable transport process. Closes ticket 28846.
+    - Add support for logging to Tor's logging subsystem from a
+      pluggable transport process. Closes ticket 28180
+
+  o Minor features (process management):
+    - Add new Process API for handling child processes. This new API
+      allows Tor to have bi-directional communication with child
+      processes on both Unix and Windows. Closes ticket 28179.
+    - Use the subsystem module to initialize and shut down the process
+      module. Closes ticket 28847.
+
+  o Minor features (relay):
+    - When listing relay families, list them in canonical form including
+      the relay's own identity, and try to give a more useful set of
+      warnings. Part of ticket 28266 and proposal 298.
+
+  o Minor features (required protocols):
+    - Tor no longer exits if it is missing a required protocol, if the
+      consensus that requires the protocol predates the release date of
+      the version of Tor. This change prevents Tor releases from exiting
+      because of an old cached consensus, on the theory that a newer
+      cached consensus might not require the protocol. Implements
+      proposal 297; closes ticket 27735.
+
+  o Minor features (testing):
+    - Allow HeartbeatPeriod of less than 30 minutes in testing Tor
+      networks. Closes ticket 28840, patch by robgjansen
+
+  o Minor bugfixes (client, bootstrap):
+    - When Tor's clock is behind the clocks on the authorities, allow
+      Tor to bootstrap successfully. Fixes bug 28591; bugfix
+      on 0.2.0.9-alpha.
+
+  o Minor bugfixes (client, guard selection):
+    - When Tor's consensus has expired, but is still reasonably live,
+      use it to select guards. Fixes bug 24661; bugfix on 0.3.0.1-alpha.
+
+  o Minor bugfixes (compilation):
+    - Fix missing headers required for proper detection of OpenBSD. Fixes
+      bug 28938; bugfix on 0.3.5.1-alpha. Patch from Kris Katterjohn.
+
+  o Minor bugfixes (directory clients):
+    - Mark outdated dirservers when Tor only has a reasonably live
+      consensus. Fixes bug 28569; bugfix on 0.3.2.5-alpha.
+
+  o Minor bugfixes (directory mirror):
+    - When Tor's clock is behind the clocks on the authorities, allow
+      Tor to serve future consensuses. Fixes bug 28654; bugfix
+      on 0.3.0.1-alpha.
+
+  o Minor bugfixes (DNS):
+    - Gracefully handle empty or absent resolve.conf file by falling
+      back to using localhost DNS service and hoping it works. Fixes bug
+      21900; bugfix on 0.2.1.10-alpha.
+
+  o Minor bugfixes (fallback scripts):
+    - In updateFallbackDirs.py, call the filter file a "fallback list"
+      instead of a "whitelist" in check_existing mode. Fixes bug 24953;
+      bugfix on 0.3.0.3-alpha.
+
+  o Minor bugfixes (guards):
+    - In count_acceptable_nodes(), check if we have at least one bridge
+      or guard node, and two non-guard nodes for a circuit. Previously,
+      we have added up the sum of all nodes with a descriptor, but that
+      could cause us to build circuits that fail if we had either too
+      many bridges, or not enough guard nodes. Fixes bug 25885; bugfix
+      on 0.3.6.1-alpha. Patch by Neel Chauhan.
+
+  o Minor bugfixes (IPv6):
+    - Fix tor_ersatz_socketpair on IPv6-only systems. Previously, the
+      IPv6 socket was bound using an address family of AF_INET instead
+      of AF_INET6. Fixes bug 28995; bugfix on 0.3.5.1-alpha. Patch from
+      Kris Katterjohn.
+
+  o Minor bugfixes (logging):
+    - Rework rep_hist_log_link_protocol_counts() to iterate through all
+      link protocol versions when logging incoming/outgoing connection
+      counts. Tor no longer skips version 5 and we don't have to
+      remember to update this function when new link protocol version is
+      developed. Fixes bug 28920; bugfix on 0.2.6.10.
+
+  o Minor bugfixes (networking):
+    - Introduce additional checks into tor_addr_parse() to reject
+      certain incorrect inputs that previously were not detected. Fixes
+      bug 23082; bugfix on 0.2.0.10-alpha.
+
+  o Minor bugfixes (onion service v3, client):
+    - Avoid a BUG() stacktrace in case a SOCKS connection is found
+      waiting for the descriptor while we do have it in the cache. There
+      is a rare case when this can happen. Now, tor will recover and
+      retry the descriptor. Fixes bug 28669; bugfix on 0.3.2.4-alpha.
+
+  o Minor bugfixes (periodic events):
+    - Refrain from calling routerlist_remove_old_routers() from
+      check_descriptor_callback(). Instead, create a new periodic event
+      that will run once every hour even if Tor is not configured as
+      onion router. Fixes bug 27929; bugfix on 0.2.8.1-alpha.
+
+  o Minor bugfixes (pluggable transports):
+    - Make sure that data is continously read from standard out and
+      error of the PT child-process to avoid deadlocking when the pipes'
+      buffer is full. Fixes bug 26360; bugfix on 0.2.3.6-alpha.
+
+  o Minor bugfixes (unit tests):
+    - Instead of relying on hs_free_all() to clean up all onion service
+      objects we created in test_build_descriptors(), deallocate them
+      one by one. This lets Coverity know that we are not leaking memory
+      here and fixes CID 1442277. Fixes bug 28989; bugfix
+      on 0.3.5.1-alpha.
+
+  o Minor bugfixes (usability):
+    - Stop saying "Your Guard ..." in pathbias_measure_{use,close}_rate()
+      as that confusingly suggests that mentioned guard node is under
+      control and responsibility of end user, which it is not. Fixes bug
+      28895; bugfix on Tor 0.3.0.1-alpha.
+
+  o Code simplification and refactoring:
+    - Reimplement NETINFO cell parsing and generation to rely on
+      trunnel-generated wire format handling code. Closes ticket 27325.
+    - Remove unnecessarily unsafe code from the rust macro cstr!. Closes
+      ticket 28077.
+    - Rework SOCKS wire format handling to rely on trunnel-generated
+      parsing/generation code. Resolves ticket 27620.
+    - Split out bootstrap progress reporting from control.c into a
+      separate file. Part of ticket 27402.
+    - The .may_include files that we use to describe our directory-by-
+      directory dependency structure now describe a noncircular
+      dependency graph over the directories that they cover. Our
+      checkIncludes.py tool now enforces this. Closes ticket 28362.
+
+  o Documentation:
+    - Mention that you cannot add new Onion Service if Tor is already
+      running with Sandbox enabled. Closes ticket 28560.
+    - Improve ControlPort description in tor manpage to mention that it
+      accepts address/port pair, and can be used multiple times. Closes
+      ticket 28805.
+    - Document the exact output of "tor --version". Closes ticket 28889.
+
+  o Removed features:
+    - Stop responding to 'GETINFO status/version/num-concurring' and
+      'GETINFO status/version/num-versioning' control port commands, as
+      those were deprecated back in 0.2.0.30. Also stop listing them in
+      output of 'GETINFO info/names'. Resolves ticket 28757.
+    - The scripts used to generate and maintain the list of fallback
+      directories have been extracted into a new "fallback-scripts"
+      repository. Closes ticket 27914.
+
+  o Testing:
+    - Run shellcheck for stuff in scripts/ directory. Closes
+      ticket 28058.
+    - Write some unit tests for tokenize_string() and get_next_token()
+      functions. Resolves ticket 27625.
+
+  o Code simplification and refactoring (onion service v3):
+    - Consolidate the authorized client descriptor cookie computation
+      code from client and service into one function. Closes
+      ticket 27549.
+
+  o Code simplification and refactoring (shell scripts):
+    - Cleanup scan-build.sh to silence shellcheck warnings. Closes
+      ticket 28007.
+    - Fix issues that shellcheck found in chutney-git-bisect.sh.
+      Resolves ticket 28006.
+    - Fix issues that shellcheck found in updateRustDependencies.sh.
+      Resolves ticket 28012.
+    - Fix shellcheck warnings in cov-diff script. Resolves issue 28009.
+    - Fix shellcheck warnings in run_calltool.sh. Resolves ticket 28011.
+    - Fix shellcheck warnings in run_trunnel.sh. Resolves issue 28010.
+    - Fix shellcheck warnings in scripts/test/coverage. Resolves
+      issue 28008.
+
+
 Changes in version 0.3.3.11 - 2018-01-07
   Tor 0.3.3.11 backports numerous fixes from later versions of Tor.
   numerous fixes, including an important fix for anyone using OpenSSL

+ 0 - 4
changes/bug21900

@@ -1,4 +0,0 @@
-  o Minor bugfixes (DNS):
-    - Gracefully handle empty or absent resolve.conf file by falling
-      back to using localhost DNS service and hoping it works. Fixes
-      bug 21900; bugfix on 0.2.1.10-alpha.

+ 0 - 4
changes/bug23082

@@ -1,4 +0,0 @@
-  o Minor bugfixes (networking):
-    - Introduce additional checks into tor_addr_parse() to
-      reject certain incorrect inputs that previously were
-      not detected. Fixes bug 23082; bugfix on 0.2.0.10-alpha.

+ 0 - 6
changes/bug24393

@@ -1,6 +0,0 @@
-  o Minor features (ipv6):
-    - When using addrs_in_same_network_family(), check IPv6 subnets as well as
-      IPv4 ones where possible when a client chooses circuit paths. Previously,
-      we used this function only for IPv4 subnets. Closes ticket 24393. Patch
-      by Neel Chauhan.
-

+ 0 - 3
changes/bug24661

@@ -1,3 +0,0 @@
-  o Minor bugfixes (client, guard selection):
-    - When Tor's consensus has expired, but is still reasonably live, use it
-      to select guards. Fixes bug 24661; bugfix on 0.3.0.1-alpha.

+ 0 - 4
changes/bug24953

@@ -1,4 +0,0 @@
-  o Minor bugfixes (fallback scripts):
-    - In updateFallbackDirs.py, call the filter file a "fallback list"
-      instead of a "whitelist" in check_existing mode.
-      Fixes bug 24953; bugfix on 0.3.0.3-alpha.

+ 0 - 7
changes/bug25885

@@ -1,7 +0,0 @@
-  o Minor bugfixes (guards):
-    - In count_acceptable_nodes(), check if we have at least one bridge
-      or guard node, and two non-guard nodes for a circuit. Previously,
-      we have added up the sum of all nodes with a descriptor, but that
-      could cause us to build circuits that fail if we had either too
-      many bridges, or not enough guard nodes. Fixes bug 25885; bugfix
-      on 0.3.6.1-alpha. Patch by Neel Chauhan.

+ 0 - 3
changes/bug27707

@@ -1,3 +0,0 @@
-  o Minor features (log messages):
-    - Improve log message in HSv3 service that could print out negative
-      revision counters. Closes ticket 27707. Patch by "ffmancera".

+ 0 - 5
changes/bug27929

@@ -1,5 +0,0 @@
-  o Minor bugfixes (periodic events):
-    - Refrain from calling routerlist_remove_old_routers() from
-      check_descriptor_callback(). Instead, create a new periodic
-      event that will run once every hour even if Tor is not configured
-      as onion router. Fixes bug 27929; bugfix on 0.2.8.1-alpha.

+ 0 - 4
changes/bug28518

@@ -1,4 +0,0 @@
-  o Minor features (FreeBSD):
-    - Warn relay operators if the "net.inet.ip.random_id" sysctl (IP ID
-      randomization) is disabled on their relay if it is running on FreeBSD
-      based operating systems. Closes ticket 28518.

+ 0 - 3
changes/bug28569

@@ -1,3 +0,0 @@
-  o Minor bugfixes (unit tests, directory clients):
-    - Mark outdated dirservers when Tor only has a reasonably live consensus.
-      Fixes bug 28569; bugfix on 0.3.2.5-alpha.

+ 0 - 4
changes/bug28591

@@ -1,4 +0,0 @@
-  o Minor bugfixes (client, bootstrap):
-    - When Tor's clock is behind the clocks on the authorities, allow Tor to
-      bootstrap successfully. Fixes bug 28591; bugfix on 0.2.0.9-alpha.
-

+ 0 - 3
changes/bug28654

@@ -1,3 +0,0 @@
-  o Minor bugfixes (directory mirror):
-    - When Tor's clock is behind the clocks on the authorities, allow Tor to
-      serve future consensuses. Fixes bug 28654; bugfix on 0.3.0.1-alpha.

+ 0 - 5
changes/bug28895

@@ -1,5 +0,0 @@
-  o Minor bugfixes (usability):
-    - Stop saying "Your Guard ..." in pathbias_measure_{use,close}_rate()
-      as that confusingly suggests that mentioned guard node is under control
-      and responsibility of end user, which it is not. Fixes bug 28895;
-      bugfix on Tor 0.3.0.1-alpha.

+ 0 - 6
changes/bug28920

@@ -1,6 +0,0 @@
-  o Minor bugfixes (logging):
-    - Rework rep_hist_log_link_protocol_counts() to iterate through all link
-      protocol versions when logging incoming/outgoing connection counts. Tor
-      no longer skips version 5 and we don't have to remember to update this
-      function when new link protocol version is developed. Fixes bug 28920;
-      bugfix on 0.2.6.10.

+ 0 - 4
changes/bug28938

@@ -1,4 +0,0 @@
-  o Minor bugfixes (compilation):
-    - Fix missing headers required for proper detection of
-      OpenBSD.  Fixes bug 28938; bugfix on 0.3.5.1-alpha.
-      Patch from Kris Katterjohn.

+ 0 - 5
changes/bug28989

@@ -1,5 +0,0 @@
-  o Minor bugfixes (unit tests):
-    - Instead of relying on hs_free_all() to clean up all onion service
-      objects we created in test_build_descriptors(), deallocate
-      them one by one. This lets Coverity know that we are not leaking memory
-      here and fixes CID 1442277. Fixes bug 28989; bugfix on 0.3.5.1-alpha.

+ 0 - 5
changes/bug28995

@@ -1,5 +0,0 @@
-  o Minor bugfix (IPv6):
-    Fix tor_ersatz_socketpair on IPv6-only systems.  Previously,
-    the IPv6 socket was bound using an address family of AF_INET
-    instead of AF_INET6.  Fixes bug 28995; bugfix on 0.3.5.1-alpha.
-    Patch from Kris Katterjohn.

+ 0 - 3
changes/doc28560

@@ -1,3 +0,0 @@
-  o Documentation (hidden service manpage, sandbox):
-    - Mention that you cannot add new Onion Service if Tor is already
-      running with Sandbox enabled. Closes ticket 28560.

+ 0 - 4
changes/doc28805

@@ -1,4 +0,0 @@
-  o Documentation (manpage):
-    - Improve ControlPort description in tor manpage to mention that it
-      accepts address/port pair, and can be used multiple times. Closes ticket
-      28805.

+ 0 - 2
changes/document_version

@@ -1,2 +0,0 @@
-  o Documentation:
-    - Document the exact output of "tor --version". Closes ticket 28889.

+ 0 - 5
changes/feature27244

@@ -1,5 +0,0 @@
-  o Minor features (memory usage):
-    - Tor clients no longer need to keep the full text of a consensus in
-      memory in order to parse it, or apply a diff to it. Instead, they
-      use mmap() to read the consensus files from disk. Closes ticket
-      27244.

+ 0 - 4
changes/feature27367

@@ -1,4 +0,0 @@
-  o Minor features (parsing):
-    - Directory authorities now validate that router descriptors and ExtraInfo
-      documents are in a valid subset of UTF-8, and reject them if not.
-      Closes ticket 27367.

+ 0 - 7
changes/prop297

@@ -1,7 +0,0 @@
-  o Minor features (required protocols):
-    - Tor no longer exits if it is missing a required protocol, if the
-      consensus that requires the protocol predates the release date of the
-      version of Tor. This change prevents Tor releases from exiting because
-      of an old cached consensus, on the theory that a newer cached
-      consensus might not require the protocol.  Implements proposal 297;
-      closes ticket 27735.

+ 0 - 6
changes/subsystems

@@ -1,6 +0,0 @@
-  o Major features (refactoring):
-    - Tor now uses an explicit list of its own subsystems when initializing
-      and shutting down.  Previously, these systems were managed implicitly
-      though various places throughout the codebase.  (There still some
-      subsystems using the old system.)
-      Closes ticket 28330.

+ 0 - 3
changes/ticket24805

@@ -1,3 +0,0 @@
-  o Minor features (fallback directory list):
-    - Update the fallback whitelist based on operator opt-ins and opt-outs.
-      Closes ticket 24805, patch by Phoul.

+ 0 - 6
changes/ticket24838

@@ -1,6 +0,0 @@
-  o Minor features (fallback directory mirrors):
-    - Accept relays that are a fuzzy match to a fallback whitelist entry.
-      If a relay matches at least one fingerprint, IPv4 address, or IPv6
-      address in the fallback whitelist, it can become a fallback. This
-      reduces the work required to keep the list up to date.
-      Closes ticket 24838.

+ 0 - 4
changes/ticket26360

@@ -1,4 +0,0 @@
-  o Minor bugfixes (pluggable transports):
-    - Make sure that data is continously read from standard out and error of the
-      PT child-process to avoid deadlocking when the pipes' buffer is full.
-      Fixes bug 26360; bugfix on 0.2.3.6-alpha.

+ 0 - 8
changes/ticket26770

@@ -1,8 +0,0 @@
-  o Minor features (directory authority, relay):
-    - Authorities now vote on a "StaleDesc" flag to indicate that a relay's
-      descriptor is so old that the relay should upload again soon.  Relays
-      understand this flag, and treat it as a signal to upload a new
-      descriptor.  This flag will eventually let us remove the 'published'
-      date from routerstatus entries, and save a great deal of space in our
-      consensus diffs. Closes ticket 26770; implements proposal 293.
-

+ 0 - 11
changes/ticket27167

@@ -1,11 +0,0 @@
-  o Major features (bootstrap):
-    - Report the first connection to a relay as the earliest phases of
-      bootstrap progress, regardless of whether it's a connection for
-      building application circuits.  This allows finer-grained
-      reporting of early progress than previously possible with the
-      improvements of ticket 27169.  Closes tickets 27167 and 27103.
-      Addresses ticket 27308.
-    - Separately report the intermediate stage of having connected to
-      a proxy or pluggable transport, versus succesfully using that
-      proxy or pluggable transport to connect to a relay.  Closes
-      tickets 27100 and 28884.

+ 0 - 5
changes/ticket27225

@@ -1,5 +0,0 @@
-  o Minor features (performance):
-    - Avoid parsing the same protocol-versions string over and over
-      in summarize_protover_flags(). This should save us a huge number
-      of malloc calls on startup, and may reduce memory fragmentation with
-      some allocators. Closes ticket 27225.

+ 0 - 4
changes/ticket27325

@@ -1,4 +0,0 @@
-  o Code simplification and refactoring:
-    - Reimplement NETINFO cell parsing and generation to rely on
-      trunnel-generated wire format handling code. Closes ticket
-      27325.

+ 0 - 3
changes/ticket27359

@@ -1,3 +0,0 @@
-  o Minor features (memory usage):
-    - Store microdescriptor family lists with a more compact representation
-      to save memory.  Closes ticket 27359.

+ 0 - 10
changes/ticket27402

@@ -1,10 +0,0 @@
-  o Minor feature (bootstrap):
-    - When reporting bootstrap progress, stop distinguishing between
-      situations where it seems that only internal paths are available
-      and situations where it seems that external paths are available.
-      Previously, tor would often erroneously report that it had only
-      internal paths.  Closes ticket 27402.
-
-  o Code simplification and refactoring:
-    - Split out bootstrap progress reporting from control.c into a
-      separate file.  Part of ticket 27402.

+ 0 - 6
changes/ticket27490

@@ -1,6 +0,0 @@
-  o Minor features (ipv6):
-    - We add an option ClientAutoIPv6ORPort which makes clients randomly
-      prefer a node's IPv4 or IPv6 ORPort. The random preference is set
-      every time a node is loaded from a new consensus or bridge config.
-      Closes ticket 27490. Patch by Neel Chauhan.
-

+ 0 - 3
changes/ticket27549

@@ -1,3 +0,0 @@
-  o Code simplification and refactoring (hidden service v3):
-    - Consolidate the authorized client descriptor cookie computation code
-      from client and service into one function. Closes ticket 27549.

+ 0 - 3
changes/ticket27620

@@ -1,3 +0,0 @@
-  o Code simplification and refactoring:
-    - Rework SOCKS wire format handling to rely on trunnel-generated
-      parsing/generation code. Resolves ticket 27620.

+ 0 - 4
changes/ticket27625

@@ -1,4 +0,0 @@
-  o Testing:
-    - Write some unit tests for tokenize_string() and
-      get_next_token() functions. Resolves ticket 27625.
-

+ 0 - 4
changes/ticket27914

@@ -1,4 +0,0 @@
-  o Removed features:
-    - The scripts used to generate and maintain the list of fallback
-      directories have been extracted into a new "fallback-scripts"
-      repository. Closes ticket 27914.

+ 0 - 3
changes/ticket27993

@@ -1,3 +0,0 @@
-  o Minor features (developer tooling):
-    - Provide git hook script to prevent "fixup!" and "squash!" commits from
-      ending up in master. Closes ticket 27993.

+ 0 - 3
changes/ticket28006

@@ -1,3 +0,0 @@
-  o Code simplification and refactoring:
-    - Fix issues that shellcheck found in chutney-git-bisect.sh.
-      Resolves ticket 28006.

+ 0 - 3
changes/ticket28007

@@ -1,3 +0,0 @@
-  o Code simplification and refactoring:
-    - Cleanup scan-build.sh to silence shellcheck warnings.
-      Closes ticket 28007.

+ 0 - 3
changes/ticket28008

@@ -1,3 +0,0 @@
-  o Code simplification and refactoring:
-    - Fix shellcheck warnings in scripts/test/coverage. Resolves issue
-      28008.

+ 0 - 3
changes/ticket28009

@@ -1,3 +0,0 @@
-  o Code simplification and refactoring:
-    - Fix shellcheck warnings in cov-diff script. Resolves issue
-      28009.

+ 0 - 3
changes/ticket28010

@@ -1,3 +0,0 @@
-  o Code simplification and refactoring:
-    - Fix shellcheck warnings in run_trunnel.sh. Resolves issue
-      28010.

+ 0 - 3
changes/ticket28011

@@ -1,3 +0,0 @@
-  o Code simplification and refactoring:
-    - Fix shellcheck warnings in run_calltool.sh. Resolves
-      ticket 28011.

+ 0 - 3
changes/ticket28012

@@ -1,3 +0,0 @@
-  o Code simplification and refactoring:
-    - Fix issues that shellcheck found in updateRustDependencies.sh.
-      Resolves ticket 28012.

+ 0 - 2
changes/ticket28058

@@ -1,2 +0,0 @@
-  o Testing:
-    - Run shellcheck for stuff in scripts/ directory. Closes ticket 28058.

+ 0 - 3
changes/ticket28077

@@ -1,3 +0,0 @@
-  o Code simplification and refactoring:
-    - Remove unnecessarily unsafe code from the rust macro cstr!. Closes
-      ticket 28077.

+ 0 - 3
changes/ticket28100

@@ -1,3 +0,0 @@
-  o Minor features (HTTP standards compliance):
-    - Don't send Content-Type: application/octet-stream for transparently
-      compressed documents, which confused browsers. Closes ticket 28100.

+ 0 - 10
changes/ticket28142

@@ -1,10 +0,0 @@
-  o Major features (circuit padding):
-    - Implement preliminary support for the circuit padding portion of
-      Proposal 254. The implementation supports Adaptive Padding (aka
-      WTF-PAD) state machines for use between experimental clients and
-      relays. Support is also provided for APE-style state machines that
-      use probability distributions instead of histograms to specify
-      inter-packet delay. At the moment, Tor does not provide any padding
-      state machines that are used in normal operation -- this feature
-      exists solely for experimentation in this release. Closes
-      ticket 28142.

+ 0 - 5
changes/ticket28179

@@ -1,5 +0,0 @@
-  o Minor features (process):
-    - Add new Process API for handling child processes. This
-      new API allows Tor to have bi-directional
-      communication with child processes on both Unix and Windows.
-      Closes ticket 28179.

+ 0 - 3
changes/ticket28180

@@ -1,3 +0,0 @@
-  o Minor features (pluggable transports):
-    - Add support for logging to Tor's logging subsystem from a pluggable
-      transport process. Closes ticket 28180

+ 0 - 10
changes/ticket28266

@@ -1,10 +0,0 @@
-  o Minor features (directory authority):
-    - Directory authorities support a new consensus algorithm,
-      under which microdescriptor entries are encoded in a canonical
-      form. This improves their compressibility in transit and on the client.
-      Closes ticket 28266; implements proposal 298.
-
-  o Minor features (relay):
-    - When listing relay families, list them in canonical form including the
-      relay's own identity, and try to give a more useful set of warnings.
-      Part of ticket 28266 and proposal 298.

+ 0 - 7
changes/ticket28335

@@ -1,7 +0,0 @@
-  o Major features (client):
-    - When Tor is running as a client, and it is unused for a long time, it
-      can now enter a "dormant" state.  When Tor is dormant, it avoids
-      network activity and CPU wakeups until it is reawoken either by a user
-      request or by a controller command.  For more information, see
-      the configuration options starting with "Dormant". Implements tickets
-      2149 and 28335.

+ 0 - 6
changes/ticket28362

@@ -1,6 +0,0 @@
-  o Code simplification and refactoring:
-    - The .may_include files that we use to describe our
-      directory-by-directory dependency structure now describe a noncircular
-      dependency graph over the directories that they cover.
-      Our checkIncludes.py tool now enforces this.
-      Closes ticket 28362.

+ 0 - 3
changes/ticket28551

@@ -1,3 +0,0 @@
-  o Minor features (Continuous Integration):
-    - Log Python version during each Travis CI job. Resolves issue
-      28551.

+ 0 - 5
changes/ticket28624

@@ -1,5 +0,0 @@
-  o Minor features (battery management, client, dormant mode):
-    - The client's memory of whether it is "dormant", and how long it has
-      spend idle, persists across invocations.  Implements ticket 28624.
-    - There is a  DormantOnFirstStartup option that integrators can use if
-      they expect that in many cases, Tor will be installed but not used.

+ 0 - 6
changes/ticket28669

@@ -1,6 +0,0 @@
-  o Minor bugfix (hidden service v3, client):
-    - Avoid a BUG() stacktrace in case a SOCKS connection is found waiting for
-      the descriptor while we do have it in the cache. There is a rare case
-      when this can happen. Now, tor will recover and retry the descriptor.
-      Fixes bug 28669; bugfix on 0.3.2.4-alpha.
-    

+ 0 - 5
changes/ticket28757

@@ -1,5 +0,0 @@
-  o Removed features:
-    - Stop responding to 'GETINFO status/version/num-concurring' and
-      'GETINFO status/version/num-versioning' control port commands, as those
-      were deprecated back in 0.2.0.30. Also stop listing them in output of
-      'GETINFO info/names'. Resolves ticket 28757.

+ 0 - 4
changes/ticket28768

@@ -1,4 +0,0 @@
-  o Minor features (fallback directory mirrors):
-    - Accept fallbacks that deliver reasonably live consensuses.
-      (Consensuses that will become valid less than 24 hours in the future,
-      or that expired less than 24 hours ago.) Closes ticket 28768.

+ 0 - 3
changes/ticket28839

@@ -1,3 +0,0 @@
-  o Minor features (performance):
-    - Speed up microdesriptor parsing by about 30%, to help
-      improve startup time.  Closes ticket 28839.

+ 0 - 3
changes/ticket28840

@@ -1,3 +0,0 @@
-  o Minor features (testing):
-    - Allow HeartbeatPeriod of less than 30 minutes in testing Tor networks.
-      Closes ticket 28840, patch by robgjansen

+ 0 - 3
changes/ticket28843

@@ -1,3 +0,0 @@
-  o Minor features (controller):
-    - Add a DROPOWNERSHIP command to undo the effects of TAKEOWNERSHIP.
-      Implements ticket 28843.

+ 0 - 3
changes/ticket28846

@@ -1,3 +0,0 @@
-  o Minor features (pluggable transports):
-    - Add support for emitting STATUS updates to Tor's control port from a
-      pluggable transport process. Closes ticket 28846.

+ 0 - 3
changes/ticket28847

@@ -1,3 +0,0 @@
-  o Minor features (process):
-    - Use the subsystem module to initialize and shut down the process module.
-      Closes ticket 28847.

+ 0 - 4
changes/ticket28852

@@ -1,4 +0,0 @@
-  o Minor features (performance):
-    - Remove a needless memset() call from get_token_arguments,
-      thereby speeding up the tokenization of directory objects by about
-      20%. Closes ticket 28852.

+ 0 - 3
changes/ticket28853

@@ -1,3 +0,0 @@
-  o Minor features (performance):
-    - Replace parse_short_policy() with a faster implementation, to improve
-      microdescriptor parsing time. Closes ticket 28853.

+ 0 - 3
changes/ticket28856

@@ -1,3 +0,0 @@
-  o Minor features (performance):
-    - Speed up directory parsing a little by avoiding use of the
-      non-inlined strcmp_len() function. Closes ticket 28856.