Nick Mathewson
7a37641aeb
Use "typos-cli" to fix a bunch of typos.
2023-08-22 16:23:51 -04:00
Nick Mathewson
7f44281725
arti::cfg tests: Use fold to make nightly clippy happier
2023-08-22 12:24:51 -04:00
Nick Mathewson
c0e050b640
Resolve a pair of warnings about redundant closures.
2023-08-22 12:24:51 -04:00
gabi-250
d633efc28b
Merge branch 'netdir-todo-2-take-2' into 'main'
...
tor-netdir: Add separate functions for computing hsdirs for upload/download.
See merge request tpo/core/arti!1518
2023-08-22 15:46:10 +00:00
Nick Mathewson
232c6d957e
hss: Improve comments in IptEstablisher::drop.
2023-08-22 10:51:19 -04:00
Nick Mathewson
d792bc2a5f
hss: Allow IptEstablisher to start in Advertised mode.
2023-08-22 10:51:19 -04:00
Nick Mathewson
980407a894
hss: switch to select_biased
2023-08-22 10:51:19 -04:00
Nick Mathewson
683e607db7
hss: change terminate oneshot to send "void".
...
We don't actually want to distinguish drop from not-drop.
2023-08-22 10:51:19 -04:00
Nick Mathewson
2a20d1b05a
hss: enable tor_proto/experimental-api
...
Needed for ClientCirc::wait_for_close
2023-08-22 10:51:18 -04:00
Nick Mathewson
1309bc6753
HSS: Use correct timeouts and delays in IptEstablisher
2023-08-22 10:50:43 -04:00
Nick Mathewson
28b8c9c31c
HSS: Use a more accurate timeout for ESTABLISH_INTRO handshake.
2023-08-22 10:50:43 -04:00
Nick Mathewson
ec6721ec94
HSS: Refactor RendRequest so we can return a stream of it.
...
We need a type that holds a rend_handshake::IntroRequest object
internally, but where we don't materialize that object from the
Introduce2 message inside the MsgHandler, since that's more crypto
than we want to put in that task.
2023-08-22 10:50:43 -04:00
Nick Mathewson
85c3820a5e
HSS: Use DropNotifyWatchSender.
...
This ensures that the status becomes Faulty when the reactor exits.
2023-08-22 10:50:43 -04:00
Nick Mathewson
8439500e57
HSS: Implement start_accepting and drop for IptEstablisher.
...
This does not yet do exactly what's documented, but it's closer.
2023-08-22 10:50:43 -04:00
Nick Mathewson
36424540dd
hss: launch task to establish introduce requests.
...
(This requires us to change the type of the data sent in the
stream. I hope to put it back soon.)
2023-08-22 10:50:43 -04:00
Nick Mathewson
07e7eabd3f
hss: Once an ipt session is established, let it keep running.
2023-08-22 10:50:43 -04:00
Nick Mathewson
7c14371898
hss: make Ipt establisher code use an mpsc::Sender.
...
This solves some problems but introduces a few new ones; I've tried
to open comments for the latter.
2023-08-22 10:50:43 -04:00
Nick Mathewson
d83ff291bf
hss: Establish intro point by RelayIds.
2023-08-22 10:50:43 -04:00
Nick Mathewson
6021976466
proto: fix a comment to refer to circuits, not channels.
2023-08-22 10:50:43 -04:00
Gabriela Moldovan
b1c54adae7
tor-netdir: Use an owned HsBlindId instead of a reference.
...
`HsBlindId` is `Copy`.
2023-08-22 15:48:07 +01:00
Gabriela Moldovan
59b94ed06c
tor-netdir: Replace flat_map() with cartesian_product().
2023-08-22 15:48:04 +01:00
Gabriela Moldovan
3e193ebd63
tor-netdir: Make `hs_dirs_upload` take an iterator instead of a slice (fmt).
2023-08-22 15:48:00 +01:00
Gabriela Moldovan
d651b3e3a2
tor-netdir: Make `hs_dirs_upload` take an iterator instead of a slice.
2023-08-22 15:47:57 +01:00
Gabriela Moldovan
3090259b55
tor-netdir: Add TODO about making HsDirOp private.
...
When `hs_dirs` is removed this won't n't need to be public anymore.
2023-08-22 15:47:54 +01:00
Gabriela Moldovan
b0c3fc73ca
tor-hsclient: Use hs_dirs_download instead of the deprecated hs_dirs.
2023-08-22 15:47:51 +01:00
Gabriela Moldovan
83f26aebde
tor-netdir: Deprecate hs_dirs().
2023-08-22 15:47:47 +01:00
Gabriela Moldovan
47e24dc8eb
tor-netdir: Add separate functions for computing hsdirs for upload/download.
...
The hsdir selection algorithm for uploads and downloads is different
enough to justify splitting `hs_dirs` into 2 different functions.
More specifically, when selecting the relays to upload a service's
descriptors to, the service's `hsids` need to be matched up with the
correct `ring` (using the time period) before applying `select_nodes` to
pick the replicas. This is not the case when downloading, because
for downloads select relays from the current ring.
2023-08-22 15:47:44 +01:00
Gabriela Moldovan
7e4c850efd
tor-netdir: Add private helpers for selecting hsdirs.
...
These will become useful when we split `hs_dirs()` into 2 separate
functions (one for uploading/services, and another for
downloading/clients).
2023-08-22 15:47:41 +01:00
Nick Mathewson
f248607119
Merge branch 'send_raw_msg' into 'main'
...
proto: new ClientCirc::send_raw_msg function.
Closes #1010
See merge request tpo/core/arti!1525
2023-08-22 14:19:54 +00:00
Ian Jackson
403c931072
Merge branch 'upgrade_num_enum' into 'main'
...
Upgrade num_enum dependency to 0.7
See merge request tpo/core/arti!1530
2023-08-22 14:15:12 +00:00
Nick Mathewson
78328f096e
Merge branch 'redundant_config_links' into 'main'
...
Resolve warnings about ambiguous/redundant doc links
See merge request tpo/core/arti!1531
2023-08-22 14:07:44 +00:00
Nick Mathewson
109efd3152
Merge branch 'hss_ct_from_parts' into 'main'
...
hsservice: Compute rendezvous points correctly.
See merge request tpo/core/arti!1521
2023-08-22 13:55:17 +00:00
Nick Mathewson
b4e0595f8d
proto: Add crossrefs between start_conversation and send_raw_msg
2023-08-22 09:35:48 -04:00
Nick Mathewson
80c921c637
Resolve warnings about ambiguous/redundant doc links
...
Nightly rustdoc now warns if you have a link that isn't necessary,
and if you have a link that might refer to two different things.
2023-08-22 09:00:33 -04:00
Nick Mathewson
1ddf637572
hsservice: Fix an error message.
2023-08-22 08:04:12 -04:00
Nick Mathewson
3352b1373b
hsservice: Compute rendezvous points correctly.
...
This duplicates some code from hsclient as noted in the comments;
it might be good to reduce this, but the remaining nontrivial
duplication is small, and the logic flow is slightly different
because of the two-step process.
2023-08-22 08:04:12 -04:00
Nick Mathewson
3e34cb6d33
Lower linkspec list parsing into new tor-linkspec method.
2023-08-22 08:04:12 -04:00
Nick Mathewson
e699607ef8
Upgrade num_enum dependency to 0.7
2023-08-21 13:47:08 -04:00
Nick Mathewson
e4373e88e2
proto: new ClientCirc::send_raw_msg function.
...
Closes #1010 .
2023-08-21 09:23:46 -04:00
Micah Elizabeth Scott
780e10e1d5
hashx/bench: Add cachegrind microbenchmarks
...
This uses the 'iai' crate and valgrind to measure fine grained cache
behavior during program generation and hash computation.
Signed-off-by: Micah Elizabeth Scott <beth@torproject.org>
2023-08-18 20:09:40 -07:00
gabi-250
15f9da4d0e
Merge branch 'hss-err' into 'main'
...
tor-hsservice errors: Introduce more error types
See merge request tpo/core/arti!1515
2023-08-18 13:39:20 +00:00
gabi-250
fbd3a4f597
Merge branch 'ipt-e-drop' into 'main'
...
Define drop behaviour of IPT establisher, wrt status watch
See merge request tpo/core/arti!1516
2023-08-18 13:15:19 +00:00
Nick Mathewson
af4fcf83ad
hsservice: Use correct circparameters_from_netparameters fn
...
I had incorrectly thought that this function was private.
2023-08-18 08:14:51 -04:00
Nick Mathewson
b831bcca9f
Merge branch 'allow_stream_req-hop-num' into 'main'
...
tor-proto: Make ClientCirc::allow_stream_requests take a HopNum.
Closes #1009
See merge request tpo/core/arti!1519
2023-08-18 12:06:29 +00:00
Gabriela Moldovan
a1913e15f9
tor-proto: Add test where an incoming stream comes from an unexpect hop.
...
This adds a test that checks if the reactor is shut down if it receives
an incoming stream request from an unexpected hop.
Part of #1009
2023-08-18 12:14:16 +01:00
Gabriela Moldovan
67a77680dd
tor-proto: Make ClientCirc::allow_stream_requests take a HopNum.
...
For consistency with the other `ClientCirc` APIs,
`ClientCirc::allow_stream_requests` now takes a `HopNum` argument. Upon
receiving an incoming stream request, the reactor now checks if the
request came from the hop specified in `allow_stream_requests` (and if
it came from a different hop, the circuit is closed).
Part of #1009
2023-08-18 12:14:01 +01:00
Ian Jackson
61f58daadd
tor-hsservice: Change IptEstablisher::new to take RelayIds
...
The IptEstablisher needs to continuously maintain the IPT even as the
netdir is updated. Whereas, the IPT manager just wants to select the
relay from the netdir once and then only think about the relay
identity.
So it makes sense for the establisher to do necessary lookups of the
relay's ids in the netdir.
2023-08-17 15:54:54 +01:00
Ian Jackson
64c8b38c25
tor-hsservice: Define drop behaviour of IPT establisher status
2023-08-17 14:42:26 +01:00
Ian Jackson
f4dfc14694
tor-async-utils: Deprecate DropNotifyEofSignallable::is_eof
...
This was introduced in c82cda85d6
tor-basic-utils: DropNotifyWatchSender: use DropNotifyEofSignallable
and already, then, the is_eof() method is redundant.
2023-08-17 14:41:56 +01:00
Nick Mathewson
f63852f449
Merge branch 'rendezvous_handshake' into 'main'
...
hsservice: new rend_handshake module
See merge request tpo/core/arti!1512
2023-08-17 13:29:18 +00:00