var Accept4Func func(int, int) (int, syscall.Sockaddr, error) = syscall.Accept4
Accept4Func is used to hook the accept4 call.
var AcceptFunc func(int) (int, syscall.Sockaddr, error) = syscall.Accept
AcceptFunc is used to hook the accept call.
var CloseFunc func(int) error = syscall.Close
CloseFunc is used to hook the close call.
var ErrFileClosing = errors.New("use of closed file")
ErrFileClosing is returned when a file descriptor is used after it has been closed.
var ErrNetClosing = errors.New("use of closed network connection")
ErrNetClosing is returned when a network descriptor is used after it has been closed. Keep this string consistent because of issue #4373: since historically programs have not been able to detect this error, they look for the string.
var ErrNoDeadline = errors.New("file type does not support deadline")
ErrNoDeadline is returned when a request is made to set a deadline on a file type that does not use the poller.
var ErrNotPollable = errors.New("not pollable")
ErrNotPollable is returned when the file or socket is not suitable for event notification.
var ErrTimeout error = &TimeoutError{}
ErrTimeout is returned for an expired deadline.
var TestHookDidWritev = func(wrote int) {}
TestHookDidWritev is a hook for testing writev.
func DupCloseOnExec(fd int) (int, string, error)
DupCloseOnExec dups fd and marks it close-on-exec.
func IsPollDescriptor(fd uintptr) bool
IsPollDescriptor reports whether fd is the descriptor being used by the poller. This is only used for testing.
func SendFile(dstFD *FD, src int, remain int64) (int64, error)
SendFile wraps the sendfile system call.
func Splice(dst, src *FD, remain int64) (written int64, handled bool, sc string, err error)
Splice transfers at most remain bytes of data from src to dst, using the splice system call to minimize copies of data from and to userspace.
Splice creates a temporary pipe, to serve as a buffer for the data transfer. src and dst must both be stream-oriented sockets.
If err != nil, sc is the system call which caused the error.
type FD struct { // System file descriptor. Immutable until Close. Sysfd int // Whether this is a streaming descriptor, as opposed to a // packet-based descriptor like a UDP socket. Immutable. IsStream bool // Whether a zero byte read indicates EOF. This is false for a // message based socket connection. ZeroReadIsEOF bool // contains filtered or unexported fields }
FD is a file descriptor. The net and os packages use this type as a field of a larger type representing a network connection or OS file.
func (fd *FD) Accept() (int, syscall.Sockaddr, string, error)
Accept wraps the accept network call.
func (fd *FD) Close() error
Close closes the FD. The underlying file descriptor is closed by the destroy method when there are no remaining references.
func (fd *FD) Dup() (int, string, error)
Dup duplicates the file descriptor.
func (fd *FD) Fchdir() error
Fchdir wraps syscall.Fchdir.
func (fd *FD) Fchmod(mode uint32) error
Fchmod wraps syscall.Fchmod.
func (fd *FD) Fchown(uid, gid int) error
Fchown wraps syscall.Fchown.
func (fd *FD) Fstat(s *syscall.Stat_t) error
Fstat wraps syscall.Fstat
func (fd *FD) Fsync() error
Fsync wraps syscall.Fsync.
func (fd *FD) Ftruncate(size int64) error
Ftruncate wraps syscall.Ftruncate.
func (fd *FD) Init(net string, pollable bool) error
Init initializes the FD. The Sysfd field should already be set. This can be called multiple times on a single FD. The net argument is a network name from the net package (e.g., "tcp"), or "file". Set pollable to true if fd should be managed by runtime netpoll.
func (fd *FD) Pread(p []byte, off int64) (int, error)
Pread wraps the pread system call.
func (fd *FD) Pwrite(p []byte, off int64) (int, error)
Pwrite wraps the pwrite system call.
func (fd *FD) RawControl(f func(uintptr)) error
RawControl invokes the user-defined function f for a non-IO operation.
func (fd *FD) RawRead(f func(uintptr) bool) error
RawRead invokes the user-defined function f for a read operation.
func (fd *FD) RawWrite(f func(uintptr) bool) error
RawWrite invokes the user-defined function f for a write operation.
func (fd *FD) Read(p []byte) (int, error)
Read implements io.Reader.
func (fd *FD) ReadDirent(buf []byte) (int, error)
ReadDirent wraps syscall.ReadDirent. We treat this like an ordinary system call rather than a call that tries to fill the buffer.
func (fd *FD) ReadFrom(p []byte) (int, syscall.Sockaddr, error)
ReadFrom wraps the recvfrom network call.
func (fd *FD) ReadMsg(p []byte, oob []byte) (int, int, int, syscall.Sockaddr, error)
ReadMsg wraps the recvmsg network call.
func (fd *FD) Seek(offset int64, whence int) (int64, error)
Seek wraps syscall.Seek.
func (fd *FD) SetBlocking() error
SetBlocking puts the file into blocking mode.
func (fd *FD) SetDeadline(t time.Time) error
SetDeadline sets the read and write deadlines associated with fd.
func (fd *FD) SetReadDeadline(t time.Time) error
SetReadDeadline sets the read deadline associated with fd.
func (fd *FD) SetWriteDeadline(t time.Time) error
SetWriteDeadline sets the write deadline associated with fd.
func (fd *FD) SetsockoptByte(level, name int, arg byte) error
SetsockoptByte wraps the setsockopt network call with a byte argument.
func (fd *FD) SetsockoptIPMreq(level, name int, mreq *syscall.IPMreq) error
SetsockoptIPMreq wraps the setsockopt network call with an IPMreq argument.
func (fd *FD) SetsockoptIPMreqn(level, name int, mreq *syscall.IPMreqn) error
SetsockoptIPMreqn wraps the setsockopt network call with an IPMreqn argument.
func (fd *FD) SetsockoptIPv6Mreq(level, name int, mreq *syscall.IPv6Mreq) error
SetsockoptIPv6Mreq wraps the setsockopt network call with an IPv6Mreq argument.
func (fd *FD) SetsockoptInet4Addr(level, name int, arg [4]byte) error
SetsockoptInet4Addr wraps the setsockopt network call with an IPv4 address.
func (fd *FD) SetsockoptInt(level, name, arg int) error
SetsockoptInt wraps the setsockopt network call with an int argument.
func (fd *FD) SetsockoptLinger(level, name int, l *syscall.Linger) error
SetsockoptLinger wraps the setsockopt network call with a Linger argument.
func (fd *FD) Shutdown(how int) error
Shutdown wraps the shutdown network call.
func (fd *FD) WaitWrite() error
WaitWrite waits until data can be read from fd.
func (fd *FD) Write(p []byte) (int, error)
Write implements io.Writer.
func (fd *FD) WriteMsg(p []byte, oob []byte, sa syscall.Sockaddr) (int, int, error)
WriteMsg wraps the sendmsg network call.
func (fd *FD) WriteOnce(p []byte) (int, error)
WriteOnce is for testing only. It makes a single write call.
func (fd *FD) WriteTo(p []byte, sa syscall.Sockaddr) (int, error)
WriteTo wraps the sendto network call.
func (fd *FD) Writev(v *[][]byte) (int64, error)
Writev wraps the writev system call.
type TimeoutError struct{}
TimeoutError is returned for an expired deadline.
func (e *TimeoutError) Error() string
Implement the net.Error interface.
func (e *TimeoutError) Temporary() bool
func (e *TimeoutError) Timeout() bool