tracetcp

package
v0.0.0-...-f1ef4a8 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2020 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FD_ISSET

func FD_ISSET(p *syscall.FdSet, i int) bool

func FD_SET

func FD_SET(p *syscall.FdSet, i int)

func FD_ZERO

func FD_ZERO(p *syscall.FdSet)

func HexDump

func HexDump(data []byte, out io.Writer, width int) error

func LookupAddress

func LookupAddress(host string) (*net.IPAddr, error)

func MakeTimeval

func MakeTimeval(t time.Duration) syscall.Timeval

func ReverseLookup

func ReverseLookup(ip net.IPAddr) (name string, err error)

func SplitHostAndPort

func SplitHostAndPort(hostAndPort string, defaultPort int) (host string, port int, err error)

func ToIPAddrAndPort

func ToIPAddrAndPort(saddr syscall.Sockaddr) (addr net.IPAddr, port int, err error)

func ToSockaddrInet4

func ToSockaddrInet4(ip net.IPAddr, port int) *syscall.SockaddrInet4

Types

type AtomicBool

type AtomicBool struct {
	// contains filtered or unexported fields
}

func (*AtomicBool) CompareAndSet

func (b *AtomicBool) CompareAndSet(old, new bool) (setok bool)

func (*AtomicBool) Read

func (b *AtomicBool) Read() bool

func (*AtomicBool) Write

func (b *AtomicBool) Write(value bool)

type ICMPHeader

type ICMPHeader struct {
	Type   byte
	Code   byte
	Chk    uint16
	Unused uint32
}

type IPHeader

type IPHeader struct {
	VerHdrLen        byte
	TOS              byte
	TotalLen         uint16
	ID               uint16
	FlagsFragmentOff uint16
	TTL              byte
	Protocol         byte
	HdrChk           uint16
	SourceIP         [4]byte
	DestIP           [4]byte
}

type JSONTraceWriter

type JSONTraceWriter struct {
	// contains filtered or unexported fields
}

func (*JSONTraceWriter) Event

func (w *JSONTraceWriter) Event(e TraceEvent) error

func (*JSONTraceWriter) Init

func (w *JSONTraceWriter) Init(port int, hopsFrom, hopsTo, queriesPerHop int, noLookups bool, out io.Writer)

type SocketState

type SocketState int
const (
	SocketConnected SocketState = iota
	SocketNotReached
	SocketTimedOut
	SocketPortClosed
	SocketError
)

func (SocketState) String

func (s SocketState) String() string

type StdTraceWriter

type StdTraceWriter struct {
	// contains filtered or unexported fields
}

func (*StdTraceWriter) Event

func (w *StdTraceWriter) Event(e TraceEvent) error

func (*StdTraceWriter) Init

func (w *StdTraceWriter) Init(port int, hopsFrom, hopsTo, queriesPerHop int, noLookups bool, out io.Writer)

type TCPHeader

type TCPHeader struct {
	SrcPort  uint16
	DestPort uint16
	Sequence uint32
}

type Trace

type Trace struct {
	Events         chan TraceEvent
	TraceRunning   AtomicBool
	AbortRequested AtomicBool
}

func NewTrace

func NewTrace() *Trace

func (*Trace) AbortTrace

func (t *Trace) AbortTrace()

func (*Trace) BeginTrace

func (t *Trace) BeginTrace(addr *net.IPAddr, port, beginTTL, endTTL, queries int, timeout time.Duration) error

type TraceEvent

type TraceEvent struct {
	Type  TraceEventType
	Addr  net.IPAddr
	Time  time.Duration
	Hop   int
	Query int
	Err   error
}

func (TraceEvent) String

func (e TraceEvent) String() string

implementation of fmt.Stinger interface

type TraceEventType

type TraceEventType int
const (
	None TraceEventType = iota
	TimedOut
	TTLExpired
	Connected
	RemoteClosed
	TraceStarted
	TraceComplete
	TraceAborted
	TraceFailed
)

func (TraceEventType) String

func (t TraceEventType) String() string

implementation of fmt.Stinger interface

type TraceOutputWriter

type TraceOutputWriter interface {
	Init(port int, hopsFrom, hopsTo, queriesPerHop int, noLookups bool, out io.Writer)
	Event(e TraceEvent) error
}

func GetOutputWriter

func GetOutputWriter(name string) (TraceOutputWriter, error)

Jump to

Keyboard shortcuts

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