aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-hsservice
Commit message (Collapse)AuthorAgeFilesLines
...
* | tor-hsservice: Abolish StartupError::StateLockedIan Jackson2024-02-011-5/+0
| | | | | | | | This is now tor_persist::Error containing ErrorSource::AlreadyLocked.
* | tor-hsservice: Drop now-unused fslock dependencyIan Jackson2024-02-013-3/+0
| | | | | | | | We're just using fslock-guard now.
* | tor-hsservice: Use tor_persist::state_dir, etc. (fmt)Ian Jackson2024-02-012-18/+25
| |
* | tor-hsservice: Use tor_persist::state_dirIan Jackson2024-02-016-142/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We no longer do replay log locking in IptManager::new. Instead, we rely on the acquire_instance call in OnionService::launch, which ends up with ipt_mgr getting an InstanceHandle (which contains a lock guard). OnionServiceStateMgr is abolished; it existed to deal with the generics in the tor_persist::StateMgr API. state_dir has no generics (other than the T being loaded/stored). Many places (structs and argument lists) now have state_dir types which embody a path (or a CheckeDir) along with a lock, rather than separate path+lock+mistrust. The creation/startup code uses the new calls from state_dir. Other more minor changes: - StartupError::StateDirectoryInaccessible contains tor_persist::Error - test::create_storage_handles_from_state_dir changed and renamed, from _from_state_mgr. - replay::PersistFile's (separate) file lock is now fslock_guard's
* | tor-hsservice: Introduce StartupError::StateDirectoryInaccessibleIoIan Jackson2024-02-012-5/+26
| | | | | | | | | | | | We're going to change the payload of StateDirectoryInaccessible to tor_persist::Error, since that's what tor_persist::state_dir gives us, but then we can't use it here.
* | tor-hsservice: tests: create_storage_handles: use a real directory (fmt)Ian Jackson2024-02-011-1/+5
| |
* | tor-hsservice: tests: create_storage_handles: use a real directoryIan Jackson2024-02-013-5/+15
| | | | | | | | | | | | | | state_dir doesn't have the in-memory dummy implementation, so there will have to be a real directory here. Do that now, as prep.
* | tor-hsservice: ipt_mgr: Move storage handle to stateIan Jackson2024-02-012-9/+11
| | | | | | | | | | The new state_dir types require &mut for storing, which is correct, but that means we can't have it in Immutable.
* | tor-hsservice: impl state_dir::InstanceIdentity for HsNicknameIan Jackson2024-02-011-0/+10
| |
* | tor-hsservice: storage: Move Arcs into type aliasesIan Jackson2024-02-014-12/+12
| | | | | | | | | | | | | | These are here because that's what you get from the tor_persist singleton StageMgr API (for type erasure reasons). We're going to change these to tor_persist::state_dir types and those don't involve Arcs.
* | tor-hsservice: ipt_set: Make store method take &mut selfIan Jackson2024-02-011-1/+1
| | | | | | | | | | Only people who can mutate the state ought to be saving it. Otherwise there might be concurrent overwrites.
* | tor-hsservice: tests: Add a missing drop callIan Jackson2024-02-011-0/+2
|/ | | | | | This doesn't actually change the behaviour with current Rust. But it avoids bugs and future changes. Relying on drop order for temporary directory lifetime seems bad.
* Merge branch 'ipt_parameters' into 'main'Nick Mathewson2024-01-315-38/+57
|\ | | | | | | | | | | | | Clean up, tune, and correct various parameters related to introduction points. Closes #1210 See merge request tpo/core/arti!1924
| * Rename parameters for intro-point lifetime to match the spec.Nick Mathewson2024-01-311-2/+2
| | | | | | | | | | | | | | | | | | | | (Also, correct the comments that describe them.) We may as well match the spec names when they aren't completely bogus. We are already renaming these parameters for this release, so it isn't an additional breaking change.
| * hss: clean up comments on ipt establish time tuningNick Mathewson2024-01-251-3/+7
| | | | | | | | See #1210 "question 4".
| * Base INTRO_POINT_EXPIRY_SLOP on OVERALL_UPLOAD_TIMEOUT.Nick Mathewson2024-01-253-4/+7
| | | | | | | | See discussion at #1210, "question 5".
| * Document allowed numbers of intro points, and make them match CNick Mathewson2024-01-251-7/+17
| | | | | | | | | | | | | | Part of #1210. These values are not necessarily the cleverest possible, but they match the C implementation. We can tune them if we need to.
| * hss: Pick random intro-point lifetime based on netparamsNick Mathewson2024-01-252-12/+14
| | | | | | | | | | This makes us more spec-conformant. See discussion at #1210 "question 3".
| * fixup! hss: Use 3 hours for IPT_PUBLISH_*.Nick Mathewson2024-01-251-3/+0
| |
| * Use hs_intro_num_extra param for max_n_intro_relays.Nick Mathewson2024-01-251-3/+3
| | | | | | | | See #1210 "question 2" for more discussion here.
| * hss: Use 3 hours for IPT_PUBLISH_*.Nick Mathewson2024-01-251-6/+9
| | | | | | | | See discussion and rationale on #1210 "question 1".
* | Merge branch 'lowercase-slugs' into 'main'Ian Jackson2024-01-311-5/+5
|\ \ | | | | | | | | | | | | | | | | | | tor-keymgr: Lowercase the role when building the ArtiPath. Closes #1195 See merge request tpo/core/arti!1934
| * | tor-keymgr: Lowercase the role when building the ArtiPath.Gabriela Moldovan2024-01-311-5/+5
| | | | | | | | | | | | | | | | | | | | | The role is a slug, and slugs are not allowed to contain uppercase characters. Closes #1195
* | | Require tracing-test 0.2.4Ian Jackson2024-01-311-1/+1
| | | | | | | | | | | | | | | | | | Apparently we need https://github.com/dbrgn/tracing-test/pull/17 too.
* | | Require tracing-test 0.2.2Ian Jackson2024-01-311-1/+1
|/ / | | | | | | | | | | | | | | We need this bugfix https://github.com/dbrgn/tracing-test/pull/15 for `#[traced_test]` when `Result` is redefined. Fixes the tests with minimal-versions.
* | tor-persist: Make all Slugs non-empty.Gabriela Moldovan2024-01-311-9/+1
| | | | | | | | | | | | | | | | This also removes a TODO regarding adding a `Nickname` type for representing `HsClientSpecifier` and `HsNickname` (we don't need it if `Slug`s are non-empty). Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1931#note_2990227
* | tor-hsservice: Fix corner case in HsNickname FromStr impl.Gabriela Moldovan2024-01-311-3/+19
| | | | | | | | | | It was previously possible to construct an `HsNickname` out of an empty string using the `FromStr` impl.
* | tor-persist: Forbid slugs from starting with a hyphen.Gabriela Moldovan2024-01-311-1/+1
| |
* | tor-keymgr: Remove the Slug tests (fmt).Gabriela Moldovan2024-01-311-4/+2
| |
* | tor-keymgr: Abolish ArtiPathComponent.Gabriela Moldovan2024-01-311-3/+4
| | | | | | | | | | | | `ArtiPathComponent`s are really just `Slugs`. Part of #1193, #1092
* | tor-keymgr: Make ArtiPathComponent a Slug internally (fmt).Gabriela Moldovan2024-01-311-13/+2
| |
* | tor-hsservice: Make Slug the underlying repr of HsNickname.Gabriela Moldovan2024-01-311-19/+24
| | | | | | | | | | | | | | We represent `HsNickname` as a `Slug` instead of an `ArtiPathComponent` (we are about to remove the latter). Part of #1092
* | Upgrade to strum 0.26Nick Mathewson2024-01-301-1/+1
| |
* | tor-hsservice: Downgrade a debug message to trace.Gabriela Moldovan2024-01-261-1/+4
| |
* | tor-hsservice: Abort any pending desc uploads if shutting down.Gabriela Moldovan2024-01-261-4/+46
| | | | | | | | | | | | | | | | `Reactor::upload_for_time_period` now exits as soon as the Reactor is dropped (its upload tasks check if `shutdown_tx` was dropped before proceeding). Closes #1253
* | tor-hsservice: Add an UploadError type for interruption due to shutdown.Gabriela Moldovan2024-01-261-0/+12
| | | | | | | | | | This error will be returned if an upload is aborted because the reactor shutting down.
* | tor-hsservice: Document how the publisher tasks are shut down.Gabriela Moldovan2024-01-261-0/+7
| | | | | | | | Part of #1253
* | Merge branch 'set_faulty_eventually' into 'main'Nick Mathewson2024-01-262-6/+24
|\ \ | | | | | | | | | | | | | | | | | | HSS: Mark an Ipt as faulty if it fails continuously for 15 minutes. Closes #1248 See merge request tpo/core/arti!1915
| * | HSS: Mark an Ipt as faulty if it fails continuously for 15 minutes.Nick Mathewson2024-01-252-6/+24
| | | | | | | | | | | | Closes #1248.
* | | Merge branch 'tempdir' into 'main'Ian Jackson2024-01-256-357/+4
|\ \ \ | |/ / |/| | | | | | | | test-temp-dir: New crate See merge request tpo/core/arti!1925
| * | test-temp-dir: New crateIan Jackson2024-01-256-357/+4
| | | | | | | | | | | | | | | Introduce the crate, move the code motion, and make minimal necessary changes.
* | | Merge branch '1237_fixes' into 'main'Ian Jackson2024-01-251-7/+38
|\ \ \ | |/ / |/| | | | | | | | | | | | | | Clean up some error-handling issues in ipt_establisher Closes #1237 See merge request tpo/core/arti!1916
| * | Remove a comment about distinguishing errorsNick Mathewson2024-01-241-2/+3
| | | | | | | | | | | | (Replace it with a better comment.)
| * | hss: Comment on use of CircProto error in MsgHandler.Nick Mathewson2024-01-241-2/+12
| | |
| * | hss: Report failures to send rendezvous requestsNick Mathewson2024-01-241-3/+23
| | |
* | | tor-hsservice: replay: partial write test - commentaryIan Jackson2024-01-251-0/+29
| | |
* | | tor-hsservice: replay: partial write testIan Jackson2024-01-251-2/+114
| | |
* | | tor-hsservice: replay: partial write test, skeletonIan Jackson2024-01-252-0/+41
| | |
* | | test_temp_dir: Split up .used_by (fmt)Ian Jackson2024-01-251-4/+1
| | |
* | | test_temp_dir: Split up .used_byIan Jackson2024-01-253-14/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This method combined two things: 1. the lifetime guard API 2. creation of a subdirectory. 2 is available in raw form too, but not 1. So rename the combined method to .subdir_used_by and implement it in terms of a new .used_by which doesn't make a subdirectory.