Files
Go_I2p/lib/common/router_address/README.md
2025-02-26 20:58:20 -05:00

4.5 KiB

router_address

-- import "github.com/go-i2p/go-i2p/lib/common/router_address"

router_address.svg

Package router_address implements the I2P RouterAddress common data structure

Usage

const (
	ROUTER_ADDRESS_MIN_SIZE = 9
)

Minimum number of bytes in a valid RouterAddress

type RouterAddress

type RouterAddress struct {
	TransportCost    *Integer
	ExpirationDate   *Date
	TransportType    I2PString
	TransportOptions *Mapping
}

RouterAddress is the represenation of an I2P RouterAddress.

https://geti2p.net/spec/common-structures#routeraddress

func NewRouterAddress

func NewRouterAddress(cost uint8, expiration time.Time, transportType string, options map[string]string) (*RouterAddress, error)

NewRouterAddress creates a new RouterAddress with the provided parameters. Returns a pointer to RouterAddress.

func ReadRouterAddress

func ReadRouterAddress(data []byte) (router_address RouterAddress, remainder []byte, err error)

ReadRouterAddress returns RouterAddress from a []byte. The remaining bytes after the specified length are also returned. Returns a list of errors that occurred during parsing.

func (RouterAddress) Bytes

func (router_address RouterAddress) Bytes() []byte

Bytes returns the router address as a []byte.

func (RouterAddress) CapsString

func (router_address RouterAddress) CapsString() I2PString

func (RouterAddress) Cost

func (router_address RouterAddress) Cost() int

Cost returns the cost for this RouterAddress as a Go integer.

func (RouterAddress) Expiration

func (router_address RouterAddress) Expiration() Date

Expiration returns the expiration for this RouterAddress as an I2P Date.

func (RouterAddress) GetOption

func (router_address RouterAddress) GetOption(key I2PString) I2PString

GetOption returns the value of the option specified by the key

func (RouterAddress) Host

func (router_address RouterAddress) Host() (net.Addr, error)

func (RouterAddress) HostString

func (router_address RouterAddress) HostString() I2PString

func (*RouterAddress) IPVersion

func (router_address *RouterAddress) IPVersion() string

IPVersion returns a string "4" for IPv4 or 6 for IPv6

func (RouterAddress) InitializationVector

func (router_address RouterAddress) InitializationVector() ([16]byte, error)

func (RouterAddress) InitializationVectorString

func (router_address RouterAddress) InitializationVectorString() I2PString

func (RouterAddress) IntroducerExpirationString

func (router_address RouterAddress) IntroducerExpirationString(num int) I2PString

func (RouterAddress) IntroducerHashString

func (router_address RouterAddress) IntroducerHashString(num int) I2PString

func (RouterAddress) IntroducerTagString

func (router_address RouterAddress) IntroducerTagString(num int) I2PString

func (*RouterAddress) Network

func (router_address *RouterAddress) Network() string

Network implements net.Addr. It returns the transport type plus 4 or 6

func (RouterAddress) Options

func (router_address RouterAddress) Options() Mapping

Options returns the options for this RouterAddress as an I2P Mapping.

func (RouterAddress) Port

func (router_address RouterAddress) Port() (string, error)

func (RouterAddress) PortString

func (router_address RouterAddress) PortString() I2PString

func (RouterAddress) ProtocolVersion

func (router_address RouterAddress) ProtocolVersion() (string, error)

func (RouterAddress) ProtocolVersionString

func (router_address RouterAddress) ProtocolVersionString() I2PString

func (RouterAddress) StaticKey

func (router_address RouterAddress) StaticKey() ([32]byte, error)

func (RouterAddress) StaticKeyString

func (router_address RouterAddress) StaticKeyString() I2PString

func (*RouterAddress) String

func (router_address *RouterAddress) String() string

String implements net.Addr. It returns the IP address, followed by the options

func (RouterAddress) TransportStyle

func (router_address RouterAddress) TransportStyle() I2PString

TransportStyle returns the transport style for this RouterAddress as an I2PString.

func (*RouterAddress) UDP

func (router_address *RouterAddress) UDP() bool

router_address

github.com/go-i2p/go-i2p/lib/common/router_address