summaryrefslogtreecommitdiff
path: root/crates/arti/src/cfg.rs
Commit message (Collapse)AuthorAgeFilesLines
* RPC: Move the "listen" part of the RPC listener code to `arti`.Nick Mathewson2023-05-041-0/+44
| | | | | | | | | Now there's a module in `arti` that runs the loop for an RPC listener. The part of the old `listener` module that made the framed connections is now part of the `Session` object. There is now yet another a temporary location for the pipe; we should pick something better. At least now it's configurable.
* 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.
* arti: transports parsing: Record this as a ticketIan Jackson2022-11-301-4/+3
|
* arti, arti-client: Conditionalise various things on pt-clientIan Jackson2022-11-291-0/+1
|
* arti cfg tests: Add some more debug outputIan Jackson2022-11-291-0/+1
|
* bridge non-support: Test that we reject configsIan Jackson2022-11-211-4/+19
|
* bridge non-support: De-cfg the primary bridge config fieldsIan Jackson2022-11-211-3/+0
| | | | | | | | | | | | | | | | | | | | We now parse the `bridges.enabled` BoolOrAuto, and the `bridges.bridges` list. The `bridges.bridges` list is Vec<()> in the builder, and Vec<Void> in the built config. Ie, it is simply a count, and vanishes in the built config. But this count triggers us to try to call build(), to try to parse bridges, and to try to set and honour the enablement boolean. The result is that the type system now ensures that if bridges are disabled, but specified (either by listing them in the config, or writing `enabled=true`), we inevitably try to insist that we have a non-empty Vec<Void>, which is of course impossible. There will be a test case too for those who think this too abstract a way to guarantee this property :-).
* arti cfg test: Break out expect_err_contains functionIan Jackson2022-11-211-9/+15
| | | | | Maybe this will want to be in tor-error or something but put it here for now.
* bridge non-support: Disable the test for nowIan Jackson2022-11-211-0/+1
| | | | | | | | This test will start to fail if you compile without bridge support, because we'll start rejecting the test configurations with bridges specified. We'll add a proper test for this later.
* Fix a bunch of "needless borrow" warnings on nightlyNick Mathewson2022-11-181-3/+3
| | | | | It looks like, despite a few false starts, they've got this warning right; there weren't any false positives.
* pt config, arti cfg test: Expect bridges.transports to be missingIan Jackson2022-11-161-2/+9
| | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/823#note_2854365
* arti cfg test: Coalesce expect_missingIan Jackson2022-11-161-0/+22
| | | | | | If there are subkeys which are covered by also expected_missing superkeys, delete them, since we expect the superkey to be missing, so the subkey won't show up.
* arti cfg test: Document exhaustive_1 and comment exhaustiveIan Jackson2022-11-151-0/+39
|
* arti cfg test: Break out CONFIG_KEYS_EXPECT_NO_EXAMPLEIan Jackson2022-11-151-2/+9
| | | | Giving this a name will allow us to refer to it docs in a moment.
* arti cfg test: Drop a redundant allowIan Jackson2022-11-151-1/+0
| | | | | This allow is also present in the standard lint block at the start of the test inline module.
* Spelling fixes and normalizations on some high-level cratesNick Mathewson2022-11-071-3/+3
|
* Fix typosDimitris Apostolou2022-11-061-3/+3
|
* cfg tests: bridges: Document test case assumptionsIan Jackson2022-10-121-0/+19
|
* cfg tests: bridges: Remove now-redundant block { }Ian Jackson2022-10-121-13/+11
|
* cfg test: bridges: Test all three feature casesIan Jackson2022-10-121-4/+31
| | | | | | | | | | | | | This demonstrates that: * !bridge-client: uncommenting nondefault bridge config generates urecognized config key warnings (but the config is still accepted)( * bridge-client, !pt-client: uncommenting nondefault bridges generates error due to attempting to use a PT. If that's filtered out, everything is fine. * pt-client: Everything is good (as before).
* cfg tests: bridges: Prepare for more comprehensive testingIan Jackson2022-10-121-8/+20
| | | | | | | | | | | | | * Introduce filter_examples and resolve_examples helpers, which will become more complex in a moment. * Move the API test into a { } block to minimise subsequent diff. It's going to become conditional. * In subsequent comparisons, use the parsed version, since the API built one might not exist. No overall functional change.
* cfg tests: Make ExampleSectionLines::resolve fallibleIan Jackson2022-10-121-5/+5
|
* Fix comment typo.Nick Mathewson2022-10-121-1/+1
|
* bridges: Test configurationIan Jackson2022-10-121-0/+121
|
* pt and bridges: Parse configurationIan Jackson2022-10-121-3/+1
|
* config exhaust checking: Feature-limit some of the testsIan Jackson2022-10-121-11/+17
|
* bridges config example: Add bridges section to example configIan Jackson2022-10-121-0/+3
| | | | | | | This is precisely the text from the original version of !744. There is no implementation yet, so we must add a entry to the exception list in the tests.
* config exhaust checking: Allow for whole sectionsIan Jackson2022-10-121-2/+17
| | | | | | | | Section headings appear uncommented in the file, so if we have a whole section which is completely unrecognized (ie, an entry with no `.`, it will be spotted when we parse the not-uncommented file too. Right now there aren't any but there will be in a moment.
* config exhaust checking: Allow for options only unrecognized in newIan Jackson2022-10-121-4/+10
|
* config exhaust checking: Move unrecognized lists earlierIan Jackson2022-10-121-3/+3
| | | | It turns out that we will need these even for uncommented parsing.
* arti config exhaust checking: Improve message, add commentIan Jackson2022-10-121-2/+4
| | | | I had a failure that was confusing to me, and I wrote it...
* Allow "clippy::single_char_pattern" in tests.Ian Jackson2022-10-121-0/+1
| | | | | | | This lint exists for perf reasons, and this is rarely relevant in tests. Using double quoted str is generally cognitively less burdensome.
* Add test warning exceptions to arti::cfg::testNick Mathewson2022-08-311-0/+7
|
* Fix Tests on Windows in Configuration Subsystem.Alexander Færøy2022-08-301-6/+30
| | | | | | | | | | | | | | | | This patch changes our `default_config()` test in `arti/src/cfg.rs` such that we can define a number of known unrecognized options on different platforms. We mark the two keys "storage.permissions.trust_group" and "storage.permissions.trust_user" as unknown on the Windows platform as such features is not available using the ordinary Unix UID concept. This patch also publicly exposes the `tor_config::load::DisfavouredKey` and `tor_config::load::PathEntry` types and marks them as non-exhaustive. See: tpo/core/arti#450.
* arti cfg: Provide comprehensive tests for port listeningIan Jackson2022-08-251-1/+116
|
* arti: cfg: Rename `*_port` to `*_listen` and change the typeIan Jackson2022-08-251-9/+69
| | | | | | | This commit largely follows the example for resolve_alternative_specs. The difference is that there are two fields, so we use a macro to avoid recapitulating the field names.
* tor-config: Support tracking deprecated config keysIan Jackson2022-08-251-5/+11
|
* tor-config: Introduce ResolutionResultsIan Jackson2022-08-251-6/+7
| | | | This will allow us to handle new kinds of warnigns etc.
* fix nightly lintstrinity-1686a2022-08-241-0/+1
|
* fix test failing due to missing allow_running_as_roottrinity-1686a2022-08-241-1/+1
|
* Merge branch 'no_root' into 'main'Nick Mathewson2022-08-241-0/+6
|\ | | | | | | | | arti: Do not allow running as root. See merge request tpo/core/arti!688
| * arti: Do not allow running as root.Nick Mathewson2022-08-241-0/+6
| | | | | | | | | | | | This can be overridden with `application.allow_running_as_root`. Part of #523.
* | arti cfg: Write down future plansIan Jackson2022-08-231-0/+13
| | | | | | | | | | Mostly cribbed from https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/684#note_2829937
* | arti cfg: Test parsing of the oldest config file we still supportIan Jackson2022-08-221-8/+36
| |
* | arti cfg: Fix docs about ARTI_EXAMPLE_CONFIGIan Jackson2022-08-221-1/+4
|/ | | | The defaults are now
* arti: Add support for process hardeningNick Mathewson2022-08-151-0/+12
| | | | | | | | | | | | | This is a compile-time feature with an associated configuration flag, both enabled by default. When it's turned on, hardening prevents the arti process from dumping core or being attached to by low-privileged processes. (This is a defense-in-depth measure, not an absolute way to prevent attacks. For more information, see [`secmem_proc`](https://docs.rs/secmem-proc/0.1.1/secmem_proc/).) Closes #364.
* arti: cfg: Remove another needless borrowIan Jackson2022-06-161-1/+1
|
* arti cfg tests: Remove a redundant line that shadows an earlier bindingIan Jackson2022-06-161-1/+0
| | | | | Prompted by review https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/589#note_2813596
* arti cfg tests: Test that example config works as-isIan Jackson2022-06-161-0/+2
| | | | It contains only sections, but we want to detect when that is a problem!
* arti: cfg tests: Refactor to prepare for new testIan Jackson2022-06-161-16/+23
| | | | We're going to call this new closure another time.