mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
[op] Replace syscall package usage with golang.org/x/sys/unix in pkg/.
The syscall package has been deprecated in favor of golang.org/x/sys. Note that syscall is still used in the following places: - pkg/sentry/socket/hostinet/stack.go: some netlink related functionalities are not yet available in golang.org/x/sys. - syscall.Stat_t is still used in some places because os.FileInfo.Sys() still returns it and not unix.Stat_t. Updates #214 PiperOrigin-RevId: 360701387
This commit is contained in:
@@ -31,7 +31,6 @@ import (
|
||||
"io/ioutil"
|
||||
"math"
|
||||
"reflect"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
@@ -835,7 +834,7 @@ func getSockOptSocket(t *kernel.Task, s socket.SocketOps, ep commonEndpoint, fam
|
||||
return &optP, nil
|
||||
|
||||
case linux.SO_PEERCRED:
|
||||
if family != linux.AF_UNIX || outLen < syscall.SizeofUcred {
|
||||
if family != linux.AF_UNIX || outLen < unix.SizeofUcred {
|
||||
return nil, syserr.ErrInvalidArgument
|
||||
}
|
||||
|
||||
@@ -3199,15 +3198,15 @@ func nicStateFlagsToLinux(f stack.NICStateFlags) uint32 {
|
||||
}
|
||||
|
||||
func isTCPSocket(skType linux.SockType, skProto int) bool {
|
||||
return skType == linux.SOCK_STREAM && (skProto == 0 || skProto == syscall.IPPROTO_TCP)
|
||||
return skType == linux.SOCK_STREAM && (skProto == 0 || skProto == unix.IPPROTO_TCP)
|
||||
}
|
||||
|
||||
func isUDPSocket(skType linux.SockType, skProto int) bool {
|
||||
return skType == linux.SOCK_DGRAM && (skProto == 0 || skProto == syscall.IPPROTO_UDP)
|
||||
return skType == linux.SOCK_DGRAM && (skProto == 0 || skProto == unix.IPPROTO_UDP)
|
||||
}
|
||||
|
||||
func isICMPSocket(skType linux.SockType, skProto int) bool {
|
||||
return skType == linux.SOCK_DGRAM && (skProto == syscall.IPPROTO_ICMP || skProto == syscall.IPPROTO_ICMPV6)
|
||||
return skType == linux.SOCK_DGRAM && (skProto == unix.IPPROTO_ICMP || skProto == unix.IPPROTO_ICMPV6)
|
||||
}
|
||||
|
||||
// State implements socket.Socket.State. State translates the internal state
|
||||
|
||||
@@ -15,8 +15,7 @@
|
||||
package netstack
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
"gvisor.dev/gvisor/pkg/abi/linux"
|
||||
"gvisor.dev/gvisor/pkg/context"
|
||||
"gvisor.dev/gvisor/pkg/sentry/fs"
|
||||
@@ -48,18 +47,18 @@ type provider struct {
|
||||
func getTransportProtocol(ctx context.Context, stype linux.SockType, protocol int) (tcpip.TransportProtocolNumber, bool, *syserr.Error) {
|
||||
switch stype {
|
||||
case linux.SOCK_STREAM:
|
||||
if protocol != 0 && protocol != syscall.IPPROTO_TCP {
|
||||
if protocol != 0 && protocol != unix.IPPROTO_TCP {
|
||||
return 0, true, syserr.ErrInvalidArgument
|
||||
}
|
||||
return tcp.ProtocolNumber, true, nil
|
||||
|
||||
case linux.SOCK_DGRAM:
|
||||
switch protocol {
|
||||
case 0, syscall.IPPROTO_UDP:
|
||||
case 0, unix.IPPROTO_UDP:
|
||||
return udp.ProtocolNumber, true, nil
|
||||
case syscall.IPPROTO_ICMP:
|
||||
case unix.IPPROTO_ICMP:
|
||||
return header.ICMPv4ProtocolNumber, true, nil
|
||||
case syscall.IPPROTO_ICMPV6:
|
||||
case unix.IPPROTO_ICMPV6:
|
||||
return header.ICMPv6ProtocolNumber, true, nil
|
||||
}
|
||||
|
||||
@@ -71,18 +70,18 @@ func getTransportProtocol(ctx context.Context, stype linux.SockType, protocol in
|
||||
}
|
||||
|
||||
switch protocol {
|
||||
case syscall.IPPROTO_ICMP:
|
||||
case unix.IPPROTO_ICMP:
|
||||
return header.ICMPv4ProtocolNumber, true, nil
|
||||
case syscall.IPPROTO_ICMPV6:
|
||||
case unix.IPPROTO_ICMPV6:
|
||||
return header.ICMPv6ProtocolNumber, true, nil
|
||||
case syscall.IPPROTO_UDP:
|
||||
case unix.IPPROTO_UDP:
|
||||
return header.UDPProtocolNumber, true, nil
|
||||
case syscall.IPPROTO_TCP:
|
||||
case unix.IPPROTO_TCP:
|
||||
return header.TCPProtocolNumber, true, nil
|
||||
// IPPROTO_RAW signifies that the raw socket isn't assigned to
|
||||
// a transport protocol. Users will be able to write packets'
|
||||
// IP headers and won't receive anything.
|
||||
case syscall.IPPROTO_RAW:
|
||||
case unix.IPPROTO_RAW:
|
||||
return tcpip.TransportProtocolNumber(0), false, nil
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user