Roger Dingledine
a58610a87e
even more comment
2010-09-28 23:50:56 -04:00
Nick Mathewson
f3e8bc391a
Remove the has_old_dnsworkers flag.
2010-09-28 23:37:45 -04:00
Roger Dingledine
512433346f
improve code comments, based on comments from nick
2010-09-28 23:27:00 -04:00
Roger Dingledine
9997676802
handle ugly edge case in retrying entrynodes
...
Specifically, a circ attempt that we'd launched while the network was
down could timeout after we've marked our entrynodes up, marking them
back down again. The fix is to annotate as bad the OR conns that were
around before we did the retry, so if a circuit that's attached to them
times out we don't do anything about it.
2010-09-28 22:32:38 -04:00
Roger Dingledine
7de1caa33f
Actually notice when our last entrynode goes down
...
Otherwise we'd never set have_minimum_dir_info to false, so the
"optimistic retry" would never trigger.
2010-09-28 21:59:31 -04:00
Roger Dingledine
bb22360bad
optimistically retry EntryNodes on socks request
...
We used to mark all our known bridges up when they're all down and we
get a new socks request. Now do that when we've set EntryNodes too.
2010-09-28 19:10:23 -04:00
Roger Dingledine
8bac188572
remove a redundant assert
2010-09-28 19:10:22 -04:00
Roger Dingledine
127f37ad29
refactor; no actual changes
2010-09-28 19:10:22 -04:00
Roger Dingledine
8d1fe50284
Merge branch 'maint-0.2.2'
2010-09-28 18:42:04 -04:00
Roger Dingledine
09a715bb72
Merge branch 'maint-0.2.1' into maint-0.2.2
2010-09-28 18:37:55 -04:00
Roger Dingledine
339993b409
actually retry bridges when your network goes away
2010-09-28 18:36:15 -04:00
Nick Mathewson
73d93c033d
Autodetect the number of CPUs when possible if NumCPUs==0
...
This is needed for IOCP, since telling the IOCP backend about all
your CPUs is a good idea. It'll also come in handy with asn's
multithreaded crypto stuff, and for people who run servers without
reading the manual.
2010-09-28 14:42:21 -04:00
Nick Mathewson
c612ddee17
Add a new option to enable/disable IOCP support
2010-09-28 14:01:45 -04:00
Nick Mathewson
d6e255edbd
Merge branch 'microdesc_dl_v2'
2010-09-28 00:46:01 -04:00
Roger Dingledine
f006f02ca4
Merge branch 'maint-0.2.2'
2010-09-27 18:33:12 -04:00
Roger Dingledine
a467bf5fbb
a dir-spec entry for refuseunknownexits
...
plus quiet a log line
2010-09-27 18:32:09 -04:00
Nick Mathewson
d45b912058
Clean long-unlisted microdescs from the cache
2010-09-27 18:05:01 -04:00
Nick Mathewson
3a492d31d5
Download microdescriptors if you're a cache
...
This commit adds some functions to see what microdescriptors we're missing,
and adds fetch-microdesc/store-microdesc logic to the directory code.
2010-09-27 18:04:44 -04:00
Nick Mathewson
e34d0d3365
When updating routerdesc downloads, look specifically at the ns consensus
...
This will be needed when "get_live_consensus" potentially returns a
microdesc consensus.
2010-09-27 18:04:44 -04:00
Nick Mathewson
9f5b752e4f
Actually parse the m lines from a microdesc consensus
2010-09-27 18:04:44 -04:00
Nick Mathewson
4e0f7f4ffc
Code to download, parse, and store microdesc consensuses
2010-09-27 18:04:43 -04:00
Nick Mathewson
4bfc64ba1c
New function to grab a directory connection fetching a resource
...
We need this to tell if a given consensus flavor is being downloaded
or not.
2010-09-27 18:04:43 -04:00
Nick Mathewson
af7fab020a
Merge remote branch 'origin/maint-0.2.2'
...
Conflicts:
src/or/config.c
2010-09-27 17:52:20 -04:00
Roger Dingledine
9d7f0badb5
changelog entry for bug1751
2010-09-27 17:44:00 -04:00
Nick Mathewson
614eeb378b
Merge remote branch 'sebastian/bug1964' into maint-0.2.2
2010-09-27 17:26:32 -04:00
Sebastian Hahn
c951830002
Fix a bridge segfault
...
When we enabled support to change statistic options without restarting
Tor we forgot to initialize geoip_countries. Fix that.
2010-09-27 23:19:25 +02:00
Nick Mathewson
c97072ef34
Merge branch 'bug1751_enabling' into maint-0.2.2
2010-09-27 17:08:03 -04:00
Nick Mathewson
6c5b9ba625
Change bug1751 enabling code based on comments from arma
2010-09-27 17:07:22 -04:00
Nick Mathewson
5c83c06c98
Merge branch 'bufferevent5'
2010-09-27 16:48:25 -04:00
Nick Mathewson
6950749c0a
Make the bufferevent code use the renegotiation-reenabling hack
2010-09-27 16:07:14 -04:00
Nick Mathewson
501399d14a
Merge remote branch 'origin/maint-0.2.2'
2010-09-27 15:42:08 -04:00
Nick Mathewson
e385961542
Merge remote branch 'public/bug1954' into maint-0.2.2
2010-09-27 15:39:40 -04:00
Nick Mathewson
b7ae108e18
Always defer bufferevent_openssl callbacks to avoid reentrant invocations
2010-09-27 14:29:42 -04:00
Nick Mathewson
c93cceb919
note that libevent does not have an an easy way to reset buckets atm
2010-09-27 14:22:18 -04:00
Nick Mathewson
b49cf6a77a
Fix whitespace in bufferevents branch
2010-09-27 14:22:18 -04:00
Nick Mathewson
a16ed90ec8
Document and/or fix stuff found by Sebastian in code review
...
Thanks to Sebastian for his code-review of the bufferevents patch series.x
2010-09-27 14:22:18 -04:00
Sebastian Hahn
865bea3b89
Some bufferevents related fixes and pointers for nickm
2010-09-27 14:22:18 -04:00
Nick Mathewson
beb52352f2
Fix build with automake 1.6
...
automake 1.6 doesn't like using a conditional += to add stuff to foo_LDADD.
Instead you need to conditionally define a variable, then non-conditionally
put that variable in foo_LDADD.
2010-09-27 14:22:18 -04:00
Nick Mathewson
ffd5070b04
Convert bufferevents to use rate-limiting.
...
This requires the latest Git version of Libevent as of 24 March 2010.
In the future, we'll just say it requires Libevent 2.0.5-alpha or
later.
Since Libevent doesn't yet support hierarchical rate limit groups,
there isn't yet support for tracking relayed-bytes separately when
using the bufferevent system. If a future version does add support
for hierarchical buckets, we can add that back in.
2010-09-27 14:22:18 -04:00
Nick Mathewson
98ec959c9c
Fix a couple of bufferevent incompatibilities that snuck in.
2010-09-27 14:22:18 -04:00
Nick Mathewson
0c9b64d449
Get zlib compression working with bufferevents.
2010-09-27 14:22:11 -04:00
Nick Mathewson
9796b9bfa6
Implement SOCKS-client support for bufferevents
2010-09-27 12:31:14 -04:00
Nick Mathewson
c74a4ab515
Documentation for a few bufferevent functions.
2010-09-27 12:31:14 -04:00
Nick Mathewson
bd3612cd2b
Get SSL connections and linked connections working with bufferevents.
...
Clients are now verified to work and build circuits correctly. There
are still a few warnings given here and there that I need to look into.
2010-09-27 12:31:14 -04:00
Nick Mathewson
fc4ddafab8
Make control connections use bufferevents
2010-09-27 12:31:14 -04:00
Nick Mathewson
84bb5d573c
Fix crash/warning bug when we get an unexpected close.
...
This was possible if we have already decided to close a bufferevent
connection, but the other side decides to close it first.
2010-09-27 12:31:13 -04:00
Nick Mathewson
44375d4eb8
Add a 0-pullup version of fetch_from_evbuffer_socks
2010-09-27 12:31:13 -04:00
Nick Mathewson
f6899f3a74
Documentation for inspect_evbuffer
2010-09-27 12:31:13 -04:00
Nick Mathewson
698085d56e
Add pullup-free version of fetch_from_evbuffer_http
2010-09-27 12:31:13 -04:00
Nick Mathewson
4af6887d20
Add support for linked connections with bufferevent_pair.
...
Also, set directory connections (linked and otherwise) to use bufferevents.
Also, stop using outbuf_flushlen anywhere except for OR connections.
2010-09-27 12:31:13 -04:00
Nick Mathewson
b63f6518cb
Add bufferevent support for outgoing connections; exits are now supported.
2010-09-27 12:31:13 -04:00
Nick Mathewson
ddcb59bb70
Fix more remaining users of inbuf/outbuf to handle bufferevents instead.
2010-09-27 12:31:13 -04:00
Nick Mathewson
5279036148
Be a little more abstract about which connection type use bufferevents
2010-09-27 12:31:13 -04:00
Nick Mathewson
9f8027abfd
Make a function to mark a connection and set hold_open_until_flushed.
2010-09-27 12:31:13 -04:00
Nick Mathewson
d830eb366a
Allow hold-open-until-flushed logic to work for bufferevents.
2010-09-27 12:29:43 -04:00
Nick Mathewson
ec10c044fb
Move the "stop writing when the buffer is empty" logic to cnnection_finished_flushing
2010-09-27 12:29:43 -04:00
Nick Mathewson
63079efb87
Add a fetch_from_evbuffer_http
2010-09-27 12:29:42 -04:00
Nick Mathewson
73feedb8b3
Have edge connections use fetch_from_evbuffer_socks when appropriate.
2010-09-27 12:29:42 -04:00
Nick Mathewson
c6e22ae2b7
Basic bufferevent callbacks
...
These are based strongly on connection_handle_read and
connection_handle_write, but hopefully without so much mixture of IO
logic and Tor logic.
2010-09-27 12:29:42 -04:00
Nick Mathewson
a0f4841e2b
Refactor SOCKS parsing code to handle evbuffers.
...
Now all of the logic is in a parse_socks() function that gets data
from a buf_t or evbuffer-specific wrapper.
2010-09-27 12:29:42 -04:00
Nick Mathewson
4836014168
Clone fetch_var_cell_from_buf() for evbuffers.
2010-09-27 12:28:43 -04:00
Nick Mathewson
0514917800
Add a new connection_fetch_from_buf_line() that can handle bufferevents
2010-09-27 12:28:43 -04:00
Nick Mathewson
5448501479
New bufferevent-related check in assert_connection_ok().
...
{Make sure that if we have a bufferevent on a connection, we do not have the
other libevent/buffering-related fields set.}
2010-09-27 12:28:43 -04:00
Nick Mathewson
076025476a
Add bufferevent versions of connection_write/fetch_to/from_buf.
2010-09-27 12:28:43 -04:00
Nick Mathewson
200921dc31
Refactor users of buf_datalen to bufferevent-friendly version.
2010-09-27 12:28:43 -04:00
Nick Mathewson
57e7b54b7b
Teach read_event/write_event manipulators about bufferevents.
...
Add an --enable-bufferevents config switch.
2010-09-27 12:28:43 -04:00
Nick Mathewson
94aac84a71
Remove never-actually-finished code to use readv and writev for IO.
...
We'll get this feature for free with bufferevents, so there's no good reason
to clone it in Tor.
2010-09-27 12:28:43 -04:00
Nick Mathewson
26811a8e2d
Merge remote branch 'origin/maint-0.2.2'
2010-09-27 12:26:23 -04:00
Nick Mathewson
24a45f54d2
Merge branch 'bug1805' into maint-0.2.2
2010-09-27 12:25:32 -04:00
Nick Mathewson
9c8fb75edf
Clean up some bug1805 comments based on arma's feedback
2010-09-27 12:23:49 -04:00
Nick Mathewson
1cbdbff961
Merge remote branch 'mikeperry/bug1952-merge' into maint-0.2.2
2010-09-27 12:17:41 -04:00
Mike Perry
0ff86042ac
Implement new Wxx constraints.
...
Cases 1 and 3b are provably correct. Case 2b has a fallback to first try to
maximize entropy.
2010-09-27 08:53:41 -07:00
Nick Mathewson
83f9667fe8
Bump the Tor version in master to 0.2.3.0-alpha-dev
...
0.2.2.x development will continue in branch maint-0.2.2.
master is now out of feature freeze.
Let's not go crazy right away. :)
2010-09-24 15:15:07 -04:00
Nick Mathewson
d073d7d4eb
Consistency issues in load_windows_system_library patch. Thanks Sebastian
2010-09-24 14:16:55 -04:00
Nick Mathewson
c8e1538a0b
Merge remote branch 'sebastian/continuation'
2010-09-24 13:43:55 -04:00
Sebastian Hahn
851255170a
Note that the torrc format doesn't need nl at end
2010-09-24 13:32:27 +02:00
Nick Mathewson
9b49a89430
Merge branch 'bug1511'
2010-09-23 23:16:25 -04:00
Nick Mathewson
0a0cc4599f
Tweak continuation-and-comment logic
...
I think there was a read-off-the-end-of-the-buffer bug that I fixed.
At least I added some good comments, I hope.
2010-09-23 22:58:04 -04:00
Sebastian Hahn
1d29ad891e
Add new torrc line continuation unit tests
...
We want to make sure that we don't break old torrc files that might have
used something like this made-up example:
ContactInfo UberUser <uber@user.com> # /// Fake email! \\\
Log info file /home/nick.mathewson/projects/tor-info.log
And we also want to support the following style of writing your torrc:
ExcludeNodes \
# Node1337 is run by the Bavarian Illuminati
Node1337, \
# The operator of Node99 looked at me funny
Node99
The code already handles both cases, but the unit test should help prove
it.
2010-09-23 22:46:13 +02:00
Nick Mathewson
c9cb4f0a0e
Rename has_completed_circuit to can_complete_circuit
...
Also redocument it. Related to #1362 .
2010-09-22 01:52:57 -04:00
Nick Mathewson
31f22505a6
Merge remote branch 'arma/bug1362'
2010-09-22 01:45:57 -04:00
Nick Mathewson
4ef9ccc883
Changes to bug1959_part1 on review from arma.
...
Significant one: we want to say "not enough entry nodes descriptors, so we
can't build circuits" only when we have 0 descriptors.
2010-09-22 01:30:23 -04:00
Nick Mathewson
49c177437b
Make our min-info check also check for entry node presence
...
Part of a fix for bug1959
2010-09-21 15:17:40 -04:00
Nick Mathewson
52db5c2539
Even more accurate handling for shifting accounting intervals
...
Roger correctly pointed out that my code was broken for accounting
periods that shifted forwards, since
start_of_accounting_period_containing(interval_start_time) would not
be equal to interval_start_time, but potentially much earlier.
2010-09-21 14:59:43 -04:00
Nick Mathewson
aa7f55c45f
Use load_windows_system_library in place of LoadLibrary
2010-09-21 14:40:10 -04:00
Nick Mathewson
418e6caeeb
New function to load windows system libraries
...
This function uses GetSystemDirectory() to make sure we load the version
of the library from c:\windows\system32 (or local equivalent) rather than
whatever version lives in the cwd.
2010-09-21 14:39:23 -04:00
Nick Mathewson
e476ffc2ba
Merge branch 'bug1789'
2010-09-21 14:29:59 -04:00
Nick Mathewson
9cba61eb8c
Bug1789 cleanups suggested by arma
...
The significant one is that we look at RelayBandwidthRate if it is set.
2010-09-21 14:02:04 -04:00
Roger Dingledine
fe42f10954
log when we finish a circuit after being offline
2010-09-21 02:16:43 -04:00
John Brooks
fb34c66e83
Correct default for RendPostPeriod in docs
2010-09-21 01:05:47 -04:00
Nick Mathewson
ef5925237d
First cut of code to enable RefuseUnknownExits
...
The RefuseUnknownExits config option is now a tristate, with "1"
meaning "enable it no matter what the consensus says", "0" meaning
"disable it no matter what the consensus says", and "auto" meaning "do
what the consensus says". If the consensus is silent, we enable
RefuseUnknownExits.
This patch also changes the dirserv logic so that refuseunknownexits
won't make us cache unless we're an exit.
2010-09-21 01:03:29 -04:00
Nick Mathewson
5a55662a6b
Merge branch 'bug1956'
2010-09-21 00:07:45 -04:00
Roger Dingledine
47b23bd03e
A start at a patch for bug 1943 (alignment issues)
2010-09-20 18:40:32 -04:00
Nick Mathewson
1411842933
Count unknown authorities as unknown only once, not once per signature.
...
Do not double-report signatures from unrecognized authorities both as
"from unknown authority" and "not present". Fixes bug 1956, bugfix on
0.2.2.16-alpha.
2010-09-20 13:33:57 -04:00
Sebastian Hahn
ff5ffd1776
Attempt to fix compilation on Windows
...
Our attempt to make compilation work on old versions of Windows
again while keeping wince compatibility broke the build for Win2k+.
helix reports this patch fixes the issue for WinXP. Bugfix on
0.2.2.15-alpha; related to bug 1797.
2010-09-19 13:39:30 +02:00
Roger Dingledine
85cad94221
bump to 0.2.2.16-alpha-dev
2010-09-17 05:07:59 -04:00
Roger Dingledine
61e0079ab2
best tor ever!
2010-09-17 02:06:34 -04:00
Nick Mathewson
01c6b01137
I hear we are close to a release. Clean up the whitespace.
2010-09-16 15:44:14 -04:00
Nick Mathewson
c009c9da01
Merge remote branch 'sebastian/bug1921'
2010-09-16 10:52:43 -04:00
Roger Dingledine
0ac67bf3c3
perconnbwrate and perconnbwburst consensus params
2010-09-16 00:17:39 -04:00