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
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
34cadefe34
Merge branch 'maint-0.3.5'
2018-11-20 09:04:35 -05: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
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
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
411780d563
Make ROUTERLIST_PRUNING_INTERVAL 1 hr.
2018-11-17 10:19:25 +02:00
Nick Mathewson
942c2da48e
Bump to 0.3.5.5-alpha-dev
2018-11-16 11:32:04 -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
c9906cc3f6
Bump to 0.3.5.5-alpha
2018-11-16 08:28:45 -05:00
Nick Mathewson
fe1fb4b0c3
Merge remote-tracking branch 'public/ticket27686_034' into maint-0.3.4
2018-11-15 17:01:54 -05:00
Nick Mathewson
80a6228aac
Merge branch 'bug25573-034-typefix' into maint-0.3.4
2018-11-15 16:58:16 -05:00
Nick Mathewson
15e752e6b1
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-15 16:54:56 -05:00
Nick Mathewson
cbe04d4550
Merge branch 'maint-0.2.9' into maint-0.3.3
2018-11-15 16:54:16 -05:00
Nick Mathewson
63312e0299
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-15 16:47:25 -05:00
Nick Mathewson
aebe8a82c9
Merge branch 'bug26913_033' into maint-0.3.3
2018-11-15 16:47:22 -05:00
Nick Mathewson
8569166c70
Merge remote-tracking branch 'public/bug24104_029_squashed' into maint-0.2.9
...
Resolved conflicts with the 26269 fix in 015fcd0e11
.
2018-11-15 16:43:50 -05:00
Nick Mathewson
1e6ffeaeaa
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-15 16:37:41 -05:00
Nick Mathewson
34e4d5a783
Merge remote-tracking branch 'dgoulet/bug27550_033_01' into maint-0.3.3
2018-11-15 16:37:02 -05:00
Nick Mathewson
31cc0d2c0b
Merge branch 'maint-0.3.5'
2018-11-15 16:11:29 -05:00
Nick Mathewson
4b6b58ed8e
Merge branch 'bug27740_035_fix' into maint-0.3.5
2018-11-15 16:11:06 -05:00
Nick Mathewson
53ccdb6945
Make sure that we are always a net participant when being a server
...
Otherwise, if we're dormant, and we set ORPort, nothing makes us become
non-dormant.
2018-11-15 11:17:27 -05:00
Nick Mathewson
2f28cd1dc8
Rename and fix docs on FLUSH_ON_DISABLE
...
Also rename "...flush_and_disable()" to "...schedule_and_disable()"
2018-11-15 11:17:22 -05:00
Nick Mathewson
d0e6abd087
Reset dormancy status when the clock jumps.
2018-11-15 11:17:22 -05:00
Nick Mathewson
ce6209cee4
Add a periodic event to become dormant.
...
This event makes us become dormant if we have seen no activity in a
long time.
Note that being any kind of a server, or running an onion service,
always counts as being active.
Note that right now, just having an open stream that Tor
did not open on its own (for a directory request) counts as "being
active", so if you have an idle ssh connection, that will keep Tor
from becoming dormant.
Many of the features here should become configurable; I'd like
feedback on which.
2018-11-15 11:17:22 -05:00
Nick Mathewson
2c15b65381
Make the NET_PARTICIPANT role dependent on user activity
...
This patch implements all of 28337, except for the part where we
turn off the role if we've been idle for a long time.
2018-11-15 11:17:22 -05:00
Nick Mathewson
ccbb36048f
write_stats_file() is indeed NET_PARTICIPANT; remove comment.
2018-11-15 11:17:22 -05:00
Nick Mathewson
dc21f1f662
reset_padding_counts is only once per 24h; it can be all.
2018-11-15 11:17:22 -05:00
Nick Mathewson
4bf79fa4fa
Turn second_elapsed_callback into a normal periodic event.
2018-11-15 11:17:22 -05:00
Nick Mathewson
303e5c70e0
Move the responsibility for delayed shutdown into the mainloop
...
This is part of 28422, so we don't have to call
consider_hibernation() once per second when we're dormant.
This commit does not remove delayed shutdown from hibernate.c: it
uses it as a backup shutdown mechanism, in case the regular shutdown
timer mechanism fails for some reason.
2018-11-15 11:17:22 -05:00
Nick Mathewson
e535ec8542
Remove run_scheduled_events() as a separate function.
...
(There was nothing else in second_elapsed_callbck() that couldn't go
here.)
2018-11-15 11:17:22 -05:00
Nick Mathewson
a0380b705d
Move control_per_second_events() into a callback with its own role
...
Part of making extra-dormant mode work; closes ticket 28421.
2018-11-15 11:17:22 -05:00
Nick Mathewson
db53bfe8f7
Annotate 1/s callback elements with NET_PARTICIPANT status.
2018-11-15 11:17:22 -05:00
Nick Mathewson
b9a88bd53a
Add new "ALL" and "NET_PARTICIPANT" roles for periodic events
...
The previous "ALL" role was the OR of a bunch of other roles,
which is a mistake: it's better if "ALL" means "all".
The "NET_PARTICIPANT" role refers to the anything that is actively
building circuits, downloading directory information, and
participating in the Tor network. For now, it is set to
!net_is_disabled(), but we're going to use it to implement a new
"extra dormant mode".
Closes ticket 28336.
2018-11-15 11:17:22 -05:00
Nick Mathewson
6d84972eb8
Add a function to schedule a periodic event once, then disable it
2018-11-15 11:17:22 -05:00
Nick Mathewson
2070765c7c
Use macros to make the periodic event table less verbose.
2018-11-15 11:17:22 -05:00
teor
44ced9b750
Merge branch 'bug28096-029-squashed' into bug28096-035-squashed
...
Move the get_uname() changes from src/common/compat.c to
src/lib/osinfo/uname.c
2018-11-15 12:23:29 +10:00
teor
2fbc58cf07
Windows: fix uname on recent Windows versions
...
Correctly identify Windows 8.1, Windows 10, and Windows Server 2008
and later from their NT versions.
On recent Windows versions, the GetVersionEx() function may report
an earlier Windows version than the running OS. To avoid user
confusion, add "[or later]" to Tor's version string on affected
versions of Windows.
Remove Windows versions that were never supported by the
GetVersionEx() function.
Stop duplicating the latest Windows version in get_uname().
Fixes bug 28096; bugfix on 0.2.2.34; reported by Keifer Bly.
2018-11-15 12:19:11 +10:00
Nick Mathewson
eaff47352a
Make sure sandbox-related getaddrinfo() functions always exist.
2018-11-14 16:12:29 -05:00
Nick Mathewson
e420154ce7
Add an include to main.c
2018-11-14 16:07:36 -05:00
Nick Mathewson
6ca29ea409
Add libtor-buf-testing to build.rs
2018-11-14 16:07:36 -05:00
Nick Mathewson
4ecd5da306
Add .may_include to ext/timeouts.
2018-11-14 16:07:36 -05:00
Nick Mathewson
d32795bb6e
Make "ext" participate in may_include.
...
Also, resolve a circular dependency involving the use of lib/log by
csiphash.c.
2018-11-14 16:07:36 -05:00
Nick Mathewson
e429e31ad1
Normalize .may_include to always have paths, and paths to include
2018-11-14 16:07:35 -05:00
Nick Mathewson
c0a7527eb8
Remove dependency on lib/net from lib/sandbox.
...
This was trivial, and the easiest way to remove the remaining
.may_include circularities.
2018-11-14 16:07:03 -05:00
Nick Mathewson
f6b8c7da66
Move buffers.c out of lib/containers to resolve a circularity.
2018-11-14 16:07:03 -05:00
Nick Mathewson
c9f9c9bc49
Make memarea use smartlist_core, not container.
2018-11-14 16:07:03 -05:00
Nick Mathewson
12175987fc
Merge branch 'maint-0.3.5'
2018-11-14 15:43:49 -05:00
Nick Mathewson
d598d834f5
Merge branch 'ticket27750_034_01_squashed' into maint-0.3.5
2018-11-14 15:43:46 -05:00
David Goulet
c99f220f78
conn: Close the read side of a closing connection when write limit is reached
...
In conn_close_if_marked(), we can decide to keep a connection open that still
has data to flush on the wire if it is being rate limited on the write side.
However, in this process, we were also looking at the read() side which can
still have token in its bucket and thus not stop the reading. This lead to a
BUG() introduced in 0.3.4.1-alpha that was expecting the read side to be
closed due to the rate limit but which only applies on the write side.
This commit removes any bandwidth check on the read side and simply stop the
read side on the connection regardless of the bucket state. If we keep the
connection open to flush it out before close, we should not read anything.
Fixes #27750
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-11-14 15:42:52 -05:00
Nick Mathewson
cec58ae55c
Merge branch 'maint-0.3.5'
2018-11-14 07:56:52 -05:00
Nick Mathewson
a58b19465d
Merge remote-tracking branch 'teor/bug28441-035' into maint-0.3.5
2018-11-14 07:56:48 -05:00
Nick Mathewson
1043532a51
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-14 07:55:07 -05:00
Nick Mathewson
3deb01e1a4
Merge branch 'maint-0.3.5'
2018-11-14 07:55:07 -05:00
Nick Mathewson
eba989bf0e
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-11-14 07:55:07 -05:00
Nick Mathewson
db3acb3aa3
Work around check-spaces.
2018-11-14 07:54:57 -05:00
Martin Kepplinger
7ba1f39116
libtorrunner: fix memory leak in child() error path
...
This avoids leaking memory in case libtorrunner's child() function fails.
2018-11-14 07:49:51 -05:00
Nick Mathewson
586c3a7c90
Merge branch 'maint-0.3.5'
2018-11-14 07:42:56 -05:00
teor
16ca6fdfdb
log: stop talking about the Named flag in log messages
...
Clients have ignored the Named flag since 0.3.2.
Fixes bug 28441; bugfix on 0.3.2.1-alpha.
2018-11-14 18:16:34 +10:00
teor
9daf06d171
comment: circuit_list_path_impl() does not check Named any more
2018-11-14 18:06:14 +10:00
teor
a7aa3f76ec
comment: Fix a typo in nodes_in_same_family()
2018-11-14 18:06:05 +10:00
Nick Mathewson
a6a7a1f3ed
Merge branch 'maint-0.3.5'
2018-11-13 16:48:26 -05:00
Nick Mathewson
021187f915
Merge branch 'bug28183_029' into maint-0.3.5
2018-11-13 16:48:21 -05:00
David Goulet
342f2b1873
Merge branch 'tor-github/pr/501'
2018-11-13 10:48:23 -05:00
David Goulet
8fb318860e
Merge branch 'maint-0.3.5'
2018-11-13 10:43:03 -05:00
David Goulet
6f2151be9a
Merge branch 'tor-github/pr/487' into maint-0.3.5
2018-11-13 10:37:25 -05:00
Neel Chauhan
ec93385cb2
Comment for rend_cache_failure in feature/rend/rendcache.c: "usuable" should be "usable"
2018-11-13 10:33:51 -05:00
Nick Mathewson
42be1c668b
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-13 08:27:29 -05:00
Nick Mathewson
d000e798ac
Merge branch 'maint-0.3.5'
2018-11-13 08:27:29 -05:00
Nick Mathewson
ae4c94bb64
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-11-13 08:27:29 -05:00
Nick Mathewson
54d1a2d805
Merge branch 'maint-0.2.9' into maint-0.3.3
2018-11-13 08:27:17 -05:00
Nick Mathewson
1a11702a9a
Fix a compiler warning in aes.c.
...
Apparently some freebsd compilers can't tell that 'c' will never
be used uninitialized.
Fixes bug 28413; bugfix on 0.2.9.3-alpha when we added support for
longer AES keys to this function.
2018-11-12 15:39:28 -05:00
Nick Mathewson
0e5378feec
seccomp2: Add "shutdown" to the list of permitted system calls.
...
We don't use this syscall, but openssl apparently does.
(This syscall puts a socket into a half-closed state. Don't worry:
It doesn't shut down the system or anything.)
Fixes bug 28183; bugfix on 0.2.5.1-alpha where the sandbox was
introduced.
2018-11-12 08:23:58 -05:00
Nick Mathewson
1fce9d1296
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-11 18:05:45 -05:00
Nick Mathewson
d1e9285b1d
Merge branch 'maint-0.3.5'
2018-11-11 18:05:45 -05:00
Nick Mathewson
896d0ebb99
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-11-11 18:05:45 -05:00
Nick Mathewson
93b6d41374
Merge branch 'maint-0.2.9' into maint-0.3.3
2018-11-11 18:05:45 -05:00
Nick Mathewson
46796623f9
Fix a bug in usage of SSL_set1_groups_list()
...
Apparently, even though the manpage says it returns an int, it
can return a long instead and cause a warning.
Bug not in any released Tor. Part of #28399
2018-11-11 18:03:50 -05:00
rl1987
100136ca86
Create new periodic event for pruning old info about Tor routers
2018-11-11 20:31:24 +02:00
Nick Mathewson
e27dff08a3
Merge branch 'maint-0.3.5'
2018-11-11 11:57:54 -05:00
Nick Mathewson
6b2ff4fff8
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-11 11:57:53 -05:00
Nick Mathewson
76ed869ff9
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-11-11 11:57:53 -05:00
Nick Mathewson
d0c3723c38
Merge branch 'maint-0.2.9' into maint-0.3.3
2018-11-11 11:57:52 -05:00
Karsten Loesing
5ba3d09a89
Update geoip and geoip6 to the November 6 2018 database.
2018-11-11 11:25:59 +01:00
Nick Mathewson
91355c0fac
Annotate subsystem list with their levels.
2018-11-09 22:17:18 -05:00
Nick Mathewson
bf4f55a13d
Merge branch 'subsystems'
2018-11-09 15:01:49 -05:00
Nick Mathewson
60d1081236
Log before performing a subsystem operation
2018-11-09 11:56:26 -05:00
Nick Mathewson
ba722e4799
Add list of levels in subsystem_list.c
2018-11-09 11:15:27 -05:00
Nick Mathewson
c6336727ca
Rename subsystem callback functions to make them consistent
2018-11-09 11:12:12 -05:00
Nick Mathewson
e80595f562
fixup! Make initialization for the "err" library into a subsystem.
...
Check for failure to install backtrace handler.
2018-11-09 11:00:31 -05:00
Nick Mathewson
61695e3d62
Document that subsystem callbacks are optional.
2018-11-09 10:58:20 -05:00
Nick Mathewson
4fe4bcf8a1
Explain that configuration should happen elsewhere, but not init.
2018-11-09 10:55:18 -05:00
Nick Mathewson
5d73f87ced
Merge branch 'maint-0.3.5'
2018-11-09 10:49:48 -05:00
Nick Mathewson
591a189fa4
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-09 10:49:47 -05:00
Nick Mathewson
2ac2d0a426
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-11-09 10:49:47 -05:00
Nick Mathewson
c06b7f090c
Merge branch 'maint-0.2.9' into maint-0.3.3
2018-11-09 10:49:47 -05:00
Nick Mathewson
1ba1a1ceca
Always declare groups when building with openssl 1.1.1 APIs
...
Failing to do on clients was causing TLS 1.3 negotiation to fail.
Fixes bug 28245; bugfix on 0.2.9.15, when we added TLS 1.3 support.
2018-11-09 10:10:25 -05:00
Nick Mathewson
6560346a45
Bump version to 0.3.5.4-alpha-dev.
2018-11-08 09:00:59 -05:00
Nick Mathewson
8e3bae566a
Merge branch 'maint-0.3.5'
2018-11-07 16:27:26 -05:00
Nick Mathewson
212bd9778b
Make the hibernate.c changes for systemd compile.
2018-11-07 16:27:20 -05:00
Nick Mathewson
f229c4e66a
Bump to 0.3.5.4-alpha
2018-11-07 14:40:26 -05:00
Nick Mathewson
c7b6ed1d80
Merge remote-tracking branch 'tor-github/pr/271'
2018-11-07 11:21:13 -05:00
Roger Dingledine
6e828ced56
simplify now that it uses tor's copyright and license
2018-11-07 11:02:26 -05:00
Nick Mathewson
9e48d9a920
Change version on master to 0.4.0.0-alpha-dev.
2018-11-07 10:54:03 -05:00
Nick Mathewson
9807da9c20
Merge branch 'ticket27225_squashed'
2018-11-07 10:47:29 -05:00
Nick Mathewson
6d93820499
Memoize summarize_protover_flags()
...
Our tests showed that this function is responsible for a huge number
of our malloc/free() calls. It's a prime candidate for being
memoized.
Closes ticket 27225.
2018-11-07 10:47:07 -05:00
Nick Mathewson
a7a060a637
Switch ctassert.h to 3bsd (with permission)
2018-11-07 10:37:02 -05:00
Neel Chauhan
f89f14802e
At intro points, don't close circuits on NACKs
2018-11-06 17:04:08 -05:00
Nick Mathewson
770653ff45
Allow lib/cc to include its own files.
2018-11-06 16:59:39 -05:00
Nick Mathewson
d9508d8ede
Change copyright statement (with permission)
2018-11-06 15:42:18 -05:00
Nick Mathewson
6b706bcf19
Remove a tab.
2018-11-06 15:41:32 -05:00
Nick Mathewson
3c9dd9ef2d
Add parentheses to the ctassert macro expansions
2018-11-06 15:41:14 -05:00
Nick Mathewson
e69a4ad6b3
Add a user of CTASSERT().
2018-11-06 15:39:58 -05:00
Taylor R Campbell
1a6060fa42
New macro CTASSERT(condition) to assert condition at compile-time.
...
To get it, use: #include "lib/cc/ctassert.h"
2018-11-06 15:36:58 -05:00
Nick Mathewson
c8892b53ec
Merge remote-tracking branch 'tor-github/pr/466'
2018-11-06 15:35:45 -05:00
Nick Mathewson
8020d6fb05
Merge remote-tracking branch 'tor-github/pr/464'
2018-11-06 15:33:25 -05:00
Nick Mathewson
ba28704b29
Merge branch 'maint-0.3.5'
2018-11-06 15:22:11 -05:00
Nick Mathewson
c60f3ea607
Merge remote-tracking branch 'tor-github/pr/474' into maint-0.3.5
2018-11-06 15:21:45 -05:00
Nick Mathewson
bb9044381e
Merge branch 'maint-0.3.5'
2018-11-06 15:20:01 -05:00
Nick Mathewson
8a5590ebac
Merge remote-tracking branch 'tor-github/pr/484' into maint-0.3.5
2018-11-06 15:19:04 -05:00
Nick Mathewson
bcba6a4918
Merge branch 'maint-0.3.5'
2018-11-06 15:17:52 -05:00
Kris Katterjohn
daaa2751ed
Include sys/time.h in timers.c and time_fmt.c
...
This fixes compilation on OpenBSD.
Signed-off-by: Kris Katterjohn <katterjohn@gmail.com>
2018-11-06 15:15:22 -05:00
Roger Dingledine
3a2cb83685
refuse to start with relative paths + RunAsDaemon
...
Resume refusing to start with relative file paths and RunAsDaemon
set (regression from the fix for bug 22731).
Fixes bug 28298; bugfix on 0.3.3.1-alpha.
2018-11-06 15:50:56 +01:00
Nick Mathewson
313b5b956c
Merge branch 'maint-0.3.5'
2018-11-06 09:16:25 -05:00
Nick Mathewson
9431d35074
Merge branch 'bug28348_034' into bug28348_035
2018-11-06 07:42:55 -05:00
Nick Mathewson
2aff02eb3d
Actually disable NEED_NET periodic events when DisableNetwork is set
...
Fixes bug 28348; bugfix on 0.3.4.1-alpha
2018-11-06 07:40:02 -05:00
Nick Mathewson
32b23a4c40
Make tortls use the subsystems interface
...
This one only needs a shutdown right now.
2018-11-05 09:22:02 -05:00
Nick Mathewson
019a044e5e
Turn "compress" into a subsystem.
2018-11-05 09:22:02 -05:00
Nick Mathewson
207253df8d
Move monotonic time setup into a subsystem
2018-11-05 09:22:02 -05:00
Nick Mathewson
cad61f0f6d
Move prefork, postfork, and thread-exit hooks into subsys
...
So far, crypto is the only module that uses them, but others are
likely to do so in the future.
2018-11-05 09:22:02 -05:00
Nick Mathewson
50436ccea4
Add crypto module as a subsystem.
2018-11-05 09:22:02 -05:00
Nick Mathewson
cfe5b35edb
Move networking startup/cleanup logic into a subsystem.
2018-11-05 09:22:02 -05:00
Nick Mathewson
05b54f6a6a
Use subsystems manager for subsystems used in tests.
2018-11-05 09:22:02 -05:00
Nick Mathewson
a0ee54549f
Turn the wallclock module into a subsystem.
...
(This may be slightly gratuitous.)
2018-11-05 09:22:02 -05:00
Nick Mathewson
d3e4afcc9b
Turn the logging code into a subsystem
2018-11-05 09:22:02 -05:00
Nick Mathewson
b8c50eabfe
Add a subsystem for our threading support
2018-11-05 09:22:02 -05:00
Nick Mathewson
178c1821b2
Make the windows process parameter initialization a subsystem
...
Also, move it from "main" into lib/process
2018-11-05 09:22:02 -05:00
Nick Mathewson
175153a329
Make initialization for the "err" library into a subsystem.
2018-11-05 09:22:02 -05:00
Nick Mathewson
6e7ff8cba0
Move the code that knows our tor version into a lowest-level lib
2018-11-05 09:22:02 -05:00
Nick Mathewson
7bb76b24cf
Code to manage the list of subsystems.
2018-11-05 09:22:02 -05:00
Neel Chauhan
45b28167d7
In count_acceptable_nodes(), count direct and indirect nodes with node_has_preferred_descriptor()
2018-11-05 08:26:02 -05:00
Alex Xu (Hello71)
0d6d3e1f26
Notify systemd of ShutdownWaitLength
2018-11-05 11:46:28 +10:00
Nick Mathewson
674ef53a7e
Add a warning if we can't write networkstatus-bridges
...
Fixes CID 1440818.
2018-11-02 13:32:43 -04:00
Nick Mathewson
18a4eaf5c1
Avoid mmap leak if we get a consensus diff we can't use.
...
Fixes CID 1440819; bug not in any released Tor.
2018-11-02 13:30:55 -04:00
Nick Mathewson
3e2423d19b
Update address tests to avoid offending coverity.
2018-11-02 13:29:24 -04:00
Nick Mathewson
865514e66e
Merge branch 'ticket28100_squashed'
2018-11-02 13:19:24 -04:00
Alex Xu (Hello71)
1b75de85b3
Don't overwrite the Content-Type when compressing
2018-11-02 13:19:14 -04:00
Nick Mathewson
f0bd6c2c9d
Merge branch 'maint-0.3.5'
2018-11-02 13:14:37 -04:00
Nick Mathewson
996f24fcd3
Merge branch 'bug27968_squashed' into maint-0.3.5
2018-11-02 13:14:32 -04:00
teor
e36e4a9671
Sort the imports in test_rebind.py
...
Cleanup after #27968 .
2018-11-02 13:14:23 -04:00
teor
a02d6c560d
Make test_rebind.py timeout when waiting for a log message
...
Closes #27968 .
2018-11-02 13:14:23 -04:00
teor
cd674a10ad
Refactor test_rebind.py to consistently print FAIL on failure
...
Part of #27968 .
2018-11-02 13:14:23 -04:00
teor
8f43b8fb47
Avoid a race condition in test_rebind.py
...
If tor terminates due to SIGNAL HALT before test_rebind.py calls
tor_process.terminate(), an OSError 3 (no such process) is thrown.
Fixes part of bug 27968 on 0.3.5.1-alpha.
2018-11-02 13:14:23 -04:00
Nick Mathewson
5acf6f8717
Bump to 0.3.4.9-dev
2018-11-02 13:01:32 -04:00
Nick Mathewson
a6c7e01584
Merge branch 'bug27963_wallclock' into maint-0.3.5
2018-11-02 09:39:13 -04:00
Nick Mathewson
084a5a13c7
Merge branch 'bug27963_wallclock'
2018-11-02 09:38:26 -04:00
Nick Mathewson
d8d4fe83d0
Bump to 0.3.4.9
2018-11-02 09:08:45 -04:00
Nick Mathewson
bfe8f50cc8
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-02 09:06:37 -04:00
Nick Mathewson
6bd069630a
Merge branch 'bug26470_032' into maint-0.3.3
2018-11-02 09:06:32 -04:00
Nick Mathewson
f288f2478a
Merge branch 'bug26896_034' into maint-0.3.4
2018-11-02 09:05:14 -04:00
Nick Mathewson
8ed4f1ee84
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-11-02 09:04:25 -04:00
Nick Mathewson
e847909b71
Merge remote-tracking branch 'dgoulet/ticket27410_032_01' into maint-0.3.3
2018-11-02 09:04:20 -04:00
Nick Mathewson
0ce1f2d466
Declare the subsystem structure.
2018-11-01 12:55:52 -04:00
George Kadianakis
da716fdfbb
Add tests for the string_is_utf8_no_bom() function.
2018-11-01 12:55:04 +02:00
Fernando Fernandez Mancera
f60607ee96
Improve log message in hs_service.c
...
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
2018-11-01 12:40:52 +02:00
Nick Mathewson
383b44553c
Merge branch 'ticket24393_036_01_squashed'
2018-10-31 11:07:15 -04:00
Neel Chauhan
e9adc200aa
Add test for nodes_in_same_family()
2018-10-31 11:07:03 -04:00
Nick Mathewson
0d124488f8
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-10-31 11:02:58 -04:00
Nick Mathewson
158db532eb
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-10-31 11:01:41 -04:00
Nick Mathewson
2a4506776e
Merge branch 'maint-0.3.5'
2018-10-31 11:01:41 -04:00
Nick Mathewson
59043665f8
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-10-31 11:01:41 -04:00
Nick Mathewson
bcc1a71808
Merge branch 'maint-0.2.9' into maint-0.3.3
2018-10-31 11:01:40 -04:00
Nick Mathewson
0a824bd889
Merge remote-tracking branch 'tor-github/pr/436' into maint-0.2.9
2018-10-31 11:01:36 -04:00
Nick Mathewson
988d4903a3
Merge branch 'networkstatus_mmap' into networkstatus_mmap_merge
2018-10-31 09:04:12 -04:00
Nick Mathewson
a182301152
Fix memory leak ( #28257 , CID 1440805).
2018-10-31 08:30:48 -04:00
Neel Chauhan
067b16eae2
Check IPv6 subnets as well as IPv4 subnets where possible when choosing client paths
2018-10-30 15:02:43 -04:00
David Goulet
aa1ae1343a
Merge branch 'maint-0.3.5'
2018-10-30 11:44:14 -04:00
David Goulet
488969fe9c
Merge branch 'tor-github/pr/438' into maint-0.3.5
2018-10-30 11:43:54 -04:00
David Goulet
124c43704c
Merge branch 'maint-0.3.5'
2018-10-30 11:37:44 -04:00
David Goulet
95559279e1
Merge branch 'tor-github/pr/415' into maint-0.3.5
2018-10-30 11:36:36 -04:00
David Goulet
cdb065d6b2
Merge branch 'maint-0.3.5'
2018-10-30 10:55:10 -04:00
Neel Chauhan
cd9914d9f9
Add test for HiddenServiceAuthorizeClient and v3 onion services
2018-10-30 10:49:03 -04:00
Neel Chauhan
82b3a02302
Detect the onion service version and then check for invalid options unless we have set HiddenServiceVersion
2018-10-30 10:48:56 -04:00
Nick Mathewson
6ba7f9f0a4
Merge branch 'maint-0.3.5'
2018-10-30 09:35:11 -04:00
Nick Mathewson
97324a731f
Merge remote-tracking branch 'tor-github/pr/431' into maint-0.3.5
2018-10-30 09:35:07 -04:00
Nick Mathewson
cf2cb783b7
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-10-30 09:34:04 -04:00
Nick Mathewson
22338d63c4
Merge remote-tracking branch 'tor-github/pr/431' into bug27740_035_fix
2018-10-30 09:33:58 -04:00
Nick Mathewson
038bc21f88
Merge remote-tracking branch 'tor-github/pr/346' into maint-0.3.3
2018-10-30 09:33:36 -04:00
Nick Mathewson
de55df0260
remove now-unused "use" statement.
2018-10-30 09:28:10 -04:00
Nick Mathewson
30d853a906
Merge remote-tracking branch 'tor-github/pr/425'
2018-10-30 09:16:55 -04:00
Nick Mathewson
084924360a
Merge branch 'ticket23082_squashed'
2018-10-30 09:05:42 -04:00
rl1987
1425549ca6
Code cleanups for tor_addr_parse()
2018-10-30 09:05:11 -04:00
rl1987
742cd15649
Move a check for trailing colon to tor_inet_pton()
...
That way, string_is_valid_ipv6_address() can benefit from it
2018-10-30 09:05:11 -04:00
Nick Mathewson
c19bb4d62e
Merge branch 'maint-0.3.5'
2018-10-30 08:45:49 -04:00
Nick Mathewson
262b0fe7a0
Merge remote-tracking branch 'tor-github/pr/381' into maint-0.3.5
2018-10-30 08:39:57 -04:00
Nick Mathewson
632e040659
Try to restore a proper fix for bug27740 in 0.3.5.
...
(I messed up the merge in 289a7dbac32a981897e12a3c250f0b6c67eec809.)
2018-10-30 07:37:20 -04:00
Nick Mathewson
c4b6b57388
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-10-29 15:57:31 -04:00
Nick Mathewson
fda8b5de78
Merge branch 'maint-0.3.5'
2018-10-29 15:57:31 -04:00
Nick Mathewson
1dcaeab466
Merge remote-tracking branch 'tor-github/pr/446'
2018-10-29 14:49:15 -04:00
Alex Crichton
8285784966
Only pass -C default-linker-libraries
with sanitizers
...
This'll help retain test compatibility until 1.31.0 is released!
2018-10-29 10:00:23 -07:00
George Kadianakis
5c2212c734
HSv3: Correctly memwipe client auth keystream.
...
Wipe the whole thing, not just the size of the pointer.
2018-10-26 14:55:17 +03:00
rl1987
bdf6540edf
Add a comment about address type field to netinfo.trunnel
2018-10-26 12:58:42 +03:00
rl1987
5cc86e364f
Generate NETINFO cell using trunnel
2018-10-26 12:58:42 +03:00
rl1987
d3e6112bb2
Use trunnel for NETINFO cell parsing
2018-10-26 12:58:42 +03:00
rl1987
b59eedc259
Add trunnel spec and impl for NETINFO cells
2018-10-26 12:58:42 +03:00
rl1987
b7edfcbf6b
In configured_nameserver_address, check if tor_addr_from_sockaddr succeeded
2018-10-26 10:26:47 +03:00
Nick Mathewson
52a82bc53c
Add a couple more checks to test_parsecommon.c
...
These checks should make coverity stop giving us a "dereference
before null check" warning here.
2018-10-25 09:24:30 -04:00
Nick Mathewson
e9ff3e7d4a
Merge branch 'bug28202_033' into bug28202_035
2018-10-25 09:16:08 -04:00
Nick Mathewson
8013e3e8b6
Merge branch 'bug28202_029' into bug28202_033
2018-10-25 09:14:06 -04:00
Nick Mathewson
0878bb961f
Fix two other cases of (buf + N > end) pattern
...
Related to fix for 28202.
2018-10-25 09:08:02 -04:00
Nick Mathewson
368413a321
Fix possible UB in an end-of-string check in get_next_token().
...
Remember, you can't check to see if there are N bytes left in a
buffer by doing (buf + N < end), since the buf + N computation might
take you off the end of the buffer and result in undefined behavior.
Fixes 28202; bugfix on 0.2.0.3-alpha.
2018-10-25 09:06:13 -04:00
Nick Mathewson
76da5f8b80
Merge branch 'ticket28177'
2018-10-24 12:59:51 -04:00
Nick Mathewson
594140574e
Fix remaining cases of using consensus without a len parameter.
...
(Thanks to cyberpunks for noting two of them!)
2018-10-24 11:06:34 -04:00
David Goulet
b063ca0604
node: Make node_supports_v3_rendezvous_point() also check for the key
...
It is not enough to look at protover for v3 rendezvous support but also we
need to make sure that the curve25519 onion key is present or in other words
that the descriptor has been fetched and does contain it.
Fixes #27797 .
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-10-24 10:30:26 -04:00
Nick Mathewson
b77889fc5f
Merge branch 'maint-0.3.5'
2018-10-24 10:20:53 -04:00
Nick Mathewson
6851a08090
Merge branch 'ticket28115_035' into maint-0.3.5
2018-10-24 10:20:41 -04:00
Nick Mathewson
c0bd800d26
Re-alphabetize the list of tests in tests.[ch]
2018-10-24 09:09:40 -04:00
Nick Mathewson
c6d3bebb1e
Merge remote-tracking branch 'tor-github/pr/409'
2018-10-24 09:06:29 -04:00
Nick Mathewson
c3e14a3236
Merge branch 'maint-0.3.5'
2018-10-24 09:02:06 -04:00
cypherpunks
bfab7b9d35
rust/tor_log: fix C_RUST_COUPLED documentation
...
This file was moved in 97b15a1d7c
and moved again in e7f5f48d68
.
2018-10-24 09:02:04 -04:00
Nick Mathewson
fd6078b33a
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-10-23 19:50:53 -04:00
Nick Mathewson
b2c52f5d6d
Remove a now-unused rust "use".
2018-10-23 19:50:45 -04:00
Nick Mathewson
05d65cb067
Merge branch 'maint-0.3.5'
2018-10-23 19:22:05 -04:00
Nick Mathewson
289a7dbac3
Merge branch 'maint-0.3.4' into maint-0.3.5
2018-10-23 19:21:44 -04:00
Nick Mathewson
7edc594ee7
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-10-23 19:18:23 -04:00
Nick Mathewson
169bc670dd
Merge remote-tracking branch 'onionk/rust-allsupportednull1' into maint-0.3.3
2018-10-23 19:17:48 -04:00
George Kadianakis
a614731144
Documentation: Move the hs_service_descriptor_t elements around.
...
Move the elements around to concentrate mutable and immutable elements
together. This commit changes no code, check with --color-moved.
2018-10-23 16:43:54 +03:00
George Kadianakis
df78fb2451
Documentation: Document which descriptor elements are (im)mutable.
2018-10-23 16:43:54 +03:00
George Kadianakis
29c194e022
Func rename: Make it clear that update_all_descriptors() does intro points.
...
With the new refresh_service_descriptor() function we had both
refresh_service_descriptor() and update_service_descriptor() which is basically
the same thing.
This commit renames update_service_descriptor() to
update_service_descriptor_intro_points() to make it clear it's not a generic
refresh and it's only about intro points.
Commit changes no code.
2018-10-23 16:43:54 +03:00
teor
939657771c
Treat backtrace test failures as expected on most BSD-derived systems
...
Treat backtrace test failures as expected on NetBSD, OpenBSD, and
macOS/Darwin, until we solve bug 17808.
(FreeBSD failures have been treated as expected since 18204 in 0.2.8.)
Fixes bug 27948; bugfix on 0.2.5.2-alpha.
2018-10-23 11:21:10 +10:00
cypherpunks
f874ab2640
dircache: make dirauths reject non UTF-8 descriptors and extrainfo
...
Ticket #27367 .
2018-10-23 00:33:51 +00:00
cypherpunks
3704c4a012
string: add BOM helper
2018-10-23 00:33:48 +00:00
David Goulet
81c466c34a
hs-v3: Create desc signing key cert before uploading
...
Before this commit, we would create the descriptor signing key certificate
when first building the descriptor.
In some extreme cases, it lead to the expiry of the certificate which triggers
a BUG() when encoding the descriptor before uploading.
Ticket #27838 details a possible scenario in which this can happen. It is an
edge case where tor losts internet connectivity, notices it and closes all
circuits. When it came back up, the HS subsystem noticed that it had no
introduction circuits, created them and tried to upload the descriptor.
However, in the meantime, if tor did lack a live consensus because it is
currently seeking to download one, we would consider that we don't need to
rotate the descriptors leading to using the expired signing key certificate.
That being said, this commit does a bit more to make this process cleaner.
There are a series of things that we need to "refresh" before uploading a
descriptor: signing key cert, intro points and revision counter.
A refresh function is added to deal with all mutable descriptor fields. It in
turn simplified a bit the code surrounding the creation of the plaintext data.
We keep creating the cert when building the descriptor in order to accomodate
the unit tests. However, it is replaced every single time the descriptor is
uploaded.
Fixes #27838
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-10-22 16:34:41 -04:00
Nick Mathewson
afc22ec539
Merge remote-tracking branch 'tor-github/pr/421'
2018-10-22 08:49:55 -04:00
Roger Dingledine
7aa9fc1637
clean up a tor2web comment
2018-10-21 23:46:09 -04:00
rl1987
98cef6807e
Exclude test and a supporting function when evdns_base_get_nameserver_addr() is not available
2018-10-20 20:34:08 +03:00
rl1987
d827902cb1
Unit test for DNS fallback in configure_nameservers
2018-10-20 20:34:08 +03:00
rl1987
91fa12aedc
Fallback to local DNS when no other nameservers are known
2018-10-20 20:34:08 +03:00
Nick Mathewson
275e831cea
Merge remote-tracking branch 'tor-github/pr/396'
2018-10-19 14:29:01 -04:00
Nick Mathewson
1ae9116601
Merge remote-tracking branch 'onionk/rust-protocommas1' into maint-0.3.5
2018-10-19 14:20:57 -04:00
Nick Mathewson
a05a113062
Merge remote-tracking branch 'onionk/rust-protocommas1'
2018-10-19 14:20:43 -04:00
Nick Mathewson
d1d66866b2
Rename a function; it is used to convert a value _From_ le.
...
We can't use htons()/ntohs() -- those are no-ops on exactly the
wrong platforms.
2018-10-19 08:42:28 -04:00
Nick Mathewson
f8a1dc64f9
Fix a misspelled macro test that was breaking big-endian OPE
...
Fixes bug 28115; bugfix on 0.3.5.1-alpha.
2018-10-19 08:41:25 -04:00
Nick Mathewson
62401812c7
Merge remote-tracking branch 'dgoulet/ticket27471_035_02'
2018-10-18 13:01:41 -04:00
David Goulet
8b2e72106a
test: Add test for closing intro circuits when storing a new descriptor
...
This is client side and related to 27471 for previous commit that fixes this
issue.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-10-18 12:56:51 -04:00
David Goulet
9ba16c4d03
hs-v3: Close client intro circuits if the descriptor is replaced
...
When storing a descriptor in the client cache, if we are about to replace an
existing descriptor, make sure to close every introduction circuits of the old
descriptor so we don't have leftovers lying around.
Ticket 27471 describes a situation where tor is sending an INTRODUCE1 cell on
an introduction circuit for which it doesn't have a matching intro point
object (taken from the descriptor).
The main theory is that, after a new descriptor showed up, the introduction
points changed which led to selecting an introduction circuit not used by the
service anymore thus for which we are unable to find the corresponding
introduction point within the descriptor we just fetched.
Closes #27471 .
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-10-18 12:56:51 -04:00
David Goulet
56f713b8a4
hs-v3: Always generate the descriptor cookie
...
It won't be used if there are no authorized client configured. We do that so
we can easily support the addition of a client with a HUP signal which allow
us to avoid more complex code path to generate that cookie if we have at least
one client auth and we had none before.
Fixes #27995
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-10-18 11:46:07 -04:00
Nick Mathewson
0a41d17c15
Merge branch 'ticket27549_035_01_squashed'
2018-10-18 10:16:30 -04:00
David Goulet
3a8f32067d
hs-v3: Consolidate descriptor cookie computation code
...
Both client and service had their own code for this. Consolidate into one
place so we avoid duplication.
Closes #27549
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-10-18 10:16:07 -04:00
Nick Mathewson
d1eac7830f
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-10-18 09:12:58 -04:00
Nick Mathewson
e979a56bb6
Merge branch 'maint-0.3.5'
2018-10-18 09:12:58 -04:00
Taylor Yu
7f6c0fce46
Merge branch 'bug27800-034' into bug27800-035
2018-10-17 16:00:11 -05:00
Taylor Yu
4e7f65ee5d
Merge branch 'bug27800-033' into tor-034
2018-10-17 15:42:58 -05:00
Taylor Yu
93fd924bdb
Log more info for duplicate ed25519 IDs
...
Occasionally, key pinning doesn't catch a relay that shares an ed25519
ID with another relay. Log the identity fingerprints and the shared
ed25519 ID when this happens, instead of making a BUG() warning.
Fixes bug 27800; bugfix on 0.3.2.1-alpha.
2018-10-17 15:39:55 -05:00
cypherpunks
a56451af42
evloop: fix docs for threadpool_register_reply_event
...
Commit 6a5f62f68f
ultimately didn't
include the base argument, and the callback is named cb.
2018-10-17 20:27:19 +00:00
cypherpunks
f07ab5b95c
evloop: fix docs
...
alert_sockets_t was moved in 544ab27a94
.
2018-10-17 20:27:19 +00:00
Nick Mathewson
fd2e0ac1c3
Bump to 0.3.6.0-alpha-dev.
2018-10-17 14:46:38 -04:00
Nick Mathewson
389bae0e8b
Bump to 0.3.5.3-alpha-dev
2018-10-17 14:46:00 -04:00
Roger Dingledine
df78a2730c
merge in some fixes i found in a sandbox
2018-10-17 13:56:41 -04:00
Nick Mathewson
b1891068f1
Merge branch 'maint-0.3.4'
2018-10-17 13:02:23 -04:00
David Goulet
2000d04cb6
conn: Stop writing when our write bandwidth limist is exhausted
...
Commit 488e2b00bf
introduced an issue, most
likely introduced by a bad copy paste, that made us stop reading on the
connection if our write bandwidth limit was reached.
The problem is that because "read_blocked_on_bw" was never set, the connection
was never reenabled for reading.
This is most likely the cause of #27813 where bytes were accumulating in the
kernel TCP bufers because tor was not doing reads. Only relays with
RelayBandwidthRate would suffer from this but affecting all relays connecting
to them. And using that tor option is recommended and best practice so many
many relays have it enabled.
Fixes #28089 .
2018-10-17 12:25:12 -04:00
Nick Mathewson
d70ca3554e
Bump to 0.3.5.3-alpha
2018-10-17 09:26:32 -04:00
Nick Mathewson
34cd1fc523
Merge remote-tracking branch 'tor-github/pr/406'
2018-10-16 21:33:38 -04:00
cypherpunks
2f0744b3e6
rust/tor_util: drop unsafe block in cstr!
...
This is unnecessary just to get an empty string, there's Default::default().
Fix on 8fff331bb0
.
2018-10-17 00:16:21 +00:00
Nick Mathewson
63c5e09a40
Merge remote-tracking branch 'tor-github/pr/408'
2018-10-16 19:10:05 -04:00
Nick Mathewson
e97adaf8dc
Argh. The unset value for OwningControllerFD is NOT -1.
2018-10-16 17:57:04 -04:00
Nick Mathewson
56a3cef4d7
Merge branch 'bug27849_redux'
2018-10-16 17:33:58 -04:00
Nick Mathewson
698629f5a9
Merge remote-tracking branch 'tor-github/pr/404'
2018-10-16 17:29:50 -04:00
Nick Mathewson
8a0b741487
Add a tor_free() in tor_gencert to fix a coverity warning
2018-10-16 17:18:46 -04:00
rl1987
7fd82a4570
One testcase for annotation handling in tokenize_string()
2018-10-16 18:04:54 +03:00
rl1987
f10d664fd1
Test AT_END checking in tokenize_string()
2018-10-16 18:04:54 +03:00
rl1987
1a4edceee9
Add testcase for too many elements in tokenize_string() input
2018-10-16 18:04:54 +03:00
rl1987
7c8bf2f7c7
Add testcase for too few elements in tokenize_string() input
2018-10-16 18:04:54 +03:00
rl1987
78c446af7e
Unit-test multiple line parsing with tokenize_string()
2018-10-16 18:04:54 +03:00
rl1987
81731a290d
Unit-test some error conditions in get_next_token()
2018-10-16 18:04:54 +03:00
rl1987
6c5ba2662a
Test object parsing in get_next_token()
2018-10-16 18:04:54 +03:00
rl1987
38a7033d33
Fix memory management in test_parsecommon_get_next_token_parse_keys
2018-10-16 18:04:54 +03:00
rl1987
7764d6dfc9
Test RSA private key parsing with get_next_token()
2018-10-16 18:04:54 +03:00
rl1987
569d8d8cd7
Test-case for public key parsing using get_next_token()
2018-10-16 18:04:52 +03:00
rl1987
5c891dba77
Test argument concatenation in get_next_token()
2018-10-16 18:04:20 +03:00
rl1987
7829e3a868
First testcase for get_next_token()
2018-10-16 18:04:20 +03:00
rl1987
55412c4f3d
Add new source file to test target
2018-10-16 18:04:17 +03:00
Neel Chauhan
f93ee8e4c4
Fix typo in comment for hs_cell_parse_introduce2()
2018-10-16 10:59:42 -04:00
David Goulet
b5731cdf2e
mainloop: Set client role if ControlPort is set
...
It turns out that if _only_ the ControlPort is set and nothing else, tor would
simply not bootstrap and thus not start properly. Commit 67a41b6306
removed that requirement for tor to be considered a "client".
Unfortunately, this made the mainloop enable basically nothing if only the
ControlPort is set in the torrc.
This commit now makes it that we also consider the ControlPort when deciding
if we are a Client or not. It does not revert 67a41b6306
meaning
options_any_client_port_set() stays the same, not looking at the control port.
Fixes #27849 .
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-10-16 08:11:49 -04:00
Nick Mathewson
b7fbd1f329
Merge branch 'maint-0.3.4'
2018-10-16 08:04:34 -04:00
David Goulet
38599de2dd
test: Update approx_time before the test starts
...
This way we have the same time source when the IP is created and tested later.
Fixes #27810
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-10-16 08:03:55 -04:00
Nick Mathewson
8b3ec74e5f
Merge remote-tracking branch 'public/bug27990'
2018-10-16 08:02:01 -04:00
Nick Mathewson
11161395af
Merge branch 'maint-0.3.4'
2018-10-15 12:52:54 -04:00
Nick Mathewson
633e99575f
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-10-15 12:52:54 -04:00
Nick Mathewson
6b2ef2c559
Fix another tor_assert(0) case
2018-10-15 12:52:48 -04:00
Nick Mathewson
feed41bed3
Merge branch 'maint-0.3.4'
2018-10-15 12:47:46 -04:00
Nick Mathewson
d1ec7bb06e
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-10-15 12:47:46 -04:00
Nick Mathewson
86e0be421f
Merge branch 'maint-0.2.9' into maint-0.3.3
2018-10-15 12:47:46 -04:00
Nick Mathewson
5b28190c67
Fix make check-spaces.
2018-10-15 12:47:19 -04:00
Nick Mathewson
23ce9a60fb
Merge branch 'maint-0.3.4'
2018-10-15 10:48:35 -04:00
Nick Mathewson
3462f8ed64
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-10-15 10:48:35 -04:00
Nick Mathewson
796e36e535
Adjust tor_assert_unreached()
...
This version of the macro makes it obvious to the compiler that
"tor_assert_unreached()" will always abort().
2018-10-15 10:46:26 -04:00
Nick Mathewson
4983322cc7
Merge branch 'maint-0.3.4'
2018-10-15 10:37:53 -04:00
Nick Mathewson
fd528a0884
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-10-15 10:37:52 -04:00
Nick Mathewson
dff7d3d00a
Merge branch 'maint-0.2.9' into maint-0.3.3
2018-10-15 10:37:49 -04:00
Nick Mathewson
b113399658
Merge branch 'bug27709_029' into maint-0.2.9
2018-10-15 10:34:39 -04:00
Nick Mathewson
5e582c7ffa
Explain a bit more about branch prediction in the unit-test case
2018-10-15 10:16:34 -04:00
rl1987
89c4a3a0b6
Write a comment to explain may_need_rebind condition
2018-10-15 16:18:31 +03:00
rl1987
9bb00a74bc
Refrain from listener rebinding when address families differ
2018-10-15 16:18:31 +03:00
Nick Mathewson
df2b46d18c
Remove a double-newline and improve a comment
2018-10-14 15:33:39 -04:00
Nick Mathewson
2dccef0eb4
Merge branch 'bug27772_squashed'
2018-10-14 15:31:52 -04:00
Nick Mathewson
6925b61cfd
Fix various GCC LTO warnings in the unit tests.
2018-10-14 15:25:16 -04:00
Nick Mathewson
7c8f20ba44
In tor_tls_get_my_certs(), set cert ptrs even on failure
...
Nothing should ever look at them on failure, but in some cases,
the unit tests don't check for failure, and then GCC-LTO freaks out.
Fixes part of 27772.
2018-10-14 15:25:16 -04:00
Nick Mathewson
dddecee291
Initialize some locals in socks5 parsing code.
...
These confused GCC LTO, which thought they might be used
uninitialized. I'm pretty sure that as long as 'res' indicates
success, they will always be set to something, but let's unconfuse
the compiler in any case.
2018-10-14 15:25:16 -04:00
Nick Mathewson
370d9922a4
Use the correct function signatures in test_relaycell.c
...
This is now officially an antipattern: please let's never copy a
function declaration in two places again. That's what headers are
for.
2018-10-14 15:25:16 -04:00
Nick Mathewson
965549aa07
Use assertions so GCC LTO doesn't worry about TLS channel conversion
...
Part of #27772
2018-10-14 15:25:16 -04:00
Nick Mathewson
67351f6724
Merge remote-tracking branch 'tor-github/pr/380'
2018-10-12 11:39:37 -04:00
Jay Bitron
b0c41e3ec2
Fix the missing unpack function in mmdb-convert.py
2018-10-10 14:12:53 -07:00
Nick Mathewson
267b8d16b1
Add timeval.h include to compat_pthreads.c for timeradd()
...
OpenSolaris apparently doesn't have timeradd(), so we added a
replacement, but we weren't including it here after the big
refactoring in 0.3.5.1-alpha.
Fixes bug 27963; bugfix on 0.3.5.1-alpha.
2018-10-10 12:19:56 -04:00
Nick Mathewson
a23c36ebcd
Merge branch 'maint-0.3.4'
2018-10-10 11:34:49 -04:00
Nick Mathewson
e5fe8b0e3a
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-10-10 11:34:49 -04:00
Nick Mathewson
b057623bed
Merge branch 'maint-0.2.9' into maint-0.3.3
2018-10-10 11:34:48 -04:00
Karsten Loesing
119df9c1c0
Update geoip and geoip6 to the October 9 2018 database.
2018-10-10 17:26:41 +02:00
Nick Mathewson
d3d6c59557
Add sys/time.h include back to procmon.c
2018-10-10 11:26:38 -04:00
Nick Mathewson
da86a70bd8
Merge remote-tracking branch 'tor-github/pr/384'
2018-10-10 09:24:48 -04:00
Nick Mathewson
7409aa58d1
Merge remote-tracking branch 'tor-github/pr/385'
2018-10-09 12:46:46 -04:00
Nick Mathewson
361eaa9931
Merge remote-tracking branch 'public/ticket27856'
2018-10-09 09:04:53 -04:00
Neel Chauhan
3cc089ce59
Add newline between hs_client_get_random_intro_from_edge() and hs_client_receive_introduce_ack()
2018-10-05 19:54:26 -04:00
rl1987
9d886185c1
Make sure we're removing conn from old_conns *once*
2018-10-03 15:51:59 +03:00
rl1987
2b146bdb9a
Refrain from using SMARTLIST_DEL_CURRENT in retry_all_listeners
2018-10-03 15:31:49 +03:00
Alex Crichton
38d644c94b
Remove rlib+staticlib configuration for Rust crates
...
Only the final crate needs to be a `staticlib`, no need for all the
intermediate steps to produce staticlibs!
2018-10-01 22:58:44 -07:00
Alex Crichton
757a2360a4
Remove [features]
from workspace Cargo.toml
...
Unfortunately Cargo doesn't actually parse these! Cargo should probably
print a warning saying they're not used...
2018-10-01 22:57:38 -07:00
Alex Crichton
74c1e44746
Fix segfaults related to sanitizers+jemalloc
...
It looks to be the case that Rust's standard allocator, jemalloc, is
incompatible with sanitizers. The incompatibility, for whatever reason,
seems to cause segfaults at runtime when jemalloc is linked with
sanitizers.
Without actually trying to figure out what's going on here this commit
instead takes the hammer of "let's remove jemalloc when testing". The
`tor_allocate` crate now by default switches to the system allocator
(eventually this will want to be the tor allocator). Most crates then
link to `tor_allocate` ot pick this up, but the `smartlist` crate had to
manually switch to the system allocator in testing and the `external`
crate had to be sure to link to `tor_allocate`.
The final gotcha here is that this patch also switches to
unconditionally passing `--target` to Cargo. For weird and arcane
reasons passing `--target` with the host target of the compiler (which
Cargo otherwise uses as the default) is different than not passing
`--target` at all. This ensure that our custom `RUSTFLAGS` with
sanitizer options doesn't make its way into build scripts, just the
final testing artifacts.
2018-10-01 22:55:59 -07:00
Alex Crichton
6ebb2c46d5
Remove the link_rust.sh.in
script
...
This is no longer necessary with upstream rust-lang/rust changes as well
as some local tweaks. Namely:
* The `-fsanitize=address`-style options are now passed via `-C
link-args` through `RUSTFLAGS`. This obviates the need for the shell
script.
* The `-C default-linker-libraries`, disabling `-nodefaultlibs`, is
passed through `RUSTFLAGS`, which is necessary to ensure that
`-fsanitize=address` links correctly.
* The `-C linker` option is passed to ensure we're using the same C
compiler as normal C code, although it has a bit of hackery to only
get the `gcc` out of `gcc -std=c99`
2018-10-01 22:50:08 -07:00
Nick Mathewson
43211c3a0c
Merge remote-tracking branch 'public/bug27893'
2018-10-01 12:12:33 -05:00
Nick Mathewson
58299b2927
Merge remote-tracking branch 'public/bug27728'
2018-10-01 12:06:39 -05:00
Nick Mathewson
c4e29001c4
Fix a bug where we would crash on --version.
...
Bug not in any released Tor.
test-stem would have caught this.
2018-10-01 12:01:51 -05:00
Nick Mathewson
886dc8b0a5
Remove routerparse include from files that dont use it
2018-10-01 11:35:11 -05:00
Nick Mathewson
d199348664
Remove versions.h include from routerparse.h
2018-10-01 11:22:47 -05:00
Nick Mathewson
5f9839ee42
Remove unused headers from routerparse.c
2018-10-01 11:17:33 -05:00
Nick Mathewson
35db3f8162
Extract addr-policy parsing code.
2018-10-01 11:17:19 -05:00
Nick Mathewson
95e2eb9083
Move summarize_protover_flags to versions.c
2018-10-01 10:48:55 -05:00
Nick Mathewson
4201203845
extract networkstatus parsing to its own file.
2018-10-01 10:46:00 -05:00
Nick Mathewson
cd23903427
Pull detached-signatures code into dirauth.
2018-10-01 10:46:00 -05:00
Nick Mathewson
2be35f4d61
Split microdescriptor parser into its own file.
2018-10-01 10:46:00 -05:00
Nick Mathewson
aff5bf5464
Remove addr_policy_assert_ok() as unused
2018-10-01 00:09:00 -05:00
Nick Mathewson
3100831762
Remove dump_distinct_digest_count()
...
It was disabled-by-default for ages, and it no longer compiles. I
think it's safe to call it obsolete.
2018-10-01 00:09:00 -05:00
Nick Mathewson
a77b2e984e
Remove router_get_dir_hash as unused.
2018-10-01 00:09:00 -05:00
Nick Mathewson
82f4d3ca75
Move v2 hs parsing into feature/rend
2018-10-01 00:09:00 -05:00
Nick Mathewson
430ca38f70
Split the authority-cert and signature/hash code from routerparse
2018-10-01 00:09:00 -05:00
Nick Mathewson
2f5dc48699
Extract the version-managing code from routerparse.c
...
Leave the versions.h include in routerparse.h for now; I'll remove
it later.
2018-10-01 00:04:58 -05:00
Nick Mathewson
fec3b3bb93
Extract logic for dumping unparseable junk from routerparse.c
2018-10-01 00:04:58 -05:00
Nick Mathewson
6785aa4010
Move routerparse and parsecommon to their own module.
2018-10-01 00:04:06 -05:00
Nick Mathewson
b058f64cc0
Detect an unlikely integer overflow.
2018-09-27 16:30:02 -04:00
Nick Mathewson
9e65e7a36f
Merge branch 'split_stats'
2018-09-27 16:26:06 -04:00
Nick Mathewson
9e1a3be064
Prevent duplicate initialization of NSS DH module
...
Allowing this didn't do any actual harm, since there aren't any
shared structures or leakable objects here. Still, it's bad style
and might cause trouble in the future.
Closes ticket 27856.
2018-09-27 13:26:47 -04:00
Nick Mathewson
d0b2b5a202
Always initialize the periodic events list.
...
Various places in our code try to activate these events or check
their status, so we should make sure they're initialized as early as
possible. Fixes bug 27861; bugfix on 0.3.5.1-alpha.
2018-09-27 13:24:36 -04:00
Nick Mathewson
8812f562a0
Fix a memory leak in --dump-config
...
When freeing a configuration object from confparse.c in
dump_config(), we need to call the appropriate higher-level free
function (like or_options_free()) and not just config_free().
This only happens with options (since they're the one where
options_validate allocates extra stuff) and only when running
--dump-config with something other than minimal (since
OPTIONS_DUMP_MINIMAL doesn't hit this code).
Fixes bug 27893; bugfix on 0.3.2.1-alpha.
2018-09-27 13:05:19 -04:00
Nick Mathewson
316453065d
Mark a variable static.
2018-09-27 11:59:39 -04:00
Nick Mathewson
34402ece8c
geoip: fix windows compilation
2018-09-27 11:02:58 -04:00
Nick Mathewson
c8f2a6d2fe
Extract the non-stats part of geoip into a new src/lib/geoip.
2018-09-27 10:26:01 -04:00
Nick Mathewson
fa32574bdb
Remove excess dependencies from geoip.c
2018-09-27 10:15:39 -04:00
Nick Mathewson
f403af2207
Split geoip from geoip-related stats.
...
This commit just moves the code to two separate files. The geoip
code still has a few needless dependencies on core/* and features/*.
2018-09-27 09:36:52 -04:00
Nick Mathewson
79208ee852
Move the n_v3_ns_requests field out of geoip_country_t
...
This is preparation for splitting geoip.c into stats and non-stats
portions.
2018-09-27 09:04:08 -04:00
Nick Mathewson
241c1505cc
Move the predicted ports code out of rephist.c
...
It differs from the rest of the rephist code in that it's actually
necessary for Tor to operate, so it should probably go somewhere
else. I'm not sure where yet, so I'll leave it in the same
directory, but give it its own file.
2018-09-27 08:21:17 -04:00
Nick Mathewson
de0b07c634
Merge branch 'router_split'
2018-09-26 09:47:59 -04:00
Nick Mathewson
5e5e019b31
Merge remote-tracking branch 'dgoulet/bug27550_035_01'
2018-09-26 08:36:09 -04:00
Nick Mathewson
5fe05de4fe
Remove extra includes from router.c
2018-09-25 18:33:13 -04:00
Nick Mathewson
4f0bc0c8f5
Revise things that had included router.h before
...
Make them only include the headers that they needed, and sort their
headers while we're at it.
2018-09-25 17:57:58 -04:00
Nick Mathewson
3ff58e47d2
Move the "is the network disabled?" functions out of router.c
...
Since this is completely core functionality, I'm putting it in
core/mainloop, even though it depends on feature/hibernate. We'll
have to sort that out in the future.
2018-09-25 17:22:14 -04:00
Nick Mathewson
b8df2318e9
Move routerinfo_t functions out of router.c
...
(It turns out that some of the functions in router.h didn't even
exist any more, so I just got to delete their declarations completely.)
2018-09-25 16:48:00 -04:00
Nick Mathewson
efa978124f
Extract nickname-checking functions from router.c
2018-09-25 16:22:11 -04:00
Nick Mathewson
5c86f3c297
Move the various _describe() functions out of router.c
...
Note that I haven't separated the headers yet (there's still an
2018-09-25 16:13:47 -04:00
Nick Mathewson
fcd0f76134
Extract all the "am I a server" functions from router.c
2018-09-25 16:00:50 -04:00
Nick Mathewson
70539e3d5e
Move all authdir_mode_*() functions into authmode.h
2018-09-25 15:39:24 -04:00
Nick Mathewson
9385b7ec5f
Rename dirauth/mode.h to dirauth/authmode.h
...
This is preparation for having a routermode.h as well
2018-09-25 15:18:21 -04:00
Nick Mathewson
8a350e088b
Move self-test functionality into its own file.
2018-09-25 15:14:57 -04:00
Nick Mathewson
934859cf80
Move key-loading and crosscert-checking out of feature/relay
...
This is also used by onion services, so it needs to go in another
module.
2018-09-25 15:14:57 -04:00
cypherpunks
5e74db95c2
rust: run rustfmt
2018-09-24 18:00:56 +00:00
David Goulet
18085abfcc
hs-v3: Silence some logging for client authorization
...
If a tor client gets a descriptor that it can't decrypt, chances are that the
onion requires client authorization.
If a tor client is configured with client authorization for an onion but
decryption fails, it means that the configured keys aren't working anymore.
In both cases, we'll log notice the former and log warn the latter and the
rest of the decryption errors are now at info level.
Two logs statement have been removed because it was redundant and printing the
fetched descriptor in the logs when 80% of it is encrypted wat not helping.
Fixes #27550
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-24 12:49:00 -04:00
Nick Mathewson
9767cf8cc0
Merge branch 'bug26913_033'
2018-09-24 11:17:09 -04:00
Nick Mathewson
6c739c3fb2
Fix arm compilation with openssl <1.1
...
Bug 27781; bugfix on 0.3.5.1-alpha.
2018-09-24 11:11:29 -04:00
Nick Mathewson
f57d8722e0
Fix the 0.3.4 part of bug 27781 (arm compilation)
...
Because with arm on OpenSSL <1.1 we don't define USE_EVP_AES_CTR, we
need to include crypto_util.h here.
2018-09-24 11:08:27 -04:00
Nick Mathewson
78295904f7
Merge branch 'ticket26744'
2018-09-24 10:56:50 -04:00
cypherpunks
b91bc1babc
rust/protover: remove redundant ExceedsMax checks
...
This is already checked elsewhere.
2018-09-24 14:30:43 +00:00
Nick Mathewson
ae0cb94b69
Initialize mainloop events earlier, since other stuff may run them.
...
Fixes a stem test failure; bugfix on c7ce6b9821
. Bug
not in any released Tor.
2018-09-22 17:40:04 -04:00
Nick Mathewson
7d9bea6a77
But, actually move systemd_watchdog_timer free into mainloop.c
2018-09-21 16:49:20 -04:00
Nick Mathewson
7eea45c5c4
Move systemd_watchdog_timer free into mainloop.c
2018-09-21 16:46:17 -04:00
Nick Mathewson
08d934b3fe
Missing include in ntmain.c
2018-09-21 16:32:14 -04:00
Nick Mathewson
169f238c23
Merge remote-tracking branch 'onionk/protover-rust1'
2018-09-21 16:28:32 -04:00
cypherpunks
5c0dd1aa90
move protover_rust.c to core/or/
...
Missed in 667a6e8fe9
.
2018-09-21 20:14:53 +00:00
Nick Mathewson
63e08f56b8
Merge remote-tracking branch 'tor-github/pr/365'
2018-09-21 16:13:59 -04:00
Nick Mathewson
7ed7fe230b
Add an include to get --disable-module-dirauth happy again
2018-09-21 15:03:42 -04:00