summaryrefslogtreecommitdiff
path: root/vendor/github.com/docker/go-plugins-helpers/sdk/tcp_listener.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/docker/go-plugins-helpers/sdk/tcp_listener.go')
-rw-r--r--vendor/github.com/docker/go-plugins-helpers/sdk/tcp_listener.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/vendor/github.com/docker/go-plugins-helpers/sdk/tcp_listener.go b/vendor/github.com/docker/go-plugins-helpers/sdk/tcp_listener.go
new file mode 100644
index 000000000..bad85f7fd
--- /dev/null
+++ b/vendor/github.com/docker/go-plugins-helpers/sdk/tcp_listener.go
@@ -0,0 +1,34 @@
+package sdk
+
+import (
+ "crypto/tls"
+ "net"
+ "runtime"
+
+ "github.com/docker/go-connections/sockets"
+)
+
+func newTCPListener(address, pluginName, daemonDir string, tlsConfig *tls.Config) (net.Listener, string, error) {
+ listener, err := sockets.NewTCPSocket(address, tlsConfig)
+ if err != nil {
+ return nil, "", err
+ }
+
+ addr := listener.Addr().String()
+
+ var specDir string
+ if runtime.GOOS == "windows" {
+ specDir, err = createPluginSpecDirWindows(pluginName, addr, daemonDir)
+ } else {
+ specDir, err = createPluginSpecDirUnix(pluginName, addr)
+ }
+ if err != nil {
+ return nil, "", err
+ }
+
+ specFile, err := writeSpecFile(pluginName, addr, specDir, protoTCP)
+ if err != nil {
+ return nil, "", err
+ }
+ return listener, specFile, nil
+}