Re-wrap changelog section for 0.2.2.25-alpha

This commit is contained in:
Nick Mathewson 2011-04-28 23:17:43 -04:00
parent 7afa8a30da
commit 95dceffe1b
1 changed files with 74 additions and 77 deletions

151
ChangeLog
View File

@ -1,14 +1,15 @@
Changes in version 0.2.2.25-alpha - 2011-04-28 Changes in version 0.2.2.25-alpha - 2011-04-28
o Major bugfixes: o Major bugfixes:
- Relays were publishing grossly inflated bandwidth values because they - Relays were publishing grossly inflated bandwidth values because
were writing their state files wrong--now they write the correct value. they were writing their state files wrong--now they write the
Also, resume reading bandwidth history from the state file correctly. correct value. Also, resume reading bandwidth history from the
Fixes bug 2704; bugfix on 0.2.2.23-alpha. state file correctly. Fixes bug 2704; bugfix on 0.2.2.23-alpha.
- Improve hidden service robustness: When we find that we have extended - Improve hidden service robustness: When we find that we have
a hidden service's introduction circuit to a relay not listed as an extended a hidden service's introduction circuit to a relay not
introduction point in the HS descriptor we currently have, retry an listed as an introduction point in the HS descriptor we currently
introduction point from the current descriptor. Previously we would have, retry with an introduction point from the current
just give up. Fixes bugs 1024 and 1930; bugfix on 0.2.0.10-alpha. descriptor. Previously we would just give up. Fixes bugs 1024 and
1930; bugfix on 0.2.0.10-alpha.
- Clients now stop trying to use an exit node associated with a given - Clients now stop trying to use an exit node associated with a given
destination by TrackHostExits if they fail to reach that exit node. destination by TrackHostExits if they fail to reach that exit node.
Fixes bug 2999. Bugfix on 0.2.0.20-rc. Fixes bug 2999. Bugfix on 0.2.0.20-rc.
@ -17,17 +18,17 @@ Changes in version 0.2.2.25-alpha - 2011-04-28
by boboper. by boboper.
o Security and stability fixes: o Security and stability fixes:
- Don't double-free a parsable, but invalid, microdescriptor, even - Don't double-free a parsable, but invalid, microdescriptor, even if
if it is followed in the blob we're parsing by an unparsable it is followed in the blob we're parsing by an unparsable
microdescriptor. Fixes an issue reported in a comment on bug 2954. microdescriptor. Fixes an issue reported in a comment on bug 2954.
Bugfix on 0.2.2.6-alpha; fix by "cypherpunks". Bugfix on 0.2.2.6-alpha; fix by "cypherpunks".
- If the Nickname configuration option isn't given, Tor would pick a - If the Nickname configuration option isn't given, Tor would pick a
nickname based on the local hostname as the nickname for a relay. nickname based on the local hostname as the nickname for a relay.
Because nicknames are not very important in today's Tor and the Because nicknames are not very important in today's Tor and the
"Unnamed" nickname has been implemented, this is now problematic "Unnamed" nickname has been implemented, this is now problematic
behavior: It leaks information about the hostname without being useful behavior: It leaks information about the hostname without being
at all. Fixes bug 2979; bugfix on 0.1.2.2-alpha, which introduced the useful at all. Fixes bug 2979; bugfix on 0.1.2.2-alpha, which
Unnamed nickname. Reported by tagnaq. introduced the Unnamed nickname. Reported by tagnaq.
- Fix an uncommon assertion failure when running with DNSPort under - Fix an uncommon assertion failure when running with DNSPort under
heavy load. Fixes bug 2933; bugfix on 0.2.0.1-alpha. heavy load. Fixes bug 2933; bugfix on 0.2.0.1-alpha.
- Avoid linkability based on cached hidden service descriptors: forget - Avoid linkability based on cached hidden service descriptors: forget
@ -35,9 +36,9 @@ Changes in version 0.2.2.25-alpha - 2011-04-28
SIGNAL NEWNYM command. Fixes bug 3000; bugfix on 0.0.6. SIGNAL NEWNYM command. Fixes bug 3000; bugfix on 0.0.6.
o Major features: o Major features:
- Export GeoIP information on bridge usage to controllers even if - Export GeoIP information on bridge usage to controllers even if we
we have not yet been running for 24 hours. Now Vidalia bridge have not yet been running for 24 hours. Now Vidalia bridge operators
operators can get more accurate and immediate feedback about their can get more accurate and immediate feedback about their
contributions to the network. contributions to the network.
o Major features and bugfixes (node selection): o Major features and bugfixes (node selection):
@ -45,64 +46,62 @@ Changes in version 0.2.2.25-alpha - 2011-04-28
ExcludeEntryNodes, ExcludeExitNodes, ExcludeNodes, and StrictNodes ExcludeEntryNodes, ExcludeExitNodes, ExcludeNodes, and StrictNodes
options. Previously, we had been ambiguous in describing what options. Previously, we had been ambiguous in describing what
counted as an "exit" node, and what operations exactly "StrictNodes counted as an "exit" node, and what operations exactly "StrictNodes
0" would permit. This created confusion when people saw nodes 0" would permit. This created confusion when people saw nodes built
built through unexpected circuits, and made it hard to tell real through unexpected circuits, and made it hard to tell real bugs from
bugs from surprises. Now the intended behavior is: surprises. Now the intended behavior is:
. "Exit", in the context of ExitNodes and ExcludeExitNodes, . "Exit", in the context of ExitNodes and ExcludeExitNodes, means
means a node that delivers user traffic outside the Tor network. a node that delivers user traffic outside the Tor network.
. "Entry", in the context of EntryNodes, means a node used as . "Entry", in the context of EntryNodes, means a node used as the
the first hop of a multihop circuit. It doesn't include direct first hop of a multihop circuit. It doesn't include direct
connections to directory servers. connections to directory servers.
. "ExcludeNodes" applies to all nodes. . "ExcludeNodes" applies to all nodes.
. "StrictNodes" changes the behavior of ExcludeNodes only. When . "StrictNodes" changes the behavior of ExcludeNodes only. When
StrictNodes is set, Tor should avoid all nodes listed in StrictNodes is set, Tor should avoid all nodes listed in
ExcludeNodes, even when it will make user requests fail. When ExcludeNodes, even when it will make user requests fail. When
StrictNodes is *not* set, then Tor should follow ExcludeNodes StrictNodes is *not* set, then Tor should follow ExcludeNodes
whenever it can, except when it must use an excluded node whenever it can, except when it must use an excluded node to
to perform self-tests, connect to a hidden service, provide perform self-tests, connect to a hidden service, provide a
a hidden service, fulfill a .exit request, upload directory hidden service, fulfill a .exit request, upload directory
information, or fetch directory information. information, or fetch directory information.
Collectively, the changes to implement the behavior fix bug 1090. Collectively, the changes to implement the behavior fix bug 1090.
- ExcludeNodes now takes precedence over EntryNodes and ExitNodes: - ExcludeNodes now takes precedence over EntryNodes and ExitNodes: if
if a node is listed in both, it's treated as excluded. a node is listed in both, it's treated as excluded.
- ExcludeNodes now applies to directory nodes -- as a preference if - ExcludeNodes now applies to directory nodes -- as a preference if
StrictNodes is 0, or an absolute requirement if StrictNodes is 1. StrictNodes is 0, or an absolute requirement if StrictNodes is 1.
Don't exclude all the directory authorities and set StrictNodes Don't exclude all the directory authorities and set StrictNodes to 1
to 1 unless you really want your Tor to break. unless you really want your Tor to break.
- ExcludeNodes and ExcludeExitNodes now override exit enclaving. - ExcludeNodes and ExcludeExitNodes now override exit enclaving.
- ExcludeExitNodes now overrides .exit requests. - ExcludeExitNodes now overrides .exit requests.
- We don't use bridges listed in ExcludeNodes. - We don't use bridges listed in ExcludeNodes.
- When StrictNodes is 1: - When StrictNodes is 1:
. We now apply ExcludeNodes to hidden service introduction points . We now apply ExcludeNodes to hidden service introduction points
and to rendezvous points selected by hidden service users. and to rendezvous points selected by hidden service users. This
This can make your hidden service less reliable: use it with can make your hidden service less reliable: use it with caution!
caution!
. If we have used ExcludeNodes on ourself, do not try relay . If we have used ExcludeNodes on ourself, do not try relay
reachability self-tests. reachability self-tests.
. If we have excluded all the directory authorities, we will . If we have excluded all the directory authorities, we will not
not even try to upload our descriptor if we're a relay. even try to upload our descriptor if we're a relay.
. Do not honor .exit requests to an excluded node. . Do not honor .exit requests to an excluded node.
- Remove a misfeature that caused us to ignore the Fast/Stable flags - Remove a misfeature that caused us to ignore the Fast/Stable flags
when ExitNodes is set. Bugfix on 0.2.2.7-alpha. when ExitNodes is set. Bugfix on 0.2.2.7-alpha.
- When the set of permitted nodes changes, we now remove any - When the set of permitted nodes changes, we now remove any mappings
mappings introduced via TrackExitHosts to now-excluded nodes. introduced via TrackExitHosts to now-excluded nodes. Bugfix on
Bugfix on 0.1.0.1-rc. 0.1.0.1-rc.
- We never cannibalize a circuit that had excluded nodes on it, - We never cannibalize a circuit that had excluded nodes on it, even
even if StrictNodes is 0. Bugfix on 0.1.0.1-rc. if StrictNodes is 0. Bugfix on 0.1.0.1-rc.
- Revert a change where we would be laxer about attaching streams to - Revert a change where we would be laxer about attaching streams to
circuits than when building the circuits. This was meant to circuits than when building the circuits. This was meant to prevent
prevent a set of bugs where streams were never attachable, but our a set of bugs where streams were never attachable, but our improved
improved code here should make this unnecessary. Bugfix on code here should make this unnecessary. Bugfix on 0.2.2.7-alpha.
0.2.2.7-alpha. - Keep track of how many times we launch a new circuit to handle a
- Keep track of how many times we launch a new circuit to handle given stream. Too many launches could indicate an inconsistency
a given stream. Too many launches could indicate an inconsistency
between our "launch a circuit to handle this stream" logic and our between our "launch a circuit to handle this stream" logic and our
"attach this stream to one of the available circuits" logic. "attach this stream to one of the available circuits" logic.
- Improve log messages related to excluded nodes. - Improve log messages related to excluded nodes.
o Minor bugfixes: o Minor bugfixes:
- Fix a spurious warning when moving from a short month to a long month - Fix a spurious warning when moving from a short month to a long
on relays with month-based BandwidthAccounting. Bugfix on month on relays with month-based BandwidthAccounting. Bugfix on
0.2.2.17-alpha; fixes bug 3020. 0.2.2.17-alpha; fixes bug 3020.
- When a client finds that an origin circuit has run out of 16-bit - When a client finds that an origin circuit has run out of 16-bit
stream IDs, we now mark it as unusable for new streams. Previously, stream IDs, we now mark it as unusable for new streams. Previously,
@ -113,12 +112,12 @@ Changes in version 0.2.2.25-alpha - 2011-04-28
connect() system call. Under some circumstances, it was possible to connect() system call. Under some circumstances, it was possible to
look at an incorrect value for errno when sending the end reason. look at an incorrect value for errno when sending the end reason.
Bugfix on 0.1.0.1-rc. Bugfix on 0.1.0.1-rc.
- Correctly handle an "impossible" overflow cases in connection - Correctly handle an "impossible" overflow cases in connection byte
byte counting, where we write or read more than 4GB on an edge counting, where we write or read more than 4GB on an edge connection
connection in a single second. Bugfix on 0.1.2.8-beta. in a single second. Bugfix on 0.1.2.8-beta.
- Correct the warning displayed when a rendezvous descriptor exceeds - Correct the warning displayed when a rendezvous descriptor exceeds
the maximum size. Fixes bug 2750; bugfix on 0.2.1.5-alpha. Found the maximum size. Fixes bug 2750; bugfix on 0.2.1.5-alpha. Found by
by John Brooks. John Brooks.
- Clients and hidden services now use HSDir-flagged relays for hidden - Clients and hidden services now use HSDir-flagged relays for hidden
service descriptor downloads and uploads even if the relays have no service descriptor downloads and uploads even if the relays have no
DirPort set and the client has disabled TunnelDirConns. This will DirPort set and the client has disabled TunnelDirConns. This will
@ -126,12 +125,11 @@ Changes in version 0.2.2.25-alpha - 2011-04-28
DirPort. Fixes bug 2722; bugfix on 0.2.1.6-alpha. DirPort. Fixes bug 2722; bugfix on 0.2.1.6-alpha.
- Downgrade "no current certificates known for authority" message from - Downgrade "no current certificates known for authority" message from
Notice to Info. Fixes bug 2899; bugfix on 0.2.0.10-alpha. Notice to Info. Fixes bug 2899; bugfix on 0.2.0.10-alpha.
- Make the SIGNAL DUMP control-port command work on FreeBSD. Fixes - Make the SIGNAL DUMP control-port command work on FreeBSD. Fixes bug
bug 2917. Bugfix on 0.1.1.1-alpha. 2917. Bugfix on 0.1.1.1-alpha.
- Only limit the lengths of single HS descriptors, even when - Only limit the lengths of single HS descriptors, even when multiple
multiple HS descriptors are published to an HSDir relay in a HS descriptors are published to an HSDir relay in a single POST
single POST operation. Fixes bug 2948; bugfix on 0.2.1.5-alpha. operation. Fixes bug 2948; bugfix on 0.2.1.5-alpha. Found by hsdir.
Found by hsdir.
- Write the current time into the LastWritten line in our state file, - Write the current time into the LastWritten line in our state file,
rather than the time from the previous write attempt. Also, stop rather than the time from the previous write attempt. Also, stop
trying to use a time of -1 in our log statements. Fixes bug 3039; trying to use a time of -1 in our log statements. Fixes bug 3039;
@ -151,30 +149,29 @@ Changes in version 0.2.2.25-alpha - 2011-04-28
clients are already deprecated because of security bugs. clients are already deprecated because of security bugs.
- Don't allow v0 hidden service authorities to act as clients. - Don't allow v0 hidden service authorities to act as clients.
Required by fix for bug 3000. Required by fix for bug 3000.
- Ignore SIGNAL NEWNYM commands on relay-only Tor instances. - Ignore SIGNAL NEWNYM commands on relay-only Tor instances. Required
Required by fix for bug 3000. by fix for bug 3000.
- Ensure that no empty [dirreq-](read|write)-history lines are added - Ensure that no empty [dirreq-](read|write)-history lines are added
to an extrainfo document. Implements ticket 2497. to an extrainfo document. Implements ticket 2497.
o Code simplification and refactoring: o Code simplification and refactoring:
- Remove workaround code to handle directory responses from - Remove workaround code to handle directory responses from servers
servers that had bug 539 (they would send HTTP status 503 that had bug 539 (they would send HTTP status 503 responses _and_
responses _and_ send a body too). Since only server versions before send a body too). Since only server versions before
0.2.0.16-alpha/0.1.2.19 were affected, there is no longer reason 0.2.0.16-alpha/0.1.2.19 were affected, there is no longer reason to
to keep the workaround in place. keep the workaround in place.
- Remove the old 'fuzzy time' logic. It was supposed to be used - Remove the old 'fuzzy time' logic. It was supposed to be used for
for handling calculations where we have a known amount of clock handling calculations where we have a known amount of clock skew and
skew and an allowed amount of unknown skew. But we only used it an allowed amount of unknown skew. But we only used it in three
in three places, and we never adjusted the known/unknown skew places, and we never adjusted the known/unknown skew values. This is
values. This is still something we might want to do someday, still something we might want to do someday, but if we do, we'll
but if we do, we'll want to do it differently. want to do it differently.
- Avoid signed/unsigned comparisons by making SIZE_T_CEILING unsigned. - Avoid signed/unsigned comparisons by making SIZE_T_CEILING unsigned.
None of the cases where we did this before were wrong, but by making None of the cases where we did this before were wrong, but by making
this change we avoid warnings. Fixes bug 2475; bugfix on this change we avoid warnings. Fixes bug 2475; bugfix on 0.2.1.28.
0.2.1.28.
- Use GetTempDir to find the proper temporary directory location on - Use GetTempDir to find the proper temporary directory location on
Windows when generating temporary files for the unit tests. Patch Windows when generating temporary files for the unit tests. Patch by
by Gisle Vanem. Gisle Vanem.
Changes in version 0.2.2.24-alpha - 2011-04-08 Changes in version 0.2.2.24-alpha - 2011-04-08