Преглед на файлове

Windows CI: Allow npipe protocol for sock requests

Signed-off-by: John Howard <jhoward@microsoft.com>
John Howard преди 9 години
родител
ревизия
08b65e7dd3
променени са 3 файла, в които са добавени 26 реда и са изтрити 0 реда
  1. 2 0
      integration-cli/docker_utils.go
  2. 12 0
      integration-cli/npipe.go
  3. 12 0
      integration-cli/npipe_windows.go

+ 2 - 0
integration-cli/docker_utils.go

@@ -577,6 +577,8 @@ func sockConn(timeout time.Duration) (net.Conn, error) {
 
 
 	var c net.Conn
 	var c net.Conn
 	switch daemonURL.Scheme {
 	switch daemonURL.Scheme {
+	case "npipe":
+		return npipeDial(daemonURL.Path, timeout)
 	case "unix":
 	case "unix":
 		return net.DialTimeout(daemonURL.Scheme, daemonURL.Path, timeout)
 		return net.DialTimeout(daemonURL.Scheme, daemonURL.Path, timeout)
 	case "tcp":
 	case "tcp":

+ 12 - 0
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")
+}

+ 12 - 0
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)
+}