-
Notifications
You must be signed in to change notification settings - Fork 4.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revise URI scheme parsing to be RFC 3986 compliant #1911
Comments
Based on the syntax from rfc8089, the "endpoint" in |
Note that 8089 is specifically about the "file" scheme; we are implementing 3986, which is support for URI schemes generally. I would rather not make assumptions about the format of the target to determine whether to fallback to a default; that just makes things more complicated. |
This might be the main problem with the logic. The correct parsing of a URI will pass everything after the |
The |
We will keep the behavior of In the planned |
Aren't people already broken? Everyone is having to fix this in the leaf projects to make it work for users. |
@stevvooe By now our projects rely on |
Exactly. In retrospect, we should have kept this behavior out of Dial entirely, but now that it's done, we shouldn't make further changes to avoid breaking those relying on the current behavior. |
If we change the target parsing semantics, we probably only want to do that with a |
https://tools.ietf.org/html/rfc3986
This includes honoring
scheme:endpoint
syntax andscheme://authority/endpoint
parsing resulting inendpoint = "/endpoint"
.Note:
scheme:endpoint
syntax will break all users dialing withhostname:port
unless we apply the default resolver to cases where the scheme isn't registered. This could result in usability problems, however, as the error that occurs if a resolver isn't registered by mistake will be obscured, and would probably lead to RPCs just not working, as opposed to an error being returned fromDial
.The text was updated successfully, but these errors were encountered: