Commit Graph

228 Commits

Author SHA1 Message Date
teor
a0b12f3cd4 relay/circuitbuild: Refactor open connection for extend
Re-use the newly created extend_info to launch the connection in
circuit_open_connection_for_extend().

No behaviour change.

Part of 33817.
2020-04-29 22:43:09 +10:00
teor
16f3f6a1af relay/circuitbuild: Re-use IPv6 connections for circuits
Search for existing connections using the remote IPv4 and IPv6
addresses.

Part of 33817.
2020-04-29 22:43:09 +10:00
teor
ec5f4f3c5a relay/circuitbuild: Report IPv6 addresses in a debug log
Part of 33817.
2020-04-29 22:43:09 +10:00
teor
bad1181b5d relay/circuitbuild: Consider IPv6-only extends valid
Allow extend cells with IPv6-only link specifiers.
Warn and fail if both IPv4 and IPv6 are invalid.

Also warn if the IPv4 or IPv6 addresses are unexpectedly internal,
but continue with the valid address.

Part of 33817.
2020-04-29 22:43:09 +10:00
teor
44f71e08c4 relay: Log the address in circuit protocol warnings
Always log the address family in extend protocol warnings.

If SafeLogging is 0, also log the address and port.

Diagnostics for 33817.
2020-04-29 22:43:09 +10:00
teor
ffc2fd001a relay: Refactor address checks into a function
No behaviour change.

Part of 33817.
2020-04-29 22:43:09 +10:00
teor
07c008c672 relay: Refactor address and port checks
tor_addr_port_is_valid_ap(ap, 0) checks if the address or port are
zero, exactly like the previous code.

Preparation for 33817.
2020-04-29 22:43:09 +10:00
Neel Chauhan
a638514783 Fix typo in router_build_fresh_unsigned_routerinfo() comment 2020-04-12 12:43:21 -07:00
Nick Mathewson
80031db32a Merge remote-tracking branch 'tor-github/pr/1801/head' 2020-04-09 11:50:20 -04:00
teor
cb262930f5 relay: Run "make autostyle"
But only take the changes from the relay module.

Part of 33633.
2020-04-09 11:00:04 +10:00
teor
d79e5d52bc relay/circuitbuild: Refactor circuit_extend()
Make the "else" case explicit at the end of the function.

Part of 33633.
2020-04-09 11:00:04 +10:00
teor
ec632b01db relay: End circuitbuild logs with "."
Consistent logs make testing easier.

Part of 33633.
2020-04-09 11:00:04 +10:00
teor
4f9f56be47 relay: Check for NULL arguments in circuitbuild
Part of 33633.
2020-04-09 11:00:04 +10:00
teor
b10b287589 relay: Make circuitbuild functions STATIC
Allow the circuitbuild_relay functions to be accessed by the unit tests.

Part of 33633.
2020-04-09 11:00:04 +10:00
teor
44f634d0be relay: Remove a redundant function return value
Part of 33633.
2020-04-09 11:00:04 +10:00
teor
ca9565b9f7 relay: Split out opening a connection for an extend
Part of 33633.
2020-04-09 11:00:04 +10:00
teor
2640030b10 relay: Refactor some long lines from circuit_extend()
Part of 33633.
2020-04-09 11:00:04 +10:00
teor
5cb2bbea7d relay: Split link specifier checks from circuit_extend()
Part of 33633.
2020-04-09 11:00:04 +10:00
teor
2563d74a5c relay: Split state checks out of circuit_extend()
Part of 33633.
2020-04-09 11:00:04 +10:00
teor
beee9ca608 relay: Improve the comments on onionskin_answer()
Part of 33633.
2020-04-09 11:00:04 +10:00
teor
c9b674d511 relay: Protocol warn when a client gets an extend
circuit_extend() may be called when a client receives an extend cell,
even if the relay module is disabled.

Log a protocol warning when the relay module is disabled.

Part of 33633.
2020-04-09 10:59:51 +10:00
teor
065ccda4f6
Merge branch 'pr1838_squashed' 2020-04-07 17:36:17 +10:00
Roger Dingledine
f8ecf01cc1 spell consensus more right in comments 2020-03-27 02:56:59 -04:00
Roger Dingledine
a4304c6031 fix typo in log message 2020-03-27 02:51:01 -04:00
Nick Mathewson
3f6e37b1bc Add a SUBSYS_DECLARE_LOCATION() to every subsystem. 2020-03-26 11:20:20 -04:00
teor
4b914dea02
Merge branch 'bug32588_043' into bug32588_master 2020-03-21 04:02:08 +10:00
teor
52f61ec83e
Merge branch 'bug32588_042' into bug32588_043
Merge static function declaration deletions from bug32588_042 and
maint-0.4.3 in app/config/config.c.
2020-03-21 04:01:00 +10:00
teor
5e2f31f177
Merge branch 'bug32588_041' into bug32588_042 2020-03-21 03:52:32 +10:00
teor
2962c32b7a
Merge branch 'bug32588_035' into bug32588_041
Merge tests from maint-0.4.1 with new tests from bug32588_035
in test_router.c.
2020-03-21 03:50:36 +10:00
teor
bac8bc0ff1
router: Refactor IPv6 ORPort function logic
Return early when there is no suitable IPv6 ORPort.
Show the address and port on error, using a convenience function.

Code simplification and refactoring.

Cleanup after 32588.
2020-03-21 03:43:48 +10:00
teor
861337fd6d
router: Stop advertising incorrect auto IPv6 ORPorts
When IPv6 ORPorts are set to "auto", tor relays and bridges would
advertise an incorrect port in their descriptor.

This may be a low-severity memory safety issue, because the published
port number may be derived from uninitialised or out-of-bounds memory
reads.

Fixes bug 32588; bugfix on 0.2.3.9-alpha.
2020-03-21 03:36:39 +10:00
teor
f9fef2633f
relay: Set some output arguments in stubs
Fixes part of bug 33674; not in any released version of tor.
2020-03-21 02:48:40 +10:00
Nick Mathewson
3e24bd5557 Merge branch 'maint-0.4.3' 2020-03-20 07:56:42 -04:00
teor
d4a74021e5 relay/dirauth: Set some output arguments in stubs
And document how some functions set their output arguments.

Fixes bug 33674; bugfix on 0.4.3.1-alpha.
2020-03-20 07:56:26 -04:00
Nick Mathewson
c478dc9b2f Set *have_low_ports_out from stub port_parse_ports_relay().
Previously we just ignored this option, which would leave it unset,
and cause an assertion failure later on when running with the User
option.

Fixes bug 33668; bugfix on 0.4.3.1-alpha.
2020-03-20 07:56:26 -04:00
teor
81687f5bc9 relay: Split out relay-only circuit building
Move the relay-only circuit building functions into a new file.

Part of 33633.
2020-03-20 18:05:10 +10:00
teor
fdba6ff0c0 relay: Move inform_testing_rechability() to relay
Move inform_testing_rechability() to the relay module, and disable it
when the relay module is disabled.

Part of 33633.
2020-03-20 18:05:10 +10:00
teor
07280c567e relay: Re-order selftest header
The selftest header declares functions, and stubs for when the relay
module is disabled. Put the functions and stubs in the same order.

Part of 33633.
2020-03-20 18:05:10 +10:00
Nick Mathewson
9ca7900e17 Merge branch 'maint-0.4.3' 2020-03-12 12:46:12 -04:00
Nick Mathewson
e03bb35f90 Merge branch 'ticket33361_035_01_squashed' into maint-0.4.3
Conflicts:
        src/app/config/config.c
2020-03-12 12:45:56 -04:00
Nick Mathewson
8e5c75e896 Merge remote-tracking branch 'tor-github/pr/1772/head' 2020-03-05 09:09:16 -05:00
Nick Mathewson
686494f0f7 Merge branch 'clang_format_prep_3' 2020-03-05 08:23:32 -05:00
Neel Chauhan
2ef2fef711 Correct spacing in dns_launch_correctness_checks() 2020-02-26 15:48:45 -08:00
Nick Mathewson
66bbdadbbe Merge branch 'extract_routerkeys_squashed' 2020-02-20 10:41:12 -05:00
Nick Mathewson
1d068625dd Move relay_handshake.[ch] into src/feature/relay, and make it optional 2020-02-20 10:41:06 -05:00
Nick Mathewson
e425ffc637 Disable routerkeys.c with --disable-relay-mode. 2020-02-20 10:41:06 -05:00
Nick Mathewson
d559ca3d5a Move router_reset_reachability() into correct header, add a stub
Without this, -O0 builds fail, which is a sign that LTO builds may
fail too.
2020-02-20 08:36:40 -05:00
Nick Mathewson
5149c100ed run "make autostyle" 2020-02-20 08:33:40 -05:00
Nick Mathewson
a65efa7e83 Merge branch 'extract_relay_dns' 2020-02-19 13:58:53 -05:00
Nick Mathewson
65b75ef3d5 Merge branch 'extract_ext_orport' 2020-02-19 13:55:18 -05:00