diff --git a/ChangeLog b/ChangeLog index ae5f48d6e..4cc3c58f7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,11 +1,5 @@ -Changes in version 0.3.3.1-alpha - 2018-01-??: - Blurb goes here - - o Major features (onion services, security): - - Provide torrc options to pin the second and third hops of onion - service circuits to a list of nodes. The option HSLayer2Guards - pins the second hop, and the option HSLayer3Guards pins the third - hop. Closes ticket 13837. +Changes in version 0.3.3.1-alpha - 2018-01-25: + Tor 0.3.3.1-alpha is the first release o Major features (embedding): - There is now a documented stable API for programs that need to @@ -14,35 +8,39 @@ Changes in version 0.3.3.1-alpha - 2018-01-??: - Tor now has support for restarting in the same process. Controllers that run Tor using the "tor_api.h" interface can now restart Tor after Tor has exited. This support is incomplete, - however: we have fixed the crash bugs that prevented it from - working at all before, but many bugs probably remain, including - the possibility of security issues. Implements ticket 24581. + however: we fixed crash bugs that prevented it from working at + all, but many bugs probably remain, including a possibility of + security issues. Implements ticket 24581. o Major features (IPv6, directory documents): - Add consensus method 27, which adds IPv6 ORPorts to the microdesc - consensus. This makes it easier for IPv6 clients to bootstrap and - choose reachable entry guards. Implements 23826. + consensus. This information it easier for IPv6 clients to + bootstrap and choose reachable entry guards. Implements 23826. - Add consensus method 28, which removes IPv6 ORPorts from - microdescriptors. Now that there are IPv6 ORPorts in the microdesc - consensus, they are redundant in microdescs. This change is - compatible with tor clients on 0.2.8.x and later. (That is to say, - with all Tor clients having IPv6 bootstrap and guard support.) + microdescriptors. Now that there are the consensus contains IPv6 + ORPorts, they are redundant in microdescs. This change will be + used by tor clients on 0.2.8.x and later. (That is to say, with + all Tor clients having IPv6 bootstrap and guard support.) Implements 23828. - Expand the documentation for AuthDirHasIPv6Connectivity when it is set by different numbers of authorities. Fixes 23870 on 0.2.4.1-alpha. o Major features (onion service v3, control port): - - Control port now supports command and events for v3 onion - services. See proposal 284 for more information on what has been - done exactly. Only the HSFETCH command hasn't been implemented at - this stage because of a lack of use case with v3. + - The control port now supports command and events for v3 onion + services: It is now possible to create ephemeral v3 services using + ADD_ONION. Additionally, several events (HS_DESC, HS_DESC_CONTENT, + CIRC and CIRC_MINOR) and commands (GETINFO, HSPOST, ADD_ONION and + DEL_ONION) have been extended to support v3 onion services. Closes + ticket 20699; implements proposal 284. - It is now possible to create ephemeral v3 services using the - ADD_ONION command. Additionally, several events (HS_DESC, - HS_DESC_CONTENT, CIRC and CIRC_MINOR) and commands (GETINFO, - HSPOST, ADD_ONION and DEL_ONION) have been extended to support v3 - onion services. Closes ticket 20699. + o Major features (onion services): + - Provide torrc options to pin the second and third hops of onion + service circuits to a list of nodes. The option HSLayer2Guards + pins the second hop, and the option HSLayer3Guards pins the third + hop. These options are for use in conjunction with experiments + with a "vanguards" for preventing guard enumeration attacks. + Closes ticket 13837. o Major features (rust, portability, experimental): - Tor now ships with an optional implementation of one of its @@ -54,18 +52,18 @@ Changes in version 0.3.3.1-alpha - 2018-01-??: Implementation by Chelsea Komlo. Closes ticket 22840. o Major features (storage, configuration): - - Users can choose to store cached directory documents somewhere - other than the DataDirectory by using the CacheDirectory option. - Similarly, the storage location for relay's keys can be overridden - with the KeyDirectory option. Closes ticket 22703. + - Users can store cached directory documents somewhere other than + the DataDirectory by using the CacheDirectory option. Similarly, + the storage location for relay's keys can be overridden with the + KeyDirectory option. Closes ticket 22703. o Major features (v3 onion services, ipv6): - - When v3 onion service clients send introduce cells, include the - IPv6 address of the rendezvous point, if it has one. v3 onion - services running 0.3.2 ignore IPv6 addresses. In future Tor - versions, IPv6-only v3 single onion services can use IPv6 - addresses to connect directly to the rendezvous point. Closes - ticket 23577. Patch by Neel Chauhan. + - When v3 onion service clients send introduce cells, they now + include the IPv6 address of the rendezvous point, if it has one. + Current v3 onion services running 0.3.2 ignore IPv6 addresses, but + in future Tor versions, IPv6-only v3 single onion services will be + able to IPv6 addresses to connect directly to the rendezvous + point. Closes ticket 23577. Patch by Neel Chauhan. o Major bugfixes (onion services, retry behavior): - Fix an "off by 2" error in counting rendezvous failures on the @@ -99,11 +97,6 @@ Changes in version 0.3.3.1-alpha - 2018-01-??: - Tor now deletes the CookieAuthFile and ExtORPortCookieAuthFile when it stops. Closes ticket 23271. - o Minor features (code correctness, descriptors): - - Check that microdesc ed25519 ids are non-zero in - node_get_ed25519_id(), before returning them. Implements 24001, - patch by "aruna1234". - o Minor features (defensive programming): - Most of the functions in Tor that free objects have been replaced with macros that free the objects and set the corresponding @@ -111,6 +104,9 @@ Changes in version 0.3.3.1-alpha - 2018-01-??: dangling pointer bugs. Closes ticket 24337. - Where possible, the tor_free() macro now only evaluates its input once. Part of ticket 24337. + - Check that microdesc ed25519 ids are non-zero in + node_get_ed25519_id() before returning them. Implements 24001, + patch by "aruna1234". o Minor features (directory authority): - Make the "Exit" flag assignment only depend on whether the exit @@ -128,14 +124,13 @@ Changes in version 0.3.3.1-alpha - 2018-01-??: - On most errors that would cause Tor to exit, it now tries to return from the tor_main() function, rather than calling the system exit() function. Most users won't notice a difference here, - but it should make a significant difference on platforms that try - to run Tor inside a separate thread: they should now be able to - survive Tor's exit conditions rather than having Tor shut down the - entire process. Closes ticket 23848. + but it should make a significant for programs that run Tor inside + a separate thread: they should now be able to survive Tor's exit + conditions rather than having Tor shut down the entire process. + Closes ticket 23848. - Applications that want to embed Tor can now tell Tor not to register any of its own POSIX signal handlers, using the - __DisableSignalHandlers option. This option is not meant for - general use. Closes ticket 24588. + __DisableSignalHandlers option. Closes ticket 24588. o Minor features (fallback directory list): - Avoid selecting fallbacks that change their IP addresses too @@ -172,6 +167,8 @@ Changes in version 0.3.3.1-alpha - 2018-01-??: entries. Ticket 24681 will maintain the current fallback weights by changing Tor's default fallback weight to 10. Implements ticket 24679. + - Stop logging excessive information about fallback netblocks. + Implements ticket 24791. o Minor features (forward-compatibility): - If a relay supports some link authentication protocol that we do @@ -201,12 +198,6 @@ Changes in version 0.3.3.1-alpha - 2018-01-??: - Added support for the Android logging subsystem. Closes ticket 24362. - o Minor features (OSX, iOS, performance): - - Use the mach_approximate_time() function (when available) to - implement coarse monotonic time. Having a coarse time function - should avoid a large number of system calls, and improve - performance slightly, especially under load. Closes ticket 24427. - o Minor features (performance): - Support predictive circuit building for onion service circuits with multiple layers of guards. Closes ticket 23101. @@ -221,6 +212,12 @@ Changes in version 0.3.3.1-alpha - 2018-01-??: when timestamping cells and buffer chunks for OOM calculations. Implements ticket 24374. + o Minor features (performance, OSX, iOS): + - Use the mach_approximate_time() function (when available) to + implement coarse monotonic time. Having a coarse time function + should avoid a large number of system calls, and improve + performance slightly, especially under load. Closes ticket 24427. + o Minor features (performance, windows): - Improve performance on Windows Vista and Windows 7 by adjusting TCP send window size according to the recommendation from @@ -263,13 +260,6 @@ Changes in version 0.3.3.1-alpha - 2018-01-??: the TOR_RUST_DEPENDENCIES option set. Fixes bug 22768; bugfix on 0.3.1.7. - o Minor bugfixes (code correctness): - - Stop invoking undefined behavior by using tor_free() on an - unaligned pointer in get_interface_addresses_ioctl(). This pointer - alignment issue exists on x86_64 macOS, but is unlikely to exist - elsewhere. Fixes bug 24733; bugfix on 0.3.0.0-alpha-dev; not in - any released version of tor. - o Minor bugfixes (directory authorities, IPv6): - When creating a routerstatus (vote) from a routerinfo (descriptor), set the IPv6 address to the unspecified IPv6 address, and @@ -281,12 +271,10 @@ Changes in version 0.3.3.1-alpha - 2018-01-??: don't put it in /usr/bin.) Fixes bug 24708; bugfix on 0.2.8.1-alpha. - o Minor bugfixes (hibernation): + o Minor bugfixes (hibernation, bandwidth accounting, shutdown): - When hibernating, close connections normally and allow them to flush. Fixes bug 23571; bugfix on 0.2.4.7-alpha. Also fixes bug 7267. - - o Minor bugfixes (hibernation, bandwidth accounting, shutdown): - Do not attempt to launch self-reachability tests when entering hibernation. Fixes a base of bug 12062; bugfix on 0.0.9pre5. - Resolve several bugs related to descriptor fetching on bridge @@ -299,11 +287,11 @@ Changes in version 0.3.3.1-alpha - 2018-01-??: Fixes a case of bug 12062; bugfix on 0.0.9pre5. o Minor bugfixes (IPv6, bridges): - - Tor now always sets IPv6 preferences for bridges, even if there is - only router information or router status and warns about them. - Fixes bug 24573; bugfix on 0.2.8.2-alpha. - - Tor now sets IPv6 address in rs as well as it's set the one in ri. - Closes ticket 24572; bugfix on 0.2.4.5-alpha. Patch by "ffmancera". + - Tor now always sets IPv6 preferences for bridges. Fixes bug 24573; + bugfix on 0.2.8.2-alpha. + - Tor now sets IPv6 address in the routerstatus as well as in the + router descriptors when updating addresses for a bridge. Closes + ticket 24572; bugfix on 0.2.4.5-alpha. Patch by "ffmancera". o Minor bugfixes (linux seccomp2 sandbox): - When running with the sandbox enabled, reload configuration files @@ -323,7 +311,12 @@ Changes in version 0.3.3.1-alpha - 2018-01-??: limit (which can happen sometimes on some versions of OSX). Fixes bug 21074; bugfix on 0.0.9pre5. - o Minor bugfixes (performance): + o Minor bugfixes (performance, fragile-hardening): + - Improve the performance of our consensus-diff application code + when Tor is built with the --enable-fragile-hardening option set. + Fixes bug 24826; bugfix on 0.3.1.1-alpha. + + o Minor bugfixes (performance, timeouts): - Consider circuits for timeout as soon as they complete a hop. This is more accurate than applying the timeout in circuit_expire_building() because that function is only called @@ -336,11 +329,6 @@ Changes in version 0.3.3.1-alpha - 2018-01-??: from all circuits at the point where they complete their third hop. Fixes bug 23100; bugfix on 0.2.2.2-alpha. - o Minor bugfixes (performance, fragile-hardening): - - Improve the performance of our consensus-diff application code - when Tor is built with the --enable-fragile-hardening option set. - Fixes bug 24826; bugfix on 0.3.1.1-alpha. - o Minor bugfixes (testing): - Give out Exit flags in bootstrapping networks. Fixes bug 24137; bugfix on 0.2.3.1-alpha. @@ -375,7 +363,7 @@ Changes in version 0.3.3.1-alpha - 2018-01-??: o Documentation: - Add documentation on how to build tor with Rust dependencies - without requiring being online. Closes ticket 22907; bugfix + without having to beonline. Closes ticket 22907; bugfix on 0.3.0.3-alpha. - Clarify the behavior of RelayBandwidth{Rate,Burst} with client traffic. Closes ticket 24318. @@ -386,31 +374,24 @@ Changes in version 0.3.3.1-alpha - 2018-01-??: ticket 24526. o Code simplification and refactoring (channels): - - Remove the incoming and outgoing channel queues. The reason to do - so was due to the fact that they were always empty meaning never - used but still looked at in our fast path. Bottom line, it was an - unused code path. + - Remove the incoming and outgoing channel queues: These were never + used, but still took up a step in our fast path. - The majority of the channel unit tests have been rewritten and the code coverage has now been raised to 83.6% for channel.c. Closes ticket 23709. - - We've simplify a lot the channel subsystem by removing those - queues but also by removing a lot of unused code or dead code - around it. Overall this is a cleanup removing more than 1500 lines - of code overall and adding very little except for unit test. + - Remove other dead code from the a lot the channel subsystem: All + together, this cleanup has removed more than 1500 lines of code + overall and adding very little except for unit test. o Code simplification and refactoring (circuit rendezvous): - - Split get rendezvous circuit on client side on two different - functions. One that returns only established circuits and another + - Split the client-size rendezvous circuit lookup into two + functions: one that returns only established circuits and another that returns all kinds of circuits. Closes ticket 23459. o Code simplification and refactoring (controller): - Make most of the variables in networkstatus_getinfo_by_purpose() const. Implements ticket 24489. - o Code simplification and refactoring (fallbacks): - - Stop logging excessive information about fallback netblocks. - Implements ticket 24791. - Changes in version 0.3.2.9 - 2018-01-09 Tor 0.3.2.9 is the first stable release in the 0.3.2 series.