summaryrefslogtreecommitdiff
path: root/crates/tor-config/src
Commit message (Collapse)AuthorAgeFilesLines
* educe: Use std's default for two structsIan Jackson2024-02-121-3/+1
| | | | | | 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-122-10/+6
| | | | | | | | | | | | | 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.
* config: Fix output of NoCompileTimeSupport::withinNick Mathewson2024-01-161-1/+1
| | | | | Previously, within() would transform this error variant into Invalid.
* Fix typosDimitris Apostolou2024-01-081-1/+1
|
* tor-config: use black_box in test.Nick Mathewson2023-11-301-3/+1
|
* Merge branch 'generic-listen' into 'main'Nick Mathewson2023-10-161-1/+50
|\ | | | | | | | | arti, tor-config: Allow listening on generic addresses for SOCKS and DNS. See merge request tpo/core/arti!1613
| * Test for Listen DisplayJani Monoses2023-09-261-0/+24
| |
| * Do not writelns in Display, undo localhost_port_legacy changes.Jani Monoses2023-09-251-4/+3
| |
| * arti, tor-config: Allow listening on generic addresses for SOCKS and DNS.Jani Monoses2023-09-221-3/+29
| |
* | tor-config: derive Default for FlattenNick Mathewson2023-10-031-1/+1
|/
* tor-config: flatten: Remove a redundant allowIan Jackson2023-09-201-1/+0
| | | | At some earlier point of development this struct was pub.
* tor-config: flatten: Sort out names for field extractorIan Jackson2023-09-201-12/+12
|
* tor-config: flatten: always use field list from serdeIan Jackson2023-09-202-48/+17
| | | | | | | | This is a better trickery! Now we don't need to derive the list of field names at all. The test case becomes much simpler too, and no longer needs to compare field lists since we have only the serde field list.
* tor-config: flatten: Performance of flattenable_extract_fieldsIan Jackson2023-09-201-0/+31
| | | | | Add a performance note, and the manually-verified test case to support it.
* tor-config: flatten: Break out flattenable_extract_fieldsIan Jackson2023-09-202-25/+41
| | | | | | | | | This involves returning the field list in the `FlattenableTesterSuccess`. This leaves the names a little off; we'll update those at the end. Export this - it's going to replace the hidden pub test function.
* tor-config: flatten: Introduce FieldList type aliasIan Jackson2023-09-201-6/+9
| | | | We're going to use this some more, even.
* tor_config: flatten: Abolish FlattenErrorIan Jackson2023-09-201-38/+9
|
* tor_config: flatten tests: Remove the obsolete todoIan Jackson2023-09-201-1/+0
|
* tor_config: Add a note about FlattenErrorIan Jackson2023-09-201-0/+8
| | | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1605#note_2945202
* tor_config: Flatten: Explain why the inner ref Flatten for serIan Jackson2023-09-201-0/+5
|
* tor_config: Flatten: Add missing tst annotationIan Jackson2023-09-201-0/+1
|
* tor_config: Provide FlattenIan Jackson2023-09-202-0/+687
| | | | | This is an attempt to deal with the fact that `#[serde(flatten)]` is weirdly broken and doesn't work with `serde_ignored`.
* tor-config: Listen: Clarify localhost_port_legacyIan Jackson2023-09-121-1/+1
| | | | | The previous phrasing was ambiguous and set us up for bugs, see https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1582#note_2942240
* tor-config: Listen: Fix a typoIan Jackson2023-09-121-2/+2
|
* Run maint/add_warning to add lint block everywhereIan Jackson2023-08-239-0/+9
|
* Resolve warnings about ambiguous/redundant doc linksNick Mathewson2023-08-221-1/+1
| | | | | Nightly rustdoc now warns if you have a link that isn't necessary, and if you have a link that might refer to two different things.
* tor-config: Expand NoProjectDirs error messageIan Jackson2023-08-081-1/+1
|
* tor-config: Add ConfigurationSources::try_from_cmdlineIan Jackson2023-08-071-7/+34
| | | | We'll use this in crates/arti in a moment.
* Run add_warnings on all files.Nick Mathewson2023-08-041-2/+2
|
* tor-config: Remove unused ItemOrBool helper.Gabriela Moldovan2023-07-131-63/+0
| | | | | `ItemOrBool` is currently not used anywhere (it was previously used by the keymgr config).
* Run maint/add_warning to actually apply new lint allowsIan Jackson2023-07-109-0/+10
|
* Merge branch 'allow_missing_panics' into 'main'Ian Jackson2023-07-071-1/+0
|\ | | | | | | | | | | | | add_warning: Tolerate clippy::missing_panics_doc Closes #950 See merge request tpo/core/arti!1380
| * Run add_warning to remove `missing_panics_doc` deny.Nick Mathewson2023-07-061-1/+0
| | | | | | | | Closes #950.
* | tor-config: Use next_back() instead of rev().next()Nick Mathewson2023-07-031-1/+1
|/ | | | This is a new warning^Wsuggestion from clippy nightly.
* tor-config: Make ItemOrBool an experimental feature.Gabriela Moldovan2023-06-291-0/+4
|
* config: Add ItemOrBool helper for deserializing a bool or a value.Gabriela Moldovan2023-06-291-0/+59
| | | | | | | | | | | | | | | | | | | | This will enable us to support the new `keystore_dir` field, which can be either a boolean indicating whether the keystore is disabled or enabled and initialized with the default keystore dir, or a string which points to a custom keystore directory (and implies the keystore is enabled): ``` # use this path, fail if compiled out # keystore = "/path/to/arti/keystore" # # use default path, fail if compiled out # keystore = true # # disable # keystore = false ``` Part of #891
* lints: Run maint/add_warning to actually apply new lintsIan Jackson2023-06-211-0/+2
|
* Use bool::then_some() as appropriateNick Mathewson2023-04-111-1/+1
| | | | | | Now that we require a version of Rust that allows `b.then_some(v)`, clippy complains about our use of `b.then(|| v)`.
* Fix typosDimitris Apostolou2023-03-241-1/+1
|
* tor-config: Apply deferred rustfmt churnIan Jackson2023-03-211-4/+4
|
* tor-config: Do minimal $ and ~ handling even without expand-pathsIan Jackson2023-03-211-2/+54
| | | | Fixes #790
* tor-config: Make CfgPathError PartialEq but only when testingIan Jackson2023-03-211-0/+1
| | | | So, this is not a semver addition.
* tor-config: Fix build when expand-paths is disabledIan Jackson2023-03-211-2/+5
|
* tor-config: paths, unexpanded: use infallible conversionIan Jackson2023-03-211-2/+1
| | | | str can always be made into a PathBuf.
* Allow clippy::unchecked_duration_subtraction in testsNick Mathewson2023-01-279-0/+9
| | | | | This panics on error, and we're fine with a panic on misbehavior in tests.
* Disable clippy::unlinlined-format-argsNick Mathewson2023-01-271-0/+1
| | | | | | | | This warning kind of snuck up on us! (See #748) For now, let's disable it. (I've cleaned it up in a couple of examples, since those are meant to be more idiomatic and user-facing.) Closes #748.
* Upgrade toml to version 0.6.Nick Mathewson2023-01-251-27/+41
| | | | | | | This required rewriting some of our error handling code in command-line processing, since the toml crate now displays and reports errors differently. (Admittedly, this code still is kind of ugly, but at least it is nicely hidden.)
* Fix typosDimitris Apostolou2023-01-071-1/+1
|
* test lint blocks: Add many many automaticallyIan Jackson2022-12-123-0/+25
| | | | | This is precisely the result of running the rune in maint/adhoc-add-lint-blocks.
* test lint blocks: Do some semi-manuallyIan Jackson2022-12-122-2/+18
| | | | | | | This is the hunks from running the rune in maint/adhoc-add-lint-blocks but which require some subsequent manual fixup: usually, deleting now-superfluous outer allows, but in some cases manually putting back lints that the adhoc script deleted.