aboutsummaryrefslogtreecommitdiff
path: root/src/feature
AgeCommit message (Collapse)Author
2020-05-06Merge branch 'maint-0.4.3'Nick Mathewson
2020-05-06hs_dos.c: rewrite a comment not to say "fallthrough"Nick Mathewson
There's nothing wrong with the comment, but the script I'm about to apply wouldn't like it.
2020-05-06Merge branch 'maint-0.4.1' into maint-0.4.2Nick Mathewson
2020-05-06Merge branch 'maint-0.4.3'Nick Mathewson
2020-05-06Merge branch 'maint-0.4.2' into maint-0.4.3Nick Mathewson
2020-05-06Merge branch 'bug34078_prelim_035' into bug34078_prelim_041Nick Mathewson
2020-05-06Replace some "fall through" comments not at the end of a case.Nick Mathewson
2020-05-06Replace a "fall through" comment that was outside a switch.Nick Mathewson
2020-05-05relay: Rename relay_resolve_addr.{c|h} fileDavid Goulet
New name is more accurate semantically. Closes #33789 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-05-05config: New file resolve_addr.{c|h}David Goulet
Move a series of function from config.c into that new file which is related to address resolving. Part of #33789 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-05-05relay: New file relay_resolve_addr.{c|h}David Goulet
This commit moves router_pick_published_address() and the related helper functions into the new file. The log_addr_has_changed() function has been made public in router.h so we can use it in relay_resolve_addr.c. This is a refactoring as part of Sponsor 55. Only code movement at this commit. Part of #33789 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-05-04Merge branch 'maint-0.4.3'Nick Mathewson
2020-05-04Merge branch 'maint-0.4.1' into maint-0.4.2Nick Mathewson
2020-04-30Fix a GCC 10.0.1 compilation error.Nick Mathewson
Do not try to stuff "HS_DESC_DECODE_GENERIC_ERROR" (-1) into a socks5_reply_status_t (enum). It doesn't actually make sense, and isn't one of our documented extensions. (This can only happen on a nonfatal assertion that we haven't seen, so it probably isn't happening in practice.) Fixes another case of bug 34077; bugfix on 0.4.3.1-alpha.
2020-04-30Merge branch 'bug34077_042' into bug34077_043Nick Mathewson
2020-04-30Merge branch 'bug34077_041' into bug34077_042Nick Mathewson
2020-04-30Fix a GCC 10.0.1 compilation warning.Nick Mathewson
Fixes 34077 for 0.4.1; bugfix on 0.4.0.3-alpha. (Specifically, GCC first gives this warning for 9eeff921ae7b786d960ea4286d5bba56)
2020-04-30relay: Fix a comment typo in the selftest.c headerteor
2020-04-30relay: Refactor can extend over IPv6 checksteor
Split "can extend over IPv6" and "has advertised IPv6 ORPort" into separate functions. They currently have the same result, but this may change in 33818 with ExtendAllowIPv6Addresses. Part of 33817.
2020-04-30relay: Refactor extend address validity functionteor
Rename the function, and give it a boolean return value. No behaviour change. Part of 33817.
2020-04-30net: Make all address bytes functions take uint8_t *teor
Part of 33817.
2020-04-29relay: Refactor choosing extend IPsteor
Flatten the logic in circuit_choose_ip_ap_for_extend(). Part of 33817.
2020-04-29relay: Refactor circuit_open_connection_for_extend()teor
Refactor circuit_open_connection_for_extend(), splitting out the IP address choice code into a new function. Adds unit tests. No behaviour changes in tor. Part of 33817.
2020-04-29relay: Add IP version tests for circuit extendsteor
Add IPv4-only and IPv6-only tests for circuit_open_connection_for_extend(). Part of 33817.
2020-04-29relay: Choose between IPv4 and IPv6 extends at randomteor
When an EXTEND2 cell has an IPv4 and an IPv6 address, choose one of them uniformly at random. Part of 33817.
2020-04-29relay/circuitbuild: Refactor open connection for extendteor
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-29relay/circuitbuild: Re-use IPv6 connections for circuitsteor
Search for existing connections using the remote IPv4 and IPv6 addresses. Part of 33817.
2020-04-29relay/circuitbuild: Report IPv6 addresses in a debug logteor
Part of 33817.
2020-04-29relay/circuitbuild: Consider IPv6-only extends validteor
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-29relay: Log the address in circuit protocol warningsteor
Always log the address family in extend protocol warnings. If SafeLogging is 0, also log the address and port. Diagnostics for 33817.
2020-04-29relay: Refactor address checks into a functionteor
No behaviour change. Part of 33817.
2020-04-29relay: Refactor address and port checksteor
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-29Run "make autostyle"teor
2020-04-29nodelist: Remove an outdated commentteor
Part of 33817.
2020-04-14Merge remote-tracking branch 'tor-github/pr/1860/head'Nick Mathewson
2020-04-13Merge branch 'maint-0.4.3'Nick Mathewson
2020-04-13Merge branch 'bug33545_043_squashed' into maint-0.4.3Nick Mathewson
2020-04-13hs-v3: Change all-zeroes hard-assert to a BUG-and-err.George Kadianakis
And also disallow all-zeroes keys from the filesystem; add a test for it too.
2020-04-13hs-v3: Don't allow registration of an all-zeroes client auth key.George Kadianakis
The client auth protocol allows attacker-controlled x25519 private keys being passed around, which allows an attacker to potentially trigger the all-zeroes assert for client_auth_sk in hs_descriptor.c:decrypt_descriptor_cookie(). We fixed that by making sure that an all-zeroes client auth key will not be used. There are no guidelines for validating x25519 private keys, and the assert was there as a sanity check for code flow issues (we don't want to enter that function with an unitialized key if client auth is being used). To avoid such crashes in the future, we also changed the assert to a BUG-and-err.
2020-04-12Return a descriptive error for 'GETINFO status/fresh-relay-descs'Neel Chauhan
2020-04-12Fix typo in router_build_fresh_unsigned_routerinfo() commentNeel Chauhan
2020-04-09Merge remote-tracking branch 'tor-github/pr/1801/head'Nick Mathewson
2020-04-09hs-v3: Several fixes after #32542 reviewDavid Goulet
asn: Accidentally left this commit out when merging #32542, so cherry-picking it now. Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-04-09relay: Run "make autostyle"teor
But only take the changes from the relay module. Part of 33633.
2020-04-09relay/circuitbuild: Refactor circuit_extend()teor
Make the "else" case explicit at the end of the function. Part of 33633.
2020-04-09nodelist: Make some functions mockableteor
Part of 33633.
2020-04-09relay: End circuitbuild logs with "."teor
Consistent logs make testing easier. Part of 33633.
2020-04-09relay: Check for NULL arguments in circuitbuildteor
Part of 33633.
2020-04-09relay: Make circuitbuild functions STATICteor
Allow the circuitbuild_relay functions to be accessed by the unit tests. Part of 33633.
2020-04-09relay: Remove a redundant function return valueteor
Part of 33633.