56 lines
1.4 KiB
Go
56 lines
1.4 KiB
Go
//go:build darwin
|
|
|
|
package fdbased
|
|
|
|
import (
|
|
"github.com/sagernet/gvisor/pkg/tcpip"
|
|
|
|
"golang.org/x/sys/unix"
|
|
)
|
|
|
|
func TranslateErrno(e unix.Errno) tcpip.Error {
|
|
switch e {
|
|
case unix.EEXIST:
|
|
return &tcpip.ErrDuplicateAddress{}
|
|
case unix.ENETUNREACH:
|
|
return &tcpip.ErrHostUnreachable{}
|
|
case unix.EINVAL:
|
|
return &tcpip.ErrInvalidEndpointState{}
|
|
case unix.EALREADY:
|
|
return &tcpip.ErrAlreadyConnecting{}
|
|
case unix.EISCONN:
|
|
return &tcpip.ErrAlreadyConnected{}
|
|
case unix.EADDRINUSE:
|
|
return &tcpip.ErrPortInUse{}
|
|
case unix.EADDRNOTAVAIL:
|
|
return &tcpip.ErrBadLocalAddress{}
|
|
case unix.EPIPE:
|
|
return &tcpip.ErrClosedForSend{}
|
|
case unix.EWOULDBLOCK:
|
|
return &tcpip.ErrWouldBlock{}
|
|
case unix.ECONNREFUSED:
|
|
return &tcpip.ErrConnectionRefused{}
|
|
case unix.ETIMEDOUT:
|
|
return &tcpip.ErrTimeout{}
|
|
case unix.EINPROGRESS:
|
|
return &tcpip.ErrConnectStarted{}
|
|
case unix.EDESTADDRREQ:
|
|
return &tcpip.ErrDestinationRequired{}
|
|
case unix.ENOTSUP:
|
|
return &tcpip.ErrNotSupported{}
|
|
case unix.ENOTTY:
|
|
return &tcpip.ErrQueueSizeNotSupported{}
|
|
case unix.ENOTCONN:
|
|
return &tcpip.ErrNotConnected{}
|
|
case unix.ECONNRESET:
|
|
return &tcpip.ErrConnectionReset{}
|
|
case unix.ECONNABORTED:
|
|
return &tcpip.ErrConnectionAborted{}
|
|
case unix.EMSGSIZE:
|
|
return &tcpip.ErrMessageTooLong{}
|
|
case unix.ENOBUFS:
|
|
return &tcpip.ErrNoBufferSpace{}
|
|
default:
|
|
return &tcpip.ErrInvalidEndpointState{}
|
|
}
|
|
}
|