Nick Mathewson
05dee063c8
Emit router families in canonical form
...
This patch has routers use the same canonicalization logic as
authorities when encoding their family lists. Additionally, they
now warn if any router in their list is given by nickname, since
that's error-prone.
This patch also adds some long-overdue tests for family formatting.
2018-11-24 16:35:58 -05:00
Nick Mathewson
f82eb6269f
Extract get_declared_family() into its own function.
...
This will help as we refactor it.
2018-11-24 12:11:40 -05:00
Nick Mathewson
0a0c612b79
Add a consensus method in which md families get canonicalized.
...
Implements prop298. Closes ticket 28266.
2018-11-24 12:01:09 -05:00
Nick Mathewson
d29e3a02d5
Add a function to canonicalize nodefamilies per prop298
...
This is the same as the regular canonical nodefamily format, except
that unrecognized elements are preserved.
2018-11-24 10:53:38 -05:00
Nick Mathewson
0e9a963b6b
Revise nodefamily.c to match proposal 298
...
Prop298 says that family entries should be formatted with
$hexids in uppercase, nicknames in lower case, $hexid~names
truncated, and everything sorted lexically. These changes implement
that ordering for nodefamily.c.
We don't _strictly speaking_ need to nodefamily.c formatting use
this for prop298 microdesc generation, but it seems silly to have
two separate canonicalization algorithms.
2018-11-24 10:30:15 -05:00
Taylor R Campbell
997a8b0ca7
Create a temporary directory for tor's DataDirectory in test_rebind.
...
Fixes #28562 .
While here, put the argument count test and usage message _before_ we
attempt to read from sys.argv.
2018-11-23 12:51:39 -05:00
teor
805f75182a
Entry Nodes: Test on reasonably live consensuses
...
As well as live consensuses.
Tests for 24661.
2018-11-22 17:47:12 +10:00
teor
390112d07e
Entry Nodes: refactor tests to use macros
...
Part of 24661.
2018-11-22 17:46:52 +10:00
teor
3741f9e524
Fix a comment typo in test_hs_common.c
2018-11-22 16:56:06 +10:00
teor
cebc39bcd5
Test: make unit tests use a reasonably live consensus
...
Cleanup after 24661.
2018-11-22 16:54:46 +10:00
teor
657618ba9b
Entry Nodes: Mark outdated dirservers in reasonably live consensuses
...
Fixes bug 28569; bugfix on Tor 0.3.2.5-alpha.
2018-11-22 16:54:34 +10:00
teor
d1ac5613fc
Entry Nodes: Use a reasonably live consensus to select guards
...
Fixes bug 24661; bugfix on 0.3.0.1-alpha.
2018-11-22 16:54:22 +10:00
teor
ffc7b81b5d
Test: Fix memory leaks and missing unmocks in entry guard tests
...
test_entry_guard_outdated_dirserver_exclusion leaks memory, and is
missing some unmocks.
Fixes 28554; bugfix on 0.3.0.1-alpha.
2018-11-22 16:42:32 +10:00
Colin Childs
6d2c2be291
Add CrackerboxPalace fallback
2018-11-21 20:36:08 -06:00
Nick Mathewson
469f47ef8d
Fix a fun heisenbug in memoize_protover_flags()
...
After we clear the protover map for getting full, we need to
re-create it, since we are about to use it.
This is a bugfix for bug 28558. It is a bugfix for the code from
ticket 27225, which is not in any released Tor. Found by Google
OSS-Fuzz, as issue 11475.
2018-11-21 07:56:33 -05:00
Nick Mathewson
b406fdae4f
Merge branch 'ticket25341_merged_v2'
2018-11-20 13:14:56 -05:00
Nick Mathewson
a9820f072b
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-11-20 13:10:38 -05:00
Nick Mathewson
56f24889a2
Merge branch 'maint-0.3.5'
2018-11-20 13:10:38 -05:00
Nick Mathewson
9da8cd0bc3
Merge remote-tracking branch 'teor/ticket28459-034' into maint-0.3.4
2018-11-20 13:10:18 -05:00
rl1987
befcd6ab7f
Add changes file for #28012
2018-11-20 17:00:32 +02:00
rl1987
ba2a9988cc
Fix SC2230 warning
2018-11-20 16:57:57 +02:00
rl1987
27e982b470
Fix SC2046 and SC2086 warnings
2018-11-20 16:55:35 +02:00
rl1987
b2053cfc44
Also disallow fixup/squash commits in maint-* and release-*
2018-11-20 16:37:30 +02:00
rl1987
7dd515b0e0
Silence SC1117 warnings
2018-11-20 16:22:47 +02:00
Nick Mathewson
34cadefe34
Merge branch 'maint-0.3.5'
2018-11-20 09:04:35 -05:00
rl1987
ffee0a6384
Add pre-push git hook to prevent fixup and squash commits from ending up in master
2018-11-20 15:40:52 +02:00
Taylor Yu
0489288aa2
Update control_free_all() for #27169
...
Reset the added bootstrap tracking state introduced by ticket 27169.
Fixes bug 28524; bugfix on 0.3.5.1-alpha.
2018-11-19 15:48:08 -06:00
Alexander Færøy
d020124138
Add changes file for #28518 .
...
See: https://bugs.torproject.org/28518
2018-11-19 16:33:06 +01:00
Fabian Keil
71651ea4aa
Complain if net.inet.ip.random_id is not set on FreeBSD-based servers
...
Apparently a couple of operators haven't gotten the memos [0] yet
and it looks like FreeBSD's default value will not change any time
soon [1].
[0]:
https://lists.torproject.org/pipermail/tor-relays/2014-March/004199.html
https://lists.torproject.org/pipermail/tor-relays/2014-November/005687.html
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=195828
[1]:
https://lists.freebsd.org/pipermail/freebsd-net/2015-April/041942.html
2018-11-19 16:28:00 +01:00
Nick Mathewson
8183640ada
Merge branch 'maint-0.3.5'
2018-11-19 10:18:57 -05:00
Alexander Færøy
3260914db0
Add missing library to build tor-print-ed-signing-cert.
...
To succesful compile tor-print-ed-signing-cert.exe on Windows we
sometimes need to include the @TOR_LIB_GDI@ library.
See: https://bugs.torproject.org/28485
2018-11-19 10:18:44 -05:00
Nick Mathewson
a4f2075170
Merge remote-tracking branch 'isis/bug25341' into ticket25341_merged_v2
2018-11-19 09:22:30 -05:00
Nick Mathewson
a8df39e955
Merge remote-tracking branch 'tor-github/pr/519'
2018-11-19 08:47:03 -05:00
Nick Mathewson
26539ec3ae
Merge remote-tracking branch 'tor-github/pr/518'
2018-11-19 08:45:41 -05:00
Nick Mathewson
48b08f0592
Merge branch 'ticket27359_v2_squashed'
2018-11-19 08:26:49 -05:00
Nick Mathewson
0e762c0cf5
Test new functions in nodelist.c
2018-11-19 08:26:10 -05:00
Nick Mathewson
4f9548f893
Expose more nodelist.c functions to tests
2018-11-19 08:26:10 -05:00
Nick Mathewson
aa1d767e6b
Aim for 100% test coverage on nodefamily.c
2018-11-19 08:26:10 -05:00
Nick Mathewson
426c9561c5
Use nodefamily_t in microdescriptors.
...
Closes ticket 27359.
2018-11-19 08:26:10 -05:00
Nick Mathewson
83be4d2bbd
Backend for compact node-family representation.
...
This representation is meant to save memory in microdescriptors --
we can't use it in routerinfo_t yet, since those families need to be
encoded losslessly for directory voting to work.
This representation saves memory in three ways:
1. It uses only one allocation per family. (The old way used a
smartlist (2 allocs) plus one strdup per entry.)
2. It stores identity digests in binary, not hex.
3. It keeps families in a canonical format, memoizes, and
reference-counts them.
Part of #27359 .
2018-11-19 08:26:10 -05:00
rl1987
c8c4c3dffa
fixup! Make ROUTERLIST_PRUNING_INTERVAL 1 hr.
2018-11-17 10:27:10 +02:00
rl1987
411780d563
Make ROUTERLIST_PRUNING_INTERVAL 1 hr.
2018-11-17 10:19:25 +02:00
Nick Mathewson
bf82389e19
Copy 0.3.5.5-alpha changelog into master
2018-11-16 11:32:52 -05:00
Nick Mathewson
f42c3cfe2e
Merge branch 'maint-0.3.5'
...
"ours" to avoid version bump.
2018-11-16 11:32:10 -05:00
Nick Mathewson
942c2da48e
Bump to 0.3.5.5-alpha-dev
2018-11-16 11:32:04 -05:00
Nick Mathewson
5065a68504
Merge branch 'maint-0.3.5'
2018-11-16 08:58:25 -05:00
Nick Mathewson
35558c39dd
Merge remote-tracking branch 'dgoulet/ticket27471_035_02' into maint-0.3.5
2018-11-16 08:57:56 -05:00
Nick Mathewson
306098f851
Merge branch 'maint-0.3.5'
...
"ours" to avoid version bump.
2018-11-16 08:29:05 -05:00
Nick Mathewson
c9906cc3f6
Bump to 0.3.5.5-alpha
2018-11-16 08:28:45 -05:00
Nick Mathewson
be88f12b7f
Merge branch 'maint-0.3.5'
2018-11-15 17:08:34 -05:00