aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-hsservice
Commit message (Collapse)AuthorAgeFilesLines
...
* | tor-hsservice: Pass the service nickname to IptEstablisher (fmt).Gabriela Moldovan2023-10-192-1/+3
| | | | | | | | The nickname is needed for retrieving keys from the keystore.
* | tor-hsservice: Give IptManager a KeyMgr.Gabriela Moldovan2023-10-193-4/+73
| |
* | tor-hsservice: Hoist the key metadata out of HsSvcKeyRole (fmt).Gabriela Moldovan2023-10-194-12/+24
| |
* | tor-hsservice: Hoist the key metadata out of HsSvcKeyRole.Gabriela Moldovan2023-10-196-85/+180
| | | | | | | | | | We will need the string rerpresentation (minus the TimePeriod or any other metadata) of `HsSvcKeyRole`s for building `KeyPathPattern`s.
* | tor-keymgr: Use ArtiPathError for invalid ArtiPaths.Gabriela Moldovan2023-10-191-3/+7
| |
* | Merge branch 'terminate_pending_stream' into 'main'gabi-2502023-10-181-1/+1
|\ \ | |/ |/| | | | | proto: Make StreamTarget::close() misuse less likely. See merge request tpo/core/arti!1678
| * proto: Make StreamTarget::close() misuse less likely.Nick Mathewson2023-10-171-1/+1
| | | | | | | | | | | | | | | | | | It turns out that we can make `IncomingStream::reject()` consume self, thus making it impossible to hit the double-close error from outside the `tor-proto` crate. Also, we rename `StreamTarget::close()` to `close_pending()` to better reflect its limited applicability.
* | dirclient: Seal the Requestable trait and hide most of its members.Nick Mathewson2023-10-171-2/+2
|/ | | | | | | | Since none of these methods were invoked from outside `tor-dirclient` (except for debugging), and since we have had a fair amount of churn on what we actually want them to be, it seems like a good idea to use this trick to hide them. This will let us make other changes to the actual behavior of Requestable in the future.
* tor-hsservice: timeout track: Worsify formattingIan Jackson2023-10-161-4/+6
| | | | | | | | Simply running `rustfmt` makes a mess. This new formatting is less nice but repo policy requires that the layout is a fixed point under rustfmt and this is the least bad fixed point I found.
* tor-hsservice: timeout track: Add some discussionIan Jackson2023-10-161-4/+36
|
* tor-hsservice: timeout track: Add an example doctestIan Jackson2023-10-162-0/+74
|
* tor-hsservice: timeout track: Add a rustdoc allowIan Jackson2023-10-161-0/+4
| | | | Suppresses some erroneous warnings.
* tor-hsservice: timeout_track: Add a TODO re explanationsIan Jackson2023-10-161-0/+3
|
* tor-hsservice: ipt_mgr: Tolerate complexity warning for nowIan Jackson2023-10-161-0/+1
| | | | And add a TODO HSS for improving it.
* tor-hsservice: Apply mandatory code formatting worseningIan Jackson2023-10-162-21/+49
|
* tor-hsservice: timeout_track: tests: Introduce secs() aliasIan Jackson2023-10-161-11/+14
| | | | I wish we could `use Duration::from_secs as secs`.
* tor-hsservice: ipt_mgr: Add a test caseIan Jackson2023-10-162-0/+171
| | | | | This doesn't test all the code paths, but it does test the main path of execution (and detected a couple of bugs).
* tor-hsservice: ipt_mgr: Adjust API for mock RNGIan Jackson2023-10-161-4/+4
| | | | | We're want to be able to return a mutable borrow of a field in the mock state. This means we must make `Rng` a GAT.
* tor-hsservice: Narrow some dead code allowsIan Jackson2023-10-166-2/+7
|
* tor-hsservice: timeout_track: Change semantics to do what's neededIan Jackson2023-10-161-32/+68
| | | | | | | | | | | | | | | | | The key point is this: +//! I.e., the timeout tracker tells you when (in the future) +//! any of the comparisons you have made, might produce different answers. +//! So, that can be used to know how long to sleep for when waiting for timeout(s). That's how the code in ipt_mgr.rs uses this. Without this change, things go wrong in the following case: we've got at least one good IPT, but not quite enough, and the others are taking too long. Ie, the timeout for "we should publish" is in the past. We decide to publish (correctly) but this *past* timeout should be disregarded. Disregarding past timeouts is correct if the code which is making the comparisons acts on the timeout when it occurs.
* tor-hsservice: timeout_track: Provided shortest() for all trackersIan Jackson2023-10-161-0/+25
|
* tor-hsservice: timeout_track: Mark some unused variablesIan Jackson2023-10-161-2/+2
|
* tor-hsservice: timeout_track: Add a dead code allowIan Jackson2023-10-161-0/+1
| | | | For the same reason as the allow(unreachable_pub).
* tor-hsservice: ipt_mgr: Improve waiting publish messageIan Jackson2023-10-161-10/+18
| | | | | | This involves plumbing the duration through. Also it involved breaking out the multiplication by two into an addition, since if we were to change the factor we'd want to print the scaled value.
* tor-hsservice: ipt_mgr: Add several debug/trace messagesIan Jackson2023-10-161-4/+22
| | | | | We're going to improve the "establishing_very_recently" one in a moment.
* tor-hsservice: ipt_mgr: Fix a message styleIan Jackson2023-10-161-1/+2
| | | | | Add a colon. This is going to be the style for our trace and debug output.
* tor-hsservice: ipt_mgr: Avoid looping with a zero timeoutIan Jackson2023-10-161-0/+3
| | | | | If the time we're supposed to wait is zero, something has gone wrong. We'd probably just go round again and loop indefinitely.
* tor-hsservice: ipt_mgr: Apply a limit to loopingIan Jackson2023-10-161-0/+10
| | | | This is a backstop to stop us just spinning. Instead, we crash.
* tor-hsservice: ipt_mgr: Actually wait for (fast-ish) IPTsIan Jackson2023-10-161-0/+4
| | | | | We never called the `started_establishing_very_recently` machinery. Do so.
* tor-hsservice: ipt_mgr: Remove vestigial expiry time code (2)Ian Jackson2023-10-161-10/+1
| | | | | lifetime is passed in the IptSet and doesn't want to be made absolute here.
* tor-hsservice: ipt_mgr: Remove vestigial expiry time codeIan Jackson2023-10-161-4/+0
| | | | | | | This calculation is now done elsewhere: the addition of IPT_PUBLISH_EXPIRY_SLOP happens in IptSet::note_publication_attempt and the storage in the manager's data structure is done by IptManager::import_new_expiry_times.
* tor-hsservice: ipt_mgr: Mark an argument as unusedIan Jackson2023-10-161-1/+1
|
* tor-hsservice: Better debug impl for IptLocalIdIan Jackson2023-10-161-1/+5
|
* hss: use Arc to avoid copying on k_hss_ntor.Nick Mathewson2023-10-123-15/+8
| | | | (We try to avoid making tons and tons of copies of a secret key.)
* Remove the (fairly bogus) HsNtorServiceInput type.Nick Mathewson2023-10-123-23/+28
| | | | This will let avoid some copying inside our HSS code.
* Merge branch 'bug1051' into 'main'gabi-2502023-10-113-4/+188
|\ | | | | | | | | Implement build_auth_clients() See merge request tpo/core/arti!1642
| * Implement build_auth_clients()Neel Chauhan2023-10-113-4/+188
| |
* | oneshot: Apply deferred rustfmt churnIan Jackson2023-10-113-8/+4
| | | | | | | | cargo fmt, precisely.
* | oneshot: Use veneer in tor-hsserviceIan Jackson2023-10-115-6/+7
| |
* | oneshot: Avoid (one) use of .try_recv()Ian Jackson2023-10-111-2/+4
|/ | | | | | It's not so straightforward to provide this (we'd need to poll the FusedFuture and make a dummy a Context and so on), but this is just used once in a test where we can replace it with use of `poll!`
* tor-hsservice: Add tests for maybe_generate_hsid.Gabriela Moldovan2023-10-091-0/+189
|
* tor-hsservice: Move hsid generation to a separate function.Gabriela Moldovan2023-10-091-59/+71
|
* tor-hsservice: Make OnionServices auto-generate the hs_id, if it's missing.Gabriela Moldovan2023-10-092-0/+89
|
* Note reconfigure limitations.Nick Mathewson2023-10-051-0/+4
|
* hss: Implement a reconfigure function.Nick Mathewson2023-10-052-3/+43
|
* Merge branch 'new-mock-time' into 'main'Nick Mathewson2023-10-052-3/+2
|\ | | | | | | | | Provide and use a SimpleMockTimeProvider See merge request tpo/core/arti!1639
| * tor-rtmock: Abolish deprecated Runtime::advance()Ian Jackson2023-10-031-2/+1
| | | | | | | | | | Now we're making breaking changes anyway, in or mock crate, it is a convenient time to get rid of this.
| * tor-rtmock: Rename MockRuntime::jump_to to jump_wallclockIan Jackson2023-10-031-1/+1
| | | | | | | | | | | | This was named after the method from MockSleepRuntime. The name is confusing because it seems to imply it might do something to the monotonic time.
* | Merge branch 'launch_onion_proxies' into 'main'Nick Mathewson2023-10-052-1/+8
|\ \ | | | | | | | | | | | | arti: Write the minimal code needed to launch onion proxies. See merge request tpo/core/arti!1644
| * | hss: Mark RendCircConnector as Send+SyncNick Mathewson2023-10-041-1/+1
| | | | | | | | | | | | This makes some other futures Send+Sync, which lets us spawn them.