summaryrefslogtreecommitdiff
path: root/crates/tor-hsservice
Commit message (Collapse)AuthorAgeFilesLines
...
| * tor-hsservice: replay: Fix an error message slightlyIan Jackson2024-02-131-1/+1
| | | | | | | | | | On Windows filenames are WTF-16, not bytes, so a weird filename fails to be UTF-16 rather than failing to be UTF-8.
| * tor-hsservice: ipt mgr: Move/rename to StateExpiryError (fmt)Ian Jackson2024-02-131-3/+1
| |
| * tor-hsservice: ipt mgr: Move/rename to StateExpiryError (followup)Ian Jackson2024-02-131-4/+4
| |
| * tor-hsservice: ipt mgr: Move/rename to StateExpiryErrorIan Jackson2024-02-132-39/+41
| | | | | | | | | | The private ExpiryError type is now err::StateExpiryError. We'll fix up the local alias in the HasKind impl in a moment.
| * tor-hsservice: replay: Move replay filename knowledge into replay.rs (fmt)Ian Jackson2024-02-131-10/+5
| |
| * tor-hsservice: replay: Move replay filename knowledge into replay.rsIan Jackson2024-02-132-41/+58
| |
| * tor-hsservice: tests: Greak out mk_state_instance helperIan Jackson2024-02-131-3/+12
| |
| * tor-hsservice: Expose HsNickname::newIan Jackson2024-02-131-1/+1
| | | | | | | | | | The non-visibility of this method seems like it must have been an oversight.
* | tor-hsservice: The publisher should process all upload results.Gabriela Moldovan2024-02-141-1/+2
|/ | | | | | If one of the upload results is for an HsDir that went away, the publisher should continue processing the remaining ones, not disregard them entirely.
* Merge branch 'expire-ipts' into 'main'Ian Jackson2024-02-132-22/+260
|\ | | | | | | | | tor-hsservice: Expire old on-disk IPT state See merge request tpo/core/arti!1977
| * tor-hsservice: ipt mgr: Temporarily suppress a lintIan Jackson2024-02-131-0/+1
| |
| * tor-hsservice: ipt mgr: Check that file expiry happens precisely when wantedIan Jackson2024-02-131-4/+20
| | | | | | | | | | This test detects the bug mentioned here https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1977#note_2995265
| * tor-hsservice: ipt mgr: Add a test hook for expiryIan Jackson2024-02-131-0/+24
| |
| * tor-hsservice: ipt mgr: Do old IPT file cleanup on startup tooIan Jackson2024-02-131-0/+4
| | | | | | | | This isn't strictly necessary, but it's better.
| * tor-hsservice: ipt mgr: Explain about the ipt_set invariantIan Jackson2024-02-131-0/+6
| | | | | | | | This seemed to warrant some discussion and a cross-reference.
| * tor-hsservice: ipt mgr: Rewrite state expiry doc commentIan Jackson2024-02-131-3/+7
| | | | | | | | | | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1977#note_2994999 https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1977#note_2995000
| * tor-hsservice: ipt mgr: Abolish a foolish intermediate variableIan Jackson2024-02-131-14/+9
| | | | | | | | | | | | | | | | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1977#note_2994998 Removing the intermediate variable removes the possibility that the information in it could fail to be transferred to the main mutable state, so we don't need the IEFE any more.
| * tor-hsservice: ipt mgr tests: Narrow a TODOIan Jackson2024-02-121-1/+1
| | | | | | | | We do have some tests, but they're not as comprehensive as we'd like.
| * tor-hsservice: ipt mgr tests: Test that we expire old IPT dataIan Jackson2024-02-122-0/+38
| |
| * tor-hsservice: ipt mgr tests: Avoid reusing RNG seedIan Jackson2024-02-121-4/+4
| | | | | | | | | | | | Without this, we can regenerate the same IptLocalIds (etc.) on shutdown/restart (which involves calling startup again within a test case).
| * tor-hsservice: ipt mgr: Expire replay logs for old IPTsIan Jackson2024-02-121-4/+57
| |
| * tor-hsservice: ipt mgr: Expire keys for old IPTsIan Jackson2024-02-121-3/+84
| |
| * tor-hsservice: ipt mgr: Track whether we've deleted any IPT (fmt)Ian Jackson2024-02-121-9/+9
| |
| * tor-hsservice: ipt mgr: Track whether we've deleted any IPTIan Jackson2024-02-121-2/+17
| | | | | | | | Indentation left anmolaous briefly for ease of review.
| * tor-hsservice: ipt mgr: Break out REPLAY_LOG_SUFFIXIan Jackson2024-02-121-1/+4
| | | | | | | | | | The expiry code is going to want this too. We should at least make a constant of it.
| * tor-hsservice: ipt mgr: Rotate IPT relays even without good IPTs! (fmt)Ian Jackson2024-02-121-6/+6
| |
| * tor-hsservice: ipt mgr: Rotate IPT relays even without good IPTs!Ian Jackson2024-02-121-3/+1
| | | | | | | | | | | | | | | | We shouldn't keep the same IPT relays just because they're not working! Firstly, that's just silly, and secondly, for privacy reasons we want to put a limit on teh lifetime anyway. Indentation left anmolaous briefly for ease of review.
* | tor-hsservice: Add a TODO about using HashMap for the reupload_timers.Gabriela Moldovan2024-02-121-0/+4
| |
* | tor-hsservice: Fix typo in comment.Ian Jackson2024-02-121-1/+1
| |
* | tor-hsservice: Add test for desc publisher reuploads.Gabriela Moldovan2024-02-121-3/+41
| | | | | | | | Part of #1241
* | tor-hsservice: Remove unnecessary locking in test.Gabriela Moldovan2024-02-121-8/+8
| |
* | tor-hsservice: Add a publisher TODO about limiting reuploads.Gabriela Moldovan2024-02-121-0/+7
| |
* | tor-hsservice: Periodically reupload the descriptor.Gabriela Moldovan2024-02-122-3/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to the spec, the publisher needs to periodically reupload the descriptor. ``` Specifically, every time a hidden service publishes its descriptor, it also sets up a timer for a random time between 60 minutes and 120 minutes in the future. When the timer triggers, the hidden service needs to publish its descriptor again to the responsible HSDirs for that time period. [TODO SPEC: Control republish period using a consensus parameter?] ``` After each `upload_for_time_period()`, the publisher now sets a timer as described in the spec, by pushing a `ReuploadTimer` into its `reupload_timers` heap. Closes #1241
* | tor-hsservice: Set the status to UploadScheduled when it's time to reupload.Gabriela Moldovan2024-02-121-0/+45
| |
* | tor-hsservice: Add helper type for scheduling descriptor reuploads.Gabriela Moldovan2024-02-122-0/+113
| |
* | tor-hsservice: Add a function for marking descriptors dirty for a specific TP.Gabriela Moldovan2024-02-121-0/+20
| | | | | | | | | | | | | | We will soon need the ability to trigger a descriptor reupload for a specific time period. Part of #1241
* | tor-hsservice: replay log test: Check SIGUSR2 status on entryIan Jackson2024-02-121-0/+35
| | | | | | | | Will make the situation in #1264 clear, I think.
* | tor-hsservice: replay log test: Break out sigemptyset()Ian Jackson2024-02-121-3/+7
| |
* | tor-hsservice: replay log test: Plumb output manuallyIan Jackson2024-02-121-2/+13
|/ | | | | | | | | Something libtest is doing hides the child stderr/stdout from the test log, when --nocapture is not given. With these changes, I see much more output in failing cases or with --nocapture. In the case mentioned in #1264, the message "we survived raise SIGUSR2" is now printed both with and without --nocapture.
* Fix compilation with musl.Nick Mathewson2024-02-061-3/+3
| | | | | | | | Don't try to name the type of `RLIMIT_FSIZE` in our tests: its type is either `c_int` or `__rlimit_resource_t` depending on the libc instance. Closes #1264.
* Merge branch 'delete-semvers' into 'main'Ian Jackson2024-02-051-6/+0
|\ | | | | | | | | Remove all semver.md files to start a fresh release round See merge request tpo/core/arti!1957
| * Remove all semver.md files to start a fresh release roundIan Jackson2024-02-051-6/+0
| |
* | 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-23/+23
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/
* Merge branch 'keymgr-generate' into 'main'gabi-2502024-02-017-180/+136
|\ | | | | | | | | | | | | tor-keymgr: A handful of API fixes Closes #1194 and #1074 See merge request tpo/core/arti!1948
| * tor-hsservice: Use ErrorKind::KeystoreAccessFailed for KeystoreRace errors.Gabriela Moldovan2024-02-011-1/+1
| |
| * tor-hsservice: Use FatalError::KeystoreRace where possible (fmt).Gabriela Moldovan2024-02-011-4/+8
| |
| * tor-hsservice: Use FatalError::KeystoreRace where possible.Gabriela Moldovan2024-02-012-6/+7
| |
| * tor-hsservice: Add FatalError::KeystoreRace.Gabriela Moldovan2024-02-012-0/+14
| | | | | | | | This will be used when a keystore race is detected.