summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | Rename macro_first_nonempty (from macro_coalesce_args)Ian Jackson2022-04-253-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/471#note_2798026
| * | | | Rename ThingListBuilder::replace (from set)Ian Jackson2022-04-256-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/471#note_2798024
| * | | | Use better syntax for doc comment attributeIan Jackson2022-04-255-23/+11
| | | | | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/471#note_2798020
| * | | | Introduce PredictedPortsListBuilderIan Jackson2022-04-253-31/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This means that `NetworkConfig::initial_predicted_ports` is now like the other list-like things, returning `&mut list_builder` with the same `set()` and `append()` methods.
| * | | | config list-builder: Allow overriding the per-item build methodIan Jackson2022-04-254-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | This will be useful especially for simple lists where the entry doesn't need a separate builder type.
| * | | | macro_coalesce_args: New helper macroIan Jackson2022-04-251-0/+30
| | | | |
| * | | | Introduce AuthorityListBuilder in NetworkConfigBuilderIan Jackson2022-04-256-40/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NetworkConfigBuilder needs to not contain any validated structs, so that its serde does not expose the validated details. AuthorityListBuilder is what ought to go here - and it contains Vec<AuthorityBuilder>, not Vec<Authority>. As a consequence, many places now deal with AuthorityBuilder, rather than Authority.
| * | | | Fix error return type of AuthorityBuilderIan Jackson2022-04-252-0/+6
| | | | |
| * | | | Introduce define_list_config_builder macroIan Jackson2022-04-254-94/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This replaces two almost-identical sets of structs and impls. More are on the way, as per https://gitlab.torproject.org/tpo/core/arti/-/issues/447
| * | | | logging: Drop a pointless .within() callIan Jackson2022-04-251-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since "logfiles: Introduce LogfileListConfigBuilder", this code is in LogfileListConfigBuilder::build(), which is called by derive_builder's generated LoggingConfig::build(), and which will add a file context itself due to the `sub_builder` feature. So this is otiose. And, we are about to replace this whole thing with macro_rules-generated code (which won't do this).
* | | | | Merge branch 'abstime-sum' into 'main'Ian Jackson2022-04-251-12/+29
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | retry-error: Provide AbsRetryTime::from_sub and use it See merge request tpo/core/arti!470
| * | | | | AbsRetryTime::from_sum: Provide a test caseIan Jackson2022-04-251-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As requested in https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/470#note_2798015
| * | | | | AbsRetryTime::from_sum: Add missing full stopIan Jackson2022-04-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/470#note_2797945
| * | | | | retry-error: Provide AbsRetryTime::from_sub and use itIan Jackson2022-04-251-12/+14
| | | | | | | | | | | | | | | | | | | | | | | | This same calculation was in the code three times.
| | | * | | Update semver_status to note that all crates have had a breaking change.Nick Mathewson2022-04-251-0/+5
| | | | | |
| | | * | | squash! Bump every crate's edition to 2021.Nick Mathewson2022-04-2545-64/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove all `use` statements for `TryFrom` and `TryInto`. These are now redundant in Rust 2021.
| | | * | | Bump every crate's edition to 2021.Nick Mathewson2022-04-2533-33/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an automated change made with a perl one-liner and verified with grep -L and grep -l. Some warnings are introduced with this change; they will be removed in subsequent commits. See arti#208 for older discussion on this issue.
| | | * | | Add 'rust-version = "1.56"' to every Cargo.toml file.Nick Mathewson2022-04-2533-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change was made automatically with a perl one-liner, and confirmed with `grep -L`. The `rust-version` field itself was introduced in 1.56.0.
| | | * | | Reformat all not-yet-reformatted Cargo.toml files.Nick Mathewson2022-04-2528-202/+214
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are no semantic changes here; only formatting. This is in preparation for other changes (wrt MSRV and edition)
| | | * | | Increase our MSRV to 1.56.Nick Mathewson2022-04-252-2/+2
| |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our support policy says that we can update to any Rust released at least 6 months ago; 1.56 came out on 21 October 2021. This doesn't yet change any code: it just increases the version we say we need in our README, and the version we test against in CI. Our main justification for this change is to be able to upgrade to newer versions of our dependencies, including `async_executors` >= 0.5, `aes` >= 0.8, and `cipher` >= 0.4.
* | | | | Merge branch 'integers' into 'main'Ian Jackson2022-04-252-7/+55
|\| | | | | |/ / / |/| | | | | | | | | | | Better handling of integer overflows See merge request tpo/core/arti!466
| * | | tor-error: Handle integer overflowsSamanta Navarro2022-04-231-4/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If duration addition overflows, then continue with Never. Caching the AbsRetryTime constructed with duration from supplied function also reduces the overhead of earliest_absolute.
| * | | retry-error: Handle integer overflowSamanta Navarro2022-04-231-3/+28
| |/ / | | | | | | | | | | | | In theory n_errors could overflow, which is an error in Rust. The check is cheap and I have added a test for it.
* | | Merge branch 'experimental-v3ident-public' into 'main'Ian Jackson2022-04-251-0/+5
|\ \ \ | | | | | | | | | | | | | | | | Authority: make v3ident public under experimental-api See merge request tpo/core/arti!463
| * | | Authority: make v3ident public under experimental-apiChristian Grigis2022-04-221-0/+5
| | | |
* | | | Merge branch 'fix-typos' into 'main'Ian Jackson2022-04-250-0/+0
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Fix typos bothering rust-nightly pipeline See merge request tpo/core/arti!464
| * | | | Fix typos bothering rust-nightly pipelineChristian Grigis2022-04-222-2/+2
| | |/ / | |/| |
* | | | Merge branch 'test' into 'main'Ian Jackson2022-04-251-0/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | tor-basic-utils: Add RetryDelay::reset test See merge request tpo/core/arti!467
| * | | | tor-basic-utils: Add RetryDelay::reset testSamanta Navarro2022-04-231-0/+2
| |/ / /
* | | | Merge branch 'type-skewestimate' into 'main'Ian Jackson2022-04-252-2/+2
|\ \ \ \ | |/ / / |/| | | | | | | | | | | fix typo in doc See merge request tpo/core/arti!469
| * | | fix typo in doctrinity-1686a2022-04-252-2/+2
|/ / /
* | | Merge branch 'config-sub' into 'main'eta2022-04-2220-342/+259
|\ \ \ | |/ / |/| | | | | | | | Replace much handwritten config code with use of derive_builder See merge request tpo/core/arti!462
| * | arti-client: TorClientConfig: derive TorClientConfigBuilderIan Jackson2022-04-221-171/+41
| | | | | | | | | | | | Replace handwritten builder struct, accessors, and builder function.
| * | arti: ArtiConfig: derive ArtiConfigBuilderIan Jackson2022-04-221-87/+13
| | | | | | | | | | | | Replace handwritten builder struct, accessors, and builder function.
| * | logfiles: Introduce LogfileListConfigBuilderIan Jackson2022-04-222-16/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/462#note_2797697 we decided not to do this. However, having looked again at the way the FallbackList works, I think there is a lot of value in making these two things (and anything else like them[1]) as similar as possible. [1] At least PreemptiveCircuitConfig.initial_predicted_ports and NetworkConfig.authorities need the same treatment, and perhaps also GuardUsage.restrictions (although there is no GuardRestrictionBuilder). In the irc discussion I imagined `LogfilesConfigBuilder` as opposed to `LogfileConfigBuilder` (differing only in the `s`) which would be bad, but we can use `List` instead. We do *not* need to abstract away the validated version of the config. Providing a type alias helps the derive_builder sub_builder DTRT without needing special overrides. I have split this commit so that we can drop it, if we conclude it's not wanted.
| * | logfiles: Adjust LoggingConfigBuilder::file and impl DeserializeIan Jackson2022-04-221-1/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | Change LoggingConfigBuilder to contain Vec<LogfileConfigBuilder>, not Option<Vec<LogfileConfig>>. That makes it sane to Deserialize. Replace LoggingConfigBuilder's file(Vec<>) setter with the methods discussed in https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/462#note_2797697
| * | logfiles Rename LogfileConfig::file to filesIan Jackson2022-04-221-4/+4
| | | | | | | | | | | | | | | It's a plural, and that fact is going to be exposed via serde, if it isn't already.
| * | fallback list: Introduce and use FallbackListBuilderIan Jackson2022-04-227-29/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | Now the network fallbacks configuration wants to Deserialize a Vec<FallbackDirBuilder>, rather than validated Vec<FallbackDir>. Methods on FallbackListBuilder are as per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/462#note_2797697 mutatis mutandi for the fact that this struct has only fallbacks in it.
| * | fallback list: Move default list into tor-guardmgrIan Jackson2022-04-225-28/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is where the FallbackList type is. We are going to want to provide a builder too, which ought to impl Default. This means that the default value for the type must be next to the type. In any case, it was anomalous that it wasn't. This commit is pure code motion.
| * | impl From<SubfieldBuildError> for ConfigBuildErrorIan Jackson2022-04-221-0/+7
| | | | | | | | | | | | We are going to be using sub-field builders.
| * | Use git source for derive_builder for now, for sub_builder featureIan Jackson2022-04-219-31/+31
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commitid is the current head of my MR branch https://github.com/colin-kiegel/rust-derive-builder/pull/253 https://github.com/ijackson/rust-derive-builder/tree/field-builder Using the commitid prevents surprises if that branch is updated. We will require this newer version of derive_builder. The version will need to be bumped again later, assuming the upstream MR is merged and upstream do a release containing the needed changes. We will need the new version of not only `derive_builder_core` (the main macro implementation) but also`derive_builder` for a new error type.
* | Merge branch 'typos' into 'main'eta2022-04-204-6/+6
|\ \ | | | | | | | | | | | | Fix typos See merge request tpo/core/arti!461
| * | Use https instead of httpSamanta Navarro2022-04-201-2/+2
| | | | | | | | | | | | Keep http in license text.
| * | Fix wording in FAQSamanta Navarro2022-04-201-2/+2
| | |
| * | Fix typosSamanta Navarro2022-04-202-2/+2
|/ / | | | | | | Typos found with codespell.
* | Merge branch 'ticket_282' into 'main'Nick Mathewson2022-04-144-4/+177
|\ \ | | | | | | | | | | | | | | | | | | Remove obsolete files from our state directory. Closes #282 See merge request tpo/core/arti!457
| * | Fix build with Rust 1.53; we can't use map_whileNick Mathewson2022-04-141-1/+4
| | |
| * | tor-persist::fs::clean: Log warnings for directory read failuresIan Jackson2022-04-141-1/+19
| | |
| * | tor-persist::fs::clean: Tweaks based on review.Nick Mathewson2022-04-132-22/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename "deletable" to "obsolete". Simplify function structure. Report errors from `metadata()` and `modified()`. Don't claim that we're going to delete something unless we are. Comment about making CUTOFF configurable.
| * | Remove obsolete files from our state directory.Nick Mathewson2022-04-124-0/+140
| | | | | | | | | | | | | | | | | | | | | This patch removes files created by older versions of arti, if they are at least 4 weeks old. Closes #282