summaryrefslogtreecommitdiff
path: root/crates/tor-config/src
Commit message (Collapse)AuthorAgeFilesLines
* Fix typosDimitris Apostolou2024-09-031-1/+1
|
* tor-config: Improve FileWatcher documentation.Gabriela Moldovan2024-08-281-1/+12
|
* tor-config: Add tests for FileWatcher::watch_path.Gabriela Moldovan2024-08-281-0/+73
|
* tor-config: Make a test helper take a reference to TempTestDir.Gabriela Moldovan2024-08-281-2/+2
|
* tor-config: Rename watch_file to watch_path.Gabriela Moldovan2024-08-271-3/+3
| | | | `FileWatcher::watch_file` can be used with arbitrary paths.
* tor-config: Write tests for FileWatcher.Gabriela Moldovan2024-08-211-3/+142
|
* tor-config: Add a TODO about relocating file_watcher.Gabriela Moldovan2024-08-211-0/+3
|
* tor-config: Add getters for FileWatcher.Gabriela Moldovan2024-08-211-1/+9
| | | | | | | Sometimes it's useful to know what files/directories are being watched. For example, the descriptor publisher needs to know in order to figure out if it needs to update the watcher in response to changes in the config.
* tor-config: Support watching dirs for files with a given extension (fmt).Gabriela Moldovan2024-08-211-2/+9
|
* tor-config: Support watching dirs for files with a given extension.Gabriela Moldovan2024-08-211-19/+72
| | | | | | | | | | | | | | This also fixes a couple of issues with the previous implementation: * it enables you to watch for more than just one file/extension per directory (each directory now has a list of filters. If any of the filters apply to the path contained in the notify::Event, the `FilterWatcher` notifies the listeners * it removes the list watched files from `FileWatcher`. This makes things a lot simpler to grok: essentially, the file watcher only ever watches directories, notifying if an "interesting" file was changed (in our case, the interesting files are files that have a relevant extension, such as `.auth`, or specific configuration files, as specified by `ConfigurationSources`).
* tor-config: Move event handling to a separate function.Gabriela Moldovan2024-08-211-20/+30
| | | | | This will soon grow more complex, so I am preemptively moving it out of `start_watching`.
* tor-config: Remove unused Event::SigHup variant.Gabriela Moldovan2024-08-211-3/+0
| | | | | We don't need this variant anymore, because sighup is now handled separately from `FileWatcher` events.
* tor-config: Make FileWatcher use an opaque channel type.Gabriela Moldovan2024-08-211-5/+68
| | | | The `FileWatcher` now uses a `postage::watch` channel under the hood.
* tor-config: Give FileWatcherBuilder a handle to the runtime.Gabriela Moldovan2024-08-211-11/+10
| | | | | The event handler will soon be made async, so we need a handle to the runtime.
* tor-config: Move FileWatcher to tor-config.Gabriela Moldovan2024-08-212-0/+196
| | | | | | | | | For the most part, this is just code motion. The only change here is that `prepare` is no longer a method on `FileWatcher`. This decouples `FileWatcher` from `ConfigurationSources`, enabling us to use it to watch files and directories that aren't configuration.
* arti-client: Move BuilderExt to tor-config.Gabriela Moldovan2024-08-052-0/+32
| | | | | `BuilderExt` will soon be used in tor-hsservice too (for configuring the mistrust settings of the client "restricted mode" authorization keys).
* tor-config: Deprecate ConfigError::Permissions, use FileAccessIan Jackson2024-07-102-1/+6
|
* tor-config: Correct message and description for mistrust errorIan Jackson2024-07-101-2/+4
| | | | Part of #1473
* Change deftly syntax to post 0.12.1 versionIan Jackson2024-06-172-2/+2
| | | | | | | | | | | * Change `pub` to `export` * Change the `=` in define to `:` * Change `pub_template_semver_check` to `template_export_semver_check` Right now, 0.12.1 supports both syntaxes. I have verified this branch also compiles with https://gitlab.torproject.org/Diziet/rust-derive-deftly/-/merge_requests/402 ee171ffaf56d7dcb7d75584054921153fe19b222
* Update to derive-deftly 0.12.1Ian Jackson2024-06-171-1/+1
| | | | | | * Bump in Cargo.toml * Deal with `${Xmeta as ...}` incompatible change, by always specifying an `as`, and changing `as tokens`.
* tor-config: Move macro above ExplicitOrAuto definition.Gabriela Moldovan2024-06-031-58/+58
| | | | | | | The macro needs to be defined before `ExplicitOrAuto`, otherwise we can't reference it in its docs. Fixes the broken doc links.
* tor-config: Apply deferred cargo fmt.Gabriela Moldovan2024-06-031-27/+26
|
* tor-config: Cross-reference NotAutoValue in the ExplicitOrAuto docs.Gabriela Moldovan2024-06-031-0/+5
|
* tor-config: Fix a test misusing NotAutoValue.Gabriela Moldovan2024-06-031-15/+11
|
* tor-config: Add macro for implementing NotAutoValue.Gabriela Moldovan2024-06-031-0/+79
|
* tor-config: Re-export serde_value.Gabriela Moldovan2024-06-031-0/+1
| | | | | We are about to need this in other crates (for generating the tests for the `NotAutoValue` implementations).
* tor-config: Add NotAutoValue trait bound to ExplicitOrAuto inner type.Gabriela Moldovan2024-06-031-2/+7
| | | | | | | This is a safeguard to prevent users from using ExplicitOrAuto with types that serialize to the same value as ExplicitOrAuto::Auto. Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2146#note_3030692
* tor-config: Add ExplicitOrAuto::{as_value, into_value}.Gabriela Moldovan2024-06-031-0/+30
|
* tor-config: Remove unnecessary bounds.Gabriela Moldovan2024-06-031-6/+1
|
* tor-config: Expand on the ExplicitOrAuto docs.Gabriela Moldovan2024-06-031-0/+52
|
* tor-config: Add ExplicitOrAuto helper.Gabriela Moldovan2024-06-031-2/+97
| | | | | | | | This will be used for the `vanguard.mode` config option. The `VanguardMode` corresponding to the `"auto"` variant will depend on whether the `vanguards` feature is enabled: if the feature is enabled, it is mapped to `VanguardMode::Lite`, and `VanguardMode::Disabled` otherwise.
* doc: Use locked buildpinkforest2024-05-161-1/+1
|
* Re-run maint/add_warning.Nick Mathewson2024-05-061-2/+2
| | | | This commit is automatically generated.
* Resolve some clippy warnings about empty rustdoc.Nick Mathewson2024-05-051-1/+1
| | | | | (In most cases, by writing the documentation; in tests, by permitting the documentation to be missing.)
* Switch to figment 1.0.18 and extract_lossyNick Mathewson2024-04-222-3/+3
| | | | | | | The new (dubiously named) `Figment::extract_lossy` method can treat decode numbers from strings, and booleans from numbers or strings. This makes the behavior compatible with config-rs, and should (I hope) finally allow us to migrate.
* Rename ConfigParseError => ConfigLoadErrorNick Mathewson2024-04-221-8/+15
| | | | | Figment can give an error under more conditions than just a parsing failure, so we should report it a bit more vaguely.
* Add an action field to Io error in tor-config.Nick Mathewson2024-04-222-15/+24
|
* Convert tor-config to use figment.Nick Mathewson2024-04-226-103/+137
| | | | | There are probably ways to make this a bit more elegant, but at least the tests still pass.
* derive-deftly: Change some docs referencesIan Jackson2024-04-031-4/+4
| | | | Found by "git grep adhoc" and manual inspection.
* derive-deftly: Call pub_template_semver_checkIan Jackson2024-04-031-0/+2
| | | | | | | This is a new feature in d-d 0.10.0. Our currrent semver policy doesn't care about this, but let's not encode that property in the tree and leave ourselves a booby-trap.
* Switch to derive-deftlyIan Jackson2024-04-032-28/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the combination of a number of separate commits, many of which were generated by seddery, and then rebased and squashed. Cargo.toml perl -i~ -pe 's{^derive-adhoc}{derive-deftly = "0.10"}' crates/*/Cargo.toml (not regenerated during rebase) update Cargo.lock `cargo fetch` without --locked (regenerated during rebase) seddery git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{^use derive_adhoc}{use derive_deftly}' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\bdefine_derive_adhoc\b}{define_derive_deftly}g' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\bAdhoc\b}{Deftly}g if m{derive}' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\#\[derive_adhoc\b}{#[derive_deftly}g' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{use derive_adhoc}{use derive_deftly}' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\bderive_adhoc\b}{derive_deftly_adhoc} if m{use.*deftly}' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\bderive_adhoc!}{derive_deftly_adhoc!}' (not regenerated during rebase) Manually add `#[derive_deftly_adhoc]` where needed. seddery git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\#\[adhoc\b}{#[deftly}g' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\bderive_adhoc_template}{derive_deftly_template}' (not regenerated during rebase) Manually fix up an import Manually update some builder attrs Manually fix up tor_rtmock::time_core This was missed in my seddery, due to me rebasing the branch and not redoing the seddery.
* Merge branch 'encapsulate_config_rs' into 'main'Nick Mathewson2024-03-136-87/+125
|\ | | | | | | | | Encapsulate usage of config-rs inside tor-config. See merge request tpo/core/arti!2040
| * Grammar fix.gabi-2502024-03-131-1/+1
| |
| * tor-config: Update documentation to not refer to config crate.Nick Mathewson2024-03-133-10/+11
| |
| * config: Remove From impls from config::ConfigErrorNick Mathewson2024-03-134-18/+18
| | | | | | | | These are another case of exposing the config crate.
| * tor-config: Put config::Config inside a wrapper type.Nick Mathewson2024-03-135-23/+33
| | | | | | | | This will let us replace Config with something better.
| * Use ConfigurationSource::Verbatim in our tests.Nick Mathewson2024-03-132-16/+24
| |
| * tor-config: Allow ConfigurationSource to be verbatim text.Nick Mathewson2024-03-131-12/+26
| | | | | | | | | | This will let us test our configuration logic without having to use the `config` crate directly.
| * tor_config: Hide macro-only re-exports.Nick Mathewson2024-03-132-12/+17
| | | | | | | | | | Our macros use these exports, but we don't need everybody else to be able to see them.
* | Run maint/add_warning.Nick Mathewson2024-03-1310-0/+10
|/