Browse Source

Merge pull request #4147 from heyitsanthony/listener-unix-sockets

pkg/transport: support listeners on unix sockets
Xiang Li 10 years ago
parent
commit
ebbb91a713
2 changed files with 15 additions and 1 deletions
  1. 7 1
      pkg/transport/listener.go
  2. 8 0
      pkg/transport/listener_test.go

+ 7 - 1
pkg/transport/listener.go

@@ -26,7 +26,13 @@ import (
 )
 
 func NewListener(addr string, scheme string, info TLSInfo) (net.Listener, error) {
-	l, err := net.Listen("tcp", addr)
+	nettype := "tcp"
+	if scheme == "unix" {
+		// unix sockets via unix://laddr
+		nettype = scheme
+	}
+
+	l, err := net.Listen(nettype, addr)
 	if err != nil {
 		return nil, err
 	}

+ 8 - 0
pkg/transport/listener_test.go

@@ -241,3 +241,11 @@ func TestTLSInfoConfigFuncs(t *testing.T) {
 		}
 	}
 }
+
+func TestNewListenerUnixSocket(t *testing.T) {
+	l, err := NewListener("testsocket", "unix", TLSInfo{})
+	if err != nil {
+		t.Errorf("error listening on unix socket (%v)", err)
+	}
+	l.Close()
+}