summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * rpc: Improve documentation and strings for FFI status codes.Nick Mathewson2024-07-312-6/+54
| |
| * rpclib: Tweaks from review to header documentation.Nick Mathewson2024-07-312-6/+12
| |
| * rpc ffi: Try a more reference-driven approach to pointer handling.Nick Mathewson2024-07-315-31/+198
| |
| * Add a script to run cbindgen and check its outputs.Nick Mathewson2024-07-315-3/+550
| | | | | | | | | | | | | | | | | | | | This is a bit complicated since: - Using cbindgen with macro expansion requires a nightly rust: so, we have to look for one. - There are some cbindgen warnings which I cannot find any way to suppress, so instead of giving all warnings, it seems better to give a diff from the old list of warnings to the new list.
| * rpc: Initial core of an FFI interface.Nick Mathewson2024-07-3110-6/+830
| | | | | | | | | | | | | | | | | | This only covers the absolute minimal API in order to launch a connection and run simple requests, and it doesn't document anything nearly well enough. Nonetheless I think it's good enough for an initial review, to make sure that we've got the basics right (as well as a general consensus on the error handling API, naming, and so forth).
| * RPC: Make message types able to be CStr or str.Nick Mathewson2024-07-313-22/+65
| | | | | | | | (Internally, it is a boxed CStr that is always UTF-8.)
* | Merge branch 'ci-bis' into 'main'Nick Mathewson2024-07-311-11/+17
|\ \ | |/ |/| | | | | CI: Fix file overlap errors on main See merge request tpo/core/arti!2297
| * CI: Only preserve rust-recent artifacts, don't process rust-latest onesIan Jackson2024-07-311-5/+5
| | | | | | | | | | | | | | | | The -latest jobs don't actually have artifacts. But: In the -latest jobs this can cause errors due to duplication: the artifacts from the -recent jobs in the same pipeline result in EEXIST errors.
| * CI: Use YAML anchors rather than .extends for rust-recent/rust-latestIan Jackson2024-07-311-6/+12
|/ | | | | This will let us make the artifact processing only happen when we want to save artifacts.
* Merge branch 'bytemuck-update' into 'main'Ian Jackson2024-07-311-2/+2
|\ | | | | | | | | Update bytemuck to 1.16.3; previous version was yanked. See merge request tpo/core/arti!2294
| * Update bytemuck to 1.16.3; previous version was yanked.Nick Mathewson2024-07-311-2/+2
|/
* Merge branch 'sqlite-race' into 'main'gabi-2502024-07-312-9/+62
|\ | | | | | | | | | | | | tor-dirmgr: Return an error if storage is readonly and DB is missing/incompatbile. Closes #1497 See merge request tpo/core/arti!2283
| * tor-dirmgr: Replace from_conn impl with a call to from_conn_internal helper.Gabriela Moldovan2024-07-301-7/+16
| |
| * tor-dirmgr: Return an error if storage is readonly and DB is ↵Gabriela Moldovan2024-07-302-14/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | missing/incompatbile. This fixes a bug in `SqliteStore`'s constructor: previously, it would unconditionally try to create the missing database, even if it didn't have write access. As a result, it was impossible to reliably start multiple concurrent arti processes configured with the same (empty or nonexistent) cache_dir, because many of them would fail with errors such as ``` attempt to write a readonly database: Error code 8: Attempt to write a readonly database ``` Returning a `LocalResourceAlreadyInUse` error kind here enables us to leverage the retry loop from `TorClientBuilder::create_unbootstrapped` (which retries on local resource errors if `local_resource_timeout` is set). Closes #1497
* | Merge branch 'cli-tests' into 'main'gabi-2502024-07-3134-0/+491
|\ \ | | | | | | | | | | | | | | | | | | arti: Add tests for the hss/hsc subcomands Closes #1250 See merge request tpo/core/arti!2275
| * | CI: Add TODOs about rethinking matrix_test.Gabriela Moldovan2024-07-301-0/+9
| | | | | | | | | | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2275#note_3054040
| * | editorconfig: Ignore the files from the test state dirs.Gabriela Moldovan2024-07-301-0/+8
| | |
| * | arti: Add tests for the arti hsc subcommand.Gabriela Moldovan2024-07-3020-0/+146
| | |
| * | CI: Add cli-test job.Gabriela Moldovan2024-07-301-0/+11
| | |
| * | arti: Add tests for the arti hss subcommand.Gabriela Moldovan2024-07-3013-0/+317
| |/ | | | | | | Closes #1250
* | Merge branch 'rtmock-doc' into 'main'Ian Jackson2024-07-301-3/+20
|\ \ | | | | | | | | | | | | tor-rtmock docs: Improve discussions of mocked time See merge request tpo/core/arti!2286
| * | tor-rtmock docs: Add some more discussion of the simulated timeIan Jackson2024-07-301-1/+17
| | |
| * | tor-rtmock docs: We have CoarseTimeProvider nowIan Jackson2024-07-301-2/+3
| |/ | | | | | | Improve/replace some out-of-date notes in the docs.
* | Merge branch 'forbid-path-exists' into 'main'Ian Jackson2024-07-306-11/+19
|\ \ | |/ |/| | | | | | | | | clippy: Disallow Path::exists(). Closes #1493 See merge request tpo/core/arti!2293
| * arti: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-1/+1
| |
| * tor-dirmgr: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-1/+1
| |
| * fs-mistrust: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-2/+2
| |
| * tor-keymgr: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-3/+10
| |
| * fslock-guard: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-4/+4
| |
| * clippy: Disallow Path::exists().Gabriela Moldovan2024-07-301-0/+1
|/ | | | Part of #1493
* Merge branch 'pin' into 'main'David Goulet2024-07-291-31/+43
|\ | | | | | | | | CI: Pin Rust compiler version (mostly) See merge request tpo/core/arti!2290
| * CI: Rename "latest" jobs to "recent"; pin them; and replace them.Ian Jackson2024-07-291-10/+30
| | | | | | | | | | | | | | | | | | | | | | We replace uses of `amd64/rust:bookworm` in the `recent-*` jobs. We add new latest-* jobs which * aren't used for artifacts * occur later in the pipeline * only run on main, since we don't want them to block MRs This is done with templates, to reuse the script parts.
| * CI: Use RECENT_RUST_IMAGE instead of unpinned Rust, in most jobsIan Jackson2024-07-291-21/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace almost all the open-coded occurrences of `amd64/rust:bookworm`. This rewinds us to Rust 1.79. We can update after https://github.com/rustsec/rustsec/issues/1217 is fixed upstream. We're going to handle the rust-latest-* jobs specially. There are still a few other images that look, from the name, like they might be uncontrolled inputs into our CI, but they don't look risky. Let's leave them for now.
| * CI: Introduce RECENT_RUST_IMAGE variableIan Jackson2024-07-291-1/+4
| | | | | | | | So far only used by the cargo-audit job.
* | Merge branch 'circuit-reactor-tests' into 'main'Jim Newsome2024-07-292-96/+45
|\ \ | |/ |/| | | | | Circuit reactor test cleanup See merge request tpo/core/arti!2287
| * tor-proto::circuit: Move test-only methods into test moduleJim Newsome2024-07-291-12/+14
| |
| * tor-proto circuit tests: dedupe circid magic numberJim Newsome2024-07-291-6/+15
| |
| * tor-proto circuit test: Move to tighter scope and shadow outer defJim Newsome2024-07-291-15/+17
| |
| * tor-proto circuit tests: delete stale commented-out testJim Newsome2024-07-291-66/+0
| |
| * tor-proto circuit tests: fix some comment copy-pastaJim Newsome2024-07-291-1/+1
| |
| * circuit reactor: add comment pointing to tests in other moduleJim Newsome2024-07-291-1/+3
|/
* Merge branch 'audit' into 'main'gabi-2502024-07-292-2/+2
|\ | | | | | | | | Use a pinned compiler version to run cargo audit See merge request tpo/core/arti!2289
| * Bump our CI Rust build cache tokenIan Jackson2024-07-291-1/+1
| | | | | | | | | | | | This invalidates the cache. This may not be strictly necessary, but it will make sure that the new pinned image is used in the CI run *for this MR*.
| * Use a pinned compiler version to run cargo auditIan Jackson2024-07-291-1/+1
|/ | | | | | | | | | | | | | | | | | This avoids CI failures like this https://gitlab.torproject.org/nickm/arti/-/jobs/617654 arising from situations like this cargo-audit install fails with rust 1.80 https://github.com/rustsec/rustsec/issues/1217 error[E0282]: type annotations needed for Box<_> https://github.com/time-rs/time/issues/693 IMO we should pin many of the other images too but I suspect that may be controversial. I'm hoping that pinning this one to get CI working is uncontroversial (perhaps only on a temporary basis). The other way to solve this would be to remove --locked which IMO is going in the wrong direction, by exposing us to more rather than fewer uncontrolled inputs from our upstreams.
* Merge branch 'new-nightly-warnings' into 'main'Ian Jackson2024-07-296-6/+7
|\ | | | | | | | | Fix new warnings from nightly clippy See merge request tpo/core/arti!2288
| * Mark a struct as allowed-to-be-unused.Nick Mathewson2024-07-281-0/+1
| | | | | | | | | | (This will either become used later, or we will remove it; the TODO RPC will remind us.)
| * Fix "clippy::manual-pattern-char-comparison" warning on nightlyNick Mathewson2024-07-282-2/+2
| | | | | | | | | | | | | | This warning suggests using `[a,b]` as a Pattern when it sees a search for `|ch| ch == a || ch == b`. (All of our supported rust versions allow this kind of Pattern.)
| * Fix new "clippy::needless-maybe-sized" warning on nightlyNick Mathewson2024-07-283-4/+4
|/ | | | | This warning complains when we say `where T: SomeTrait + ?Sized` when `SomeTrait` is inherently Sized.
* Merge branch 'rpclib-i64-id' into 'main'David Goulet2024-07-251-3/+2
|\ | | | | | | | | rpclib: Use i64 rather than u64 for request IDs. See merge request tpo/core/arti!2279
| * rpclib: Use i64 rather than u64 for request IDs.Nick Mathewson2024-07-221-3/+2
| | | | | | | | This makes it conform to the spec and match arti-rpcserver.