Roger Dingledine
165aaf560a
Merge branch 'maint-0.2.2'
2010-10-01 14:12:11 -04:00
Roger Dingledine
734ba2f937
fix comment
2010-10-01 14:11:08 -04:00
Roger Dingledine
6cb5383e56
log when we guess our ip address, not just when we fail
2010-10-01 13:32:38 -04:00
Roger Dingledine
6e00877fa3
bump to 0.2.2.17-alpha-dev
2010-10-01 04:59:11 -04:00
Roger Dingledine
a3f488a887
bump to 0.2.2.17-alpha
2010-09-30 17:49:11 -04:00
Nick Mathewson
495e630a49
Merge branch 'tor-fw-squashed2'
...
Conflicts:
src/common/util.c
2010-09-30 16:22:39 -04:00
Nick Mathewson
0e9d969bb2
Fix space and formatting issues
2010-09-30 15:55:42 -04:00
Nick Mathewson
d39e46c26d
Merge remote branch 'origin/maint-0.2.2'
2010-09-30 15:30:14 -04:00
Nick Mathewson
2835dcf69f
#if-out the fw-helper code in util.c when building on windows
2010-09-30 12:58:48 -04:00
Nick Mathewson
1779fee27a
Turn select() usage in tor-fw-helper into a function.
2010-09-30 12:18:21 -04:00
Steven Murdoch
a6dc00fa75
Start tor-fw-helper in the background, and log whatever it outputs
2010-09-30 11:40:37 -04:00
Jacob Appelbaum
3eaa9a376c
Changes to tor-fw-helper, some based on Nick's review
...
* MINIUPNPC rather than the generic UPNP
* Nick suggested a better abstraction model for tor-fw-helper
* Fix autoconf to build with either natpmp or miniupnpc
* Add AM_PROG_CC_C_O to fix automake complaint
* update spec to address nickm's concern
* refactor nat-pmp to match upnp state
* we prefer tor_snprintf to snprintf
* link properlty for tor_snprintf
* rename test_commandline_options to log_commandline_options
* cast this uint as an int
* detect possible FD_SETSIZE errors
* make note about future enhancements for natpmp
* add upnp enhancement note
* ChangeLog entry
* doxygen and check-spaces cleanup
* create tor-fw-helper.1.txt
2010-09-30 11:39:34 -04:00
Jacob Appelbaum
9cc76cf005
First implementation of tor-fw-helper.
...
tor-fw-helper is a command-line tool to wrap and abstract various
firewall port-forwarding tools.
This commit matches the state of Jacob's tor-fw-helper branch as of
23 September 2010.
(commit msg by Nick)
2010-09-30 11:37:53 -04:00
Nick Mathewson
3ad43ef75f
Whitespace fixes on recent merges to master.
2010-09-30 01:36:36 -04:00
Sebastian Hahn
0702429cf7
Note an XXX about potential overflow
2010-09-30 06:24:01 +02:00
Sebastian Hahn
73def430e3
Use an upper and lower bound for bridge weights
...
When picking bridges (or other nodes without a consensus entry (and
thus no bandwidth weights)) we shouldn't just trust the node's
descriptor. So far we believed anything between 0 and 10MB/s, where 0
would mean that a node doesn't get any use from use unless it is our
only one, and 10MB/s would be a quite siginficant weight. To make this
situation better, we now believe weights in the range from 20kB/s to
100kB/s. This should allow new bridges to get use more quickly, and
means that it will be harder for bridges to see almost all our traffic.
2010-09-30 06:17:54 +02:00
Sebastian Hahn
45c51e3238
Fix check-spaces
2010-09-30 06:17:32 +02:00
Roger Dingledine
ea6ac0f0d1
Merge branch 'maint-0.2.2'
2010-09-30 00:10:14 -04:00
Roger Dingledine
d17fcad3ae
Merge commit 'mikeperry/bug1772' into maint-0.2.2
2010-09-30 00:00:06 -04:00
Mike Perry
7eedd0f6bc
Nominaly lower the minimum timeout value to 1500.
...
This won't change any behavior, since it will still be rounded back
up to 2seconds, but should reduce the chances of some extra warns.
2010-09-29 20:58:09 -07:00
Roger Dingledine
3cbe463e96
Merge branch 'bug1772' into maint-0.2.2
2010-09-29 23:52:18 -04:00
Roger Dingledine
f2aa8f08cb
fix two casts
2010-09-29 23:51:25 -04:00
Mike Perry
c8f731fabb
Comment network liveness and change detection behavior.
2010-09-29 19:35:40 -07:00
Roger Dingledine
ceb3d4d578
no measurement circs if not enough build times
...
In the first 100 circuits, our timeout_ms and close_ms
are the same. So we shouldn't transition circuits to purpose
CIRCUIT_PURPOSE_C_MEASURE_TIMEOUT, since they will just timeout again
next time we check.
2010-09-29 18:05:10 -04:00
Roger Dingledine
7f10707c42
refactor and recomment; no actual changes
2010-09-29 18:01:22 -04:00
Roger Dingledine
355fc63790
Merge branch 'maint-0.2.2'
2010-09-29 17:21:43 -04:00
Roger Dingledine
48cd096276
Merge commit 'mikeperry/bug1739' into maint-0.2.2
2010-09-29 17:17:59 -04:00
Roger Dingledine
474e4d2722
Merge commit 'mikeperry/bug1740' into maint-0.2.2
2010-09-29 17:05:38 -04:00
Mike Perry
4324bb1b21
Cap the circuit build timeout to the max time we've seen.
...
Also, cap the measurement timeout to 2X the max we've seen.
2010-09-29 11:49:43 -07:00
Mike Perry
11910cf5b3
Do away with the complexity of the network liveness detection.
...
We really should ignore any timeouts that have *no* network activity for their
entire measured lifetime, now that we have the 95th percentile measurement
changes. Usually this is up to a minute, even on fast connections.
2010-09-29 11:49:43 -07:00
Mike Perry
0744a175af
Fix state checks on liveness handling.
...
If we really want all this complexity for these stages here, we need to handle
it better for people with large timeouts. It should probably go away, though.
2010-09-29 11:49:43 -07:00
Mike Perry
9a77743b7b
Fix non-live condition checks.
...
Rechecking the timeout condition was foolish, because it is checked on the
same codepath. It was also wrong, because we didn't round.
Also, the liveness check itself should be <, and not <=, because we only have
1 second resolution.
2010-09-29 11:49:31 -07:00
Mike Perry
c5b5643965
Send control port events for timeouts.
...
We now differentiate between timeouts and cutoffs by the REASON string and
the PURPOSE string.
2010-09-29 11:46:36 -07:00
Mike Perry
5aa4564ab9
Only count timeout data for 3 hop circuits.
...
Use 4/3 of this timeout value for 4 hop circuits, and use half of it for
canabalized circuits.
2010-09-29 11:41:27 -07:00
Roger Dingledine
0ed8d5a537
allow countries and IP addresses in EntryNodes
2010-09-29 03:00:06 -04:00
Roger Dingledine
50720a9a4f
make c612ddee
compile with old libevents
2010-09-29 02:50:46 -04:00
Nick Mathewson
703eb087f5
Merge remote branch 'origin/maint-0.2.2'
2010-09-29 00:38:44 -04:00
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