control

package
v0.0.0-...-3dd8d31 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 7, 2025 License: MIT Imports: 11 Imported by: 1

Documentation

Index

Constants

View Source
const (
	FIN = 1  // 00 0001
	SYN = 2  // 00 0010
	RST = 4  // 00 0100
	PSH = 8  // 00 1000
	ACK = 16 // 01 0000
	URG = 32 // 10 0000
)

Variables

This section is empty.

Functions

func Accept

func Accept(fd FdPtr) (FdPtr, Sockaddr, error)

func Bind

func Bind(fd FdPtr, addr Sockaddr) error

func Close

func Close(fd FdPtr) error

func Connect

func Connect(fd FdPtr, addr Sockaddr) error

func Csum

func Csum(data []byte, srcip, dstip []byte) uint16

Csum TCP Checksum

func DefaultRawOptions

func DefaultRawOptions() []byte

func Listen

func Listen(fd FdPtr, n int) error

func PortReuse

func PortReuse(fd FdPtr) error

func PortReuseControl

func PortReuseControl(network string, address string, c syscall.RawConn) error

func RawSockSendTcpMessage

func RawSockSendTcpMessage(fd *FdPtr, b []byte, network, raddr, laddr string, fn func(th *TCPHeader)) (err error)

func RawSockSendTcpSYNMessage

func RawSockSendTcpSYNMessage(fd *FdPtr, b []byte, network, raddr, laddr string) (err error)

func RawSockSendTo

func RawSockSendTo(fd *FdPtr, b []byte, network, raddr string) (err error)

func Read

func Read(fd FdPtr, b []byte) (n int, err error)

func Send

func Send(fd FdPtr, b []byte) error

func SendTo

func SendTo(fd FdPtr, b []byte, raddr Sockaddr) error

func Write

func Write(fd FdPtr, b []byte) (n int, err error)

Types

type FdPtr

type FdPtr = int

func NewSocket

func NewSocket(domain, typ, proto int) (FdPtr, error)

type Sockaddr

type Sockaddr interface {
	unix.Sockaddr
	String() string
}

func RawSockRecvFrom

func RawSockRecvFrom(fd *FdPtr, b []byte, network string) (n int, raddr Sockaddr, err error)

func RecvFrom

func RecvFrom(fd FdPtr, b []byte) (n int, raddr Sockaddr, err error)

type TCPHeader

type TCPHeader struct {
	SrcIp net.IP
	DstIp net.IP

	Source      uint16
	Destination uint16
	SeqNum      uint32
	AckNum      uint32
	DataOffset  uint8 // 4 bits
	Reserved    uint8 // 3 bits
	ECN         uint8 // 3 bits
	Ctrl        uint8 // 6 bits
	Window      uint16
	Checksum    uint16 // Kernel will set this if it's 0
	Urgent      uint16
	Options     []TCPOption
	RawOptions  []byte
}

func ParseTCPHeader

func ParseTCPHeader(data []byte) (*TCPHeader, error)

func (*TCPHeader) HasFlag

func (tcp *TCPHeader) HasFlag(flagBit byte) bool

func (*TCPHeader) HeaderSize

func (tcp *TCPHeader) HeaderSize() int

func (*TCPHeader) Marshal

func (tcp *TCPHeader) Marshal() ([]byte, error)

func (*TCPHeader) SetFlag

func (tcp *TCPHeader) SetFlag(flagBit byte, flag bool)

type TCPOption

type TCPOption struct {
	Kind   uint8
	Length uint8
	Data   []byte
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL