summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * arti-client: add hs_circ_pool() method on TorClientRichard Pospesel2024-04-151-0/+14
|/
* Merge branch 'vanguards-cleanup' into 'main'Alexander Færøy2024-04-153-37/+4
|\ | | | | | | | | tor-guardmgr: Minor vanguard-related cleanups See merge request tpo/core/arti!2088
| * tor-guardmgr: Remove unnecessary mutable reference.Gabriela Moldovan2024-04-152-4/+4
| |
| * tor-guardmgr: Remove outdated TODO.Gabriela Moldovan2024-04-151-6/+0
| | | | | | | | It was addressed in !2083
| * tor-guardmgr: Remove outdated documentation.Gabriela Moldovan2024-04-151-3/+0
| | | | | | | | | | This is no longer true because of !2082. The `VanguardSet` *does* own its `TimeBoundVanguards`.
| * tor-guardmgr: Remove unused TimeBoundVanguard implementations.Gabriela Moldovan2024-04-151-24/+0
| | | | | | | | These are not used anymore as of !2082, so we can remove them now.
* | Merge branch 'coarse' into 'main'Alexander Færøy2024-04-152-3/+5
|\ \ | |/ |/| | | | | Minor docs fixes See merge request tpo/core/arti!2087
| * vanguards: Fix another doc refIan Jackson2024-04-151-1/+1
| | | | | | | | This was a typo.
| * vanguards: Fix a doc refIan Jackson2024-04-151-2/+3
| | | | | | | | This is a broken link when built without --document-private-items.
| * tor-rtcompat: Add CoarseTimeProvider to docs for Runtime traitIan Jackson2024-04-151-0/+1
|/ | | | I overlooked this, apparently.
* Merge branch 'fix-coc-link' into 'main'gabi-2502024-04-151-1/+1
|\ | | | | | | | | Fix link to the Code of Conduct See merge request tpo/core/arti!2085
| * Fix link to the Code of ConductWiktor Kwapisiewicz2024-04-121-1/+1
| | | | | | | | | | | | | | | | It seems Gitlab doesn't follow symlinks and visiting the link shows only the filename. This patch replaces the link with the filename of the destination file thus showing actual content when visited.
* | Merge branch 'onion-service-status-events' into 'main'gabi-2502024-04-151-6/+0
|\ \ | | | | | | | | | | | | tor-hsservice: use shared status_tx to report OnionServiceStatus via... See merge request tpo/core/arti!2086
| * | tor-hsservice: use shared status_tx to report OnionServiceStatus via ↵Richard Pospesel2024-04-131-6/+0
| |/ | | | | | | RunningOnionService::status_events()
* | Merge branch 'static_fuzzing' into 'main'Ian Jackson2024-04-151-2/+75
|\ \ | |/ |/| | | | | fuzz_it_all: Add a step where we run the fuzzers on the corpus alone. See merge request tpo/core/arti!2071
| * Make fuzz_it_all configurable.Nick Mathewson2024-04-031-2/+59
| | | | | | | | | | Most importantly for #1350, give it an option to _only_ run the fuzzer against the testcases in the corpus.
| * fuzz_it_all: Add a step where we run the fuzzers on the corpus alone.Nick Mathewson2024-04-031-0/+16
| | | | | | | | (This is suitable for CI testing on our fuzzers.)
* | Merge branch 'vanguard-config' into 'main'gabi-2502024-04-115-36/+107
|\ \ | | | | | | | | | | | | tor-guardmgr: Read the VanguardMode from the consensus, not from the config. See merge request tpo/core/arti!2083
| * | tor-guardmgr: Split derive list over multiple lines.Gabriela Moldovan2024-04-111-2/+4
| | |
| * | tor-guardmgr: Derive Ord for VanguardMode.Gabriela Moldovan2024-04-112-12/+16
| | |
| * | tor-guardmgr: Expand on a TODO about handling config changes.Gabriela Moldovan2024-04-111-0/+4
| | |
| * | tor-guardmgr: Add a TODO about updating has_onion_svc on reconfigure.Gabriela Moldovan2024-04-111-0/+1
| | |
| * | tor-guardmgr: Fix typo in VanguardMgr error message.Gabriela Moldovan2024-04-111-1/+1
| | |
| * | tor-guardmgr: Read the VanguardMode from VanguardParams.Gabriela Moldovan2024-04-111-26/+54
| | | | | | | | | | | | | | | | | | Based on our discussion on https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/258#note_3011734 If it turns out this is not the behaviour we want, we can update `Inner::mode()` accordingly.
| * | tor-guardmgr: Store whether we're running an onion svc (fmt).Gabriela Moldovan2024-04-111-1/+6
| | |
| * | tor-guardmgr: Store whether we're running an onion svc.Gabriela Moldovan2024-04-113-3/+18
| | | | | | | | | | | | | | | | | | The `VanguardMgr` needs to know whether arti is running as an onion service or not, in order to figure out which of the `vanguards_enabled` and `vanguards_hs_service` modes to use.
| * | tor-guardmgr: Add the two VanguardModes to VanguardParams.Gabriela Moldovan2024-04-111-0/+12
|/ / | | | | | | | | | | | | | | We have two vanguard modes, one for when arti is running as a client, and a separate one for when it's running as a service. Both modes are extracted from the `NetParameters`, so they belong in `VanguardParams`.
* | Merge branch 'rpc_deftly' into 'main'Ian Jackson2024-04-1125-350/+553
|\ \ | | | | | | | | | | | | Refactor RPC system to use derive_deftly; add generic-object support See merge request tpo/core/arti!2079
| * | Add TODO RPC items from review.Nick Mathewson2024-04-112-0/+9
| | |
| * | Fix a comment.Nick Mathewson2024-04-111-2/+1
| | |
| * | rpc: Add a missing not() to generic test.Nick Mathewson2024-04-111-1/+1
| | |
| * | Upgrade derive-deftly requirement to 0.10.3Nick Mathewson2024-04-1112-72/+52
| | | | | | | | | | | | We're taking this for the fix to derive-deftly#52.
| * | Remove a duplicate $twheres.Nick Mathewson2024-04-111-1/+1
| | |
| * | rpc: Adjust a TODO comment.Nick Mathewson2024-04-111-1/+1
| | |
| * | rpc: Move deftly attributes into an `rpc` namespace.Nick Mathewson2024-04-117-24/+24
| | |
| * | Add generic support for RPC objects.Nick Mathewson2024-04-081-8/+200
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since we can't enumerate every instantiation at compile time, we instead provide a macro to generate an _installer_ function that installs a set of functions for a given instantiation. Due to the limitations of macro_rules, the syntax for generics is a bit ugly.
| * | Refactor invoke_fn macro to make inventory optionalNick Mathewson2024-04-081-14/+19
| | | | | | | | | | | | | | | Now there is an `decl_rpc_invoke_fn` macro that *only* declares the type-erased functions. Another macro's job will be to register it.
| * | Globally rename rpc_invoke_fn to static_rpc_invoke_fnNick Mathewson2024-04-083-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | This will be called _static_ to make it clear that it registers the method statically, so you don't need to install it at runtime. After a bit more work, there will be a separate macro that declares an installer function.
| * | Refactor: remove existence of HasConstTypeId_ as a traitNick Mathewson2024-04-089-56/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | We don't actually need this to be a trait; we just need methods and objects to have a `CONST_TYPE_ID_` if they want to participate in the inventory-based method registry. Removing this trait makes it much simpler to declare methods and objects.
| * | Port many of the macros in tor-rpcbase to use derive-deftly.Nick Mathewson2024-04-0417-237/+256
| | | | | | | | | | | | | | | | | | This simplifies our implementation logic in a few places, and simplifies our invocation syntax greatly. There are a few infelicities, noted in `TODO RPC` comments.
| * | rpcbase: Require that every Object is Send + Sync + 'staticNick Mathewson2024-04-041-2/+2
| | | | | | | | | | | | | | | (We don't plan to have any Object that can't be used as an `Arc<dyn Object>`.)
* | | Merge branch 'counted_hashmap' into 'main'Ian Jackson2024-04-112-42/+565
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | streammap: Use an internal counted_hashmap to simplify invariant checking Closes #1344 See merge request tpo/core/arti!2058
| * | | counted_map: Use educe(Default).Nick Mathewson2024-04-021-12/+4
| | | |
| * | | counted_map: Use PhantomData<fn(P)->P>Nick Mathewson2024-04-021-4/+4
| | | | | | | | | | | | | | | | This is always Send+Sync, and invariant with P.
| * | | counted_map: Add some notes about correctness; downgrade unsafesNick Mathewson2024-04-022-13/+21
| | | | | | | | | | | | | | | | | | | | (We're letting the "unchecked" suffix of this function be enough to indicate that it's risky to use.)
| * | | streammap: Use an internal counted_hashmap to simplify invariant checkingNick Mathewson2024-03-282-43/+566
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of making `streammap.rs` responsible for keeping track of a count field, this lowers that functionality into a lower-level CountedHashMap type. Said type has a little more functionality than we need, to sketch out how we'd want to develop it moving forward if we find that it's useful elsewhere. Closes #1344.
* | | | Merge branch 'vanguard-mgr-refactor' into 'main'gabi-2502024-04-102-134/+118
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-guardmgr: Replace vanguard heap with a simpler approach. Closes #1366 See merge request tpo/core/arti!2082
| * | | | tor-guardmgr: Replace vanguard heap with a simpler approach.Gabriela Moldovan2024-04-102-134/+118
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As mentioned in https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2075#note_3016306 using a heap isn't the best way to manage the vanguards: * in the default case, which will apply to most users, the L2 and L3 set sizes are 4 and 8 respectively. Using a heap doesn't make sense for such small sets * the use of `Weak<TimeBoundVanguard>`s will be an inconvenience later on, when we implement vanguard set persistence, since `Weak` isn't serializable or deserializable This switches to a simpler apporach, where the `VanguardMgr` computes the soonest expiration timestamp of its `VanguardSet`s by iterating over all the vanguards in each set. Closes #1366
* | | | Merge branch 'vanguard-mgr-sets' into 'main'gabi-2502024-04-1014-71/+1100
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-guardmgr: Make lite vanguards work Closes #1275 and #1340 See merge request tpo/core/arti!2075
| * | | | tor-guardmgr: Do not store the NetDir in VanguardMgr.Gabriela Moldovan2024-04-101-31/+23
| | | | | | | | | | | | | | | | | | | | | | | | | Instead, we try to get a `NetDir` from the `NetDirProvider` each time we `run_once()`.