Skip to content

Commit

Permalink
fix(http_server): handle remote address of abstract unix domain socket
Browse files Browse the repository at this point in the history
  • Loading branch information
TargetLocked committed Aug 15, 2024
1 parent 025823c commit ccbf7a7
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions pkg/server/http_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,19 @@ func (h *HttpHandler) warnErr(req *http.Request, msg string, err error) {
}

func (h *HttpHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
addrPort, err := netip.ParseAddrPort(req.RemoteAddr)
if err != nil {
h.logger.Error("failed to parse request remote addr", zap.String("addr", req.RemoteAddr), zap.Error(err))
w.WriteHeader(http.StatusInternalServerError)
return
var clientAddr netip.Addr
if req.RemoteAddr == "@" {
// listening to abstract UNIX domain socket, mark as local
clientAddr = netip.MustParseAddr("127.0.0.1")
} else {
addrPort, err := netip.ParseAddrPort(req.RemoteAddr)
if err != nil {
h.logger.Error("failed to parse request remote addr", zap.String("addr", req.RemoteAddr), zap.Error(err))
w.WriteHeader(http.StatusInternalServerError)
return
}
clientAddr = addrPort.Addr()
}
clientAddr := addrPort.Addr()

// read remote addr from header
if header := h.srcIPHeader; len(header) != 0 {
Expand Down

0 comments on commit ccbf7a7

Please sign in to comment.