aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | tor-dirserver: Fix wrong warning sectionClara Engler2025-12-101-1/+1
| | |
* | | tor-dirserver: Implement DownloadManagerClara Engler2025-12-104-0/+401
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit implements the DownloadManager in its own module, an object responsible for downloading network documents from an upstream directory authority. Further motivation for this can be found in the rustdoc comment of the respectively introduced type.
* | | tor-dirclient: Semantic traits for RequestableClara Engler2025-12-101-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces three new traits to `tor-dirclient`: * `Downloadable` * `Uploadable` * `Votable` All of these traits have no associated methods or constants and all require an existing implementation of `Requestable`. The idea behind this is for applications to accept generic arguments based upon the semantic meaning, allowing for a better integration with proposal330.
* | | tor-dirclient: Improve upon error loggingClara Engler2025-12-101-3/+3
|/ / | | | | | | | | | | This commit improves upon the error logging of the `tor-dirclient` crate in order to not just log the location/source of an error but also the actual reason of an error.
* | Merge branch 'relay-or-config' into 'main'opara2025-12-092-4/+65
|\ \ | | | | | | | | | | | | arti-relay: Advertise config fields are now lists See merge request tpo/core/arti!3538
| * | arti-relay: advertise config fields are now listsSteven Engler2025-12-092-4/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example: ```toml [relay.advertise] ipv4 = [] ipv6 = ["[10::]:10"] ``` ```text Error: Failed to resolve configuration [...] The list is empty for key "default.relay.advertise.ipv4" in [...] ```
* | | tor-config: Make derive(Flattenable) use $crate.Nick Mathewson2025-12-091-4/+3
| | |
* | | Revert "tor-config: Code to serialize Option<Option<Duration>> via humantime"Nick Mathewson2025-12-093-28/+0
| | | | | | | | | | | | This reverts commit c7c8eb5a03439ce31319389183e64cb0db539fc9.
* | | Demonstration: convert tor-circmgr to use derive_deftly(TorConfig)Nick Mathewson2025-12-091-98/+32
| | | | | | | | | | | | | | | (We could tighten this up even more by inlining some of the default values.)
* | | tor-config: new derive_deftly(TorConfig) template.Nick Mathewson2025-12-093-0/+3042
| | | | | | | | | | | | | | | | | | | | | | | | This template is meant to replace most of our use of derive_builder for configuration objects. Where possible and reasonable, it delegates to existing macros, and automatically infers what special patterns we use for individual types. In other cases, it uses compile-time errors to inform the caller about pattern violations.
* | | tor-config: New Buildable trait.Nick Mathewson2025-12-091-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | This trait will be implemented by every type that our derive_deftly(TorConfig) template generates. It will, among other things, help us figure out the Builder type for a given config type in cases where string-pasting magic is intractable, or where we want to use assert_not_impl to double-check the attributes.
* | | tor-config: Helper types for setters to take as argumentsNick Mathewson2025-12-092-0/+135
| | | | | | | | | | | | | | | The derive-deftly TorConfig template will use these as appropriate for the inputs to setter functions, based on field types.
* | | tor-config: Code to serialize Option<Option<Duration>> via humantimeNick Mathewson2025-12-093-0/+28
| | |
* | | tor_config: Make ListBuilders implement ExtendBuilder.Nick Mathewson2025-12-091-0/+11
| | |
* | | tor-config: Give Flattenable template a location.Nick Mathewson2025-12-091-0/+1
| | | | | | | | | | | | | | | | | | If we don't do this, then any attempt to use it from a derive-deftly template will cause a warning about referring to it as $crate::macroname.
* | | tor-config: Allow Flattenable to apply to types with generics.Nick Mathewson2025-12-091-1/+2
| | |
* | | map_builder: Alternative syntax for use by derive(TorConfig)Nick Mathewson2025-12-091-5/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | derive_deftly wants to expand types before passing them to macro_rules macros, which is quite reasonable. But map_builder wants its input collection type to be an `ident`, not a `path`. (And macro_rules doesn't accept `path` before a `<`.) To fix this, we're providing an alternative syntax for map_builder, where the inputs are the map type and the builder map type.
* | | extend_builder: Implement ExtendBuilder for HashMap.Nick Mathewson2025-12-091-1/+17
| | |
* | | tor-config: missing #[allow(dead_code)] in derive_list_builder_helperNick Mathewson2025-12-091-0/+1
| | |
* | | tor-config: missing $crate in derive_list_builder_helperNick Mathewson2025-12-091-1/+1
| | |
* | | tor-config: obviate need for Educe in derive_list_builder_helperNick Mathewson2025-12-091-2/+11
| | | | | | | | | | | | | | | | | | We were only using it for Default, and it is easier to implement Default by hand than it is to keep this particular layer in our leaning tower of macros.
* | | Merge branch 'fix-relay-compile' into 'main'David Goulet2025-12-095-9/+14
|\ \ \ | | | | | | | | | | | | | | | | proto: Fix relay/hs-service feature gating See merge request tpo/core/arti!3534
| * | | proto: Remove outdated TODO about add_ent_with_id()Gabriela Moldovan2025-12-081-3/+0
| | | | | | | | | | | | | | | | We now have add_ent_with_id(), so we can just remove the TODO.
| * | | proto: Fix relay/hs-service feature gating (fmt)Gabriela Moldovan2025-12-081-1/+1
| | | |
| * | | proto: Fix relay/hs-service feature gatingGabriela Moldovan2025-12-085-6/+14
| | | | | | | | | | | | | | | | | | | | Without this, `tor-proto` doesn't compile if you enable the `relay` feature but not `hs-service`.
* | | | tor-memquota: fix builds for 32-bit platformsYaksh Bariya2025-12-091-4/+10
| |/ / |/| | | | | | | | | | | Multiplying 8 * GIB overflows the usize limit (4 GIB - 1) on 32-bit platforms. So handle this properly for 32-bit platforms
* | | Merge branch 'ticket1223' into 'main'Nick Mathewson2025-12-048-128/+128
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Refactor common code that builds circtargets for HS. Closes #1223 See merge request tpo/core/arti!3530
| * | | Refactor common code that builds circtargets for HS.Nick Mathewson2025-12-048-128/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code was duplicated across hsclient and hsservice. Logically, it belongs in netdir, since that's where we have the latest required-protocol information, and the ability to look up relays by IDs. Closes #1223
* | | | Remove unnecessary `doc(cfg(...))` attributesNeel Chauhan2025-12-0430-76/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes part of #2193. (Edits from nickm: I selected the cases here that I could verify were correct from immediate context.) Edited-by: Nick Mathewson <[email protected]>
* | | | Merge branch 'netdoc-authcert' into 'main'Clara Engler2025-12-0413-2/+1011
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | tor-netdoc: Implement new authority certificates See merge request tpo/core/arti!3462
| * | | tor-netdoc: Implement new authority certificatesClara Engler2025-12-0412-1/+1010
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit implements directory authority certificates using the `parse2` approaches. For now, those are in a module `doc::authcert::tmp`, with the eventual goal of moving it into its super module after removing/deprecating the legacy types.
| * | | tor-netdoc: Implement (Partial)Eq for VerifyFailedClara Engler2025-12-041-1/+1
| | | |
* | | | Merge branch 'bump-criterion' into 'main'Ian Jackson2025-12-041-2/+2
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | proto: Bump criterion, criterion-cycles-per-byte to 0.8.0 Closes #2281 See merge request tpo/core/arti!3528
| * | | proto: Bump criterion, criterion-cycles-per-byte to 0.8.0Gabriela Moldovan2025-12-041-2/+2
| |/ / | | | | | | | | | Closes #2281
* | | Merge branch 'protover_refactor' into 'main'Nick Mathewson2025-12-0419-106/+135
|\ \ \ | | | | | | | | | | | | | | | | Make Protocols type inherently interned; add notes about usage. See merge request tpo/core/arti!3524
| * | | protover: document interning in Protocols docs.Nick Mathewson2025-12-041-0/+8
| | | |
| * | | proto: Add comment about create_firsthop_fastNick Mathewson2025-12-031-1/+2
| | | |
| * | | linkspec: Remove comment about expense of cloning protocols.Nick Mathewson2025-12-031-2/+0
| | | |
| * | | netdoc: Remove protocol interning.Nick Mathewson2025-12-038-70/+48
| | | | | | | | | | | | | | | | (It's now done in tor_protover.)
| * | | protover: Intern ProtocolsInner.Nick Mathewson2025-12-032-1/+11
| | | | | | | | | | | | | | | | | | | | This will help us with all the places we want to copy around Protocols objects.
| * | | protover: Make Protocols become an Arc internally.Nick Mathewson2025-12-031-25/+42
| | | | | | | | | | | | | | | | This will help us make it self-interning.
| * | | Move intern from tor-netdir to tor-basic-utils and make it pubNick Mathewson2025-12-039-9/+17
| | | |
| * | | tor_netdoc::intern: Note a future possible cleanup.Nick Mathewson2025-12-031-0/+2
| | | |
| * | | protover: Document un-recommended usage of Protocols::new()Nick Mathewson2025-12-031-0/+7
| |/ /
* | | Merge branch 'n_authorities_usize' into 'main'Ian Jackson2025-12-043-7/+6
|\ \ \ | | | | | | | | | | | | | | | | tor-netdoc: Store n_authorities in usize See merge request tpo/core/arti!3522
| * | | tor-netdoc: Remove unnecessary castsClara Engler2025-12-042-2/+2
| | | |
| * | | tor-netdoc: Store n_authorities in usizeClara Engler2025-12-023-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, this value was stored in a u16. However, because this number is usually always derived from some sort of list type, such as `Vec`, it makes more sense to use usize for this, as it avoid unnecessary casting and error checking.
* | | | tor-netdoc: Provide ItemEncoder::finishIan Jackson2025-12-041-0/+5
| | | | | | | | | | | | | | | | | | | | This provides a way to explicitly consume the encoder and finish the item, without use of mem::drop.
* | | | tor-netdoc: Improve and expose args_raw_stringIan Jackson2025-12-042-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new derive is going to want this. So it would need to be at least `#[doc(hidden)]`. But it makes sense to expose it. But, it had a weird signature. Make its signature like that of `.arg_empty()`. (Note that an ItemEncoder contains just a `&mut NetdocEncoder`.)
* | | | tor-netdoc: test2: Don't ever have raw String in defaulted argumentsIan Jackson2025-12-041-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | These cannot be encoded. So that is logically incoherent. (Perhaps String ought not to be NormalItemArgument, but let's not tackle that now.)