| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | | tor-hsservice: Add test for desc publisher reuploads. | Gabriela Moldovan | 2024-02-12 | 1 | -3/+41 | |
| | | | | | | | | | Part of #1241 | |||||
| * | | tor-hsservice: Remove unnecessary locking in test. | Gabriela Moldovan | 2024-02-12 | 1 | -8/+8 | |
| | | | ||||||
| * | | tor-hsservice: Add a publisher TODO about limiting reuploads. | Gabriela Moldovan | 2024-02-12 | 1 | -0/+7 | |
| | | | ||||||
| * | | tor-hsservice: Periodically reupload the descriptor. | Gabriela Moldovan | 2024-02-12 | 2 | -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 Moldovan | 2024-02-12 | 1 | -0/+45 | |
| | | | ||||||
| * | | tor-hsservice: Add helper type for scheduling descriptor reuploads. | Gabriela Moldovan | 2024-02-12 | 2 | -0/+113 | |
| | | | ||||||
| * | | tor-hsservice: Add a function for marking descriptors dirty for a specific TP. | Gabriela Moldovan | 2024-02-12 | 1 | -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 entry | Ian Jackson | 2024-02-12 | 1 | -0/+35 | |
| | | | | | | | | | Will make the situation in #1264 clear, I think. | |||||
| * | | tor-hsservice: replay log test: Break out sigemptyset() | Ian Jackson | 2024-02-12 | 1 | -3/+7 | |
| | | | ||||||
| * | | tor-hsservice: replay log test: Plumb output manually | Ian Jackson | 2024-02-12 | 1 | -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. | |||||
| * | educe: Use std's default for two structs | Ian Jackson | 2024-02-12 | 2 | -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 unit | Ian Jackson | 2024-02-12 | 12 | -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 'hsrproxy_errs' into 'main' | Alexander Færøy | 2024-02-08 | 1 | -22/+34 | |
| |\ | | | | | | | | | hsproxy: Improve error messages. See merge request tpo/core/arti!1973 | |||||
| | * | hsproxy: Improve error messages. | Nick Mathewson | 2024-02-08 | 1 | -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 | |||||
| * | | tor-persist: state_dir: Use DOT_LOCK in the final location | Ian Jackson | 2024-02-08 | 1 | -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_LOCK | Ian Jackson | 2024-02-08 | 1 | -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_EXTN | Ian Jackson | 2024-02-08 | 1 | -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 time | Ian Jackson | 2024-02-08 | 1 | -0/+3 | |
| | | | ||||||
| * | | tor-persist: state_dir: Test that junk is ignored | Ian Jackson | 2024-02-08 | 1 | -0/+27 | |
| | | | ||||||
| * | | tor-persist: state_dir: Fix typo | Nick Mathewson | 2024-02-08 | 1 | -1/+1 | |
| | | | ||||||
| * | | tor-persist: state_dir: Improve an error message | Nick Mathewson | 2024-02-08 | 1 | -1/+1 | |
| | | | ||||||
| * | | tor-persist: state_dir: Add a clippy allow | Ian Jackson | 2024-02-08 | 1 | -0/+1 | |
| | | | ||||||
| * | | tor-persist: state_dir: Drop unused void dependency | Ian Jackson | 2024-02-08 | 1 | -2/+1 | |
| | | | ||||||
| * | | tor-persist: state_dir: (Re)move unused imports and allow (fmt) | Ian Jackson | 2024-02-08 | 1 | -1/+1 | |
| | | | ||||||
| * | | tor-persist: state_dir: (Re)move unused imports and allow | Ian Jackson | 2024-02-08 | 1 | -15/+10 | |
| | | | ||||||
| * | | tor-persist: state_dir terminology: Use "INSTANCE_ID" in docs | Ian Jackson | 2024-02-08 | 1 | -5/+5 | |
| | | | | | | | | | | | | | Now ee consistently use "instance id" or "instance identity" (or, where unambiguous, "id"), to mean the identity of an instance within a kind, and "instance" to refer to the whole thing including the kind. | |||||
| * | | tor-persist: state_dir tests: Test mtime reset | Ian Jackson | 2024-02-08 | 1 | -1/+184 | |
| | | | ||||||
| * | | tor-persist: state_dir tests: Test iteration and purge | Ian Jackson | 2024-02-08 | 2 | -0/+257 | |
| | | | ||||||
| * | | tor-persist: state_dir tests: Break out mk_state_dir | Ian Jackson | 2024-02-08 | 1 | -5/+9 | |
| | | | | | | | | | We're going to get more call sites. | |||||
| * | | tor-persist: state_dir terminology: Use "key", not "slug" (fmt) | Ian Jackson | 2024-02-08 | 1 | -9/+4 | |
| | | | ||||||
| * | | tor-persist: state_dir terminology: Use "key", not "slug" | Ian Jackson | 2024-02-08 | 1 | -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_instances | Ian Jackson | 2024-02-08 | 1 | -2/+133 | |
| | | | ||||||
| * | | tor-persist: state_dir: expiry: Ensure that instance dir mtime is updated | Ian Jackson | 2024-02-08 | 2 | -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 cases | Ian Jackson | 2024-02-08 | 1 | -1/+26 | |
| | | | ||||||
| * | | tor-persist: state_dir: purge API: Add notes about instance mtime | Ian Jackson | 2024-02-08 | 1 | -0/+9 | |
| | | | ||||||
| * | | tor-persist: state_dir: purge API: Discuss deletion non-atomicity | Ian Jackson | 2024-02-08 | 1 | -0/+31 | |
| | | | ||||||
| * | | tor-persist: state_dir: purge API: Replace retain_unused_for with age_filter | Ian Jackson | 2024-02-08 | 1 | -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 SystemTime | Ian Jackson | 2024-02-08 | 1 | -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 kind | Ian Jackson | 2024-02-08 | 1 | -0/+6 | |
| | | | | | | | | | We purge per-kind. | |||||
| * | | tor-persist: state_dir: docs: Remove a duplicated paragraph | Ian Jackson | 2024-02-08 | 1 | -5/+0 | |
| | | | | | | | | | This was probably the result of rebase conflicts during develoopment. | |||||
| * | | tor-persist: state_dir: docs: Linkify a ref to StorageHandle | Ian Jackson | 2024-02-08 | 1 | -1/+1 | |
| | | | ||||||
| * | | tor-persist: state_dir: Implement list_instances | Ian Jackson | 2024-02-08 | 3 | -5/+72 | |
| |/ | ||||||
| * | Clarify onion service example(s) a little more. | Nick Mathewson | 2024-02-08 | 1 | -3/+5 | |
| | | ||||||
| * | Fix compilation with musl. | Nick Mathewson | 2024-02-06 | 1 | -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. | |||||
| * | tor-keymgr: Downgrade a TODO to a Note. | Gabriela Moldovan | 2024-02-05 | 1 | -3/+3 | |
| | | | | | | | | I don't think we need to do this right now, so I am downgrading this TODO. Part of #1115 | |||||
| * | tor-keymgr: Make KeyMgr::remove return the removed key (fmt). | Gabriela Moldovan | 2024-02-05 | 1 | -24/+28 | |
| | | ||||||
| * | tor-keymgr: Make KeyMgr::remove return the removed key. | Gabriela Moldovan | 2024-02-05 | 3 | -6/+11 | |
| | | | | | Part of #1115 | |||||
| * | tor-keymgr: Remove a TODO about rewriting KeyType. | Gabriela Moldovan | 2024-02-05 | 1 | -8/+0 | |
| | | | | | | | Not all algorithms have exactly 2 variants (`Public` and `Keypair`). For example, for `ed25519`, we need `Public`, `Keypair`, and `ExpandedKeypair`. | |||||
| * | tor-keymgr: Downgrade a TODO from a test. | Gabriela Moldovan | 2024-02-05 | 1 | -1/+1 | |
| | | ||||||
| * | tor-keymgr: Downgrade a TODO about the KeyType API. | Gabriela Moldovan | 2024-02-05 | 1 | -1/+1 | |
| | | | | | | | | The `KeySpecifier` argument isn't needed yet, so let's defer this for now. Part of #1115 | |||||
