nwapi

package
v0.0.0-...-05bc493 Latest Latest
Warning

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

Go to latest
Published: Sep 20, 2023 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HostIDByteSize   = 8
	LocalUIDByteSize = 8
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Address

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

func AsAddress

func AsAddress(addr net.Addr) Address

func ExpandAddresses

func ExpandAddresses(ctx context.Context, skipError bool, resolverFn func(context.Context, Address) ([]Address, error), a ...Address) (result []Address, resolved int, err error)

func ExpandHostAddresses

func ExpandHostAddresses(ctx context.Context, skipError bool, resolver *net.Resolver, a ...Address) ([]Address, int, error)

func FromTCPAddr

func FromTCPAddr(a *net.TCPAddr) Address

func FromUDPAddr

func FromUDPAddr(a *net.UDPAddr) Address

func Join

func Join(addresses ...[]Address) []Address

func NewHost

func NewHost(host string) Address

NewHost checks if the string can be parsed into IP address, then returns either IP or DNS values accordingly.

func NewHostAndPort

func NewHostAndPort(host string, port int) Address

NewHostAndPort checks if the string can be parsed into IP address, then returns either IP or DNS values accordingly. Port must be valid.

func NewHostID

func NewHostID(id HostID) Address

NewHostID returns a nodeID based address

func NewHostPK

func NewHostPK(pk longbits.FixedReader) Address

NewHostID returns a PK based address

func NewHostPort

func NewHostPort(hostport string, allowZero bool) Address

NewHostPort checks if the string can be parsed into IP address, then returns either IP or DNS values accordingly. Port must be present.

func NewIP

func NewIP(ip net.IPAddr) Address

NewIP returns an IP address

func NewIPAndPort

func NewIPAndPort(ip net.IPAddr, port int) Address

NewIPAndPort returns a host and port address. Panics on invalid (port).

func NewLocalUID

func NewLocalUID(uid uint64, id HostID) Address

NewLocalUID returns uid-based address. Value of (id) is for convenience only.

func ResolveAddresses

func ResolveAddresses(ctx context.Context, skipError bool, resolverFn func(context.Context, Address) ([]Address, error), a ...Address) (result []Address, err error)

func ResolveHostAddresses

func ResolveHostAddresses(ctx context.Context, skipError bool, resolver *net.Resolver, a ...Address) ([]Address, error)

func (Address) AsHostID

func (a Address) AsHostID() HostID

AsHostID returns HostID or panics

func (*Address) AsIPAddr

func (a *Address) AsIPAddr() net.IPAddr

AsIPAddr returns net.IPAddr or panics

func (Address) AsLocalUID

func (a Address) AsLocalUID() LocalUniqueID

AsLocalUID returns LocalUniqueID or panics

func (*Address) AsTCPAddr

func (a *Address) AsTCPAddr() net.TCPAddr

AsTCPAddr returns net.TCPAddr or panics

func (*Address) AsUDPAddr

func (a *Address) AsUDPAddr() net.UDPAddr

AsUDPAddr returns net.UDPAddr or panics

func (Address) CanConnect

func (a Address) CanConnect() bool

IsResolved indicates that this address can be connected

func (Address) Data

func (a Address) Data() longbits.ByteString

Data provides a binary form of this address, only host part, excludes port

func (Address) DataLen

func (a Address) DataLen() int

Data provides size of the a binary form

func (Address) EqualHostIdentity

func (a Address) EqualHostIdentity(o Address) bool

EqualHostIdentity is a convenience method to compare HostIdentity of both addresses

func (Address) HasName

func (a Address) HasName() bool

HasName returns true when this address has a textual name

func (Address) HasPort

func (a Address) HasPort() bool

HasPort returns true when a valid port is present

func (Address) HostIdentity

func (a Address) HostIdentity() Address

HostIdentity strips out all extra data, like port or a name of a resolved address

func (Address) HostString

func (a Address) HostString() string

HostString provides a readable string that describes the address/host. This string doesn't include port.

func (Address) IdentityType

func (a Address) IdentityType() nwaddr.Identity

func (Address) IsLoopback

func (a Address) IsLoopback() bool

IsLoopback returns true when address is IP and it is a loopback

func (Address) IsNetCompatible

func (a Address) IsNetCompatible() bool

IsResolved indicates that this address can be used for net.Addr

func (Address) IsResolved

func (a Address) IsResolved() bool

IsResolved indicates that this address doesn't require a resolver

func (Address) IsZero

func (a Address) IsZero() bool

func (Address) Name

func (a Address) Name() string

Name returns a textual name or panics

func (Address) Network

func (a Address) Network() string

Network enables use of Address as net.Addr, but will only be valid for IP/DNS identity

func (Address) Port

func (a Address) Port() int

Port returns a valid port or panics

func (Address) Resolve

func (a Address) Resolve(ctx context.Context, resolver BasicAddressResolver, preference Preference) (Address, error)

Resolve applies the given (resolver) to this address only when this address is unresolved. One address is picked by the (preference).

func (Address) ResolveAll

func (a Address) ResolveAll(ctx context.Context, resolver BasicAddressResolver) ([]Address, error)

ResolveAll applies the given (resolver) to this address only when this address is unresolved.

func (Address) String

func (a Address) String() string

String provides value compatible with net.Addr, but will only be valid for IP/DNS identity

func (Address) WithPort

func (a Address) WithPort(port uint16) Address

WithPort returns address with the given (port).

func (Address) WithoutName

func (a Address) WithoutName() Address

WithoutName returns address without a symbolic name. This does not change DNS (unresolved) address.

func (Address) WithoutPort

func (a Address) WithoutPort() Address

WithoutPort returns address without a port.

type AddressResolver

type AddressResolver interface {
	BasicAddressResolver
	LookupNetworkAddress(ctx context.Context, a Address) ([]net.IPAddr, error)
}

type BasicAddressResolver

type BasicAddressResolver interface {
	LookupIPAddr(ctx context.Context, host string) ([]net.IPAddr, error)
}

type DeserializationContext

type DeserializationContext interface {
	// GetPayloadVerifier() cryptkit.DataSignatureVerifier
	// GetPayloadDecrypter() cryptkit.Decrypter
	GetPayloadFactory() DeserializationFactory
}

type DeserializationFactory

type DeserializationFactory interface {
	DeserializePayloadFrom(DeserializationContext, PayloadCompleteness, *iokit.LimitedReader) (Serializable, error)
}

type Deserializer

type Deserializer interface {
	DeserializeFrom(DeserializationContext, io.Reader) error
}

type HostID

type HostID uint64

HostID is a protocol-depended numerical id of a peer

func (HostID) AsNodeID

func (v HostID) AsNodeID() ShortNodeID

func (HostID) IsAbsent

func (v HostID) IsAbsent() bool

func (HostID) IsNodeID

func (v HostID) IsNodeID() bool

func (HostID) String

func (v HostID) String() string

type LocalUniqueID

type LocalUniqueID uint64

LocalUniqueID is a protocol-independent locally unique id of a peer. This id wll change after de-registration of a peer.

func (LocalUniqueID) IsAbsent

func (v LocalUniqueID) IsAbsent() bool

func (LocalUniqueID) String

func (v LocalUniqueID) String() string

type PayloadCompleteness

type PayloadCompleteness bool
const (
	CompletePayload PayloadCompleteness = true
	PartialPayload  PayloadCompleteness = false
	HeadOnlyPayload                     = CompletePayload
)

type Preference

type Preference uint8
const (
	PreferV4 Preference
	PreferV6
)

func (Preference) ChooseOne

func (v Preference) ChooseOne(a []Address) Address

func (Preference) Default

func (v Preference) Default(name string) string

func (Preference) Override

func (v Preference) Override(name string) string

func (Preference) String

func (v Preference) String() string

type Serializable

type Serializable interface {
	SizeAwareSerializer
	SizeAwareDeserializer
}

type SerializationContext

type SerializationContext interface {
	SerializationContext()
}

type Serializer

type Serializer interface {
	SerializeTo(SerializationContext, io.Writer) error
}

type ShortNodeID

type ShortNodeID uint32

ShortNodeID is the shortened ID of a peer that belongs to a member of a globula.

const (
	AbsentShortNodeID   ShortNodeID = 0
	ShortNodeIDByteSize             = 4
)

func (ShortNodeID) Equal

func (v ShortNodeID) Equal(other ShortNodeID) bool

deprecated - do not use

func (ShortNodeID) IsAbsent

func (v ShortNodeID) IsAbsent() bool

func (ShortNodeID) String

func (v ShortNodeID) String() string

type SizeAwareDeserializer

type SizeAwareDeserializer interface {
	DeserializeFrom(DeserializationContext, *iokit.LimitedReader) error
}

type SizeAwareSerializer

type SizeAwareSerializer interface {
	ByteSize() uint
	SerializeTo(SerializationContext, *iokit.LimitedWriter) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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