Files
cunicu/pkg/device/device.go
Steffen Vogel 72dc2ef04e simplify and fix shutdown of daemon
Signed-off-by: Steffen Vogel <post@steffenvogel.de>
2022-08-25 18:55:53 +02:00

56 lines
831 B
Go

package device
import (
"net"
"os"
)
const (
RouteProtocol = 98
)
type Device interface {
Close() error
// Getter
Name() string
Index() int
MTU() int
// Setter
SetMTU(mtu int) error
SetUp() error
SetDown() error
AddAddress(ip *net.IPNet) error
AddRoute(dst *net.IPNet) error
DeleteAddress(ip *net.IPNet) error
DeleteRoute(dst *net.IPNet) error
}
func NewDevice(name string, user bool) (kernelDev Device, err error) {
if user {
kernelDev, err = NewUserDevice(name)
} else {
kernelDev, err = NewKernelDevice(name)
}
if err != nil {
return
}
return kernelDev, nil
}
func FindDevice(name string) (Device, error) {
if dev, err := FindUserDevice(name); err == nil {
return dev, nil
} else if dev, err := FindKernelDevice(name); err == nil {
return dev, nil
}
return nil, os.ErrNotExist
}