aboutsummaryrefslogtreecommitdiff
path: root/crates/arti-client
Commit message (Collapse)AuthorAgeFilesLines
...
* | add feature annotation not added by doc_auto_cfgtrinity-1686a2022-08-242-0/+2
| |
* | enable doc_auto_cfg feature on every crate when documenting for docs.rstrinity-1686a2022-08-242-0/+4
|/
* arti: Fix a minimal-versions failureIan Jackson2022-08-171-1/+1
|
* Add semver notesIan Jackson2022-08-171-0/+1
|
* chanmgr: Use NetDirProvider::params and Arc<dyn..Netparameters>Ian Jackson2022-08-172-6/+7
| | | | | | | | | This gets rid of many Result(). Many parameters are renamed. Test cases of the now-impossible branch are removed. Deleting the match from padding_parameters will come in a moment. I've split off that commit since it has much whitespace noise. for now, change the error type to Void.
* Introduce ChannelConfigIan Jackson2022-08-162-1/+22
| | | | | This commit is just the necessary plumbing. The config is currently empty. We'll add something to it, for padding control, later.
* dormancy: Plumb through to chanmgr reconfigure_generalIan Jackson2022-08-161-4/+27
| | | | | | | | | | | | | | | The chanmgr remembers the last dormancy state it was told. We invent a chanmgr-specific Dormancy which the arti-client code knows how to convert from the richer top-level dormant status. This avoids having to have everyone know all the variants of the top-level state. To call reconfigure_general, we must also obtain and plumb through a netdir. Right now we must return an internal error if there is in fact no netdir, because reconfigure_general does not yet cope with a missing netdir. Nothing actually *uses* the dormancy yet.
* dormancy: tor-client: Break initial dormancy out into a variableIan Jackson2022-08-161-1/+2
| | | | | | We're going to need to reuse this, so we can plumb the dormancy to more places. Breaking it out avoids having repeat the initial dormancy value in two places.
* arti-client: TorClient constructor: add a blank lineIan Jackson2022-08-161-0/+1
| | | | | The rustfmt-mandated different formatting of these two very similar blocks is bad enough, without them being smooshed together.
* Document more explicitly what "voiding a semver warranty" entailsNick Mathewson2022-08-111-1/+5
| | | | Closes #522.
* Now that versions have bumped, remove semver.md files.Nick Mathewson2022-08-011-3/+0
|
* Bump patch versions on crates that have new APIs.Nick Mathewson2022-08-011-2/+2
| | | | | | | | | | | | | | Do _not_ bump the dependency versions on crates that have had no changes since arti 0.0.5, since those crates do not depend on the new APIs. ``` cargo set-version -p tor-basic-utils --bump patch cargo set-version -p tor-llcrypto --bump patch git restore crates/tor-checkable git restore crates/tor-consdiff git restore crates/tor-rtmock ```
* Bump minor version on crates with deps with breaking changes.Nick Mathewson2022-08-011-3/+3
| | | | | | | | | | | | | | | This performs the transitive closure of the last operation: everything that depends on a crate with a breaking change gets the version which it depends on bumped. ``` cargo set-version -p tor-proto --bump minor cargo set-version -p tor-netdoc --bump minor cargo set-version -p arti-hyper --bump minor cargo set-version -p arti-bench --bump minor cargo set-version -p arti-testing --bump minor cargo set-version -p tor-config --bump minor ```
* Bump minor versions on all crates that have had breaking changes.Nick Mathewson2022-08-011-9/+9
| | | | | | | | | | | | | | | | | | | | | | Done with these commands: ``` cargo set-version -p fs-mistrust --bump minor cargo set-version -p tor-bytes --bump minor cargo set-version -p tor-socksproto --bump minor cargo set-version -p tor-cert --bump minor cargo set-version -p tor-linkspec --bump minor cargo set-version -p tor-cell --bump minor cargo set-version -p tor-netdir --bump minor cargo set-version -p tor-persist --bump minor cargo set-version -p tor-chanmgr --bump minor cargo set-version -p tor-guardmgr --bump minor cargo set-version -p tor-circmgr --bump minor cargo set-version -p tor-dirclient --bump minor cargo set-version -p tor-dirmgr --bump minor cargo set-version -p arti-client --bump minor cargo set-version -p arti --bump minor ```
* Several typo fixes from `typos`.Nick Mathewson2022-07-271-1/+1
|
* Update arti-client to new NetDirProvider API.Nick Mathewson2022-07-263-6/+33
| | | | | | This allows us to give better errors in the case where bootstrapping succeeds at first, but fails thereafter for long enough to make our directory expire.
* Rename download_tolerance to directory_toleranceNick Mathewson2022-07-222-3/+9
| | | | Closes #503.
* Rename DirSkewTolerance to DirToleranceNick Mathewson2022-07-222-2/+3
| | | | | | This name is more accurate because we aren't only dealing with clock skew here: we're also trying to tolerate the case where the authorities fail to reach consensus for a while.
* arti-client: Split "Persist" into setup and access variants.Nick Mathewson2022-07-212-5/+16
|
* arti_client: turn "Proto" error into StreamFailed.Nick Mathewson2022-07-212-6/+22
|
* arti_client: Split DirMgr error into useful types.Nick Mathewson2022-07-213-6/+15
|
* arti-client: minor edits in error messages and commentsNick Mathewson2022-07-211-17/+20
|
* Semver tweaks from review.Ian Jackson2022-07-191-1/+1
| | | | These aren't user facing comments, but getting them right will help us write better changelogs.
* arti-client: Remove code related to overriding fs-mistrust.Nick Mathewson2022-07-193-45/+8
| | | | | | | | This logic can now be adjusted via the config object so that it does its own overriding by looking at the environment as appropriate. Removing these methods helps simplify the code a bit. Enabled by #483.
* Move responsibility for disable-fs-mistrust envvar.Nick Mathewson2022-07-193-33/+16
| | | | | | | The variable is now handled when building the configuration, and no longer needs to be special-cased. Closes #483.
* arti-client: Do periodic task dormancy in a management taskIan Jackson2022-07-181-37/+28
| | | | | This means that it is no longer possible to write code which updates the dormant mode but forgets to notify the periodic tasks.
* arti-client: Make dormant_mode be an Option, None on dropIan Jackson2022-07-181-13/+27
| | | | | This will allow receivers (which we are about to introduce) to terminate when the last client is dropped.
* arti-client: Convert dormant_mode into a postage::watchIan Jackson2022-07-181-17/+34
| | | | | | | | We are going to want to be able to wake up other tasks elsewhere in Arti, that need to know about dormancy. We will give them a postage watch Receiver. Right now there are no such things yet.
* arti-client: Make DormantMode have a DefaultIan Jackson2022-07-181-1/+3
|
* arti-client: Add Bug variant to errorIan Jackson2022-07-181-0/+5
| | | | We're going to want this in a moment.
* Fix typoDimitris Apostolou2022-06-281-1/+1
|
* Bump crate and dependency versions.Nick Mathewson2022-06-241-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These were done with the following commands: ``` cargo set-version -p tor-basic-utils --bump patch cargo set-version -p fs-mistrust --bump minor cargo set-version -p tor-error --bump patch cargo set-version -p tor-config --bump patch cargo set-version -p tor-units --bump patch cargo set-version -p tor-rtcompat --bump minor cargo set-version -p tor-llcrypto --bump patch cargo set-version -p tor-bytes --bump minor cargo set-version -p tor-socksproto --bump minor cargo set-version -p tor-cert --bump minor cargo set-version -p tor-cell --bump minor cargo set-version -p tor-proto --bump minor cargo set-version -p tor-netdoc --bump patch cargo set-version -p tor-netdir --bump minor cargo set-version -p tor-persist --bump patch cargo set-version -p tor-chanmgr --bump minor cargo set-version -p tor-guardmgr --bump minor cargo set-version -p tor-circmgr --bump patch cargo set-version -p tor-dirclient --bump patch cargo set-version -p tor-dirmgr --bump minor cargo set-version -p arti-client --bump patch cargo set-version -p arti --bump minor cargo set-version -p arti-bench --bump minor cargo set-version -p arti-testing --bump minor ```
* Merge branch 'clippy' into 'main'Ian Jackson2022-06-245-0/+39
|\ | | | | | | | | Fix clippy nightly again See merge request tpo/core/arti!603
| * clippy: Consolidate many lints in maint/add_warningIan Jackson2022-06-244-0/+12
| | | | | | | | | | | | Found these by disabling the nightly dbg macro special case. Now, we have a mechanism for globally adding suppressions to tests, we can use that instead.
| * clippy: Add standard test lint block to several examplesIan Jackson2022-06-244-0/+24
| |
| * Run maint/add_warning crates/*/src/{lib,main}.rsIan Jackson2022-06-231-0/+3
| | | | | | | | Update all lint blocks
* | Update README.md files from rustdoc.Nick Mathewson2022-06-241-41/+77
|/
* Merge branch 'display_source_cleanup' into 'main'eta2022-06-211-8/+8
|\ | | | | | | | | Do not include error source() in display() format. See merge request tpo/core/arti!598
| * Do not include error source() in display() format.Nick Mathewson2022-06-211-8/+8
| | | | | | | | | | | | | | | | | | According to doc/Errors.md, and in keeping with current best practices, we should not include display an error's `source()` as part of that error's display method. Instead, we should let the caller decide to call source() and display that error in turn. Part of #323.
* | Merge branch 'stalled_directory' into 'main'Ian Jackson2022-06-211-1/+17
|\ \ | | | | | | | | | | | | | | | | | | Detect and report stalled directory downloads Closes #468 See merge request tpo/core/arti!587
| * | Report directory blockage problems from arti-client.Nick Mathewson2022-06-141-1/+16
| | | | | | | | | | | | Closes #468.
| * | DirMgr: Track errors, stalls, and resets as part of status.Nick Mathewson2022-06-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A "reset" happens whenever we have to start a download attempt over -- either because we ran out of retries, or we found something wrong with the consensus after fetching certificates. An "error" happens when we have a recoverable error from one or more directory sources. A "stall" happens whenever a round of downloads or cache loads leads to no change in the status. We don't yet use this as part of our status reporting.
* | | channel padding: Plumb settings from chanmgrIan Jackson2022-06-211-1/+1
| |/ |/|
* | Merge branch 'main' into 'accel-features'Nick Mathewson2022-06-163-12/+8
|\ \ | | | | | | | | | # Conflicts: # crates/arti-client/Cargo.toml
| * \ Merge branch 'high-level-features' into 'main'Nick Mathewson2022-06-162-44/+82
| |\ \ | | |/ | |/| | | | | | | | | | | | | Add "full" and "experimental" features to arti, arti-client, and below. Closes #499 See merge request tpo/core/arti!584
| | * Remove "rustls" from "full", for license reasons.Nick Mathewson2022-06-152-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Rustls uses ring, which uses code from BoringSSL, which derived from OpenSSL before OpenSSL changed their license. So ring is currently under 3BSD/SSLEay licenses, which aren't GPL-compatible, which may be a problem for some people. See #493.
| * | Merge branch 'dormant_directory' into 'main'Nick Mathewson2022-06-131-0/+1
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | Use TaskSchedule to sleep in directory bootstrapping Closes #497 See merge request tpo/core/arti!571
| | * | New API to expose and use TaskHandle from DirMgr.Nick Mathewson2022-06-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | This change also means that we need to create the handle and scheduler earlier in the process of creating the DirMgr. If we don't, we won't have a way to manage the task before bootstrap() returns.
* | | | Add "accel-*" features to arti-client and arti.Nick Mathewson2022-06-132-2/+34
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | 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/+65
| | | | | | | | | | | | | | | Also, unify the features documentation format for those two crates, and document previously undocumented features there.