Maint: routing interface composition

This commit is contained in:
Quentin McGaw (desktop)
2021-07-26 16:18:53 +00:00
parent 73c383fd65
commit d7a6caa2ac
5 changed files with 57 additions and 11 deletions

View File

@@ -9,17 +9,27 @@ import (
)
type Routing interface {
// Mutations
Setup() (err error)
TearDown() error
SetOutboundRoutes(outboundSubnets []net.IPNet) error
Reader
Writer
}
// Read only
DefaultRoute() (defaultInterface string, defaultGateway net.IP, err error)
LocalNetworks() (localNetworks []LocalNetwork, err error)
DefaultIP() (defaultIP net.IP, err error)
VPNDestinationIP() (ip net.IP, err error)
VPNLocalGatewayIP() (ip net.IP, err error)
type Reader interface {
DefaultRouteGetter
DefaultIPGetter
LocalSubnetGetter
LocalNetworksGetter
VPNGetter
}
type VPNGetter interface {
VPNDestinationIPGetter
VPNLocalGatewayIPGetter
}
type Writer interface {
Setuper
TearDowner
OutboundRoutesSetter
}
type routing struct {