From d46a347781ca685291f5069ad06bf4cd4b9bde6c Mon Sep 17 00:00:00 2001 From: Sam Alba Date: Mon, 8 Nov 2021 17:51:40 -0800 Subject: [PATCH] solver: split platform specific code Signed-off-by: Sam Alba --- solver/socketprovider.go | 17 ----------------- solver/socketprovider_unix.go | 20 ++++++++++++++++++++ solver/socketprovider_windows.go | 14 ++++++++++++++ 3 files changed, 34 insertions(+), 17 deletions(-) create mode 100644 solver/socketprovider_unix.go create mode 100644 solver/socketprovider_windows.go diff --git a/solver/socketprovider.go b/solver/socketprovider.go index d7a7dd90..d0a0f52f 100644 --- a/solver/socketprovider.go +++ b/solver/socketprovider.go @@ -3,11 +3,8 @@ package solver import ( "context" "fmt" - "net" "strings" - "time" - "github.com/Microsoft/go-winio" "github.com/moby/buildkit/session" "github.com/moby/buildkit/session/sshforward" "google.golang.org/grpc" @@ -41,20 +38,6 @@ func (sp *SocketProvider) CheckAgent(ctx context.Context, req *sshforward.CheckA return &sshforward.CheckAgentResponse{}, nil } -func dialStream(id string) (net.Conn, error) { - switch { - case strings.HasPrefix(id, unixPrefix): - id = strings.TrimPrefix(id, unixPrefix) - return net.DialTimeout("unix", id, time.Second) - case strings.HasPrefix(id, npipePrefix): - id = strings.TrimPrefix(id, npipePrefix) - dur := time.Second - return winio.DialPipe(id, &dur) - default: - return nil, fmt.Errorf("invalid socket forward key %s", id) - } -} - func (sp *SocketProvider) ForwardAgent(stream sshforward.SSH_ForwardAgentServer) error { id := sshforward.DefaultID diff --git a/solver/socketprovider_unix.go b/solver/socketprovider_unix.go new file mode 100644 index 00000000..04e31fcc --- /dev/null +++ b/solver/socketprovider_unix.go @@ -0,0 +1,20 @@ +//go:build !windows +// +build !windows + +package solver + +import ( + "fmt" + "net" + "strings" + "time" +) + +func dialStream(id string) (net.Conn, error) { + if !strings.HasPrefix(id, unixPrefix) { + return nil, fmt.Errorf("invalid socket forward key %s", id) + } + + id = strings.TrimPrefix(id, unixPrefix) + return net.DialTimeout("unix", id, time.Second) +} diff --git a/solver/socketprovider_windows.go b/solver/socketprovider_windows.go new file mode 100644 index 00000000..d5094fbb --- /dev/null +++ b/solver/socketprovider_windows.go @@ -0,0 +1,14 @@ +//go:build windows +// +build windows + +package solver + +func dialStream(id string) (net.Conn, error) { + if !strings.HasPrefix(id, unixPrefix) { + return nil, fmt.Errorf("invalid socket forward key %s", id) + } + + id = strings.TrimPrefix(id, npipePrefix) + dur := time.Second + return winio.DialPipe(id, &dur) +}