diff --git a/integration-cli/docker_utils.go b/integration-cli/docker_utils.go index 700610b0d0..0385f3c94e 100644 --- a/integration-cli/docker_utils.go +++ b/integration-cli/docker_utils.go @@ -576,6 +576,8 @@ func sockConn(timeout time.Duration) (net.Conn, error) { var c net.Conn switch daemonURL.Scheme { + case "npipe": + return npipeDial(daemonURL.Path, timeout) case "unix": return net.DialTimeout(daemonURL.Scheme, daemonURL.Path, timeout) case "tcp": diff --git a/integration-cli/npipe.go b/integration-cli/npipe.go new file mode 100644 index 0000000000..fa531a1b4d --- /dev/null +++ b/integration-cli/npipe.go @@ -0,0 +1,12 @@ +// +build !windows + +package main + +import ( + "net" + "time" +) + +func npipeDial(path string, timeout time.Duration) (net.Conn, error) { + panic("npipe protocol only supported on Windows") +} diff --git a/integration-cli/npipe_windows.go b/integration-cli/npipe_windows.go new file mode 100644 index 0000000000..4fd735f2db --- /dev/null +++ b/integration-cli/npipe_windows.go @@ -0,0 +1,12 @@ +package main + +import ( + "net" + "time" + + "github.com/Microsoft/go-winio" +) + +func npipeDial(path string, timeout time.Duration) (net.Conn, error) { + return winio.DialPipe(path, &timeout) +}