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
e385961542
Merge remote branch 'public/bug1954' into maint-0.2.2
2010-09-27 15:39:40 -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
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
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
d073d7d4eb
Consistency issues in load_windows_system_library patch. Thanks Sebastian
2010-09-24 14:16:55 -04:00
Nick Mathewson
9b49a89430
Merge branch 'bug1511'
2010-09-23 23:16:25 -04: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
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
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
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
Sebastian Hahn
4f1e36ca1d
Demote a warn when enabling CellStatistics
...
When the CellStatistics option is off, we don't store cell insertion
times. Doing so would also not be very smart, because there seem to
still be some performance issues with this type of statistics. Nothing
harmful happens when we don't have insertion times, so we don't need to
alarm the user.
2010-09-16 01:13:51 +02:00
Nick Mathewson
144d92d538
finish a comment, lower a variable
2010-09-15 15:41:32 -04:00
Sebastian Hahn
bc081c254a
How many seconds until != timestamp of that date
2010-09-15 21:13:17 +02:00
Nick Mathewson
c18bcc8a55
Merge branch 'bug1184'
2010-09-15 14:20:28 -04:00
Nick Mathewson
87f18c9578
Never queue a cell on a marked circuit
2010-09-15 13:06:54 -04:00
Nick Mathewson
6d8fc4eb38
Add a simple integer-ceiling-division macro before we get it wrong
2010-09-14 22:32:36 -04:00
Nick Mathewson
60e3def3ed
Merge branch 'bug1899'
2010-09-14 22:19:25 -04:00
Nick Mathewson
e2b71d8841
Merge branch 'bug911'
2010-09-14 22:19:22 -04:00
Nick Mathewson
f5b7e039f3
Extract the "do these routers have the same addr:orport" logic into a fn
2010-09-14 22:19:00 -04:00
Nick Mathewson
d9e0550560
Tweak some issues found by arma in bug911 review.
2010-09-14 22:10:32 -04:00
Nick Mathewson
a445daf0cf
Merge remote branch 'sebastian/bug1776_v3'
2010-09-14 13:50:28 -04:00
Nick Mathewson
424ca963ad
Make circuit_resume_edge_reading_helper treat streams more fairly.
...
Previously[*], the function would start with the first stream on the
circuit, and let it package as many cells as it wanted before
proceeding to the next stream in turn. If a circuit had many live
streams that all wanted to package data, the oldest would get
preference, and the newest would get ignored.
Now, we figure out how many cells we're willing to send per stream,
and try to allocate them fairly.
Roger diagnosed this in the comments for bug 1298.
[*] This bug has existed since before the first-ever public release
of Tor. It was added by r152 of Tor on 26 Jan 2003, which was
the first commit to implement streams (then called "topics").
This is not the oldest bug to be fixed in 0.2.2.x: that honor
goes to the windowing bug in r54, which got fixed in e50b7768
by
Roger with diagnosis by Karsten. This is, however, the most
long-lived bug to be fixed in 0.2.2.x: the r54 bug was fixed
2580 days after it was introduced, whereas I am writing this
commit message 2787 days after r152.
2010-09-13 18:59:50 -04:00
Nick Mathewson
b582eb32b8
Add a max_cells arg to connection_edge_process_raw_inbuf
...
I'm going to use this to implement more fairness in
circuit_resume_edge_reading_helper in an attempt to fix bug 1298.
(Updated with fixes from arma and Sebastian)
2010-09-13 18:59:42 -04:00
Nick Mathewson
61b7e36312
Fix function declaration linebreaks at start of relay.c
2010-09-13 17:38:11 -04:00
Nick Mathewson
13f684b573
Merge remote branch 'public/pretty-signature-log'
2010-09-13 15:56:46 -04:00
Nick Mathewson
286f407cd2
Merge remote branch 'sebastian/bug1525'
2010-09-13 01:36:31 -04:00
Nick Mathewson
126832a3f7
Merge branch 'bug1138'
2010-09-12 21:41:45 -04:00
Nick Mathewson
cc0efa8084
Make authorities download consensuses if appropriate
...
An authority should never download a consensus if it has a live one,
but when it doesn't, it should admit that it's not going to get one,
and see if anybody else can give it one.
Fixes 1300, fix on 0.2.0.9-alpha
2010-09-12 21:41:15 -04:00
Nick Mathewson
5634e03302
Clean up a couple more bug1138 issues mentioned by roger on code review
2010-09-12 21:12:17 -04:00
Robert Hogan
22ab997e83
Handle null conn->requested_resource rather than assert
...
Per arma's comments in bug1138
2010-09-12 14:10:16 +01:00
Roger Dingledine
b4942e3435
fix regression introduced by 1a65bdd2
...
noticed while reviewing hoganrobert/bug1138
2010-09-12 00:20:00 -04:00
Nick Mathewson
fca222f0ce
be more consistent in using streamid_t
2010-09-08 10:53:19 -04:00
Nick Mathewson
aa42f941dc
Merge branch 'bug1653'
2010-09-08 10:49:24 -04:00
Nick Mathewson
669fd05ed8
Merge remote branch 'origin/maint-0.2.1'
2010-09-08 10:28:41 -04:00
Nick Mathewson
2bc82324d5
Remove a needless keep_open_until_flushed
2010-09-08 10:23:29 -04:00
Sebastian Hahn
303beead53
Kill warn when picking bridges without bw weight
...
Bridges and other relays not included in the consensus don't
necessarily have a non-zero bandwidth capacity. If all our
configured bridges had a zero bw capacity we would warn the
user. Change that.
2010-09-06 18:44:11 +02:00