mirror of
https://github.com/logos-messaging/go-multiaddr.git
synced 2026-01-02 13:03:11 +00:00
net: added InterfaceMultiaddrs
This commit is contained in:
parent
5d64ba1250
commit
fb33680d08
@ -1,4 +1,4 @@
|
||||
package net
|
||||
package manet
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
@ -70,6 +70,13 @@ func FromNetAddr(a net.Addr) (ma.Multiaddr, error) {
|
||||
}
|
||||
return FromIP(ac.IP)
|
||||
|
||||
case "ip+net":
|
||||
ac, ok := a.(*net.IPNet)
|
||||
if !ok {
|
||||
return nil, errIncorrectNetAddr
|
||||
}
|
||||
return FromIP(ac.IP)
|
||||
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown network %v", a.Network())
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package net
|
||||
package manet
|
||||
|
||||
import (
|
||||
"net"
|
||||
|
||||
4
doc.go
4
doc.go
@ -1,5 +1,5 @@
|
||||
// Package net provides Multiaddr specific versions of common
|
||||
// Package manet provides Multiaddr specific versions of common
|
||||
// functions in stdlib's net package. This means wrappers of
|
||||
// standard net symbols like net.Dial and net.Listen, as well
|
||||
// as conversion to/from net.Addr.
|
||||
package net
|
||||
package manet
|
||||
|
||||
19
net.go
19
net.go
@ -1,4 +1,4 @@
|
||||
package net
|
||||
package manet
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
@ -216,3 +216,20 @@ func Listen(laddr ma.Multiaddr) (Listener, error) {
|
||||
laddr: laddr,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// InterfaceMultiaddrs will return the addresses matching net.InterfaceAddrs
|
||||
func InterfaceMultiaddrs() ([]ma.Multiaddr, error) {
|
||||
addrs, err := net.InterfaceAddrs()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
maddrs := make([]ma.Multiaddr, len(addrs))
|
||||
for i, a := range addrs {
|
||||
maddrs[i], err = FromNetAddr(a)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
return maddrs, nil
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package net
|
||||
package manet
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user