From bab8e6119d2f41307a3f86a521042737eae9e0c2 Mon Sep 17 00:00:00 2001 From: Matheus Pimenta Date: Sun, 10 Aug 2025 01:54:51 +0100 Subject: [PATCH] Fix keyservice client for unix domain sockets Signed-off-by: Matheus Pimenta --- cmd/sops/main.go | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/cmd/sops/main.go b/cmd/sops/main.go index e3be225a63..8fa95fbdba 100644 --- a/cmd/sops/main.go +++ b/cmd/sops/main.go @@ -2219,22 +2219,26 @@ func keyservices(c *cli.Context) (svcs []keyservice.KeyServiceClient) { continue } addr := url.Host - if url.Scheme == "unix" { - addr = url.Path - } + addrToUse := addr opts := []grpc.DialOption{ grpc.WithTransportCredentials(insecure.NewCredentials()), - grpc.WithContextDialer( - func(ctx context.Context, addr string) (net.Conn, error) { - return (&net.Dialer{}).DialContext(ctx, url.Scheme, addr) - }, - ), + } + if url.Scheme == "unix" { + addr = url.Path + addrToUse = uri + } else { + opts = append(opts, + grpc.WithContextDialer( + func(ctx context.Context, addr string) (net.Conn, error) { + return (&net.Dialer{}).DialContext(ctx, url.Scheme, addr) + }, + )) } log.WithField( "address", fmt.Sprintf("%s://%s", url.Scheme, addr), ).Infof("Connecting to key service") - conn, err := grpc.NewClient(addr, opts...) + conn, err := grpc.NewClient(addrToUse, opts...) if err != nil { log.Fatalf("failed to listen: %v", err) }