blob: ec80c0b7830fe9b16e3fc44414d0c1077922533e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package vnet
import (
"errors"
"net"
)
var errNoAddressAssigned = errors.New("no address assigned")
// See: https://play.golang.org/p/nBO9KGYEziv
// InterfaceBase ...
type InterfaceBase net.Interface
// Interface ...
type Interface struct {
InterfaceBase
addrs []net.Addr
}
// NewInterface ...
func NewInterface(ifc net.Interface) *Interface {
return &Interface{
InterfaceBase: InterfaceBase(ifc),
addrs: nil,
}
}
// AddAddr ...
func (ifc *Interface) AddAddr(addr net.Addr) {
ifc.addrs = append(ifc.addrs, addr)
}
// Addrs ...
func (ifc *Interface) Addrs() ([]net.Addr, error) {
if len(ifc.addrs) == 0 {
return nil, errNoAddressAssigned
}
return ifc.addrs, nil
}
|