Commit graph

25755 commits

Author SHA1 Message Date
Nick Mathewson
eb07166eb8 Make sure callers can handle NULL ext-or auth cookie filename 2020-02-18 12:55:57 -05:00
Nick Mathewson
c43a245292 Disable dns.c when relay mode is disabled.
This saves about 1% for me on a binary compiled without relay mode.

Closes ticket 33366.
2020-02-18 12:46:10 -05:00
Nick Mathewson
1f06f494c8 Move DNS TTL manipulation code to src/core/or
This removes a dependency from the client code on feature/relay.
2020-02-18 12:08:29 -05:00
Nick Mathewson
dcbc45e6b2 Replace identifiers related to clipping DNS ttls.
This is an automated commit, generated by this command:

./scripts/maint/rename_c_identifier.py \
        MIN_DNS_TTL_AT_EXIT MIN_DNS_TTL \
        MAX_DNS_TTL_AT_EXIT MAX_DNS_TTL \
        dns_clip_ttl clip_dns_ttl
2020-02-18 12:00:24 -05:00
Nick Mathewson
93af83e16a Remember dirctory bw usage, and log it in the heartbeat
Closes ticket 32720.
2020-02-18 11:25:18 -05:00
George Kadianakis
975102869a Fix issues pointed out by Nick.
- Loose the asserts on num_pkeys.
- Straighten some dangling &.
- Fix some unpredictable memcpys.
2020-02-18 12:37:34 +02:00
teor
f298706326
dirauth: Update disabled dirvote_add_vote()
Update the function that handles directory authority votes when the
dirauth module is disabled.

Part of 4631.
2020-02-18 13:23:33 +10:00
teor
8b5b574a81
dirauth: Refactor dirvote_add_vote()
Refactor dirvote_add_vote() by splitting some code out into static
functions.

Cleanup after 4631.
2020-02-18 13:23:27 +10:00
teor
56f715d300
test/dir: Add specific tests for late vote rejection
Part of 4631.
2020-02-18 13:23:23 +10:00
teor
2b7eec7590
test/dir: Update the tests for late vote rejection
Part of 4631.
2020-02-18 12:44:50 +10:00
Roger Dingledine
acb5b0d535
Don't accept posted votes after :52:30
If we receive via 'post' a vote from a dir auth after the
fetch_missing_votes cutoff, that means we didn't get it by the time we
begin the "fetching missing votes from everybody else" phase, which means
it is very likely to cause a consensus split if we count it. Instead,
we reject it.

But we still allow votes that we fetch ourselves after that cutoff.

This is a demo branch for making progress on #4631.

I've been running it on moria1 and it catches and handles real buggy
behavior from directory authorities, e.g.

Jan 28 15:59:50.804 [warn] Rejecting vote from 199.58.81.140 received at 2020-01-28 20:59:50; our cutoff for received votes is 2020-01-28 20:52:30
Jan 28 15:59:50.805 [warn] Rejected vote from 199.58.81.140 ("Vote received too late, would be dangerous to count it").
Jan 29 01:52:52.667 [warn] Rejecting vote from 204.13.164.118 received at 2020-01-29 06:52:52; our cutoff for received votes is 2020-01-29 06:52:30
Jan 29 01:52:52.669 [warn] Rejected vote from 204.13.164.118 ("Vote received too late, would be dangerous to count it").
Jan 29 04:53:26.323 [warn] Rejecting vote from 204.13.164.118 received at 2020-01-29 09:53:26; our cutoff for received votes is 2020-01-29 09:52:30
Jan 29 04:53:26.326 [warn] Rejected vote from 204.13.164.118 ("Vote received too late, would be dangerous to count it").
2020-02-18 12:44:41 +10:00
teor
da280a4309 Makefile: Add an IPv6 mixed chutney network
This network is used in make test-network-all and test-network-ipv6.

Closes 33334.
2020-02-17 14:55:05 +10:00
teor
85eb170923 Makefile: Add v3 onion services to the mixed network
This network is used in make test-network-all and test-network-ipv4.

Part of 33334.
2020-02-17 14:54:24 +10:00
teor
f231827946
Merge remote-tracking branch 'tor-github/pr/1731' 2020-02-17 13:49:23 +10:00
teor
334469cc39
Merge branch 'bug33195_master' into ticket33280_master
Conflicts:
* Keep the changes from ticket33280_master
2020-02-17 13:46:09 +10:00
Nick Mathewson
a6509cb867 Merge remote-tracking branch 'tor-github/pr/1727/head' 2020-02-14 08:20:21 -05:00
Nick Mathewson
a010dbf94c Merge branch 'maint-0.4.3' 2020-02-14 08:17:16 -05:00
Nick Mathewson
a79841fd83 Merge branch 'ticket33290_v2_042' into maint-0.4.3 2020-02-14 08:16:22 -05:00
Nick Mathewson
393bbd823e Merge branch 'ticket33290_v2_041' into ticket33290_v2_042 2020-02-14 08:16:01 -05:00
Nick Mathewson
c1649ab015 Wipe the entire hashent structure, not just the first sizeof(void*) 2020-02-14 08:15:37 -05:00
teor
ed1ee2001f
dirvote: Update the comments for required protocols
Add doxygen comments to the new recommended and required subprotocol
version strings.

Add a warning to the required protocol documentation, because requiring
the wrong protocols can break the tor network. Also reference
proposal 303: When and how to remove support for protocol versions.

Part of 33285.
2020-02-14 12:49:38 +10:00
teor
98899f20ad
mainloop: Explain local connections better
Some connections aren't counted for statistics or accounting,
because they have been specifically configured by the user to
local addresses.

Comment-only change.

Closes 33201.
2020-02-14 10:13:00 +10:00
Nick Mathewson
691d271b2e Re-order thread initialization to follow logging, and remove a comment.
lib/log no longer uses lib/thread; lib/log only uses lib/lock, which
is at a lower level.
2020-02-13 12:55:05 -05:00
Nick Mathewson
67d59d7d1f Re-order most subsystems to correspond to dependency order. 2020-02-13 12:53:15 -05:00
Nick Mathewson
1ab7c05231 Merge branch 'maint-0.4.3' 2020-02-13 10:47:43 -05:00
Nick Mathewson
baeff46d36 Merge branch 'ticket33290_v2_042' into ticket33290_v2_043
Conflicts:
	src/core/or/circuitmux_ewma.c
2020-02-13 09:21:47 -05:00
Nick Mathewson
fd1686c7d8 Merge branch 'ticket33290_v2_041' into ticket33290_v2_042 2020-02-13 09:12:48 -05:00
Nick Mathewson
fff1054d17 Before freeing ewma objects, use memwipe instead of resetting magic. 2020-02-13 09:11:35 -05:00
teor
02f494360a
Makefile: Use chutney's latest default network
Use bridges+hs-v23 for "make test-network",
rather than using chutney's old default.

This change requires a recent version of chutney,
because the old bridges+hs-v23 did not work.
(See chutney's 33302 for details.)

Closes 28208.
2020-02-13 13:00:18 +10:00
teor
9d352028e6
Makefike: Add an IPv6 test to test-network
The IPv6 test only runs if IPv6 is available.

Also, explicitly use the bridges+hs-v2 network for the IPv4-only test.
This network was chutney's default as of January 2020.

Closes 33300.
2020-02-13 13:00:15 +10:00
teor
e849881d3a Run "make autostyle"
But only take the changes that were caused by the rest of the 33087
branch.

Part of 33087.
2020-02-13 09:28:21 +10:00
Nick Mathewson
e231d84dd5 Merge branch 'maint-0.4.3' 2020-02-12 18:26:08 -05:00
Nick Mathewson
d0c3350218 Run "make autostyle". 2020-02-12 18:25:51 -05:00
Nick Mathewson
80e3dc4727 Use more memory poisoning and better asserts around ewma code
Attempt to diagnose 32464; fixes 33290.
2020-02-12 14:17:19 -05:00
teor
8a23393eda
log: Stop duplicating error file fds
Since we're not closing these fds, they don't need to be duplicated
any more.

Cleanup after 33087.
2020-02-13 00:01:47 +10:00
teor
3d1ef3b6f8
err/log: Stop closing stderr and stdout during shutdown
Closing these file descriptors can hide sanitiser logs.

Instead, flush the logs before tor exits, using fsync().
Some Windows environments don't have fsync(), so we check
for it at compile time.

Fixes bug 33087; bugfix on 0.4.1.6.
2020-02-13 00:00:41 +10:00
teor
4fed49e0dd protover: Sort tor's supported protocol versions
As recommended by the tor directory specification.

Fixes bug 33285; bugfix on 0.4.0.1-alpha.
2020-02-12 22:15:17 +10:00
teor
14cb337e80 test/protover: Test hard-coded protover sorting
Make sure that the following hard-coded protocol version lists are
sorted:
  * supported protocols
  * recommended relay and client protocols
  * required relay and client protocols

This test currently fails, because the supported protocols are not
sorted.

Tests for 33285.
2020-02-12 22:07:26 +10:00
teor
64bb6e622d dirvote: Reorder required protocol lists
Use a consistent order, because the current order is going to trip
someone up eventually.

Preparation for 33285.
2020-02-12 22:06:11 +10:00
teor
78051c8808 dirvote: Move required protos into private header
Move the recommended and required protocol version lists into the
private section of the dirvote header, and turn them into macros.

Preparation for 33285.
2020-02-12 22:03:19 +10:00
teor
bc493ce0f2
protover: Update a comment about protover parsing
Comment-only change.
2020-02-12 20:59:25 +10:00
teor
e0ea7407a4
Merge remote-tracking branch 'tor-github/pr/1725' into maint-0.4.3 2020-02-12 14:14:11 +10:00
David Goulet
88489cd290
hs-v3: Remove BUG() that can occur normally
Fixes #28992

Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-02-12 14:09:40 +10:00
teor
ff52205362
Merge branch 'maint-0.4.1' into maint-0.4.2 2020-02-12 12:22:04 +10:00
teor
5298113da9
Merge branch 'maint-0.3.5' into maint-0.4.1 2020-02-12 12:21:57 +10:00
Alexander Færøy
b9c7c61ea5
Lowercase the BridgeDistribution value from torrc in descriptors.
This patch ensures that we always lowercase the BridgeDistribution from
torrc in descriptors before submitting it.

See: https://bugs.torproject.org/32753
2020-02-12 12:21:41 +10:00
George Kadianakis
9892cc3b12 Merge branch 'tor-github/pr/1707' 2020-02-11 18:42:22 +02:00
David Goulet
40a321659a hs-v3: Remove BUG() that can occur normally
Fixes #28992

Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-02-11 18:40:55 +02:00
David Goulet
f0964628e6 Merge branch 'ticket33029_042_01' into ticket33029_043_03
Conflicts:
	doc/tor.1.txt
	src/app/config/config.c
	src/app/config/or_options_st.h
	src/core/mainloop/connection.h

Between 042 and 043, the dirauth options were modularized so this merge commit
address this by moving the AuthDirRejectUncompressedRequests to the module
along with a series of accessors.

Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-02-11 10:30:29 -05:00
David Goulet
7b4d9fabef dirauth: Rename function for better clarity
Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-02-11 10:15:23 -05:00