torproject / tor Public
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ticket34200 #1888
Merged
Merged
Ticket34200 #1888
Conversation
Change some function names to distinguish between:
* client first hop reachability (ReachableAddresses)
* relay port reachability self-tests
This is an automated commit, generated by this command:
./scripts/maint/rename_c_identifier.py \
router_skip_or_reachability router_connect_assume_or_reachable \
router_skip_dir_reachability router_connect_assume_dir_reachable
It was generated with --no-verify, so it probably breaks some commit hooks.
The commiter should be sure to fix them up in a subsequent commit.
Part of 33222.
Part of 33222.
Part of 33222.
This is an automated commit, generated by this command:
./scripts/maint/rename_c_identifier.py \
check_whether_orport_reachable router_skip_orport_reachability_check \
check_whether_dirport_reachable router_skip_dirport_reachability_check
It was generated with --no-verify, so it probably breaks some commit hooks.
The commiter should be sure to fix them up in a subsequent commit.
Part of 33222.
Part of 33222.
Part of 33222.
Add an address family argument to the functions that launch relay ORPort self-test circuits. Part of 33222.
DIRIND_ANON_DIRPORT never uses our ORPort, so we don't need to set it in the directory request. Part of 33222.
Split OR and Dir reachability circuits into their own functions. Part of 33222.
Remove some redundant variables, and improve some comments. Explain that there are no advertised IPv6 DirPorts. Part of 33222.
When launching relay ORPort reachability self-tests, launch tests to the IPv4 and IPv6 ORPorts (if available). Part of 33222.
When a relay starts testing reachability, log its IPv6 ORPort. The existing code logs the IPv4 ORPort and DirPort. The IPv4 ORPort is required. The other ports are only logged if they are present. Part of 33222.
Part of 33222.
Allow relays and bridges to send IPv4 or IPv6 extend cells. But keep restricting clients to IPv4 extend cells, because sending IPv6 extend cells would be an obvious version distinguisher. Part of 33222.
This is an automated commit, generated by this command:
./scripts/maint/rename_c_identifier.py \
router_skip_orport_reachability_check router_should_skip_orport_reachability_check \
router_skip_dirport_reachability_check router_should_skip_dirport_reachability_check \
router_connect_assume_or_reachable client_or_conn_should_skip_reachable_address_check \
router_connect_assume_dir_reachable client_dir_conn_should_skip_reachable_address_check
It was generated with --no-verify, so it probably breaks some commit hooks.
The commiter should be sure to fix them up in a subsequent commit.
This is an automated commit, generated by this command:
./scripts/maint/rename_c_identifier.py \
client_or_conn_should_skip_reachable_address_check router_or_conn_should_skip_reachable_address_check \
client_dir_conn_should_skip_reachable_address_check router_dir_conn_should_skip_reachable_address_check
Rewrite inform_testing_reachability() to use separate buffers for IPv4 ORPort, IPv6 ORPort, and IPv4 DirPort. And use consistent APIs to fill those buffers. Part of 33222.
Document race conditions that we'll resolve in 34067 and 34137. Part of 33222.
Declare support for the new Relay=3 IPv6 extend protocol, in C and Rust. Part of 33226.
Also fix some comment typos, mainly ">=" when the code says "=". Part of 33226.
Part of 33226.
But don't implement the actual node selection yet. Part of 33226.
Part of 33226.
Refactor common circuitstats test code into its own function. Part of 33222.
Part of 33222.
Add tests for relays sending IPv6 extend cells in circuit_send_next_onion_skin(). Clients also use this code, check that they can only extend over IPv4 (for now). Part of 33222.
Move common build state to node selection flags conversion code into its own function. Part of 33222.
Move this complex check into its own function. Part of 33222.
Part of 33222.
Also update the protover/supported_protocols test. Part of 33226.
Part of 33222.
Part of 33222.
Declare support for the onion service introduction point denial of service extensions, when building tor with Rust. Fixes bug 34248; bugfix on 0.4.2.1-alpha.
Make Rust protocol version support checks consistent with the undocumented error behaviour of the corresponding C code. Fixes bug 34251; bugfix on 0.3.3.5-rc.
Part of 33222.
Check for single-hop exits in router_add_running_nodes_to_smartlist(), rather than router_choose_random_node(). Part of 34200.
And delete a loop that is now empty. This change should improve tor's performance, because we no longer iterate through the nodelist twice for every node in every circuit path. Part of 34200.
Move node flag checks to router_add_running_nodes_to_smartlist(), where they are actually used. Part of 34200.
Part of 34200.
Re-order the flags in a logical order, and re-number them. Add missing comments, fix comment typos. Part of 34200.
Instead, call out to a helper function, repeating the call if needed. Avoids duplicating exclusions for: * the current relay's family, and * any exclusions specified by the caller. Part of 34200.
Make some interfaces and implementations consistent by replacing int with bool. Part of 34200.
Split the node choosing checks into their own function, so we can call it independently of iterating through the nodelist. Part of 34200.
And check that the correct flags are passed when choosing exits. Adds the following checks for exits: * must support EXTEND2 cells, * must have an ntor circuit crypto key, * can't require the guard flag, * can't be a direct connection. All these checks are already implied by other code. Part of 34200.
Use the node check function to check that there are enough nodes to select a circuit path. Adds these checks, which are implied by other code: * supports EXTEND2 cells, * does not allow single-hop exits, Adds these extra checks: * has a general-purpose routerinfo, * if it is a direct connection, check reachable addresses. These checks reduce the node count, but they will never under-count nodes. Bridge nodes aren't handled correctly, we'll fix that in the next commit. Part of 34200.
When counting and choosing nodes on a client that uses bridges, only choose bridges for direct connections. Part of 34200.
Part of 34200.
Accept extra lines in nodelist and routerlist due to extra features, and due to refactors that simplify some functions. Most of the refactor eliminated duplicate code in smaller functions, so there's only one large function that got smaller. Part of 34200.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
No description provided.
The text was updated successfully, but these errors were encountered: