sandbox: support vsock connection to task api
Signed-off-by: Abel Feng <fshb1988@gmail.com>
This commit is contained in:
36
vendor/github.com/mdlayher/vsock/fd_linux.go
generated
vendored
Normal file
36
vendor/github.com/mdlayher/vsock/fd_linux.go
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
package vsock
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
// contextID retrieves the local context ID for this system.
|
||||
func contextID() (uint32, error) {
|
||||
f, err := os.Open(devVsock)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
return unix.IoctlGetUint32(int(f.Fd()), unix.IOCTL_VM_SOCKETS_GET_LOCAL_CID)
|
||||
}
|
||||
|
||||
// isErrno determines if an error a matches UNIX error number.
|
||||
func isErrno(err error, errno int) bool {
|
||||
switch errno {
|
||||
case ebadf:
|
||||
return err == unix.EBADF
|
||||
case enotconn:
|
||||
return err == unix.ENOTCONN
|
||||
default:
|
||||
panicf("vsock: isErrno called with unhandled error number parameter: %d", errno)
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
func panicf(format string, a ...interface{}) {
|
||||
panic(fmt.Sprintf(format, a...))
|
||||
}
|
||||
Reference in New Issue
Block a user