diff options
-rw-r--r-- | pkg/fd/BUILD | 3 | ||||
-rw-r--r-- | pkg/fd/fd.go | 17 |
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. |