summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | 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-123-0/+39
| | | | |
| * | | | 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.
* | | | Merge branch 'guardmgr-readme' into 'main'Nick Mathewson2024-02-131-2/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | tor-guardmgr: Fix spec link in README. See merge request tpo/core/arti!1980
| * | | | tor-guardmgr: Fix README typo.Gabriela Moldovan2024-02-121-1/+1
| | | | |
| * | | | tor-guardmgr: Fix spec link in README.Gabriela Moldovan2024-02-121-1/+1
|/ / / / | | | | | | | | | | | | The old link now 404s, so let's link to spec.torproject.org instead.
* | | | Merge branch 'publisher-republisher' into 'main'gabi-2502024-02-123-15/+271
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-hsservice: Periodically reupload the descriptor. Closes #1241 See merge request tpo/core/arti!1971
| * | | | 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
* | | | Merge branch 'forky' into 'main'Ian Jackson2024-02-121-5/+55
|\ \ \ \ | |/ / / |/| | | | | | | | | | | Improve replay log fork test See merge request tpo/core/arti!1974
| * | | 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.
* | | Merge branch 'educe-1' into 'main'Ian Jackson2024-02-1212-67/+38
|\ \ \ | | | | | | | | | | | | | | | | educe: Use std's default impls instead in a number of places See merge request tpo/core/arti!1975
| * | | educe: Use std's default for two structsIan Jackson2024-02-122-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | Reviewing uses of `#[educe(default)]`, I came across these two places where it was applied to a non-generic struct without any special attributes on fields. std's derive will do just as well here.
| * | | educe: Use std's default for enums where default variant is unitIan Jackson2024-02-1212-62/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since Rust 1.66, std's default works properly for enums, provided that the default variant is a unit. Review all uses of `#[educe(default)]` on enums and replace them with std where possible, which is most of them. In 1.66 and later, std's `#[derive(Default)]` doesn't infer any generic bounds on the derived impl, where it's an enum - since the unit variant can always be constructed. So this change doesn't add any generic bounds and is not API-visible.
* | | | Merge branch 'vanguards-design-note' into 'main'Nick Mathewson2024-02-121-0/+190
|\ \ \ \ | |/ / / |/| | | | | | | | | | | Design sketch for vanguards implementation See merge request tpo/core/arti!1970
| * | | Apply 1 suggestion(s) to 1 file(s)gabi-2502024-02-081-1/+1
| | | |
| * | | Design sketch for vanguards implementationNick Mathewson2024-02-071-0/+190
| | |/ | |/|
* | | Merge branch 'hsrproxy_errs' into 'main'Alexander Færøy2024-02-081-22/+34
|\ \ \ | | | | | | | | | | | | | | | | hsproxy: Improve error messages. See merge request tpo/core/arti!1973
| * | | hsproxy: Improve error messages.Nick Mathewson2024-02-081-22/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When giving an error message about an hsrproxy configuration: 1) mention that this is for an onion service. 2) mention what the invalid text was. Part of #1266
* | | | Merge branch 'fixup-features' into 'main'Ian Jackson2024-02-088-102/+88
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | maint/fixup-features: Make part of the main workspace Closes #1263 See merge request tpo/core/arti!1969
| * | | | maint/matrix_test: add maint/ to CRATEDIRSIan Jackson2024-02-081-0/+1
| | | | |
| * | | | maint/list_crates: Strip maint/, handling maint/ cratesIan Jackson2024-02-081-1/+1
| | | | |
| * | | | maint/fixup-features: Remove a spurious blank line from Cargo.tomlIan Jackson2024-02-081-1/+0
| | | | | | | | | | | | | | | | | | | | maint/cargo_sort complains about this.
| * | | | maint/check_toposort: Teach it to ignore maint/ crates.Ian Jackson2024-02-071-1/+2
| | | | |
| * | | | maint/fixup-features: Add standard lint block with some overridesIan Jackson2024-02-071-0/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't have any of these lints yet but let's do this tidying while we're here. The test lint block seems appropriate for this maintenance utility, at least right now while we're not making it a proper external published thing. Override the two lints that currently trip.
| * | | | maint/fixup-features: Make part of the main workspaceIan Jackson2024-02-074-96/+27
| | | | | | | | | | | | | | | | | | | | | | | | | This ties it into everything, so we run CI on it, have it in our main lockfile, and so on.
| * | | | maint/fixup-features: Use .or_default() (prompted by clippy) (fmt)Ian Jackson2024-02-071-3/+1
| | | | |
| * | | | maint/fixup-features: Use .or_default() (prompted by clippy)Ian Jackson2024-02-071-1/+1
| | |/ / | |/| |
* | | | Merge branch 'state-iter' into 'main'Ian Jackson2024-02-084-89/+848
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | state_dir: implement instance iteration and expiry Closes #1163 See merge request tpo/core/arti!1968
| * | | tor-persist: state_dir: Use DOT_LOCK in the final locationIan Jackson2024-02-081-1/+1
| | | | | | | | | | | | | | | | | | | | Actually, we want to test handling of the string with whatever the extension would be, if it changed.
| * | | tor-persist: state_dir: Introduce DOT_LOCKIan Jackson2024-02-081-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | And replace ".lock" with it. Now the only place that the "lock" extension this is still present as a literal is in a test.
| * | | tor-persist: state_dir: Introduce LOCK_EXTNIan Jackson2024-02-081-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | And replace "lock" with it. This is the first half of not open-coding this; the sites where the literal string is ".lock" are in the next commit, to help avoid the slip of using the wrong constant.
| * | | tor-persist: state_dir: Add a note about the instance modification timeIan Jackson2024-02-081-0/+3
| | | |