mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Switch from net to unet to open Unix Domain Sockets.
This commit is contained in:
@@ -7,6 +7,9 @@ go_library(
|
||||
srcs = ["fd.go"],
|
||||
importpath = "gvisor.dev/gvisor/pkg/fd",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//pkg/unet",
|
||||
],
|
||||
)
|
||||
|
||||
go_test(
|
||||
|
||||
+4
-13
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user