summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--pkg/fd/BUILD3
-rw-r--r--pkg/fd/fd.go17
2 files changed, 7 insertions, 13 deletions
diff --git a/pkg/fd/BUILD b/pkg/fd/BUILD
index 785c685a0..eedaf12ee 100644
--- a/pkg/fd/BUILD
+++ b/pkg/fd/BUILD
@@ -7,6 +7,9 @@ go_library(
srcs = ["fd.go"],
importpath = "gvisor.dev/gvisor/pkg/fd",
visibility = ["//visibility:public"],
+ deps = [
+ "//pkg/unet",
+ ],
)
go_test(
diff --git a/pkg/fd/fd.go b/pkg/fd/fd.go
index c3acd0fe2..7f1f9d984 100644
--- a/pkg/fd/fd.go
+++ b/pkg/fd/fd.go
@@ -22,7 +22,7 @@ import (
"runtime"
"sync/atomic"
"syscall"
- "net"
+ "gvisor.dev/gvisor/pkg/unet"
)
// ReadWriter implements io.ReadWriter, io.ReaderAt, and io.WriterAt for fd. It
@@ -186,19 +186,10 @@ func OpenAt(dir *FD, path string, flags int, mode uint32) (*FD, error) {
return New(f), nil
}
-// OpenUnix TODO: DOC
+// OpenUnix Open a Unix Domain Socket and return the file descriptor for it.
func OpenUnix(path string) (*FD, error) {
- addr, _ := net.ResolveUnixAddr("unix", path)
- f, err := net.DialUnix("unix", nil, addr); if err != nil {
- return nil, fmt.Errorf("unable to open socket: %q, err: %v", path, err)
- }
- fConnd, err := f.File(); if err != nil {
- return nil, fmt.Errorf("unable to convert to os.File: %q, err: %v", path, err)
- }
- fdConnd, err := NewFromFile(fConnd); if err != nil {
- return nil, fmt.Errorf("unable to convert os.File to fd.FD: %q, err: %v", path, err)
- }
- return fdConnd, nil
+ socket, err := unet.Connect(path, false)
+ return New(socket.FD()), err
}
// Close closes the file descriptor contained in the FD.