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