Add remote and/or local addresses for unix domain socket
- Vorherrschende Sprache
- Java
- Sterne
- 12.1k
- Forks
- 4k
- Ø Merge
- 2 T. 17 Std.
- Gemergte PRs (30 T.)
- 37
Beschreibung
This is split out of #9900, which had two pieces. See it for more details. CC @carl-mastrangelo
Unix domain sockets are strange from a local/remote address perspective, as only one of them generally has a well-defined name (file path). We need to see what other languages do, but at the very least for this to be considered completed we should have _one_ of local/remote for both client and server.
Right now apparently the code is missing both, when using KQueue or Epoll, as Netty is not providing either:
```
{io.grpc.internal.GrpcAttributes.securityLevel=NONE, io.grpc.Grpc.TRANSPORT_ATTR_REMOTE_ADDR=null, io.grpc.Grpc.TRANSPORT_ATTR_LOCAL_ADDR=null}
```
We might consider enhancing Netty, but that'd probably take some double-checking in how Linux itself handles this. If we think we can't even add addresses (because we find that Netty did it that way "for a good reason"), we need an attribute of some sort to identify UDS connections, so absolute worst-case would be a SocketAddress that just said "this is a UDS connection" without any other information.
Beitragsleitfaden
Rechercherichtung
Beginne mit Issue #9900 für den ursprünglichen Kontext und untersuche dann, wie die KQueue- und Epoll-Pfade Netty-Transportattribute offenlegen. Recherchiere, wie Netty und Linux Unix-Domain-Socket-Adressen darstellen, einschließlich des Verhaltens von Client und Server. Als abgeschlossen gilt die Aufgabe, wenn sowohl Client als auch Server mindestens eine lokale oder entfernte Adresse offenlegen oder eine eindeutige UDS-identifizierende SocketAddress, wenn keine Adressen bereitgestellt werden können.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- backend-api-design, networking
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100