Nick Mathewson
511c900686
Merge branch 'master' of git-rw.torproject.org:/tor
2017-05-24 10:25:00 -04:00
Nick Mathewson
b80a35e683
Improve the message we log on unexpected dirauth status code
...
It's still not great, but should be less confusing what's wrong
here.
Closes ticket 1121.
2017-05-24 09:08:59 -04:00
Roger Dingledine
cabad0b6c7
remove unused node_get_published_on function
...
in retrospect, we should have removed this with commit 1289474d
as part of #11742 , which was the last caller of it.
2017-05-24 00:43:44 -04:00
Roger Dingledine
4e3ea6d5c8
fix minor grammar error in comment
2017-05-22 20:06:38 -04:00
Alexander Færøy
9604980733
Log a warning if we receive a disallowed compression method for an anonymous connection.
...
See: https://bugs.torproject.org/22305
2017-05-22 15:52:41 +00:00
Nick Mathewson
9a50c73104
Merge remote-tracking branch 'ahf/bugs/22305'
2017-05-22 10:57:26 -04:00
Alexander Færøy
5a0eab68e1
Ensure that only GZip and Zlib compression is handled for anonymous connections.
...
See: https://bugs.torproject.org/22305
2017-05-22 14:45:12 +00:00
Alexander Færøy
2b26ac1390
Refactor error path handling in connection_dir_client_reached_eof().
...
This patch lifts the return value, rv, variable to the beginning of the
function, adds a 'done' label for clean-up and function exit and makes
the rest of the function use the rv value + goto done; instead of
cleaning up in multiple places.
See: https://bugs.torproject.org/22305
2017-05-22 14:42:18 +00:00
Nick Mathewson
cfe0a45750
Fix a compilation warning about duplicate typedef
2017-05-22 10:39:43 -04:00
Nick Mathewson
e5a929fef8
Raise common code for creating circuit_guard_state_t
...
This will help if we ever need to add more fields or change the
semantics of existing fields.
2017-05-22 09:13:18 -04:00
Nick Mathewson
b2e9a107b7
Merge remote-tracking branch 'asn/bug21969_bridges'
2017-05-22 09:09:16 -04:00
George Kadianakis
52498b8183
Set guard state on bridge descriptor fetches.
...
We used to not set the guard state in launch_direct_bridge_descriptor_fetch().
So when a bridge descriptor fetch failed, the guard subsystem would never
learn about the fail (and hence the guard's reachability state would not
be updated).
2017-05-22 15:57:33 +03:00
Alexander Færøy
26795da900
Don't add "Accept-Encoding" header if directory connection is anonymous.
...
See: https://bugs.torproject.org/22305
2017-05-22 12:36:27 +00:00
Nick Mathewson
90894c87a5
Merge branch 'maint-0.3.0'
2017-05-22 08:32:18 -04:00
Nick Mathewson
5c52d3c2c0
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-05-22 08:32:07 -04:00
Roger Dingledine
6e5486b11a
dir auths reject 0.2.9.x for x<5, due to bug 20499
...
Directory authorities now reject relays running versions
0.2.9.1-alpha through 0.2.9.4-alpha, because those relays
suffer from bug 20499 and don't keep their consensus cache
up-to-date.
Resolves ticket 20509.
2017-05-22 08:31:39 -04:00
Roger Dingledine
a18b41cc77
fix typo in comment
2017-05-19 22:14:56 -04:00
Nick Mathewson
4e6b13a38a
Fix uninitialized-variable warning on options_init_from_string().
2017-05-19 15:18:27 -04:00
Nick Mathewson
69ef94820b
Merge branch 'add_rust_squashed'
2017-05-19 08:47:18 -04:00
Sebastian Hahn
f8ef7c65d1
Add some Rust utility functions and print support
...
This gives an indication in the log that Tor was built with Rust
support, as well as laying some groundwork for further string-returning
APIs to be converted to Rust
2017-05-19 08:47:10 -04:00
Nick Mathewson
92d335b3dc
Merge remote-tracking branch 'jigsaw/torrc-dir-fix-1922_squashed2'
2017-05-19 08:46:13 -04:00
Nick Mathewson
d34fa32ece
Merge branch 'ticket21953_029'
2017-05-19 06:49:04 -04:00
Nick Mathewson
15cc41e664
Define HeapEnableTerminationOnCorruption if the headers don't.
...
MSDN says that it's always going to be 1, and they're usually pretty
accurate about that.
Fixes a bug in 21953.
2017-05-19 06:46:49 -04:00
Roger Dingledine
553cd7f0c5
fix typo
2017-05-19 02:06:44 -04:00
Daniel Pinto
ba3a5f82f1
Add support for %include funcionality on torrc #1922
...
config_get_lines is now split into two functions:
- config_get_lines which is the same as before we had %include
- config_get_lines_include which actually processes %include
2017-05-18 23:44:16 +01:00
Nick Mathewson
b214c2c095
Merge branch 'maint-0.3.0'
2017-05-18 10:06:27 -04:00
Nick Mathewson
935cd77f62
Merge branch 'bug22252_029' into maint-0.3.0
2017-05-18 10:06:06 -04:00
Nick Mathewson
2ba58f275c
Fix crash when starting with LearnCircuitBuildTimeout 0.
...
Before we've set our options, we can neither call get_options() nor
networkstatus_get_latest_consensus().
Fixes bug 22252; bugfix on 4d9d2553ba
in 0.2.9.3-alpha.
2017-05-16 11:20:12 -04:00
Nick Mathewson
bbeba2412e
Fix resource leak in parse_consensus_request()
...
We were allocating diff_hash_in_url on some URLs, but not freeing it.
Fixes CID 1409669. Bug not in any released Tor.
2017-05-16 10:47:41 -04:00
Nick Mathewson
2ca827104d
Report deleted consensuses as NOT_FOUND rather than AVAILABLE
...
This bug happened because of a bogus pointer check in
consdiffmgr_find_consensus(), not in any released Tor.
Fixes CID 1409670. Good catch, Coverity!
2017-05-16 10:44:24 -04:00
Nick Mathewson
d29f494ec2
Merge branch 'maint-0.3.0'
2017-05-16 08:39:36 -04:00
Nick Mathewson
492f8a7c44
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-05-16 08:39:22 -04:00
Nick Mathewson
a7bcab2639
Merge branch 'maint-0.2.8' into maint-0.2.9
2017-05-16 08:38:59 -04:00
teor
5b45d73293
Update fallback directory mirrors in May 2017
...
Replace the 177 fallbacks originally introduced in Tor 0.2.9.8 in
December 2016 (of which ~126 were still functional), with a list of
151 fallbacks (32 new, 119 existing, 58 removed) generated in May 2017.
Resolves ticket 21564.
2017-05-16 19:02:42 +10:00
Nick Mathewson
a546487287
Merge branch 'maint-0.3.0'
2017-05-15 18:24:38 -04:00
Nick Mathewson
294d80044d
remove a variable I missed
2017-05-15 18:16:58 -04:00
Nick Mathewson
d3279d4304
Do not try to uncompress an empty spool
2017-05-15 18:13:38 -04:00
Nick Mathewson
460b923026
fix a memory leak
2017-05-15 18:13:20 -04:00
Nick Mathewson
f9d8ade912
Dircache protocol version 2 adds support for diffs
2017-05-15 17:53:36 -04:00
Nick Mathewson
da6b00443c
Try not to mess up caches with the X-Or-Diff-From-Consensus header
2017-05-15 17:53:15 -04:00
Nick Mathewson
4531fdbbff
Split consensus-request parsing into a separate function
...
This ought to make the control flow a tiny bit more readable.
2017-05-15 17:51:53 -04:00
Nick Mathewson
eb3c8d376d
Prop140, continued: accept "diff/<HASH>" in URLs, per proposal.
2017-05-15 17:42:17 -04:00
Nick Mathewson
afef059795
Merge remote-tracking branch 'public/prop140_aftermath_cfg'
2017-05-15 17:26:47 -04:00
Nick Mathewson
dae1242532
Merge branch 'ahf_bugs_21667_2_squashed'
2017-05-15 17:22:12 -04:00
Alexander Færøy
9e3f304113
Fix dir_handle_get/... test-cases for prop#278 support.
...
See: https://bugs.torproject.org/21667
2017-05-15 17:21:55 -04:00
Alexander Færøy
008194035f
Handle non-compressed requests gracefully.
...
This patch makes us use FALLBACK_COMPRESS_METHOD to try to fetch an
object from the consensus diff manager in case no mutually supported
result was found. This object, if found, is then decompressed using the
spooling system to the client.
See: https://bugs.torproject.org/21667
2017-05-15 17:21:55 -04:00
Alexander Færøy
8d730af0f7
Remove old consensus fetching code from handle_get_current_consensus().
...
This patch removes the calls to spooled_resource_new() when trying to
download the consensus. All calls should now be going through the
consdiff manager.
See: https://bugs.torproject.org/21667
2017-05-15 17:21:55 -04:00
Alexander Færøy
fade313ba3
Fix too wide line from make check-spaces
.
...
See: https://bugs.torproject.org/21667
2017-05-15 17:21:55 -04:00
Alexander Færøy
ae33deb91d
Check for best consensus when no consensusdiff was found.
...
This patch ensures that we use the current consensus in the case where
no consensus diff was found or a consensus diff wasn't requested.
See: https://bugs.torproject.org/21667
2017-05-15 17:21:55 -04:00
Nick Mathewson
7591518d16
Copy valid/fresh-until and signatories values into diffs.
2017-05-15 17:21:55 -04:00
Nick Mathewson
fd1190581d
Store fresh/valid-until and signatories values on all consensus objects.
2017-05-15 17:21:55 -04:00
Nick Mathewson
dcc533fb13
Implement functions to expose valid/fresh-until and voters
...
These still won't do anything till I get the values to be filled in.
Also, I changed the API a little (with corresponding changes in
directory.c) to match things that it's easier to store.
2017-05-15 17:21:55 -04:00
Nick Mathewson
2f06345db3
Move stub accessor functions a level higher, to consdiffmgr
2017-05-15 17:21:55 -04:00
Alexander Færøy
ef2a62b2ff
Fetch the current consensus from the conscache subsystem.
...
This patch changes handle_get_current_consensus() to make it read the
current consensus document from the consensus caching subsystem.
See: https://bugs.torproject.org/21667
2017-05-15 17:21:55 -04:00
Nick Mathewson
3b8888c544
Initialize the HS cache at startup
...
Failure to do this caused an assertion failure with #22246 . This
assertion failure can be triggered remotely, so we're tracking it as
medium-severity TROVE-2017-002.
2017-05-15 13:49:29 -04:00
Nick Mathewson
71a21256b0
Merge branch 'bug22245_024'
2017-05-15 11:46:55 -04:00
Nick Mathewson
a6514b8a20
Fix a logic error in hibernate.c
...
Closes bug 22245; bugfix on 0.0.9rc1, when bandwidth accounting was
first introduced.
Found by Andrey Karpov and reported at https://www.viva64.com/en/b/0507/
2017-05-15 11:43:18 -04:00
Nick Mathewson
0e348720fc
Fix assertion to actually have a chance of failing
...
This assertion can only fail if we mess up some of our other code,
but let's try to get it right.
Closes 22244.
2017-05-15 11:27:12 -04:00
Nick Mathewson
1ec45bb546
Merge branch 'bug18100_029'
2017-05-15 11:19:44 -04:00
Nick Mathewson
4473271c66
Fix the TRPOXY typo in connection_edge.c
...
Also add a get_options() call so it compiles.
Fixes bug 18100; bugfix on 0.2.6.3-alpha. Patch from "d4fq0fQAgoJ".
2017-05-15 11:16:50 -04:00
Nick Mathewson
d3a39cf8d0
Merge remote-tracking branch 'public/bug20270_029'
2017-05-15 10:45:20 -04:00
Alexander Færøy
363f4b8db5
Add stub functions for querying metadata about the consensus.
2017-05-13 01:05:15 +02:00
Alexander Færøy
64116ab97f
Fix tautological constant out-of-range comparison warnings.
2017-05-12 17:59:29 +02:00
Alexander Færøy
a1e8ef0076
Fix DoubleNL warning from make check-spaces
.
2017-05-12 17:57:11 +02:00
Nick Mathewson
077d3085ec
actually enable background compresion for consensuses
2017-05-12 17:45:55 +02:00
Nick Mathewson
db370bb8a8
Test fix: expect old consensuses to be deleted if not deflate-compressed
2017-05-12 17:45:44 +02:00
Nick Mathewson
30dfb36148
consdiffmgr: Reload latest consensus entries on start.
2017-05-12 17:45:33 +02:00
Nick Mathewson
8100305e71
consdiffmgr: expose cached consensuses
2017-05-12 17:45:24 +02:00
Nick Mathewson
7b0dcf5c4a
Cleanup logic: only retain zlib-compressed consensuses
...
Now that we're making a bunch of these with consdiffmgr, we should
throw out all but one when we get a newer consensus.
2017-05-12 17:45:15 +02:00
Nick Mathewson
151cd121a2
consdiffmgr: compress incoming consensuses in the background
...
Also, compress them in several ways.
This breaks the unit tests; subsequent commits will make them pass
again.
2017-05-12 17:45:07 +02:00
Nick Mathewson
6da31ec484
consdiffmgr: Extract the code for compressing and storing
...
We're going to use this for consensuses too.
2017-05-12 17:44:55 +02:00
Alexander Færøy
7a3efe25d9
Use different preferences for compression methods when streaming.
...
See: https://bugs.torproject.org/21667
2017-05-12 17:18:45 +02:00
Alexander Færøy
141f6e3211
Add client_meth_pref array to define client compression preference.
...
See: https://bugs.torproject.org/21667
2017-05-12 17:18:45 +02:00
Alexander Færøy
59d17ca2bb
Fix indentation when using the ternary operator in handle_get_status_vote().
...
See: https://bugs.torproject.org/21667
2017-05-12 17:18:45 +02:00
Alexander Færøy
ef187bc280
Use compression_method_get_human_name() in connection_dir_client_reached_eof()
...
This patch refactors connection_dir_client_reached_eof() to use
compression_method_get_human_name() to set description1 and
description2 variables.
See: https://bugs.torproject.org/21667
2017-05-12 17:18:45 +02:00
Alexander Færøy
f8218b5ada
Use compression_method_get_by_name() instead of explicit checks.
...
See: https://bugs.torproject.org/21667
2017-05-12 17:18:45 +02:00
Alexander Færøy
cf2f7a1bea
Decide compression method in the various handle_* functions().
...
See: https://bugs.torproject.org/21667
2017-05-12 17:18:45 +02:00
Alexander Færøy
a3a31fa120
Send "Accept-Encoding" to directory servers.
...
See: https://bugs.torproject.org/21667
2017-05-12 17:18:45 +02:00
Alexander Færøy
6305637197
Use tor_compress_supports_method() instead of constants.
...
See: https://bugs.torproject.org/21667
2017-05-12 17:18:45 +02:00
Alexander Færøy
61b6de5906
Handle Zstandard and LZMA in our check for correct guessed compression.
...
See: https://bugs.torproject.org/21667
2017-05-12 17:18:45 +02:00
Alexander Færøy
fbef257c43
Handle x-zstd and x-tor-lzma in parse_http_response().
...
See: https://bugs.torproject.org/21667
2017-05-12 17:18:45 +02:00
Alexander Færøy
ca632144e5
Use dir_compressed(_len) instead of dir_z(_len).
...
This patch renames `dir_z` to `dir_compressed` and `dir_z_len` to
`dir_compressed_len`.
See: https://bugs.torproject.org/21667
2017-05-12 17:18:45 +02:00
Nick Mathewson
4410271446
Merge branch 'ticket21953_029'
2017-05-12 08:40:30 -04:00
Nick Mathewson
503f101d2b
Enable some windows hardening features
...
One (HeapEnableTerminationOnCorruption) is on-by-default since win8;
the other (PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION) supposedly only
affects ATL, which (we think) we don't use. Still, these are good
hygiene. Closes ticket 21953.
2017-05-11 16:39:02 -04:00
Nick Mathewson
9905659573
Merge remote-tracking branch 'arma/cleanup22213'
2017-05-11 09:20:12 -04:00
Nick Mathewson
6390a0c3b6
Merge branch 'ticket21871_031_03_squashed'
2017-05-11 08:33:32 -04:00
David Goulet
ae1d4cfdad
prop224: Change encryption keys descriptor encoding
...
A descriptor only contains the curve25519 public key in the enc-key field so
the private key should not be in that data structure. The service data
structures will have access to the full keypair (#20657 ).
Furthermore, ticket #21871 has highlighted an issue in the proposal 224 about
the encryption key and legacy key being mutually exclusive. This is very wrong
and this commit fixes the code to follow the change to the proposal of that
ticket.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-05-11 08:33:26 -04:00
Roger Dingledine
8f1ddf0cd2
Remove unused "ROUTER_ADDED_NOTIFY_GENERATOR" internal value
...
We already have a way to return a 400 response code along with a
personalized message response for the uploader.
Resolves ticket 22213.
2017-05-10 20:03:07 -04:00
Roger Dingledine
466e27feae
simplify functions now that they don't use options param
2017-05-10 17:57:35 -04:00
Roger Dingledine
2330a3713d
Merge branch 'maint-0.3.0'
2017-05-10 17:36:34 -04:00
Roger Dingledine
716d48581d
resolve now-unused parameter from #21642 fix
2017-05-10 17:35:36 -04:00
Nick Mathewson
1a497dcd1e
Merge branch 'maint-0.3.0'
2017-05-10 16:28:07 -04:00
Nick Mathewson
a868b84599
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-05-10 16:27:15 -04:00
Nick Mathewson
8f5da804da
Merge branch 'prop275_minimal_029' into maint-0.2.9
2017-05-10 16:26:45 -04:00
Nick Mathewson
ee3ccd2fac
#22211 Fix a comment in routerparse.c
2017-05-10 11:16:07 -04:00
Nick Mathewson
d76cffda60
Merge remote-tracking branch 'public/my-family-list-fix-4498'
2017-05-10 11:12:24 -04:00
Nick Mathewson
8266d193a6
Restore wget behavior when fetching compressed objects
...
We do this by treating the presence of .z as meaning ZLIB_METHOD,
even if Accept-Encoding does not include deflate.
This fixes bug 22206; bug not in any released tor.
2017-05-10 11:09:52 -04:00
Nick Mathewson
5dab99d6a8
Fix compilation on libevent2-only systems
...
Patch from rubiate; fixes bug 22219. Remember, we don't support
libevent1 any more.
2017-05-10 11:08:49 -04:00
Roger Dingledine
0266c4ac81
add an XXX with a minor bug in dirserv_add_multiple_descriptors
2017-05-10 03:11:29 -04:00
Nick Mathewson
9f5b71a7ca
Add a check and a cast in rephist.c to fix a warning
2017-05-09 11:13:22 -04:00