grpc / grpc/grpc-java

Support of `dns:name` URIs

Offen Anfängerfreundlich
#10,824 8 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
docs enhancement
Vorherrschende Sprache
Java
Sterne
12.1k
Forks
4k
Ø Merge
2 T. 17 Std.
Gemergte PRs (30 T.)
37

Beschreibung

As it currently stands, the URI validation and parsing for `dns` schema in grpc-java is in contradiction of ~~both RFC-4501 and~~ (not relevant really) core gRPC specs by rejecting `dns:name`-type URIs (no slash). This generates discrepancies between different gRPC implementations and is generally problematic. [Currently we have 6 (yes, literally six) competing standards as to what URIs are allowed, none of which are actually aligned, and all of them are "official" in some way.](https://github.com/grpc/grpc/issues/35539#issuecomment-1889957866) The only thing that's missing for grpc-java to be a strict superset here (and thus reduce the incompatibilities and confusion) is to have `dns:name` allowed ~~as per RFC-4501 spec~~ (ditto).

A fully backwards-compatible solution would be to change https://github.com/grpc/grpc-java/blob/master/core/src/main/java/io/grpc/internal/DnsNameResolverProvider.java#L56 to allow any reasonable/valid ~~RFC-4501-compliant~~ (ditto) URI to be accepted. Code-wise, it's trivial, has no parsing ambiguities and has no negative impact on the existing code solutions.

### Describe the solution you'd like
`dns:name` would be included as valid ~~, RFC-4501-type URIs would be better~~ (ditto) and supported, confusion and discrepancies would be reduced.

### Additional context
https://github.com/grpc/grpc/issues/35539 & https://github.com/grpc-ecosystem/grpc-spring/issues/1024
If a PR is needed, I'll gladly do it.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit core/src/main/java/io/grpc/internal/DnsNameResolverProvider.java bei der Validierung um Zeile 56 und prüfe anschließend die vorhandenen Resolver-Tests auf die Akzeptanz von URI. Bestätige, dass dns:name akzeptiert wird, ohne bestehende gültige Formen zu ändern, und verifiziere, dass die relevanten Tests erfolgreich sind.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
networking
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Aktiv
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
72/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.