aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-config/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
...
* tor_config: Provide FlattenIan Jackson2023-09-201-0/+7
| | | | | This is an attempt to deal with the fact that `#[serde(flatten)]` is weirdly broken and doesn't work with `serde_ignored`.
* Run maint/add_warning to add lint block everywhereIan Jackson2023-08-231-0/+1
|
* Run add_warnings on all files.Nick Mathewson2023-08-041-2/+2
|
* Run maint/add_warning to actually apply new lint allowsIan Jackson2023-07-101-0/+2
|
* Run add_warning to remove `missing_panics_doc` deny.Nick Mathewson2023-07-061-1/+0
| | | | Closes #950.
* lints: Run maint/add_warning to actually apply new lintsIan Jackson2023-06-211-0/+2
|
* Allow clippy::unchecked_duration_subtraction in testsNick Mathewson2023-01-271-0/+1
| | | | | 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.
* Fix typosDimitris Apostolou2023-01-071-1/+1
|
* test lint blocks: Do some semi-manuallyIan Jackson2022-12-121-1/+9
| | | | | | | 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.
* Run add_warnings.Nick Mathewson2022-11-031-0/+1
|
* cargo fmt to remove blank linesIan Jackson2022-10-121-1/+0
| | | | | | | Apparently cargo fmt doesn't like these, which my perl rune didn't delete. This commit is precisely the result of `cargo fmt`.
* Replace all README copies in src/lib.rs with includesIan Jackson2022-10-121-57/+1
| | | | | | | | The feature we want is `#[doc = include_str!("README.md")]`, which is stable since 1.54 and our MSRV is now 1.56. This commit is precisely the result of the following Perl rune: perl -i~ -0777 -pe 's{(^//!(?!.*\@\@).*\n)+}{#![doc = include_str!("../README.md")]\n}m' crates/*/src/lib.rs
* tor-config: Provide MultilineListBuilderIan Jackson2022-10-121-0/+1
| | | | This is what we'll use to parse the `bridges.bridges` config key.
* Improve error from bad escapes in a toml config.Nick Mathewson2022-08-251-1/+1
| | | | | | | | | | | | | | | | | Whereas previously we would say: ``` target/debug/arti: error: invalid escape character in string: `Z` at line 9 column 14 in ../../.config/arti/arti.toml ``` we now say: ``` target/debug/arti: error: invalid escape character in string: `Z` at line 9 column 14 in ../../.config/arti/arti.toml (If you wanted to include a literal \ character, you need to escape it by writing two in a row: \\) ``` The implementation is a bit of a hack, I'm afraid, but I don't think it's all that bad. Closes #549.
* tor-config: Provide resolve_alternative_specsIan Jackson2022-08-251-0/+78
|
* tor-config: Introduce ResolutionResultsIan Jackson2022-08-251-1/+1
| | | | This will allow us to handle new kinds of warnigns etc.
* tor-config: Replace dir detection with ConfigurationSource enumIan Jackson2022-08-251-1/+1
| | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/682#note_2830860 And subsequent IRC discussion. Having done the work as per review comments, I don't much like the result. It's quite un-ergonomiuc. If we can't have fs autodetection, I think syntactic autodetection within sources.rs would be nearly as nice. However, I seem to be outvoted. At least the externally visible functionality (of an arti binary, say) is reasonably ergonomic.
* enable doc_auto_cfg feature on every crate when documenting for docs.rstrinity-1686a2022-08-241-0/+1
|
* tor-config: resolve_option_general: Add TODO about exampleIan Jackson2022-08-231-0/+5
|
* Fix syntax in doc comment.Nick Mathewson2022-08-231-1/+1
|
* tor-config: Provide resolve_option_general, for T: !Default etc.Ian Jackson2022-08-221-4/+43
| | | | | | | | | At one point in this MR I thought I was going to want this for arti::cfg::ListenConfig (which we don't want to be Default). In fact ListenConfig is being handled specially, but having written this function it seemed sensible to keep it. Since resolve_option becomes a wrapper for it, the existing tests exercise it.
* tor-config: Introduce PaddingLevelIan Jackson2022-08-161-0/+2
| | | | This will be used for controlling channel padding, for now.
* Run maint/add_warning crates/*/src/{lib,main}.rsIan Jackson2022-06-231-0/+3
| | | | Update all lint blocks
* impl_standard_builder: Allow for !DefaultIan Jackson2022-06-161-13/+54
|
* tor-config: impl_standard_builder: handle contexts with local ResultIan Jackson2022-06-161-1/+1
|
* config: Suppose that we might extend resolve_option to non-T::DefaultIan Jackson2022-06-101-0/+2
| | | | | As per point 3 in https://gitlab.torproject.org/tpo/core/arti/-/issues/488
* config: Do not strip_option for journald (and in future)Ian Jackson2022-06-101-0/+3
| | | | | As per point 1 in https://gitlab.torproject.org/tpo/core/arti/-/issues/488
* Fix typosDimitris Apostolou2022-06-051-2/+2
|
* tor-config: Fix a doc linkIan Jackson2022-06-011-1/+1
| | | | Nightly cargo doc complaints about this.
* Merge branch 'lint' into 'main'Ian Jackson2022-05-311-0/+3
|\ | | | | | | | | | | | | lints: Make lint blocks consistent and ensure they stay that way Closes #469 See merge request tpo/core/arti!557
| * lints: Add let_unit_value allow to all cratesIan Jackson2022-05-311-0/+1
| | | | | | | | | | From running add_warning, with manual picking of the right hunks/lines.
| * lints: Add lint block delimiters to every crateIan Jackson2022-05-311-0/+2
| | | | | | | | | | | | This was the result of: maint/add_warning crates/*/src/{lib,main}.rs and then manually curating the results.
* | tor-config: Suppress unwrap lint in testsIan Jackson2022-05-311-0/+1
| | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/546#note_2808892
* | tor-config: resolve_option tests: disable rsutfmtIan Jackson2022-05-311-0/+1
| |
* | tor-config: Add comprehensive tests for resolve_optionIan Jackson2022-05-311-0/+71
| |
* | config: Provide tor_config::resolve_option and resolve journaldIan Jackson2022-05-301-0/+36
|/ | | | | | | | | | | | | | Canonicalise the `logging.journald` setting in the validated configuration. Now it will never be `Some("")`, even if that is what was written in the config file. This allows us to write `journald = ""` in the example configuration. (Without the canonicalisation the default builder produces `None` and the example would produce `Some("")`, which are semantically identical but fail the test.) See https://gitlab.torproject.org/tpo/core/arti/-/issues/488 for some background.
* tor-config: docs: add a lot of context and overview and xrefsIan Jackson2022-05-251-1/+41
|
* Run rustfmt following renamingIan Jackson2022-05-251-1/+1
| | | | Split into its own commit to avoid churn in the rename commits.
* tor-config: Rename resolve_return_unrecognized, ..._ignore_...Ian Jackson2022-05-251-1/+1
| | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/529#note_2807077
* tor-config: Rename "ignored" to "unrecognized" throughoutIan Jackson2022-05-251-1/+1
| | | | | As per review comments https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/529#note_2807076
* tor-config: Track and (by default) warn on ignored config keysIan Jackson2022-05-241-1/+1
|
* Split TorClientConfig out of ArtiConfig, and Resolvable traitIan Jackson2022-05-241-0/+2
| | | | | | | | | | | | This gets rid of `#[serde(flatten)]` which prevents serde_ignored (and other kinds of introspection) from working properly. The price is now that the toplevel has to deal with two configuration objects. The Resolvable trait is overkill right now, but is going to do More Things in a moment. In particular, we need the impl on tuples, so that the whole config can be processed in one go.
* tor-config: Introduce Builder trait and ConfigReolveErrorIan Jackson2022-05-241-5/+31
| | | | | | | | | We are going to need this for some generic code which is going to appear shortly. Having it produced by impl_standard_builder seems best. But that does mean being able to disable it, so extra stuff in the macro. Nothing uses this trait yet. ConfigResolveError is not used now either, but will be in a moment.
* tor-config: Add a lint allowIan Jackson2022-05-241-0/+1
| | | | | | | I don't understand why this isn't tripping all the time. Maybe because this is in a macro. Anyway, I am going to add a new invocation of this macro from within a test where, empirically, it trips.
* Merge branch 'arti-config-2' into 'main'Nick Mathewson2022-05-131-0/+2
|\ | | | | | | | | Abolish arti-config, replacing with tombstone crate See merge request tpo/core/arti!508
| * arti-config abolition: Move functionality to tor-configIan Jackson2022-05-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This crate no longer has any reason to exist. All its remaining functionality is generic enough to go into tor-config. In this commit, we move the contents of lib.rs into a new file in tor-config. It contains: * Code motion * The minimal "mod" and "use" changes * The minimal doc comment * A new a compat alias for ConfigurationSources. The compat alias is there because various crates currently speak of arti_config::ConfigurationSources and it is most convenient to fix them up after the type is available in tor_config.
* | impl_standard_builder: Better comments explaining the parserIan Jackson2022-05-131-1/+7
| |
* | impl_standard_builder: Have it generate FooConfig::builderIan Jackson2022-05-121-0/+7
| | | | | | | | | | This deletes many handcoded impls. It also generates lots of impls that we previously didn't have.
* | impl_standard_builder: Test the Deserialize implIan Jackson2022-05-121-14/+69
|/ | | | | | | | | | Test the Deserialize impl of every config struct. This detects bugs like the one fixed in !502. The macro now becomes more complex because it needs to take options. Right now this tt-munching option parser is overkill, but this leave space for further options in the future.