Repository navigation
Conversation
On networks that block or intercept DNS, address lookup returns nothing and
`connect(EndpointId)` fails with:
Error: No addressing information available
1: Discovery produced no results for <endpoint id>
A peer's relay URL is sufficient addressing on its own, so let the caller
supply it. `--dial-relay-url <URL>` builds `EndpointAddr::new(id)
.with_relay_url(url)` and connects without lookup for that connection.
When the flag is absent nothing changes: the lookup services stay configured
and `connect(EndpointId)` behaves exactly as before.
The flag is accepted by the bare form and by `connect`, including `exec`, and
is forwarded to the hidden `proxy` subcommand through ProxyCommand, which is
how `iroh-ssh user@endpoint` reaches the peer.
Refs rustonbsd#54
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
--dial-relay-url <URL>, which connects to the peer through a known relay URL instead of looking its address up.Why
Address lookup is the only path from an endpoint id to an address. On networks that block or intercept DNS (mobile carriers, captive portals, corporate egress), lookup returns nothing and the connection fails before it starts:
That is #54. The relay URL alone is complete addressing, so the caller can supply it:
What changes
--dial-relay-url <URL>on the bare form,connectandexec. It is forwarded to the hiddenproxysubcommand throughProxyCommand, soiroh-ssh user@endpoint --dial-relay-url …works end to end.connect_pubkeytakes the relay and builds the address; nothing else in the connection path moves.connect(EndpointId)is used as before.A single URL is enough — it is the relay the server publishes to (its endpoint address contains it), not a list.
Verification
Built and tested against a live server: a client built from this branch (iroh 1.3) connected through the supplied relay and ran a remote command, while the server was an older 0.2.12 build on iroh 0.94. The same binary still connects without the flag via normal lookup.
I did not add a docs entry — happy to extend the README/
docs/if you want it documented there.