Nick Mathewson
650b94ebc1
Use a linear algorithm to subtract two nodelists.
...
The nodelist_idx for each node_t serves as a unique identifier for
the node, so we can use a bitarray to hold all the excluded
nodes, and then remove them from the smartlist.
Previously use used smartlist_subtract(sl, excluded), which is
O(len(sl)*len(excluded)).
We can use this function in other places too, but this is the one
that showed up on the profiles of 30291.
Closes ticket 30307.
2019-04-26 11:04:44 -04:00
Nick Mathewson
1d44ac9acd
Make nodelist_get_list() return a const pointer.
2019-04-26 10:36:49 -04:00
Nick Mathewson
2f683465d4
Bump copyright date to 2019
2019-01-16 12:33:22 -05:00
Nick Mathewson
3df1d29d9b
Merge branch 'bug28591_035_squashed'
2019-01-09 09:33:31 -05:00
Nick Mathewson
7e9985b75a
Merge remote-tracking branch 'tor-github/pr/536'
2018-12-01 11:24:02 -05:00
Nick Mathewson
e82023d2f7
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-12-01 11:15:09 -05:00
Nick Mathewson
e3a19b1c78
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-12-01 11:15:09 -05:00
teor
7a45bc74a4
Dir: when Tor's clock is behind, use a future consensus to bootstrap
...
When Tor's clock is behind the clocks on the authorities, allow Tor to
bootstrap successfully.
Fixes bug 28591; bugfix on 0.2.0.9-alpha.
2018-11-29 00:50:24 +10: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
cebc39bcd5
Test: make unit tests use a reasonably live consensus
...
Cleanup after 24661.
2018-11-22 16:54:46 +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
Nick Mathewson
886dc8b0a5
Remove routerparse include from files that dont use it
2018-10-01 11:35:11 -05:00
Nick Mathewson
6785aa4010
Move routerparse and parsecommon to their own module.
2018-10-01 00:04:06 -05:00
Nick Mathewson
194acfb51d
Split directory.c code into several modules
...
Parts of this C file naturally belong in dircache, dirclient, and
dircommon: so, move them there.
2018-09-21 12:57:22 -04:00
Nick Mathewson
98dff5df3f
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-07-09 10:17:20 -04:00
Nick Mathewson
250e0fc1c4
Merge branch 'maint-0.3.2' into maint-0.3.3
2018-07-09 10:17:20 -04:00
Nick Mathewson
1b81c4b5f3
Merge branch 'maint-0.3.4'
2018-07-09 10:17:20 -04:00
Nick Mathewson
6ad2c2b92f
Merge remote-tracking branch 'github/bug26269_031' into maint-0.3.2
2018-07-09 10:17:17 -04:00
Nick Mathewson
ef486e3c02
Fix every include path changed in the previous commit (automated)
...
I am very glad to have written this script.
2018-07-05 17:15:50 -04:00
Nick Mathewson
4593829861
Remove util.h
...
Inline its contents (which were all includes) into or.h, and some of
its contents into other places that didn't include or.h at all.
2018-07-05 15:04:18 -04:00
Nick Mathewson
986d761510
Extract or_state_t to its own header.
...
Fewer modules needed this than I had expected.
2018-07-01 15:20:37 -04:00
Nick Mathewson
471104eaa5
Remove needless includes from or.h
...
or.h should really include only the minimum of stuff from or/*,
common/*, and lib/*.
2018-07-01 15:20:37 -04:00
Nick Mathewson
50a5954003
Remove bloom filters, order statistics, and bitarrays from container.h
2018-06-22 09:49:13 -04:00
Nick Mathewson
accf239fa3
Rectify include paths (automated)
2018-06-21 13:19:00 -04:00
Nick Mathewson
0dab29ce10
Run rectify_include_paths.py
2018-06-20 09:35:05 -04:00
Nick Mathewson
fb0019daf9
Update copyrights to 2018.
2018-06-20 08:13:28 -04:00
Nick Mathewson
ed0731c7de
Extract routerinfo_t into its own header.
...
I was expecting this to be much worse.
2018-06-15 14:49:46 -04:00
Nick Mathewson
9d6276bca8
Extract microdesc_t into its own header.
2018-06-15 14:38:30 -04:00
Nick Mathewson
def1f20e1f
Extract routerstatus_t into its own header.
2018-06-15 14:33:03 -04:00
Nick Mathewson
50369f8981
Extract networkstatus_t and ..sr_info_t into their own headers
2018-06-15 13:45:15 -04:00
Nick Mathewson
d2942d127d
Extract node_t into its own header.
2018-06-15 13:13:33 -04:00
Nick Mathewson
d51de77311
Extract cpath_build_state into its own header.
...
More modules use this than I had expected!
2018-06-15 12:07:20 -04:00
Nick Mathewson
b3f2c682b7
Extract crypt_path_t and relay_crypto_t into their own headers
2018-06-15 11:52:32 -04:00
Nick Mathewson
a0bc164af5
Extract {or,origin}_circuit_t into their own headers
2018-06-15 11:34:33 -04:00
Nick Mathewson
1416f54d1e
Split dir_connection_t into its own header
2018-06-15 10:31:21 -04:00
Nick Mathewson
ce692332b8
test_entrynodes: fix a GCC warning
...
Some versions of GCC complain that the bfn_mock_node_get_by_id
function might return NULL, but we're assuming that it won't.
(We're assuming it won't return NULL because we know in the tests
that we're passing it valid IDs.)
To make GCC happy, tt_assert() that each node_t is set before using
it.
Fixes a second case of bug26269; bugfix on 0.3.0.1-alpha.
2018-06-13 10:45:15 -04:00
Nick Mathewson
5edc72a45b
Merge remote-tracking branch 'mikeperry/bug25870_rebase'
2018-05-08 14:12:29 -04:00
Nick Mathewson
c3b7258370
Merge remote-tracking branch 'isis/bug24660_r1'
2018-05-03 13:50:18 -04:00
George Kadianakis
627d2fdbf0
Write unittests to check basic vanguard path selection.
...
Adds two unittests:
- First checks the path selection of basic Tor circs.
- Second checks the path selection of vanguard circs.
There is a TODO on the second unittest that we might want to test sooner than
later, but it's not trivial to do it right now.
To do these unittests we needed the following mods:
- Make some functions STATIC.
- Add some more fields to the big fake network nodes of test_entrynodes.c
- Switch fake node nicknames to base32 (because base64 does not produce valid nicknames).
2018-05-01 00:59:27 +00:00
George Kadianakis
d00ed406e0
Introduce torrc option NumPrimaryGuards
2018-04-27 12:44:54 -04:00
Isis Lovecruft
fe3aca1491
crypto: Refactor (P)RNG functionality into new crypto_rand module.
...
* ADD new /src/common/crypto_rand.[ch] module.
* ADD new /src/common/crypto_util.[ch] module (contains the memwipe()
function, since all crypto_* modules need this).
* FIXES part of #24658 : https://bugs.torproject.org/24658
2018-04-06 21:45:28 +00:00
Deepesh Pathak
ca6682f3f8
Fix spelling mistakes corresponding to ticket #23650
2018-02-07 10:41:57 -05:00
Nick Mathewson
5ee0cccd49
Merge branch 'macro_free_v2_squashed'
2017-12-08 14:58:43 -05:00
Nick Mathewson
b0cc9856ee
Update free functions into macros: src/or/ part 1
...
This covers addressmap.h (no change needed) through confparse.h
2017-12-08 14:47:19 -05:00
Nick Mathewson
d45bf0c65c
Add an extra check in test_entrynodes
...
This check makes it so we can reach "done" without setting "conn",
and so the "if (conn)" check will not be redundant, and so coverity
won't complain. Fixes CID 1422205. Not actually a bug.
2017-11-18 10:26:45 -05:00
Nick Mathewson
3a5ca47d8f
Fix a clang unitialized-var warning
2017-11-17 09:57:52 -05:00
George Kadianakis
7e52947d57
Intoduce unittest for skipping outdated dirservers.
2017-11-17 09:57:46 -05:00
George Kadianakis
f7306b16ec
entrynodes: Better naming for dir info check functions.
2017-10-03 15:55:19 +03:00
George Kadianakis
5352785d0c
entrynodes: Error msg for missing guard descs is now more informative.
2017-10-03 14:41:20 +03:00