summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | Make ArtiConfigBuilder contain a TorClientConfigBuilderIan Jackson2022-03-111-135/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an API break: now one must use `.tor()` to access the Tor configuration parts. But it is not a config file format break, because `#[serde(flatten)]`.
| * | | | Make TorClientConfigBuilder DeserializeIan Jackson2022-03-111-0/+11
| |/ / / | | | | | | | | | | | | As per #371
* | | | Merge branch 'mr318_followup' into 'main'Nick Mathewson2022-03-113-2/+20
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Follow-up from arti!318 See merge request tpo/core/arti!402
| * | | | Follow-up from arti!318Nick Mathewson2022-03-113-2/+20
|/ / / / | | | | | | | | | | | | Make update_config only conditionally exported; add semver-status update.
* | | | Merge branch 'add-flatfile-dirmgr' into 'main'Nick Mathewson2022-03-116-12/+54
|\ \ \ \ | |/ / / |/| | | | | | | | | | | Add flatfile DirMgr See merge request tpo/core/arti!318
| * | | Expose APIs for external DirProviderChristian Grigis2022-03-114-12/+23
| | | |
| * | | Add methods to `UnverifiedConsensus`Christian Grigis2022-03-102-0/+31
| | | |
* | | | Merge branch 'chutney-without-proxy' into 'main'Nick Mathewson2022-03-114-33/+58
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | tests/chutney: Merge chutney-launching scripts See merge request tpo/core/arti!396
| * | | | tests/chutney/setup: Transfer changes from just-deleted codeIan Jackson2022-03-111-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It turns out that the clone-and-hack in tests/chutney/arti-bench was not identical to the original in tests/chutney/setup. I diffed the two and preferred the version from arti-bench.
| * | | | tests/chutney: Merge chutney-launching scriptsNick Mathewson2022-03-104-30/+55
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Formerly, the "launch a chutney network" code was duplicated in "setup" and "arti-bench", since "setup" always launched an arti proxy, while "arti-bench" didn't want that functionality. Now the "setup" script launches an arti proxy conditionally, depending on whether the "proxy" argument is given.
* | | | Merge branch 'config-no-retcon' into 'main'Ian Jackson2022-03-1019-286/+120
|\ \ \ \ | |/ / / |/| | | | | | | | | | | Drop config back-conversion from FooConfig to FooConfigBuilder See merge request tpo/core/arti!391
| * | | Drop remaining conversion from FooConfig to FooConfigBuilderIan Jackson2022-03-075-152/+1
| | | |
| * | | Have ArtiConfig contain a TorClientConfig, and drop builder retconIan Jackson2022-03-073-140/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace the recapitulation of TorClientConfig fields in ArtiConfig and instead just have it contain one. This is part of #374. The conversions from ArtiConfig back to ArtiConfigBuilder and TorClientConfigBuilder would need to change, but, since we don't want them anyway, No longer impl Deserialize for ArtiConfig. (As per #371 this will want to become a private type.) No longer impl From<ArtiConfig> for ArtiConfigBuilder and TorClientConfigBuilder. And abolish tests of that code. (This all has to be in one commit, because previously ArtiConfig::tor_client_config used the validated-to-builder config retcon.)
| * | | Provide way to get TorConfigBuilder from ArtiConfigBuilderIan Jackson2022-03-071-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | This is needed according to #372, where we observe that builders ought not to be generated from validated structs. So we need this conversion.
| * | | Derive Deserialize for handwritten ArtiConfigBuilderIan Jackson2022-03-071-1/+16
| | | |
| * | | Derive Deserialize for derive-builder-generated config buildersIan Jackson2022-03-076-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I used git-grep -P '\#\[serde\((?!default|deny_unknown)' to find places where I needed to add additional attributes on the builder method fields. This is currently a bit duplicative, but when #371 is completely done, the validated (non-builder) configs won't need to be Deserialize any more. This is part of #371 and #372.
| * | | Use git source for derive_builder for now, for attrs featureIan Jackson2022-03-079-9/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We are going to want to specify custom attributes on fields of the builder struct. This feature was missing from derive_builder. This commitid is the current head of my MR branch https://github.com/colin-kiegel/rust-derive-builder/pull/237 https://github.com/ijackson/rust-derive-builder/tree/builder-field-attrs Using the commitid prevents surprises if that branch is updated. We will require this newer version of derive_builder. The version will need to be bumped again later, assuming the upstream MR is merged and upstream do a release containing the needed changes.
| * | | humantime_serde_option: New module in tor-basic-utilsIan Jackson2022-03-074-0/+35
| | | | | | | | | | | | | | | | | | | | This will be used to allow our config *builder* structs to be Deserialize.
* | | | Merge branch 'arti-testing-part2' into 'main'Nick Mathewson2022-03-106-10/+417
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | arti-testing: support for simulated TCP breakage See merge request tpo/core/arti!392
| * | | arti-testing: Make Action implement CopyNick Mathewson2022-03-101-2/+2
| | | |
| * | | arti-testing: reverse two more attrs in attempt to fix min-versionsNick Mathewson2022-03-071-1/+1
| | | |
| * | | arti-testing: reverse two attrs in attempt to fix min-versionsNick Mathewson2022-03-071-1/+1
| | | |
| * | | arti-testing: todo comment cleanupNick Mathewson2022-03-071-8/+1
| | | |
| * | | arti-testing: support for conditional TCP failure.Nick Mathewson2022-03-073-9/+89
| | | |
| * | | arti-testing: add support for black-holing TCP connections.Nick Mathewson2022-03-073-7/+112
| | | |
| * | | arti-testing: CLI for making TCP connections break.Nick Mathewson2022-03-073-9/+146
| | | |
| * | | arti-testing: Initial support for broken TCP.Nick Mathewson2022-03-075-7/+99
| | | | | | | | | | | | | | | | | | | | | | | | This commit adds support for a BrokenTcp provider that can make connection attempts fail or time out. It doesn't yet have a way to turn on the failure.
* | | | Merge branch 'ticket_391' into 'main'eta2022-03-091-9/+26
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | arti-bench: don't allocate a separate receive-buffer for each job Closes #391 See merge request tpo/core/arti!395
| * | | | arti-bench: don't allocate a separate receive-buffer for each jobNick Mathewson2022-03-081-9/+26
| |/ / / | | | | | | | | | | | | | | | | | | | | This makes heap profiling more viable. Closes #391.
* | | | Merge branch 'ticket_383' into 'main'Ian Jackson2022-03-091-5/+5
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-chanmgr: Do not allocate an Internal error unless we mean it. Closes #383 See merge request tpo/core/arti!394
| * | | | tor-chanmgr: Do not allocate an Internal error unless we mean it.Nick Mathewson2022-03-081-5/+5
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we'd allocate an error as a place-holder here, but it's not a great idea to do that with a `Bug`: each `Bug` stores a whole stack trace, which uses a whole pile of allocations to construct. Now we keep an `Option<Error>` instead. Found while heap profiling. Closes #383.
* | | | Merge branch 'update-contrib-dependencies' into 'main'Nick Mathewson2022-03-081-1/+4
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Note the dependency on PCRE support in Git implied by the use of grep -P in the git hooks See merge request tpo/core/arti!393
| * | | | Note the dependency on PCRE support in Git implied by the use of grep -P in ↵Steven Murdoch2022-03-081-1/+4
|/ / / / | | | | | | | | | | | | the git hooks
* | | | Merge branch 'contributing-dependencies' into 'main'Ian Jackson2022-03-071-1/+7
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Add missing dependencies to CONTRIBUTING.md See merge request tpo/core/arti!389
| * | | | Add more explaining textLennart Kloock2022-03-051-2/+4
| | | | |
| * | | | Add link to shellcheck installation guideLennart Kloock2022-03-051-1/+1
| | | | |
| * | | | Add required dependencies to compile `arti` and run git hooks to CONTRIBUTING.mdLennart Kloock2022-03-051-0/+4
| | | | |
* | | | | Merge branch 'fix-expand-tilde-on-windows' into 'main'Ian Jackson2022-03-071-2/+24
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Fix expand tilde and invalid path chars on windows See merge request tpo/core/arti!274
| * | | | | Test shell variable expansion on windowsMichael2022-03-051-2/+24
| | |_|/ / | |/| | |
* | | | | Merge branch 'add-windows-instructions' into 'main'Ian Jackson2022-03-071-2/+12
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Add instructions for hooking up Tor Browser to arti on Windows See merge request tpo/core/arti!388
| * | | | | Add instructions for hooking up Tor Browser to arti on WindowsSteven Murdoch2022-03-041-2/+12
| |/ / / /
* | | | | Merge branch 'moderately-enthused-eyeballs' into 'main'eta2022-03-072-21/+84
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | Implement a basic form of RFC 8305 ("happy eyeballs") for channels See merge request tpo/core/arti!382
| * | | | Implement a basic form of RFC 8305 ("happy eyeballs") for channelseta2022-03-072-21/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes Arti usable in IPv6-only environments (arti#92) by letting us attempt multiple connections to a given relay using all of its addresses instead of just using the first (probably IPv4) one, using the strategy from RFC 8305 § 5. This isn't a complete implementation of Happy Eyeballs; ideally, we'd sort the address list before doing concurrent connections. However, it works (and has been tested inside an IPv6-only container inside eta's network :p)
* | | | | Merge branch 'bench_multicirc' into 'main'Nick Mathewson2022-03-071-52/+129
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | arti-bench: support multiple streams per circuit, multiple circuits per sample. Closes #380 See merge request tpo/core/arti!384
| * | | | arti-bench: documentation fixesNick Mathewson2022-03-071-5/+6
| | | | |
| * | | | arti-bench: record streams_per_circ and circs_per_sample.Nick Mathewson2022-03-071-5/+14
| | | | |
| * | | | Fix an unwrap() error.Nick Mathewson2022-03-041-1/+1
| | | | |
| * | | | arti-bench: use isolation to support multiple circuits per run.Nick Mathewson2022-03-041-14/+104
| | | | |
| * | | | arti-bench: simplify future-creation code slightlyNick Mathewson2022-03-041-8/+3
| | | | |
| * | | | arti-bench: refactor stream construction to connect in parallelNick Mathewson2022-03-041-33/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we tried to do each connection in a run, and only then did we start transferring data over them. Now we collect a bunch of the futures that return an open stream, and run them all in parallel with using them. This change includes connect-time in our benchmarks, and allows us to test contention in our connect code. Instead of using a Stream, I've changed the connection-generation code to call a future-returning function directly, so we have a way to explicitly pass which run we're in.