markedconn

package
v10.229.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Sep 12, 2019 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DialMarkedWithContext

func DialMarkedWithContext(ctx context.Context, network string, addr string, mark int) (net.Conn, error)

DialMarkedWithContext will dial a TCP connection to the provide address and mark the socket with the provided mark.

func GetInterfaces

func GetInterfaces() map[string]struct{}

GetInterfaces retrieves all the local interfaces.

func GetOriginalDestination

func GetOriginalDestination(conn *net.TCPConn) (net.IP, int, error)

GetOriginalDestination -- Func to get original destination a connection

func NewSocketListener

func NewSocketListener(ctx context.Context, port string, mark int) (net.Listener, error)

NewSocketListener will create a listener and mark the socket with the provided mark.

Types

type ProxiedConnection

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

ProxiedConnection is a proxied connection where we can recover the original destination.

func (*ProxiedConnection) Close

func (p *ProxiedConnection) Close() error

Close closes the connection.

func (*ProxiedConnection) GetOriginalDestination

func (p *ProxiedConnection) GetOriginalDestination() (net.IP, int)

GetOriginalDestination sets the original destination of the connection.

func (*ProxiedConnection) GetTCPConnection

func (p *ProxiedConnection) GetTCPConnection() *net.TCPConn

GetTCPConnection returns the TCP connection object.

func (*ProxiedConnection) LocalAddr

func (p *ProxiedConnection) LocalAddr() net.Addr

LocalAddr implements the corresponding method of net.Conn, but returns the original address.

func (*ProxiedConnection) Read

func (p *ProxiedConnection) Read(b []byte) (n int, err error)

Read reads data from the connection.

func (*ProxiedConnection) RemoteAddr

func (p *ProxiedConnection) RemoteAddr() net.Addr

RemoteAddr returns the remote address

func (*ProxiedConnection) SetDeadline

func (p *ProxiedConnection) SetDeadline(t time.Time) error

SetDeadline passes the read deadline to the original TCP connection.

func (*ProxiedConnection) SetReadDeadline

func (p *ProxiedConnection) SetReadDeadline(t time.Time) error

SetReadDeadline implements the call by passing it to the original connection.

func (*ProxiedConnection) SetWriteDeadline

func (p *ProxiedConnection) SetWriteDeadline(t time.Time) error

SetWriteDeadline implements the call by passing it to the original connection.

func (*ProxiedConnection) Write

func (p *ProxiedConnection) Write(b []byte) (n int, err error)

Write writes data to the connection.

type ProxiedListener

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

ProxiedListener is a proxied listener that uses proxied connections.

func (ProxiedListener) Accept

func (l ProxiedListener) Accept() (c net.Conn, err error)

Accept implements the accept method of the interface.

func (ProxiedListener) Addr

func (l ProxiedListener) Addr() net.Addr

Addr implements the Addr method of net.Listener.

func (ProxiedListener) Close

func (l ProxiedListener) Close() error

Close implements the Close method of the net.Listener.

Jump to

Keyboard shortcuts

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