Commit Graph

34383 Commits

Author SHA1 Message Date
Nick Mathewson dc6d7f072d Make foo_validate() functions call config_validate().
The former foo_validate() functions are now toplevel
legacy_validate_fn callbacks.  The new foo_validate() functions now
call them.

This change lets us remove the old shared_random disk state
validation callback entirely.
2019-10-24 20:30:32 -04:00
Nick Mathewson 0cb4238537 Add a config_validate() function to invoke verify callbacks.
As we turn our monolithic configuration objects into suites of
smaller module-specific configuration objects, we will want each one
to be able to provide its own verification callbacks.  That means
that instead of invoking these verification callbacks directly, we will
want to call them via the configuration manager object.
2019-10-24 20:30:32 -04:00
Nick Mathewson 4a248bafba Rename validate_fn{,_t} to start with "legacy_".
The current API of this callback mixes responsibilities, including:
  * validation
  * transition checking
  * processing (modifying) the configuration object.

These will have to be disentangled piece by piece, so for now, we'll
have "legacy" validate functions as well.

This is an automated commit, generated by this command:

./scripts/maint/rename_c_identifier.py \
        validate_fn_t legacy_validate_fn_t \
        validate_fn legacy_validate_fn
2019-10-24 20:30:32 -04:00
Nick Mathewson 24ee44df90 test_options: stop generating old_data entirely.
Now that we no longer use it anywhere, we can remove this variable
from the test data structure.
2019-10-24 20:30:32 -04:00
Nick Mathewson 7c0f966668 test_options: don't pass an old_options argument to options_validate()
This input was inessential, and none of the tests actually depended
on it or tested anything about it (as can be seen from the fact that
tests all still pass when it's removed).

I tried to generate this commit with a coccinelle script, but it had
trouble parsing a lot of options_validate as it stands.  Instead, I
did a search-and-replace to replace "tdata->old_opt," with "NULL,".
2019-10-24 20:30:32 -04:00
Nick Mathewson 27dbf20bf4 Use named-member syntax for initializing config_format_t objects
I'm about to mess with their lists of callbacks, and I don't want to
proliferate lists where we say "NULL, NULL, NULL, ..."
2019-10-24 20:30:32 -04:00
teor b3d035d5c4 Merge remote-tracking branch 'tor-github/pr/1463' 2019-10-25 10:27:41 +10:00
teor 93be7275ec changes: file for 31919's bionic Travis image change 2019-10-25 09:53:11 +10:00
teor 1eb57b20b9 Merge branch 'ticket31919_bionic_029' into ticket31919_bionic_035 2019-10-25 09:48:14 +10:00
teor 8e549dd562 Travis: Use Ubuntu Bionic, but keep Trusty for chutney
Bionic has a recent coccinelle version, which passes our CI tests.

But Bionic (and Xenial) cause permissions errors for chutney.
We'll fix those in 32240.

Part of 31919.
2019-10-25 09:45:36 +10:00
teor c00602cc34 Merge branch 'maint-0.4.2' 2019-10-25 09:42:14 +10:00
teor acd27f4b41 Merge remote-tracking branch 'tor-github/pr/1464' into maint-0.4.2 2019-10-25 09:41:48 +10:00
Nick Mathewson 68e1ced607 Merge branch 'maint-0.4.2'
"ours" to avoid version bump.
2019-10-24 15:55:38 -04:00
Nick Mathewson 570d1367ea bump to 0.4.2.3-alpha-dev 2019-10-24 15:55:22 -04:00
Nick Mathewson d0c97bf3b6 Forward-port the changelog for 0.4.2.3-alpha 2019-10-24 15:52:55 -04:00
Nick Mathewson 7bf4220a1b test_options: Use 64-bit comparisons when checking domain masks.
This prevents a warning when building for 32-bit targets.

Fixes bug 32269; bug not in any released Tor.
2019-10-24 12:37:27 -04:00
Nick Mathewson 9a66b33229 A little more text in the SEE ALSO section. 2019-10-24 11:45:07 -04:00
Nick Mathewson fefee871a6 Merge remote-tracking branch 'tor-github/pr/1437' 2019-10-24 11:44:19 -04:00
David Goulet 3867ca4925 dir: Return 503 code when rejecting single hop request
Single hop rejection (POST and GET) for HS v3 descriptor now return a 503 code
which is more accurate code from dir-spec.txt and from other rejection case in
the code.

For instance if you are not a relay and you get a POST request, a 503 code is
sent back with a rejection message.

Part of #31958

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-24 11:25:05 -04:00
David Goulet 985717675c dir: Remove connection_dir_is_anonymous() logging
First, remove the HSDir mention which should not be in that generic function.
Second, move them to debug() level since they are possible error case.

Part of #31958

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-24 11:23:31 -04:00
David Goulet 09468cc58b dir: Look if circuit is closed in connection_dir_is_anonymous()
Before inspecting the p_chan, we must check if the circuit is marked for close
because if it is the case, the channels are nullified from the circuit.

Several valid cases can mark the circuit for close of the directory
connection.

Fixes #31958

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-24 11:08:25 -04:00
David Goulet cf5f52d694 configure: Add --disable-module-relay to summary
Closes #32266

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-24 09:08:36 -04:00
David Goulet ed57a04a65 hs-v3: Remove a BUG() caused by an acceptable race
hs_client_purge_state() and hs_cache_clean_as_client() can remove a descriptor
from the client cache with a NEWNYM or simply when the descriptor expires.

Which means that for an INTRO circuit being established during that time, once
it opens, we lookup the descriptor to get the IP object but hey surprised, no
more descriptor.

The approach here is minimalist that is accept the race and close the circuit
since we can not continue. Before that, the circuit would stay opened and the
client wait the SockTimeout.

Fixers #28970.

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-24 08:50:01 -04:00
Nick Mathewson fcdb66acd3 Add a script to rename C identifiers, and optionally add a commit message
This script should "pay for itself" if it prevents one bug caused by
careless search-replace-commit loops.
2019-10-24 08:20:31 -04:00
teor 1094389d82 scripts/git: Make spaces consistent in pre-push.git-hook
Part of 31919.
2019-10-24 14:10:30 +10:00
teor b4b316631d scripts/git: Only check modified files in existing git hook checks
Part of 31919.
2019-10-24 14:10:26 +10:00
teor b9a2286765 scripts/git: Add check_cocci_parse.sh to the pre-commit hook
But only check modified files, which dramatically speeds up
check_cocci_parse.sh.

Part of 31919.
2019-10-24 14:09:53 +10:00
teor 71b8b7ee2d scripts/cocci: Check owned src in check_cocci_parse.sh by default
Check the tor-owned sources in an 0.3.5 directory layout, if no
files are provided on the command line.

Part of 31919.
2019-10-24 14:09:45 +10:00
teor 14b197a148 Travis: Use macOS 10.14 with Xcode 11.2
Closes ticket 32241.
2019-10-24 11:44:43 +10:00
teor 330717f018 scripts/cocci: Add check_cocci_parse.sh and default exceptions
Add check_cocci_parse.sh, which is a thin wrapper around
try_parse.sh. Add a default exceptions file, and use it in
check_cocci_parse.sh.

Part of 31919.
2019-10-24 11:40:58 +10:00
teor 87ee49e016 scripts/cocci: Remove unused arguments from try_parse.sh spatch
Part of 31919.
2019-10-24 11:40:54 +10:00
teor 9a96068a0b scripts/cocci: Add an exceptions file to try_parse.sh
Set $TOR_COCCI_EXCEPTIONS_FILE to the name of an exceptions file,
containing a list of filename patterns matched by 'grep -f'.

Part of 31919.
2019-10-24 11:40:51 +10:00
Nick Mathewson a03c0394a3 Merge branch 'maint-0.4.2'
"ours" to avoid version bump.
2019-10-23 20:26:15 -04:00
Nick Mathewson 76939cf293 Bump to 0.4.2.3-alpha 2019-10-23 20:25:34 -04:00
teor 20606b8a15 Merge remote-tracking branch 'tor-github/pr/1447' 2019-10-24 10:00:47 +10:00
David Goulet b6c24eb484 hs-v3: Remove the circuit_established intro flag
Only use the HS circuit map to know if an introduction circuit is established
or not. No need for a flag to keep state of something we already have in the
circuit map. Furthermore, the circuit map gets cleaned up properly so it will
always have the "latest truth".

This commit also removes a unit test that was testing specifically that flag
but now we rely solely on the HS circuit map which is also tested few lines
below the removed test.

Fixes #32094

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-23 11:51:23 -04:00
David Goulet 9586ae178a Merge branch 'tor-github/pr/1451' 2019-10-23 09:11:43 -04:00
teor 34509e78c6 Merge remote-tracking branch 'tor-github/pr/1449' 2019-10-23 22:59:16 +10:00
teor 226f11002d changes: file for 32216 2019-10-23 13:36:39 +10:00
teor f43a7a4d96 scripts/git: Avoid sleeping before the last push in git-push-all.sh
Change the loop order, so that we only sleep between pushes,
and avoid sleeping after all the pushes are done.

(In rare cases, there may still be an extra sleep.)

Part of 32216.
2019-10-23 13:28:37 +10:00
teor 4f6f006c99 scripts/git: Make git-push-all.sh skip more branches that match upstream
The script now skips master, maint-* and release-* branches that match
upstream, not just test branches.

And fix "no branches" bugs that this change makes happen more often.

Part of 32216.
2019-10-23 13:28:15 +10:00
teor 9a3b768fae scripts/git: Pass all unrecognised arguments to git-push-all.sh
This makes the behaviour of git-push-all.sh -n identical to the other
git scripts.

Part of 32216.
2019-10-23 13:04:28 +10:00
teor 71191fa3dc scripts/git: Fix a variable name typo in git-push-all.sh
Obviously correct changes to already reviewed code.
2019-10-23 13:01:55 +10:00
teor d804a81cf1 changes: file for 29603
We merged this change without a changes file.
2019-10-23 12:26:32 +10:00
teor 8a56819d23 Merge branch 'maint-0.4.2' 2019-10-23 10:00:49 +10:00
teor 65545e1345 Merge branch 'maint-0.4.1' into maint-0.4.2
`git merge --strategy ours` to use STATIC for unit tests in
maint-0.4.2.
2019-10-23 09:59:07 +10:00
teor 8bc65cda44 Merge branch 'pr1450_squashed' into maint-0.4.1 2019-10-23 09:58:22 +10:00
Nick Mathewson f3c0a0b9fe Authorities reject relays running unsupported Tor release series.
Our minimum version is now 0.2.9.5-alpha.  Series 0.3.0, 0.3.1,
0.3.2, 0.3.3, and 0.3.4 are now rejected.

Also, extract this version-checking code into a new function, so we
can test it.

Closes ticket 31549.

Also reject 0.3.5.0 through 0.3.5.6-rc as unstable.
2019-10-23 09:57:51 +10:00
teor 9db1602ec5 Merge branch 'maint-0.4.2' 2019-10-23 08:47:30 +10:00
teor b45048feaf Merge branch 'maint-0.4.1' into maint-0.4.2 2019-10-23 08:47:23 +10:00