aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-persist
Commit message (Collapse)AuthorAgeFilesLines
...
* tor-persist: state_dir terminology: Use "key", not "slug"Ian Jackson2024-02-081-29/+30
| | | | | | | | Slug is the general type. Instance kinds are slugs too. We need a word for the slug-within-an-instance which identifies a storage location for StorageHandle, or a raw subdirectory. Let's use "key". Change the terminology (and variable names) everywhere.
* tor-persist: state_dir: expiry: Implement purge_instancesIan Jackson2024-02-081-2/+133
|
* tor-persist: state_dir: expiry: Ensure that instance dir mtime is updatedIan Jackson2024-02-082-3/+19
| | | | | | Add comments where it's done automatically. (There will be tests of the claims I'm making, in a later commit.)
* tor-persist: state_dir: purge API: Clarify callback edge casesIan Jackson2024-02-081-1/+26
|
* tor-persist: state_dir: purge API: Add notes about instance mtimeIan Jackson2024-02-081-0/+9
|
* tor-persist: state_dir: purge API: Discuss deletion non-atomicityIan Jackson2024-02-081-0/+31
|
* tor-persist: state_dir: purge API: Replace retain_unused_for with age_filterIan Jackson2024-02-081-14/+14
| | | | | This will be slightly less ergonomic at call sites but it is a more orthogonal and logical API.
* tor-persist: state_dir: purge API: Have purge_instances take SystemTimeIan Jackson2024-02-081-3/+10
| | | | | | | Purging depends on the current time. We will want this to be able to come from Runtime but we don't want to have those types in this API.
* tor-persist: state_dir: purge API: PurgeHandler must provide the kindIan Jackson2024-02-081-0/+6
| | | | We purge per-kind.
* tor-persist: state_dir: docs: Remove a duplicated paragraphIan Jackson2024-02-081-5/+0
| | | | This was probably the result of rebase conflicts during develoopment.
* tor-persist: state_dir: docs: Linkify a ref to StorageHandleIan Jackson2024-02-081-1/+1
|
* tor-persist: state_dir: Implement list_instancesIan Jackson2024-02-083-5/+72
|
* Bump patch versions *with* dependency updateIan Jackson2024-02-051-1/+1
| | | | | | | This crate has had new features added. It's 0.x. So bump in-tree dependencies' references: fs-mistrust
* Bump minor versionsIan Jackson2024-02-051-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bump the minor version of these crates, and update the in-tree dependencies. Recently published as fresh crates, let's just assume there are breaking changes: fslock-guard test-temp-dir Breaking API change affecting many many downstream crates: tor-rtcompat Downstream crates which we're (conservatively) assuming have tor-rtcompat types in their APIs: tor-rtmock tor-log-ratelim tor-rpcbase tor-llcrypto tor-protover tor-bytes tor-hscrypto tor-hspow tor-socksproto tor-checkable tor-cert tor-linkspec tor-cell tor-proto tor-netdoc tor-consdiff tor-netdir tor-congestion tor-persist tor-chanmgr tor-ptmgr tor-guardmgr tor-circmgr tor-dirclient tor-dirmgr tor-keymgr tor-hsclient tor-hsservice tor-hsrproxy arti-client arti-rpcserver arti-config arti-hyper arti-bench arti-testing
* Run maint/fixup-featuresIan Jackson2024-02-051-1/+1
| | | | Discard hunks in examples/
* tor-persist: state_dir: Add some missing Clone and Debug implsIan Jackson2024-02-011-5/+5
|
* tor-persist: state_dir: Introduce way to get at underlying lock guardIan Jackson2024-02-012-3/+39
| | | | | | And export the type, so callers don't need to depend directly on fslock_guard; many callers will need to own the returned value, not do anything else with it.
* tor-persist: state_dir: Make the storage handle Send and SyncIan Jackson2024-02-011-2/+5
|
* Merge branch 'lowercase-slugs' into 'main'Ian Jackson2024-01-311-1/+4
|\ | | | | | | | | | | | | tor-keymgr: Lowercase the role when building the ArtiPath. Closes #1195 See merge request tpo/core/arti!1934
| * tor-persist: Reduce nesting in check_syntax().Ian Jackson2024-01-311-6/+4
| |
| * tor-persist: Reject slugs that contain uppercase characters.Gabriela Moldovan2024-01-311-1/+6
| | | | | | | | | | | | | | The `slug` docs say slugs are not allowed to contain uppercase characters, so let's return an error if they do. Part of #1195
* | tor-persist: state_dir: Fix a docs referenceIan Jackson2024-01-311-1/+1
| |
* | tor-persist: state_dir: Fix a leftover reference to `delete`Ian Jackson2024-01-311-1/+1
| | | | | | | | This is now InstanceStateHandle::purge.
* | tor-persist: Add a test for Resource::InstanceStateIan Jackson2024-01-311-0/+38
| | | | | | | | | | We should add more tests for these error representations but we want to rework these errors so let's not do all that now.
* | 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-hsservice: state_dir: Quote some strings in an errorIan Jackson2024-01-311-1/+1
| |
* | tor-hsservice: state_dir: Fix a wrong error stringIan Jackson2024-01-311-1/+1
| | | | | | | | We use `/` to separate, not `+`.
* | tor-hsservice: state_dir: Fix a wrong commentgabi-2502024-01-311-1/+1
| |
* | tor-hsservice: state_dir: Fix typogabi-2502024-01-311-1/+1
| |
* | state_dir: Deferred fmt churnIan Jackson2024-01-311-3/+1
| |
* | state_dir: When comparing path, use official separatorsIan Jackson2024-01-311-1/+1
| | | | | | | | | | This would fix the tests on Windows I think ? (Tests which don't seem to run in routine CI AFAICT.)
* | state_dir: Use subdirectory rather than + notationIan Jackson2024-01-311-8/+9
| | | | | | | | As previously decided and documented.
* | state_dir: Break out make_secure_directory closureIan Jackson2024-01-311-4/+11
| | | | | | | | | | | | | | We're about to reuse this. This changes the Resource in the error to be more accurate, too. This will be more important as we add another call site.
* | state_dir: Introduce local PATH_SEPARATOR aliasIan Jackson2024-01-311-2/+3
| | | | | | | | We're going to want this some more.
* | tor-persist: sort Cargo.tomlIan Jackson2024-01-311-1/+1
| |
* | tor-persist: state_dir: Remove three unused allowsIan Jackson2024-01-311-3/+0
| |
* | tor-persist: state_dir: Test functionality that exists nowIan Jackson2024-01-312-0/+109
| |
* | tor-persist: state_dir: Enable rustfmt (formatting)Ian Jackson2024-01-311-15/+14
| | | | | | | | Remaining formatting churn.
* | tor-persist: state_dir: Implement StateDirectory::newIan Jackson2024-01-311-1/+17
| |
* | tor-persist: state_dir: Implement acquire_instanceIan Jackson2024-01-312-7/+157
| | | | | | | | | | | | | | And also instance_peek_storage, which needs to share some code, so determined the shape of this implementation. Make StateDirectory have the (one) field we need.
* | tor-persist: state_dir: Implement InstanceStateHandle and StorageHandleIan Jackson2024-01-311-8/+89
| | | | | | | | | | | | | | | | | | | | These are the straightforward methods which, given a CheckedDir, perform the relevant operation. Make InstanceStateHandle have the necessary fields. Constructing an InstanceStateHandle is a bit complex and will come in a moment.
* | tor-persist: state_dir: Have instance id throw fmt::ErrorIan Jackson2024-01-311-5/+5
| | | | | | | | | | | | | | | | In practice, allowing Bug here was quite inconvenient for everyone. I think very few call sites will want to throw anything interesting. If they *do* want to cause an error, without panicking, they could write a syntactically invalid slug.
* | tor-persist: Error: Provide for handling LocalResourceAlreadyInUseIan Jackson2024-01-311-0/+5
| | | | | | | | | | state_dir doesn't support a "shared read-only" mode, so it needs an error.
* | tor-persist: Error: Provide for handling BadSlugIan Jackson2024-01-311-1/+24
| | | | | | | | | | | | | | Introduce a Bug variant. Then, use it for conversions from BadSlug. See the comment for why I think this is appropriate.
* | tor-persist: state_dir: Two API fixesIan Jackson2024-01-311-2/+2
| | | | | | | | | | | | | | | | You don't need to consume a Mistrust to get a CheckedDir - you use a Verifier and then something clones it for you. So StateDirectory::new should take &Mistrust. And instance_peek_storage needs T to be deserialisable!
* | tor-persist: state_dir: Rename InstanceStateHandle::purge (from delete)Ian Jackson2024-01-311-2/+2
| | | | | | | | | | This is rather more serious than many deletions - it wipes out the whole directory. And this name goes better with purge_instances.
* | tor-persist: state_dir: Enable rustfmtIan Jackson2024-01-311-1/+0
| | | | | | | | The formatting will be normalised roughly as we go.
* | tor-persist: load_store: Add some tracingIan Jackson2024-01-311-3/+18
| | | | | | | | Now we get log messages about what we're reading/writing.
* | tor-persist: Fix a doc commentIan Jackson2024-01-311-1/+1
|/