Commit Graph

38055 Commits

Author SHA1 Message Date
Nick Mathewson 773bcf5629 Move dirclient-related functions out of dirserv, and reenable them
I had incorrectly identified these functions as dircache-only, when
in fact they apply to everyone who acts a directory client.
2020-01-16 07:48:17 -05:00
Nick Mathewson a1bc471dd4 Add a changes file for disabling the dircache code. 2020-01-16 07:48:17 -05:00
Nick Mathewson 8a0c739467 Disable feature/dircache files when dircache module is disabled.
To make Tor still work, we define a minimal dircache_stub.c file
that defines the entry points to the module that can actually be
seen by the compiler when we're building with dircache and relay
disabled.
2020-01-16 07:48:17 -05:00
Nick Mathewson 6e12a8f047 Use dir_conn_clear_spool() in connection.c.
This is cleaner than iterating over the spool.
2020-01-16 07:48:17 -05:00
Nick Mathewson fe8156dbc2 Move dirserv_get_routerdescs() to control_getinfo.c
This function had some XXX comments indicating (correctly) that it
was not actually used by the dirserver code, and that only the
controller still used it.
2020-01-16 07:48:17 -05:00
Nick Mathewson 4cf15ee015 Move dir_split_resource_into_spoolable() to dircache module.
Only directory caches actually need to spool things.
2020-01-16 07:48:17 -05:00
Nick Mathewson 888a0be0b9 Define a "dircache" module.
For now, this module is enabled whenever the relay module is
enabled, and disabled whenever the relay module is disabled.  Though
they are logically separate, the use cases for running one without
the other are rare enough that we don't really want to support
compiling them independently.
2020-01-16 07:48:17 -05:00
teor 4025cbada6 Merge branch 'maint-0.4.2' 2020-01-16 10:00:55 +10:00
teor 48187248d3 Merge branch 'maint-0.4.1' into maint-0.4.2 2020-01-16 10:00:47 +10:00
teor fb541ffca3 Merge branch 'maint-0.4.0' into maint-0.4.1 2020-01-16 10:00:40 +10:00
teor 026f068bb3 Merge branch 'maint-0.3.5' into maint-0.4.0 2020-01-16 10:00:32 +10:00
teor 19954cffd7 Merge remote-tracking branch 'tor-github/pr/1513' into maint-0.3.5 2020-01-16 09:57:27 +10:00
Alexander Færøy ca9a5390ff Don't escape the bridge distribution value.
We already check if there are invalid values in
check_bridge_distribution_setting() and reject the value if that is the
case. We can therefore only have strings of [A-Z] | [a-z] | [0-9] | '-'
| '_' here which is according to the directory specification.

See: https://bugs.torproject.org/32753
2020-01-15 23:41:58 +00:00
teor f3cbc26bdd add_c_file: Fix "control line not preceded by a blank line"
Fix dirauth and relay module include.am add_c_file.py
"control line not preceded by a blank line" errors.

Also remove a duplicate ADD_C_FILE: SOURCES in the relay module.

Obviously correct fixes to already-reviewed code.
2020-01-16 09:38:26 +10:00
teor eb336e23a6 add_c_file: Rename variables based on the type of path
* fname for generic file paths
* tor_fname for paths relative to the top-level tor directory
* src_fname for paths relative to tor's src directory

With prefixes as required to disambiguate different paths of the same
type.

Part of 32962.
2020-01-16 09:27:57 +10:00
teor b828588499 add_c_file: Simplify some usage of srcdir_file()
Part of 32962.
2020-01-16 09:26:08 +10:00
teor 3d50efcf98 add_c_file: Document the paths used by each part of the script
Most paths are relative to the top-level tor directory, but the
paths in the C and H files are relative to tor's src directory.

Part of 32962.
2020-01-16 09:26:04 +10:00
teor 207d2625ed add_c_file: Improve path handling and canonicalisation
* distinguish between paths relative to the top-level tor directory,
  and paths relative to tor's src directory
* canonicalise paths before using them
* check that the script is run from the top-level tor directory
* check that the file is being created in tor's src directory

Part of 32962.
2020-01-16 09:25:58 +10:00
Nick Mathewson 4f45ad1394 add_c_file: tolerate ./ in filenames. 2020-01-16 09:23:54 +10:00
Nick Mathewson ef1744e2c9 add_c_file: handle adding to the end of a list correctly.
Fixes bug 32962.
2020-01-16 09:23:49 +10:00
Alexander Færøy 399ec3130b Remove "hyphae" as a known value for BridgeDistribution.
This patch removes hyphae as a known value for the BridgeDistribution
option in torrc.
2020-01-15 23:20:27 +00:00
Nick Mathewson 5e70c27e85 Merge remote-tracking branch 'tor-github/pr/1657' 2020-01-15 13:10:14 -05:00
Alexander Færøy 1c8bafcdf9 Lowercase BridgeDistribution value before adding it to the descriptor.
This patch makes sure we lowercase the value of BridgeDistribution
before we add it to the descriptor as `bridge-distribution-request`.

See: https://bugs.torproject.org/32753
2020-01-15 17:22:47 +00:00
Alexander Færøy 026f0c7184 Make BridgeDistribution setting validator case-insensitive.
This patch makes sure that we accept values such as "nOne", "None", and
"AnY" as valid values for BridgeDistribution. We later ensure to
lower-case the values before they are forwarded to the BridgeDB.

See: https://bugs.torproject.org/32753
2020-01-15 17:21:10 +00:00
Alexander Færøy 3f20a69afb Always escape BridgeDistribution value from torrc in descriptors.
When the BridgeDistribution value was added in commit
ebab521525 the check for whether the value
contains '\n' or '\r' was added as a requirement for whether or not the
value should be escaped.

This patch removes this check and makes sure we call `escaped()` on the
value every time before we add it to a descriptor.

See: https://bugs.torproject.org/32753
2020-01-15 17:18:30 +00:00
Nick Mathewson 77246dc0d8 Tell static analyzer that having ntservice functions not exist is ok
When we made these functions exist unconditionally (as macros on
non-windows platforms), we started to get a dead-code warning on
Coverity.  We now use a macro to tell coverity not to worry about
this particular dead-code instance.
2020-01-15 10:30:03 -05:00
Nick Mathewson 5e27caa60c compat_compiler: add a macro to prevent coverity deadcode warnings.
The POSSIBLE(e) macro evaluates to the value of (e), but does so in
a way that a static analyzer will not conclude that (e) is
impossible.  We can use this when we expect our regular compilers to
eliminate deadcode, but we don't want coverity to complain about it.

Part of a fix for 32960.
2020-01-15 10:21:18 -05:00
teor 5fa7c1b13f Merge remote-tracking branch 'tor-github/pr/1661' 2020-01-16 00:46:31 +10:00
teor d430b5a074 Merge remote-tracking branch 'tor-github/pr/1634'
"Ours" merge, because ticket 32883 replaces this code with calls
to tor_run_main(). (Which then calls the pubsub functions.)

Therefore, this PR is obsolete in master, but it still needs to be
merged, to avoid conflicts during any future backport.
2020-01-15 22:31:10 +10:00
teor b7cfca1dee Merge branch 'pr1599_squashed' 2020-01-15 22:31:01 +10:00
teor b910ae8cd1 practracker: Wrap long lines in the test script 2020-01-15 22:29:52 +10:00
teor fa038e5617 practracker: Test practracker exit status
Part of 32705.
2020-01-15 22:29:48 +10:00
teor eb55d85e75 practracker: Fail tests if any process exits unexpectedly
Part of 32705.
2020-01-15 22:29:44 +10:00
teor cda2ff1965 practracker: Capture stderr output in test_practracker.sh
And canonicalise file paths, so that output is consistent, even in
out-of-tree builds.

Capturing stderr output produces better diagnostics.

Diagnostics for 32705.
2020-01-15 22:29:22 +10:00
teor c80694decc scripts/git: Improve branch list comments
Hopefully, these explanations make it easier to get the next branch
transition right.

Part of 32772.
2020-01-15 12:28:00 +10:00
teor 536eeb4589 scripts/git: Fix git-merge-forward after removing 0.2.9
We need a test branch for the earliest maint branch (maint-0.3.5),
but we can't merge forward into it, because there is no previous
active maint branch.

Also, edit a git-push-all comment that still said "029".

Bugfix on 32772; bug not in any released version of tor.
2020-01-15 12:22:38 +10:00
David Goulet b958529dbf Merge branch 'tor-github/pr/1633' 2020-01-14 14:03:21 -05:00
Nick Mathewson 08bbb6b8d9 Merge branch 'ticket32892_043_01_squashed' 2020-01-14 13:31:20 -05:00
David Goulet 59dac38ebe chan: Remove dead var cell handler from channel_t
The variable lenght cells are handled directly by
channel_tls_handle_var_cell() from an OR connection reading its inbuf. The
channel var cell handler (agnostic) was never used.

Closes #32892

Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-01-14 13:31:08 -05:00
Nick Mathewson 165a92e33f Replace an assertion with a check-and-log
We hit this assertion with bug 32868, but I'm stymied figuring out
how we wound up with a routerstatus like this.  This patch is a
diagnostic to attempt to figure out what is going on, and to avoid a
crash in the meantime.
2020-01-14 13:16:39 -05:00
Nick Mathewson c948db4252 Merge remote-tracking branch 'tor-github/pr/1636' 2020-01-14 12:46:14 -05:00
Nick Mathewson c2dc94d8eb Merge branch 'ticket32883' 2020-01-14 12:42:41 -05:00
Nick Mathewson dec11793ba Merge branch 'ticket32825_squashed' 2020-01-14 12:42:19 -05:00
Nick Mathewson 8ab9f93993 changes file for 32825 2020-01-14 12:42:13 -05:00
Nick Mathewson ac7d6f3c05 Rename UTIL_TEST_NO_WIN to reflect intent
Now that these tests are skipped on windows _and_ android, we should
name the macro that skips them after the functionality that the
tests depend on.

Closes last part of 32825.
2020-01-14 12:42:13 -05:00
Nick Mathewson 75741c6b3a Merge remote-tracking branch 'tor-github/pr/1659' 2020-01-14 12:40:07 -05:00
George Kadianakis 1ba193b7a8 Merge branch 'tor-github/pr/1656' 2020-01-14 12:21:29 +02:00
teor 8095c785f1 Merge branch 'maint-0.4.2' 2020-01-14 17:41:44 +10:00
teor 7e111d0eaa practracker: print a notice to stderr when disabled
When TOR_DISABLE_PRACTRACKER is set, print a message to
stderr when skipping practracker checks.

Part of 32705.
2020-01-14 17:41:00 +10:00
Neel Chauhan 8d288eb3a7 Deprecate the ClientAutoIPv6ORPort option 2020-01-13 14:55:16 -08:00