| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This commit does a large overhaul in the overall way on how we interact
with SQLite.
Although SQLite is a fairly straightforward tool, it has one large
caveat, namely the handling of the infamous `SQLITE_BUSY` error.
In WAL mode, the journaling mode we are using, the respective error may
occur if there is an existing write transaction while another thread is
trying to either upgrade an existing read transaction or create an
exclusive transaction at the same time. In this case, SQLite will fail
at the statement that either requires the write operation or at the
creation of the transaction respectively.
In order to tackle this problem, SQLite provides the `busy_timeout`
pragma, which allows specifying a timeout in milliseconds during which
SQLite will retry to obtain a write transaction or fail immediately.
This only works in the latter case, that is, creating a write
transaction from the beginning.
To solve this issue, we introduce two new functions:
1. `database::read_tx`
2. `database::rw_tx`
Both functions accept a database pool alongside a closure accepting a
`Transaction` and returning an arbitrary return value.
The first function creates a deferred transaction that gets rolled-back
in the end, making it suitable for read-only connections.
The latter function creates an exclusive transaction that gets committed
in the end, making it suitable for read-write connections. This also
honors the `busy_timeout`, i.e. the function retries for up to 1s to
acquire a write transaction before failing ultimately.
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This commit introduces the no-op sql macro used to mark string literals
as SQL statements. It is purely semantical and serves the purpose to
quickly identify string literals as SQL statements.
|
| |/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This commit introduces the `mirror` module which is fairly boilerplate
at the moment. However, everything of it is very well documented using
rustdoc, thereby more or less creating a design document.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
maint: Remove all semver.md files after 1.7.0 release
See merge request tpo/core/arti!3415
|
| |/ / / / / |
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
arti-client: Update `ARTI_CLIENT_RELEASE_DATE`
See merge request tpo/core/arti!3413
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
```bash
./maint/update-release-date
```
|
| |\ \ \ \ \ \
| |/ / / / /
|/| | | | |
| | | | | |
| | | | | | |
maint: Bump minor versions of all published crates
See merge request tpo/core/arti!3412
|
| | | | | | | |
|
| | | | | | | |
|
| |/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
```bash
readarray -t publish < <(cargo metadata --format-version 1 | jq -r '.packages[] | select((.id | startswith("path+file:///")) and (.rust_version != null) and (.publish == null or .publish == true or .publish != [])) | .name')
for package in "${publish[@]}"; do echo "$package:"; cargo set-version --bump minor -p "$package"; done
```
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Update P101 numbers for September 2025.
See merge request tpo/core/arti!3409
|
| | |/ / / / |
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Changelog for arti 1.7.0
See merge request tpo/core/arti!3411
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | |/ / / / |
|
| |\ \ \ \ \
| |/ / / /
|/| | | |
| | | | |
| | | | | |
Revert contributor-fork update notice.
See merge request tpo/core/arti!3408
|
| |/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Now that the contributor fork model is being wound down, because the underlying
issue with personal project forks has been resolved, this note no longer is
correct.
See https://gitlab.torproject.org/tpo/team/-/issues/405
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
arti: Revise strings that implied that we were a SOCKS-only proxy.
Closes #2225
See merge request tpo/core/arti!3398
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Closes #2225
|
| | | | | | |
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
New futures-copy crate to replace copy_interactive.
See merge request tpo/core/arti!3393
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This makes sure that flushes happen correctly by relaying traffic
over a pair of buffered connections between two parties that
don't say anything until they receive a message.
|
| | | |_|/ /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This crate's API is loosely based on some of tokio's functions,
and its implementation strategy is loosely based on
futures::io::copy.
It's designed to be generally useful outside of the arti ecosystem.
Should help with the original challenge of #786.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
arti-ureq: Add MSRV in Cargo.toml
See merge request tpo/core/arti!3404
|
| |/ / / / / |
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
doc: Add note about increasing minor version for MSRV changes
See merge request tpo/core/arti!3399
|
| | |/ / / / |
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
maint: Fixup features for release
See merge request tpo/core/arti!3400
|
| | |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
```bash
cargo run -p fixup-features -- --exclude examples/ --exclude maint/ Cargo.toml
```
|
| |\ \ \ \ \
| |/ / / /
|/| | | |
| | | | |
| | | | | |
Add missing semver breaking changes
See merge request tpo/core/arti!3402
|
| | | | | | |
|
| |/ / / / |
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | | |
arti: Remove now-needless cognitive_complexity exceptions
Closes #2226
See merge request tpo/core/arti!3397
|
| |/ / /
| | |
| | |
| | |
| | |
| | |
| | | |
Apparently the http_connect refactoring made these no longer
trigger.
Closes #2226
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Implement HTTP CONNECT proxy support in Arti.
Closes #2221
See merge request tpo/core/arti!3391
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We can't remove them all, since X-Tor-Stream-Isolation is recognized
by C-Tor. I've added a non-deprecated Tor-Stream-Isolation
that works indepenently.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|