Roger Dingledine [Tue, 30 Jun 2009 14:14:15 +0000 (10:14 -0400)]
another minor patch to add to 0.2.1.x
o Minor features:
- If we're a relay and we change our IP address, be more verbose
about the reason that made us change. Should help track down
further bugs for relays on dynamic IP addresses.
Roger Dingledine [Sat, 20 Jun 2009 09:25:14 +0000 (05:25 -0400)]
the third piece of bug 969 fixing
when we write out our stability info, detect relays that have slipped
through the cracks. log about them and correct the problem.
if we continue to see a lot of these over time, it means there's another
spot where relays fall out of the routerlist without being marked as
unreachable.
Marcus Griep [Wed, 24 Jun 2009 03:09:27 +0000 (23:09 -0400)]
Flush long replies over control port on QUIT
Marks the control port connection for flushing before closing when
the QUIT command is issued. This allows a QUIT to be issued during
a long reply over the control port, flushing the reply and then
closing the connection. Fixes bug 1015.
Roger Dingledine [Sun, 21 Jun 2009 12:54:35 +0000 (08:54 -0400)]
Clients now use bandwidth values in the consensus
rather than the bandwidth values in each relay descriptor. This approach
opens the door to more accurate bandwidth estimates once the directory
authorities start doing active measurements. Implements more of proposal
141.
Nick Mathewson [Mon, 22 Jun 2009 16:34:32 +0000 (12:34 -0400)]
Serve DirPortFrontPage even if the write bucket is low.
arma's rationale: "I think this is a bug, since people intentionally
set DirPortFrontPage, so they really do want their relay to serve that
page when it's asked for. Having it appear only sometimes (or roughly
never in Sebastian's case) makes it way less useful."
Peter Palfrader [Sat, 20 Jun 2009 11:08:43 +0000 (13:08 +0200)]
Merge branch 'debian-merge' into debian
* debian-merge: (33 commits)
Forward port 06_add_compile_time_defaults
New upstream version
Bump version to 0.2.1.16-rc
prepare changelog for 0.2.1.16-rc
Better fix for 997.
Revert "Backport fix for bug 997."
tor-resolve: Don't automatically refuse .onion addresses.
Backport fix for bug 997.
Revise earlier check for correct IPv4 addr length to check for ==4.
Check answer_len in the remap_addr case of process_relay_cell_not_open.
update requirements to openssl 0.9.7
Missing changelog entry about geoip
Move and fix a changelog entry. Noticed by optimist.
Avoid a memory corruption problem related to "private" in DirPolicy.
Update the rest of the geoip file.
Update the geoip file
Fix gprof bottlenecks on exit nodes found by Jacob.
Do not report a node as a "chosen exit" when it is not in fact an exit.
Make the second argument to routerset_contains_extendinfo const
Don't attempt to log messages to a controller from a worker thread.
...
Peter Palfrader [Sat, 20 Jun 2009 10:59:04 +0000 (12:59 +0200)]
Merge commit 'tor-0.2.1.16-rc' into debian-merge
* commit 'tor-0.2.1.16-rc': (31 commits)
Bump version to 0.2.1.16-rc
prepare changelog for 0.2.1.16-rc
Better fix for 997.
Revert "Backport fix for bug 997."
tor-resolve: Don't automatically refuse .onion addresses.
Backport fix for bug 997.
Revise earlier check for correct IPv4 addr length to check for ==4.
Check answer_len in the remap_addr case of process_relay_cell_not_open.
update requirements to openssl 0.9.7
Missing changelog entry about geoip
Move and fix a changelog entry. Noticed by optimist.
Avoid a memory corruption problem related to "private" in DirPolicy.
Update the rest of the geoip file.
Update the geoip file
Fix gprof bottlenecks on exit nodes found by Jacob.
Do not report a node as a "chosen exit" when it is not in fact an exit.
Make the second argument to routerset_contains_extendinfo const
Don't attempt to log messages to a controller from a worker thread.
Clean up a bit of C logic, and fix an erroneous warning.
Consider *ListenAddress when warning about low ports and hibernation
...
If the Tor is running with AutomapHostsOnResolve set, it _is_
reasonable to do a DNS lookup on a .onion address. So instead we make
tor-resolve willing to try to resolve anything. Only if Tor refuses
to resolve it do we suggest to the user that resolving a .onion
address may not work.
Roger Dingledine [Fri, 12 Jun 2009 15:18:02 +0000 (11:18 -0400)]
Check answer_len in the remap_addr case of process_relay_cell_not_open.
Fix an edge case where a malicious exit relay could convince a
controller that the client's DNS question resolves to an internal IP
address. Bug found and fixed by "optimist"; bugfix on 0.1.2.8-beta.
Nick Mathewson [Wed, 3 Jun 2009 17:52:03 +0000 (13:52 -0400)]
Fix gprof bottlenecks on exit nodes found by Jacob.
Apparently all the stuff that does a linear scan over all the DNS
cache entries can get really expensive when your DNS cache is very
large. It's hard to say how much this will help performance, since
gprof doesn't count time spent in OpenSSL or zlib, but I'd guess 10%.
Also, this patch removes calls to assert_connection_ok() from inside
the read and write callbacks, which are similarly unneeded, and a
little costlier than I'm happy with.
Nick Mathewson [Wed, 27 May 2009 18:07:41 +0000 (14:07 -0400)]
Do not report a node as a "chosen exit" when it is not in fact an exit.
Provide a useful warning when launch_circuit tries to make us use a
node we don't want to use. Just give an info message when this is a
normal and okay situation. Fix for logging issues in bug 984.
Peter Palfrader [Sun, 31 May 2009 10:43:38 +0000 (10:43 +0000)]
Update Standards-Version 3.8.1
Update Standards-Version from 3.8.0 to 3.8.1. No real changes required, we
already support nocheck in DEB_BUILD_OPTIONS since August 2004, and we already
create our var/run directory in the init script (tho we now no longer ship it
either - see above).
Peter Palfrader [Sun, 31 May 2009 10:38:24 +0000 (10:38 +0000)]
Be quiet when creating /var/run/tor.
No longer inform the user if/when we re-create the /var/run/tor directory in
the init script. With /var/run on tmpfs this is completely normal now so our
message was just noise.
Nick Mathewson [Fri, 29 May 2009 14:18:50 +0000 (10:18 -0400)]
Don't attempt to log messages to a controller from a worker thread.
This patch adds a function to determine whether we're in the main
thread, and changes control_event_logmsg() to return immediately if
we're in a subthread. This is necessary because otherwise we will
call connection_write_to_buf, which modifies non-locked data
structures.
Bugfix on 0.2.0.x; fix for at least one of the things currently
called "bug 977".
Sebastian Hahn [Tue, 26 May 2009 10:41:45 +0000 (12:41 +0200)]
Consider *ListenAddress when warning about low ports and hibernation
Tas (thanks!) noticed that when *ListenAddress is set, Tor would
still warn on startup when *Port is low and hibernation is active.
The patch parses all the *ListenAddress lines, and checks the
ports. Bugfix on 0.2.1.15-rc
Karsten Loesing [Wed, 27 May 2009 21:47:59 +0000 (23:47 +0200)]
Fix unit tests that were broken after last fix of #932.
With the last fix of task 932 (5f03d6c), client requests are only added to
the history when they happen after the start of the current history. This
conflicts with the unit tests that insert current requests first (defining
the start of the client request history) followed by requests in the past.
The fix is to insert requests in chronological order in the unit tests.
Nick Mathewson [Mon, 18 May 2009 20:12:39 +0000 (16:12 -0400)]
Possible fix for crash bug related to event timeouts. [Bug 957]
If we ever add an event, then set it, then add it again, there will be
now two pointers to the event in the event base. If we delete one and
free it, the first pointer will still be there, and possibly cause a
crash later.
This patch adds detection for this case to the code paths in
eventdns.c, and works around it. If the warning message ever
displays, then a cleverer fix is in order.
{I am not too confident that this *is* the fix, since bug 957 is very
tricky. If it is, it is a bugfix on 0.2.0.}
Nick Mathewson [Sun, 17 May 2009 06:01:09 +0000 (02:01 -0400)]
Fix valgrind error when marking a descriptor as never-downloadable.
When we got a descriptor that we (as an authority) rejected as totally
bad, we were freeing it, then using the digest in its RAM to look up its
download status. Caught by arma with valgrind. Bugfix on 0.2.1.9-alpha.
Nick Mathewson [Sun, 17 May 2009 03:57:30 +0000 (23:57 -0400)]
Fix an assertion-failure in memarea_alloc() on 64-bit platforms.
The trick is that we should assert that our next_mem pointer has not
run off the end of the array _before_ we realign the pointer, since
doing that could take us over the end... but only if we're on a system
where malloc() gives us ram in increments smaller than sizeof(void*).
Karsten Loesing [Wed, 13 May 2009 16:14:29 +0000 (18:14 +0200)]
Prevent bridges from publishing router descriptors.
Bridges are not supposed to publish router descriptors to the directory
authorities. It defeats the point of bridges when they are included in the
public relay directory.
This patch puts out a warning and exits when the node is configured as
a bridge and to publish v1, v2, or v3 descriptors at the same time.
Nick Mathewson [Tue, 12 May 2009 20:17:32 +0000 (16:17 -0400)]
Use a mutex to protect the count of open sockets.
This matters because a cpuworker can close its socket when it
finishes. Cpuworker typically runs in another thread, so without a
lock here, we can have a race condition and get confused about how
many sockets are open. Possible fix for bug 939.
Sebastian Hahn [Tue, 12 May 2009 17:48:08 +0000 (19:48 +0200)]
Warn when hibernation and low-port on non-windows is configured
This addresses the first part of bug 918. Users are now warned when
they try to use hibernation in combination with a port below 1024
when they're not on Windows. We don't want to die here, because
people might run Tor as root, use a capabilities system or some
other platform that will allow them to re-attach low ports.
Nick Mathewson [Tue, 12 May 2009 17:54:21 +0000 (13:54 -0400)]
Better debugging output for bug 977 case.
(Don't crash immediately if we have leftover chunks to free after
freeing chunks in a buffer freelist; instead log a debugging message
that might help.)
Roger Dingledine [Sun, 12 Apr 2009 07:56:58 +0000 (07:56 +0000)]
Raise the minimum bandwidth to be a relay from 20000 bytes to 20480
bytes (aka 20KB/s), to match our documentation. Also update
directory authorities so they always assign the Fast flag to relays
with 20KB/s of capacity. Now people running relays won't suddenly
find themselves not seeing any use, if the network gets faster
on average.
Roger Dingledine [Sat, 11 Apr 2009 18:09:15 +0000 (18:09 +0000)]
Finally fix the bug where dynamic-IP relays disappear when their
IP address changes: directory mirrors were mistakenly telling them
their old address if they asked via begin_dir, so they never got
an accurate answer about their new address, so they just vanished
after a day. Should fix bugs 827, 883, and 900 -- but alas, only
after every directory mirror has upgraded.
Roger Dingledine [Sat, 11 Apr 2009 12:06:27 +0000 (12:06 +0000)]
only log that at loglevel notice if there's a problem with the
version. otherwise there's no reason to tell the user we're
doing behind-the-scenes cleaning.
Roger Dingledine [Sat, 11 Apr 2009 12:00:18 +0000 (12:00 +0000)]
Clients replace entry guards that were chosen more than a few months
ago. This change should significantly improve client performance,
especially once more people upgrade, since relays that have been
a guard for a long time are currently overloaded.