- Aug 24, 2017
-
-
David Goulet authored
We can't trigger a valid upload because it would require us to MOCK a long list of functions ultimately not really testing the upload because we aren't on a running network. Signed-off-by:
David Goulet <dgoulet@torproject.org> Conflicts: src/test/test_hs_service.c
-
David Goulet authored
Needed by the client when fetching a descriptor. This function checks the directory purpose and hard assert if it is not for fetching. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
This commit makes the client use the intro point state cache. It notes down when we get a NACK from the intro point and then uses that cache to decide if it should either close the circuits or re-extend to a new intro point. This also introduces a very useful function that checks if an intro point is usable that is query the state cache and checks a series of requirement. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
This cache keeps track of the state of intro points which is needed when we have failures when using them. It is similar to the failure cache of the legacy system. At this commit, it is unused but initialized, cleanup and freed. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
This moves it to hs_client.c so it can be used by both system (legacy and prop224). For now, only the legacy system uses it. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Don't assert() on rend_data when closing circuits to report an IP failure. The prop224 code doesn't have yet the support for this. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
For now, prop224 doesn't have a mechanism to note down connection attempts so we only do it for legacy system using rend_data. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
The client can now handle RENDEZVOUS2 cell when they arrive. This consolidate both hidden service version in one function. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
The client is now able to handle an INTRODUCE_ACK cell and do the appropriate actions. An intro point failure cache is missing and a way to close all intro point that were launched in parallel. Some notes are in the comment for that. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Add a function to parse an INTRODUCE_ACK cell in hs_cell.c. Furthermore, add an enum that lists all possible expected status code. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
From an edge connection object, add a function that randomly pick an introduction point for the requested service. This follows the code design of rend_client_get_random_intro() and returns an extend_info_t object ready to be used to extend to. At this commit, it is not used yet. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
When a descriptor fetch has completed and it has been successfully stored in the client cache, this callback will take appropriate actions to attach streams and/or launch neede circuits to connect to the service. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Client now handles a RENDEZVOUS_ESTABLISHED cell when it arrives on the rendezvous circuit. This new function applies for both the legacy system and prop224. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Add a function to build the cell. Add a the logic to send the cell when the rendezvous circuit opens. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Make a single entry point for the entire HS subsystem when a client circuit opens (every HS version). Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Add a function in hs_cell.{c|h} for a client to build an INTRODUCE1 cell using an object that contains all the needed keys to do so. Add an entry point in hs_client.c that allows a tor client to send an INTRODUCE1 cell on a given introduction circuit. It includes the building of the cell, sending it and the setup of the rendezvous circuit with the circuit identifier. The entry point function is still unused at this commit. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
The hs circuit file had this function that takes a list of link specifiers and return a newly allocated extend info object. Make it public so the client side can also use it to be able to extend to introduction point. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Put all the possible assert() we can do on a client introduction circuit in one helper function to make sure it is valid and usable. It is disabled for now so gcc doesn't complain that we have a unused function. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
This commit only moves code into a function. The client code will need a way to take a bunch of descriptor link specifier object and encode them into link specifiers objects. Make this a public function so it can be used outside of hs_descriptor.c. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
This will be useful to the hidden service subsystem that needs to go over all connections of a certain state to attach them to a hidden service circuit. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
- Add tests that ensure that SOCKS requests for v2/v3 addresses get intercepted and handled. - Add test that stores and lookups an HS descriptor in the client-side cache. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
This is a static function so don't polute the hs_client_ namespace. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Once a descriptor has been successfully downloaded from an HSDir, we flag the directory connection to "has fetched descriptor" so the connection subsystem doesn't trigger a new fetch on success. Same has DIR_PURPOSE_HAS_FETCHED_RENDDESC_V2 but for prop224. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
This code handles received HS descriptors by storing them in the client-side HS cache. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Recognize and handle v3 addresses. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Entry point is hs_client_refetch_v3_renddesc(). Will be used in subsequent commits. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Also refactor rendclient.c to use the new hs_pick_hdsir() func. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
- Also add tests for the hidserv_req subsystem. - Introduce purge_v2_hidserv_req() wrapper to simplify v2 code. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
See documentation of `last_hid_serv_requests_` for how it works. strmaps are cool! Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Specifically move the pick_hsdir() function and all the HSDir request tracking code. We plan to use all that code both for v2 and v3. This commit only moves code. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
- Aug 19, 2017
-
-
George Kadianakis authored
We will need to edit this function, and it's already pretty huge. Let's make it a bit smaller. This commit moves code, fixes a 80 char line and add two lines at the start to make it compile. Trivial change. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-