summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | Merge branch '1_86_warnings' into 'main'Nick Mathewson2025-04-093-6/+13
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | Fix warnings with OSX and 1.86 See merge request tpo/core/arti!2933
| * | | arti-ureq: Simplify use of map_or().Nick Mathewson2025-04-091-4/+4
| | | | | | | | | | | | | | | | | | | | Clippy is complaining that these can be simplified, so I took its recommendations.
| * | | Allow StreamOps import to be unusedNick Mathewson2025-04-092-2/+9
|/ / / | | | | | | | | | | | | This comes up on OSX; I hadn't seen it before, so I assume it is new with Rust 1.86.
* | | Merge branch '1519-integration-or-example-with-ureq' into 'main'Ian Jackson2025-04-0914-3/+1585
|\ \ \ | | | | | | | | | | | | | | | | arti-ureq: New library which integrates with ureq See merge request tpo/core/arti!2724
| * | | arti-ureq: New library which integrates with ureqnield2025-04-0914-3/+1585
| | | | | | | | | | | | | | | | Fixes #1519
* | | | Merge branch 'crossbeam' into 'main'gabi-2502025-04-091-2/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Update crossbeam-channel to 0.5.15 to fix TROVE-2025-013 See merge request tpo/core/arti!2931
| * | | | Update crossbeam-channel to 0.5.15 to fix cargo auditIan Jackson2025-04-091-2/+2
| |/ / / | | | | | | | | | | | | 0.5.14 is yanked. I am trying to find out why...
* | | | Merge branch 'conflux-cells-2' into 'main'gabi-2502025-04-091-7/+31
|\ \ \ \ | |/ / / |/| | | | | | | | | | | tor-cell: Minor tweaks for conflux See merge request tpo/core/arti!2928
| * | | tor-cell: Make conflux::V1Nonce opaque, add constructor.Gabriela Moldovan2025-04-081-7/+30
| | | | | | | | | | | | | | | | We will soon need to construct `V1Nonce`s.
| * | | tor-cell: Copy ConfluxSwitch::seqno in getter.Gabriela Moldovan2025-04-081-0/+1
|/ / / | | | | | | | | | `u32` is `Copy`, so the getter doesn't need to return a ref.
* | | Merge branch 'metrics-port' into 'main'Ian Jackson2025-04-0813-30/+466
|\ \ \ | | | | | | | | | | | | | | | | Initial metrics framework See merge request tpo/core/arti!2918
| * | | metrics: Discuss schema stability (currently, "no")Ian Jackson2025-04-082-0/+9
| | | |
| * | | tor-hsrproxy: config: make ProxyActionDiscriminants privateIan Jackson2025-04-081-0/+1
| | | | | | | | | | | | | | | | | | | | beta clippy pointed out that it shouldn't be exhaustive. but `#[strum_discriminants(non_exhaustive)]` is rejected.
| * | | metrics: tor-hsrproxy: Use a bespoke type for counter outcomesIan Jackson2025-04-081-5/+19
| | | | | | | | | | | | | | | | | | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2918#note_3185872
| * | | metrics: arti: Make feature `experimental`, not `experimental-api`Ian Jackson2025-04-081-1/+2
| | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2918#note_3185871
| * | | metrics: arti: Use new Cargo.toml feature syntaxIan Jackson2025-04-081-1/+1
| | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2918#note_3185869
| * | | metrics: arti: Reduce features on metrics-exporter-prometheusIan Jackson2025-04-082-67/+3
| | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2918#note_3185869
| * | | metrics: config tests: Correct a commentIan Jackson2025-04-081-1/+1
| | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2918#note_3185867
| * | | metrics: config: Correct the docs on the MetricsConfig typeIan Jackson2025-04-081-1/+1
| | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2918#note_3185866
| * | | metrics: config: Correct the docs on the listen config fieldIan Jackson2025-04-081-9/+4
| | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2918#note_3185864
| * | | metrics: config: Fix typo in the example config fileIan Jackson2025-04-081-1/+1
| | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2918#note_3185863
| * | | metrics: config: Correct the docs in the example config fileIan Jackson2025-04-081-1/+2
| | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2918#note_3185862
| * | | arti: cfg tests: Improve formatting of an assertIan Jackson2025-04-081-3/+6
| | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2918#note_3185859
| * | | tor-config: listen: Replace use of std::net (fmt)Ian Jackson2025-04-081-8/+4
| | | |
| * | | tor-config: listen: Replace use of std::netIan Jackson2025-04-081-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Almost the only remaining use of this was for SocketAddr which we should just import. Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2918#note_3185858
| * | | metrics: Clarify singleton exporterIan Jackson2025-04-081-1/+1
| | | | | | | | | | | | | | | | | | | | Answers https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2918#note_3185856
| * | | tor-hsrproxy: Add allow(unused) if features not all enabledIan Jackson2025-04-081-0/+3
| | | | | | | | | | | | | | | | This avoids warnings from failure to cfg-decorate imports.
| * | | tor-hsrproxy: Export a connection count metric (fmt)Ian Jackson2025-04-081-1/+3
| | | |
| * | | tor-hsrproxy: Export a connection count metricIan Jackson2025-04-085-2/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This proves the concept. Many more metrics will need to be added throughout the codebase. With this compiled in and enabled, I see this with curl: > ``` > # TYPE arti_hss_proxy_connections_failed_total counter > arti_hss_proxy_connections_failed_total{nickname="ztest",action="destroy_circuit"} 0 > arti_hss_proxy_connections_failed_total{nickname="ztest",action="ignore_stream"} 0 > arti_hss_proxy_connections_failed_total{nickname="ztest",action="forward"} 0 > arti_hss_proxy_connections_failed_total{nickname="ztest",action="reject_stream"} 0 > > # TYPE arti_hss_proxy_connections_total counter > arti_hss_proxy_connections_total{nickname="ztest",action="reject_stream"} 0 > arti_hss_proxy_connections_total{nickname="ztest",action="forward"} 1 > arti_hss_proxy_connections_total{nickname="ztest",action="destroy_circuit"} 0 > arti_hss_proxy_connections_total{nickname="ztest",action="ignore_stream"} 0 > > # TYPE arti_hss_proxy_connections_ok_total counter > arti_hss_proxy_connections_ok_total{nickname="ztest",action="destroy_circuit"} 0 > arti_hss_proxy_connections_ok_total{nickname="ztest",action="reject_stream"} 0 > arti_hss_proxy_connections_ok_total{nickname="ztest",action="ignore_stream"} 0 > arti_hss_proxy_connections_ok_total{nickname="ztest",action="forward"} 1 > ```
| * | | tor-hsrproxy: formatting in Cargo.tomlIan Jackson2025-04-081-1/+5
| | | |
| * | | tor-hsrproxy: Move cloning into spawnIan Jackson2025-04-081-12/+12
| | | | | | | | | | | | | | | | | | | | This means that we can use the same variable names for the clones, which is considerably less confusing.
| * | | arti: Optionally set up a Prometheus metrics exporterIan Jackson2025-04-086-3/+345
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New cargo feature `metrics`, currently experimental. New config option `metrics.prometheus.listen`. Uses standard `Listen` syntax, but not every configuration is supported due to upstream limitations. If the config option is set, use metrics-exporter-prometheus to offer an HTTP scrape endpoint. Or, if compiled out, fail. Currently there are no actual metrics exported at all.
| * | | arti: cfg tests: On mismatch, report which config fileIan Jackson2025-04-081-2/+2
| | | | | | | | | | | | | | | | | | | | Otherwise it can be very confusing pushing the bump in the carpet back and forth.
| * | | tor-config: Listen: Provide single_address_legacyIan Jackson2025-04-082-1/+24
| | | | | | | | | | | | | | | | | | | | We're going to need this because of deficiencies in metrics-exporter-prometheus.
| * | | metrics: Add strategy/overview documentIan Jackson2025-04-081-0/+55
| | | | | | | | | | | | | | | | Not everything here is true yet, but it will be by the end of this MR.
* | | | Merge branch 'remove-old-todo' into 'main'Jim Newsome2025-04-082-4/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | tor-proto: Remove outdated TODO, add fresh TODO See merge request tpo/core/arti!2926
| * | | | tor-proto: Add TODO about using Itertools instead of open-coded impl.Gabriela Moldovan2025-04-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | This won't involve an extra dep, because we already use `itertools` throughout the codebase.
| * | | | tor-proto: Remove outdated TODO.Gabriela Moldovan2025-04-081-4/+0
| |/ / / | | | | | | | | | | | | | | | | For service introduction circuits, we have `IptMsgHandler`, so we've already worked something out :)
* | | | Merge branch 'ci-workaround-2798' into 'main'Ian Jackson2025-04-088-4/+152
|\ \ \ \ | |/ / / |/| | | | | | | | | | | Improvements to Debian packaging (!2798, CI workaround) See merge request tpo/core/arti!2927
| * | | Merge branch 'main' into ci-workaround-2798Ian Jackson2025-04-08327-5677/+10881
| |\ \ \ | |/ / / |/| | |
* | | | Merge branch 'update-for-rustsec-issues' into 'main'gabi-2502025-04-072-90/+81
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | Run "cargo update" to fix cargo-audit issues See merge request tpo/core/arti!2924
| * | | rpcserver: Fix another ceil_div warningNick Mathewson2025-04-071-2/+1
| | | |
| * | | Run "cargo update" to fix cargo-audit issuesNick Mathewson2025-04-071-88/+80
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The issues were in: deranged 0.4.1: - yanked - (Issue was a compatibility-break, not security: https://github.com/jhpratt/deranged/issues/21) tokio 1.44.1: - RUSTSEC-2025-0023 - (I believe we're okay, since we don't use tokio's broadcast channel) openssl 0.10.71 - RUSTSEC-2025-0022 - (We do not appear to use the affected APIs.)
* | | Merge branch 'fix-clippy' into 'main'Nick Mathewson2025-04-0711-25/+24
|\ \ \ | | | | | | | | | | | | | | | | Fix clippy warnings with rust 1.86 See merge request tpo/core/arti!2920
| * | | tor-netdoc: use more idiomatic rustSteven Engler2025-04-031-2/+1
| | | |
| * | | fix `clippy::unneeded_struct_pattern`Steven Engler2025-04-034-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example: ```text warning: struct pattern is not needed for a unit variant --> crates/hashx/src/program.rs:165:32 | 165 | Instruction::Target { .. } => Opcode::Target, | ^^^^^^^ help: remove the struct pattern | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_struct_pattern note: the lint level is defined here --> crates/hashx/src/lib.rs:9:9 | 9 | #![warn(clippy::all)] | ^^^^^^^^^^^ = note: `#[warn(clippy::unneeded_struct_pattern)]` implied by `#[warn(clippy::all)]` ```
| * | | tor-netdoc: fix `clippy::len_zero`Steven Engler2025-04-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ```text warning: length comparison to one --> crates/tor-netdoc/src/parse/tokenize.rs:470:12 | 470 | if args.len() >= 1 { | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!args.is_empty()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero note: the lint level is defined here --> crates/tor-netdoc/src/lib.rs:9:9 | 9 | #![warn(clippy::all)] | ^^^^^^^^^^^ = note: `#[warn(clippy::len_zero)]` implied by `#[warn(clippy::all)]` ```
| * | | fix `clippy::doc_overindented_list_items`Steven Engler2025-04-036-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example: ```text warning: doc list item overindented --> crates/arti-rpc-client-core/src/conn/connimpl.rs:322:9 | 322 | /// indicates that no more messages will be received for this request. | ^^^ help: try using ` ` (2 spaces) | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items note: the lint level is defined here --> crates/arti-rpc-client-core/src/lib.rs:8:9 | 8 | #![warn(clippy::all)] | ^^^^^^^^^^^ = note: `#[warn(clippy::doc_overindented_list_items)]` implied by `#[warn(clippy::all)]` ```
| * | | tor-config: fix `clippy::double_ended_iterator_last`Steven Engler2025-04-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ```text warning: called `Iterator::last` on a `DoubleEndedIterator`; this will needlessly iterate the entire iterator --> crates/tor-config/src/load.rs:606:18 | 606 | .last() | ^^^^^^ help: try: `next_back()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_ended_iterator_last note: the lint level is defined here --> crates/tor-config/src/lib.rs:9:9 | 9 | #![warn(clippy::all)] | ^^^^^^^^^^^ = note: `#[warn(clippy::double_ended_iterator_last)]` implied by `#[warn(clippy::all)]` ```
| | * | Restart Arti service upon network connectivity changessyphyr2025-04-042-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | This fixes an issue with arti not being able to reconstruct circuits after the network connection is restarted. https://gitlab.torproject.org/tpo/core/arti/-/issues/1861