summaryrefslogtreecommitdiff
path: root/crates/arti/src
Commit message (Collapse)AuthorAgeFilesLines
...
| * | config: Do not strip_option for journald (and in future)Ian Jackson2022-06-101-1/+1
| | | | | | | | | | | | | | | As per point 1 in https://gitlab.torproject.org/tpo/core/arti/-/issues/488
* | | Add "accel-*" features to arti-client and arti.Nick Mathewson2022-06-131-0/+9
| |/ |/| | | | | | | | | | | | | | | | | These need to be optional: they improve performance by shifting to asm implementations, which may not be everybody's idea of good practice. These are not 'pure' features, since they select one implementation but disable another. Therefore they don't go in `full`. Closes #441.
* | Document "full", "experimental" in toplevel crate documentation.Nick Mathewson2022-06-131-41/+56
|/ | | | | Also, unify the features documentation format for those two crates, and document previously undocumented features there.
* try to differentiate transient from nontransient errortrinity-1686a2022-06-081-2/+0
|
* return nodata instead of servfail in some instancestrinity-1686a2022-06-081-3/+13
|
* Merge branch 'lint' into 'main'Ian Jackson2022-05-312-6/+10
|\ | | | | | | | | | | | | lints: Make lint blocks consistent and ensure they stay that way Closes #469 See merge request tpo/core/arti!557
| * lints: Make lint blocks consistentIan Jackson2022-05-312-4/+0
| | | | | | | | The remaining consequences of running add_warning
| * lints: Add let_unit_value allow to all cratesIan Jackson2022-05-312-0/+2
| | | | | | | | | | From running add_warning, with manual picking of the right hunks/lines.
| * lints: arti: Move some allows outside the auto blockIan Jackson2022-05-311-2/+4
| | | | | | | | These need to survive.
| * lints: Add lint block delimiters to every crateIan Jackson2022-05-312-0/+4
| | | | | | | | | | | | This was the result of: maint/add_warning crates/*/src/{lib,main}.rs and then manually curating the results.
* | arti config: Check that example config is exhaustiveIan Jackson2022-05-301-0/+114
| | | | | | | | This is the final piece of #457.
* | mistrust: Canonicalise prefix from Some("") to NoneIan Jackson2022-05-301-0/+1
| | | | | | | | | | This allows us to add the proper default example to the arti example config file.
* | arti: config: Canonicalise ports, and provide example dns_portIan Jackson2022-05-302-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | Now the validated configuration will never be `Some(0)`, even if that is what was written in the config file. The arti CLI parser can still produce this, so we don't touch the code that actually uses this. (Without the canonicalisation the default builder produces `None` for the `dns_port`, but the example would produce `Some(0)`, which is semantically identical but fails the test.) See https://gitlab.torproject.org/tpo/core/arti/-/issues/488 for some background.
* | config: Provide tor_config::resolve_option and resolve journaldIan Jackson2022-05-302-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | arti: config example: Add entries for tor_network fieldsIan Jackson2022-05-301-0/+9
| | | | | | | | | | These weren't previously discussed. It's not practical or useful to show the actual default values here.
* | arti: config example: Add some missing defaultsIan Jackson2022-05-301-3/+17
| | | | | | | | Found by my forthcoming test.
* | arti: example config: Arrange to uncomment logfilesIan Jackson2022-05-301-2/+2
| | | | | | | | | | This makes the config default parser see just "[ ]", an empty list, which is indeed the default.
* | arti: Make ProxyConfig no longer DeserializeIan Jackson2022-05-301-4/+1
| | | | | | | | That this remained was an oversight.
* | arti: cfg: Actually uncomment *all* the things in the exampleIan Jackson2022-05-301-1/+1
|/
* Merge branch 'arti-cfg-tests' into 'main'Ian Jackson2022-05-301-0/+24
|\ | | | | | | | | add unit tests for ArtiConfig public functions See merge request tpo/core/arti!551
| * add unit tests for ArtiConfig public functionsmichael mccune2022-05-281-0/+24
| | | | | | | | | | this change adds some simple tests for the ArtiConfig public getter functions to help expand coverage in this crate.
* | deduplicate dns requests based on transaction idtrinity-1686a2022-05-301-49/+139
|/
* Merge branch 'config-split' into 'main'Ian Jackson2022-05-263-73/+44
|\ | | | | | | | | | | | | Break TorClientConfig out of ArtiConfig and warn on unknown config keys Closes #459 and #417 See merge request tpo/core/arti!529
| * arti: Better doc for ArtiCombinedConfigIan Jackson2022-05-251-1/+3
| |
| * 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-3/+3
| | | | | | | | | | As per review comments https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/529#note_2807076
| * tor-config: Tests for ignored config key handlingIan Jackson2022-05-241-8/+4
| |
| * Split TorClientConfig out of ArtiConfig, and Resolvable traitIan Jackson2022-05-243-45/+21
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * arti tests: Introduce bld_tor variableIan Jackson2022-05-241-22/+19
| | | | | | | | | | | | We are going to reorganise ArtiConfig to not contain a TorClientConfig. This test case's calls to bld.tor() will all need to change. Do this in advance to make that future commit more readable.
* | reply socks error on more codepathtrinity-1686a2022-05-251-48/+67
|/
* Apply fs-mistrust to logfile directories.Nick Mathewson2022-05-243-7/+26
|
* Make fs-mistrust configurable from the top level.Nick Mathewson2022-05-242-19/+31
| | | | | | This change requires a little refactoring of TorClientBuilder: now, instead of enabling or disabling mistrust, it enables or disables the decision to _override_ the mistrust in the config.
* fs-mistrust: make Mistrust have a corresponding Builder type.Nick Mathewson2022-05-241-9/+7
| | | | | This is an approximately minimal revision to get Builder in place; subsequent commits will clean up the API.
* Merge branch 'arti-config-2' into 'main'Nick Mathewson2022-05-132-4/+6
|\ | | | | | | | | Abolish arti-config, replacing with tombstone crate See merge request tpo/core/arti!508
| * arti-config abolition: Change references to use tor_configIan Jackson2022-05-132-4/+6
| | | | | | | | | | | | | | | | Generally, change the paths that mention the crate name to go via a module-level "use". This involves adding tor-config as a direct dependency for a few crates.
* | Merge branch 'builder-default-3' into 'main'Nick Mathewson2022-05-132-26/+0
|\ \ | |/ |/| | | | | impl_standard_builder: Test the Deserialize impl and have it generate ::builder See merge request tpo/core/arti!507
| * impl_standard_builder: Have it generate FooConfig::builderIan Jackson2022-05-122-26/+0
| | | | | | | | | | This deletes many handcoded impls. It also generates lots of impls that we previously didn't have.
* | config load: Move mistrust checking to load()Ian Jackson2022-05-131-6/+9
| | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/issues/472 Experimentation convinced me the Mistrust should be within the ConfigurationSources.
* | Merge branch 'template' into 'main'Nick Mathewson2022-05-123-7/+220
|\ \ | |/ |/| | | | | Make the example config file into a template and move it to arti See merge request tpo/core/arti!503
| * arti-example-config.toml: Add a slightly improved commentIan Jackson2022-05-121-0/+1
| |
| * arti-example-config.toml: Re-un-comment the example settings in testIan Jackson2022-05-121-4/+23
| |
| * arti-example-config.toml: Comment out all the example settingsIan Jackson2022-05-121-24/+24
| | | | | | | | | | | | | | | | | | | | We expect that a user may copy this file and uses it as a starting point for their own configuration. When they do that, we don't want them to freeze the default config in time. Instead, we can expect them to uncomment settings they wish to change. Then when they upgrade arti, *other* settings will get the new defaults, which I think is right.
| * arti-example-config: Mark some non-default examples more clearlyIan Jackson2022-05-121-10/+11
| | | | | | | | | | | | | | | | Now, git-grep '^#[^ ]' crates/arti/src/arti-example-config.toml has no ouptut. This prepares us for the next commit.
| * config defaults: Test that empty deser is the sameIan Jackson2022-05-121-0/+4
| |
| * ARTI_EXAMPLE_CONFIG: Rename from ARTI_DEFAULTSIan Jackson2022-05-123-4/+3
| | | | | | | | | | The defaults are built into the code. This is a doc-commented example file, not the primary specification of what the defaults are.
| * ARTI_DEFAULTS: Move to arti crateIan Jackson2022-05-123-1/+187
| |
| * config defaults: No longer apply ARTI_DEFAULTS in load()Ian Jackson2022-05-121-1/+0
| | | | | | | | | | | | | | | | This is redundant, because the defaults have to be supplied by the config builders (usually via builder default attributes). That this is actually done and correct is tested by the `default_config()` test case in arti/src/cfg.rs.
| * config defaults: Test that going via builder explicitly is the sameIan Jackson2022-05-121-0/+4
| | | | | | | | | | Add this test even though our construction of the Default and Builder ought to trivially ensure that it's true.
* | Rename impl_standard_builder from impl_default_via_builderIan Jackson2022-05-122-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | I have Plans for this macro. In particular: * I have a wip branch which tests that the Builder can be deserialised from an empty config (ie, that config reading of a config with a blank section for this item works). * I think we should autogenerate $Config::builder(), and promote that, rather than $ConfigBuilder::default(). This macro could do that.
* | config: Replace more handwritten impl DefaultIan Jackson2022-05-122-18/+4
| |