Go: net/internal/socktest Index | Files

package socktest

import "net/internal/socktest"

Package socktest provides utilities for socket testing.


Package Files

switch.go switch_posix.go switch_unix.go sys_cloexec.go sys_unix.go

type AfterFilter Uses

type AfterFilter func(*Status) error

An AfterFilter represents a socket system call filter after an execution of a system call.

It will only be executed after a system call for a socket that has an entry in internal table. If the filter returns a non-nil error, the system call function returns the non-nil error.

type Cookie uint64

A Cookie represents a 3-tuple of a socket; address family, socket type and protocol number.

func (Cookie) Family Uses

func (c Cookie) Family() int

Family returns an address family.

func (Cookie) Protocol Uses

func (c Cookie) Protocol() int

Protocol returns a protocol number.

func (Cookie) Type Uses

func (c Cookie) Type() int

Type returns a socket type.

type Filter Uses

type Filter func(*Status) (AfterFilter, error)

A Filter represents a socket system call filter.

It will only be executed before a system call for a socket that has an entry in internal table. If the filter returns a non-nil error, the execution of system call will be canceled and the system call function returns the non-nil error. It can return a non-nil AfterFilter for filtering after the execution of the system call.

type FilterType Uses

type FilterType int

A FilterType represents a filter type.

const (
    FilterSocket        FilterType = iota // for Socket
    FilterConnect                         // for Connect or ConnectEx
    FilterListen                          // for Listen
    FilterAccept                          // for Accept, Accept4 or AcceptEx
    FilterGetsockoptInt                   // for GetsockoptInt
    FilterClose                           // for Close or Closesocket

type Sockets Uses

type Sockets map[int]Status

Sockets maps a socket descriptor to the status of socket.

type Stat Uses

type Stat struct {
    Family   int // address family
    Type     int // socket type
    Protocol int // protocol number

    Opened    uint64 // number of sockets opened
    Connected uint64 // number of sockets connected
    Listened  uint64 // number of sockets listened
    Accepted  uint64 // number of sockets accepted
    Closed    uint64 // number of sockets closed

    OpenFailed    uint64 // number of sockets open failed
    ConnectFailed uint64 // number of sockets connect failed
    ListenFailed  uint64 // number of sockets listen failed
    AcceptFailed  uint64 // number of sockets accept failed
    CloseFailed   uint64 // number of sockets close failed

A Stat represents a per-cookie socket statistics.

func (Stat) String Uses

func (st Stat) String() string

type Status Uses

type Status struct {
    Cookie    Cookie
    Err       error // error status of socket system call
    SocketErr error // error status of socket by SO_ERROR

A Status represents the status of a socket.

func (Status) String Uses

func (so Status) String() string

type Switch Uses

type Switch struct {
    // contains filtered or unexported fields

A Switch represents a callpath point switch for socket system calls.

func (*Switch) Accept Uses

func (sw *Switch) Accept(s int) (ns int, sa syscall.Sockaddr, err error)

Accept wraps syscall.Accept.

func (*Switch) Accept4 Uses

func (sw *Switch) Accept4(s, flags int) (ns int, sa syscall.Sockaddr, err error)

Accept4 wraps syscall.Accept4.

func (*Switch) Close Uses

func (sw *Switch) Close(s int) (err error)

Close wraps syscall.Close.

func (*Switch) Connect Uses

func (sw *Switch) Connect(s int, sa syscall.Sockaddr) (err error)

Connect wraps syscall.Connect.

func (*Switch) GetsockoptInt Uses

func (sw *Switch) GetsockoptInt(s, level, opt int) (soerr int, err error)

GetsockoptInt wraps syscall.GetsockoptInt.

func (*Switch) Listen Uses

func (sw *Switch) Listen(s, backlog int) (err error)

Listen wraps syscall.Listen.

func (*Switch) Set Uses

func (sw *Switch) Set(t FilterType, f Filter)

Set deploys the socket system call filter f for the filter type t.

func (*Switch) Socket Uses

func (sw *Switch) Socket(family, sotype, proto int) (s int, err error)

Socket wraps syscall.Socket.

func (*Switch) Sockets Uses

func (sw *Switch) Sockets() Sockets

Sockets returns mappings of socket descriptor to socket status.

func (*Switch) Stats Uses

func (sw *Switch) Stats() []Stat

Stats returns a list of per-cookie socket statistics.

Package socktest imports 3 packages (graph). Updated 2021-01-22. Refresh now. Tools for package owners.