Documentation
¶
Index ¶
- Variables
- func AddrInList(addr ma.Multiaddr, list []ma.Multiaddr) bool
- func AddrIsShareableOnWAN(addr ma.Multiaddr) bool
- func AddrOverNonLocalIP(a ma.Multiaddr) bool
- func AddrUsable(a ma.Multiaddr, partial bool) bool
- func CheckNATWarning(observed, expected ma.Multiaddr, listen []ma.Multiaddr)
- func FilterAddrs(a []ma.Multiaddr, filter func(ma.Multiaddr) bool) []ma.Multiaddr
- func FilterUsableAddrs(a []ma.Multiaddr) []ma.Multiaddr
- func InterfaceAddresses() ([]ma.Multiaddr, error)
- func ResolveUnspecifiedAddress(resolve ma.Multiaddr, ifaceAddrs []ma.Multiaddr) ([]ma.Multiaddr, error)
- func ResolveUnspecifiedAddresses(unspecAddrs, ifaceAddrs []ma.Multiaddr) ([]ma.Multiaddr, error)
- func Subtract(a, b []ma.Multiaddr) []ma.Multiaddr
- func WANShareableAddrs(inp []ma.Multiaddr) []ma.Multiaddr
Constants ¶
This section is empty.
Variables ¶
var SupportedTransportProtocols = [][]ma.Protocol{}
SupportedTransportProtocols is the list of supported transports for the swarm. These are []ma.Protocol lists. Populated at runtime from SupportedTransportStrings
var SupportedTransportStrings = []string{
"/ip4/tcp",
"/ip6/tcp",
"/ip4/udp/utp",
"/ip6/udp/utp",
}
SupportedTransportStrings is the list of supported transports for the swarm. These are strings of encapsulated multiaddr protocols. E.g.:
/ip4/tcp
Functions ¶
func AddrInList ¶
func AddrInList(addr ma.Multiaddr, list []ma.Multiaddr) bool
AddrInList returns whether or not an address is part of a list. this is useful to check if NAT is happening (or other bugs?)
func AddrIsShareableOnWAN ¶
func AddrIsShareableOnWAN(addr ma.Multiaddr) bool
AddrIsShareableOnWAN returns whether the given address should be shareable on the wide area network (wide internet).
func AddrOverNonLocalIP ¶
func AddrOverNonLocalIP(a ma.Multiaddr) bool
AddrOverNonLocalIP returns whether the addr uses a non-local ip link
func AddrUsable ¶
func AddrUsable(a ma.Multiaddr, partial bool) bool
AddrUsable returns whether our network can use this addr. We only use the transports in SupportedTransportStrings, and we do not link local addresses. Loopback is ok as we need to be able to connect to multiple ipfs nodes in the same machine.
func CheckNATWarning ¶
func CheckNATWarning(observed, expected ma.Multiaddr, listen []ma.Multiaddr)
CheckNATWarning checks if our observed addresses differ. if so, informs the user that certain things might not work yet
func FilterAddrs ¶
func FilterAddrs(a []ma.Multiaddr, filter func(ma.Multiaddr) bool) []ma.Multiaddr
FilterAddrs is a filter that removes certain addresses, according to filter. if filter returns true, the address is kept.
func FilterUsableAddrs ¶
func FilterUsableAddrs(a []ma.Multiaddr) []ma.Multiaddr
FilterUsableAddrs removes certain addresses from a list. the addresses removed are those known NOT to work with our network. Namely, addresses with UTP.
func InterfaceAddresses ¶
func InterfaceAddresses() ([]ma.Multiaddr, error)
InterfaceAddresses returns a list of addresses associated with local machine Note: we do not return link local addresses. IP loopback is ok, because we may be connecting to other nodes in the same machine.
func ResolveUnspecifiedAddress ¶
func ResolveUnspecifiedAddress(resolve ma.Multiaddr, ifaceAddrs []ma.Multiaddr) ([]ma.Multiaddr, error)
ResolveUnspecifiedAddress expands an unspecified ip addresses (/ip4/0.0.0.0, /ip6/::) to use the known local interfaces. If ifaceAddr is nil, we request interface addresses from the network stack. (this is so you can provide a cached value if resolving many addrs)
func ResolveUnspecifiedAddresses ¶
func ResolveUnspecifiedAddresses(unspecAddrs, ifaceAddrs []ma.Multiaddr) ([]ma.Multiaddr, error)
ResolveUnspecifiedAddresses expands unspecified ip addresses (/ip4/0.0.0.0, /ip6/::) to use the known local interfaces.
func Subtract ¶
func Subtract(a, b []ma.Multiaddr) []ma.Multiaddr
Subtract filters out all addrs in b from a
func WANShareableAddrs ¶
func WANShareableAddrs(inp []ma.Multiaddr) []ma.Multiaddr
WANShareableAddrs filters addresses based on whether they're shareable on WAN
Types ¶
This section is empty.