feat(iroh): more precise information about incoming connections#3949
feat(iroh): more precise information about incoming connections#3949
Conversation
|
Documentation for this PR has been generated and is available at: https://n0-computer.github.io/iroh/pr/3949/docs/iroh/ Last updated: 2026-02-27T11:08:38Z |
af170f8 to
0ef10cb
Compare
37c5f7b to
63e4bb4
Compare
|
Do we have an idea why netsim is not happy here? |
unrelated runner issue, should be fixed now |
|
After the main merge, this needs a bit of thought: Do we want to |
I did try both. I ended up doing this because it is slightly smaller diff, but if you can prefer I can also do a forwarder. |
All our addresses are ..Addr.
…ped addr. remote_address_validated=false means that the socketaddr might be spoofed and we need to call retry to make sure, but this does not apply to relay connections.
Also mark IncomingAddr as non-exhaustive to allow adding the custom transport variant later.
IncomingAddr is just a TransportAddr with extra info. Also comment on when to_transport_addr is expected to work.
888b50b to
6a31138
Compare
It is still pub(crate), so no effect on the public API.
Is 8d254af what you had in mind? |
db7b276 to
7f94020
Compare
## Description Provide more precise information about incoming connections. Instead of exposing the synthetic IPV6 addr for relay connections, we translate it to a special enum IncomingAddr that has all available info for a rate limiter or access control component to make a decision. Implements #3948 ## Breaking Changes endpoint::Incoming::remote_address renamed to remote_addr, and returns IncomingAddr. endpoint::Incoming::remote_address_validated renamed to remote_addr_validated. ## Notes & open questions <!-- Any notes, remarks or open questions you have to make about the PR. --> ## Change checklist <!-- Remove any that are not relevant. --> - [ ] Self-review. - [ ] Documentation updates following the [style guide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text), if relevant. - [ ] Tests if relevant. - [ ] All breaking changes documented. - [ ] List all breaking changes in the above "Breaking Changes" section. - [ ] Open an issue or PR on any number0 repos that are affected by this breaking change. Give guidance on how the updates should be handled or do the actual updates themselves. The major ones are: - [ ] [`quic-rpc`](https://github.com/n0-computer/quic-rpc) - [ ] [`iroh-gossip`](https://github.com/n0-computer/iroh-gossip) - [ ] [`iroh-blobs`](https://github.com/n0-computer/iroh-blobs) - [ ] [`dumbpipe`](https://github.com/n0-computer/dumbpipe) - [ ] [`sendme`](https://github.com/n0-computer/sendme)
Description
Provide more precise information about incoming connections. Instead of exposing the synthetic IPV6 addr for relay connections, we translate it to a special enum IncomingAddr that has all available info for a rate limiter or access control component to make a decision.
Implements #3948
Breaking Changes
endpoint::Incoming::remote_address renamed to remote_addr, and returns IncomingAddr.
endpoint::Incoming::remote_address_validated renamed to remote_addr_validated.
Notes & open questions
Change checklist
quic-rpciroh-gossipiroh-blobsdumbpipesendme