Maint: internal/routing returns *Routine struct
This commit is contained in:
@@ -234,7 +234,7 @@ func _main(ctx context.Context, buildInfo models.BuildInformation,
|
||||
Prefix: "routing: ",
|
||||
Level: firewallLogLevel,
|
||||
})
|
||||
routingConf := routing.NewRouting(routingLogger)
|
||||
routingConf := routing.New(routingLogger)
|
||||
|
||||
defaultInterface, defaultGateway, err := routingConf.DefaultRoute()
|
||||
if err != nil {
|
||||
|
||||
@@ -24,7 +24,7 @@ type Setuper interface {
|
||||
Setup() (err error)
|
||||
}
|
||||
|
||||
func (r *routing) Setup() (err error) {
|
||||
func (r *Routing) Setup() (err error) {
|
||||
defaultIP, err := r.DefaultIP()
|
||||
if err != nil {
|
||||
return fmt.Errorf("%w: %s", ErrDefaultIP, err)
|
||||
@@ -67,7 +67,7 @@ type TearDowner interface {
|
||||
TearDown() error
|
||||
}
|
||||
|
||||
func (r *routing) TearDown() error {
|
||||
func (r *Routing) TearDown() error {
|
||||
defaultIP, err := r.DefaultIP()
|
||||
if err != nil {
|
||||
return fmt.Errorf("%w: %s", ErrDefaultIP, err)
|
||||
|
||||
@@ -17,7 +17,7 @@ var (
|
||||
ErrRuleDel = errors.New("cannot delete routing rule")
|
||||
)
|
||||
|
||||
func (r *routing) addRouteVia(destination net.IPNet, gateway net.IP, iface string, table int) error {
|
||||
func (r *Routing) addRouteVia(destination net.IPNet, gateway net.IP, iface string, table int) error {
|
||||
destinationStr := destination.String()
|
||||
r.logger.Info("adding route for " + destinationStr)
|
||||
r.logger.Debug("ip route replace " + destinationStr +
|
||||
@@ -42,7 +42,7 @@ func (r *routing) addRouteVia(destination net.IPNet, gateway net.IP, iface strin
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *routing) deleteRouteVia(destination net.IPNet, gateway net.IP, iface string, table int) (err error) {
|
||||
func (r *Routing) deleteRouteVia(destination net.IPNet, gateway net.IP, iface string, table int) (err error) {
|
||||
destinationStr := destination.String()
|
||||
r.logger.Info("deleting route for " + destinationStr)
|
||||
r.logger.Debug("ip route delete " + destinationStr +
|
||||
@@ -67,7 +67,7 @@ func (r *routing) deleteRouteVia(destination net.IPNet, gateway net.IP, iface st
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *routing) addIPRule(src net.IP, table, priority int) error {
|
||||
func (r *Routing) addIPRule(src net.IP, table, priority int) error {
|
||||
r.logger.Debug("ip rule add from " + src.String() +
|
||||
" lookup " + strconv.Itoa(table) +
|
||||
" pref " + strconv.Itoa(priority))
|
||||
@@ -97,7 +97,7 @@ func (r *routing) addIPRule(src net.IP, table, priority int) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *routing) deleteIPRule(src net.IP, table, priority int) error {
|
||||
func (r *Routing) deleteIPRule(src net.IP, table, priority int) error {
|
||||
r.logger.Debug("ip rule del from " + src.String() +
|
||||
" lookup " + strconv.Itoa(table) +
|
||||
" pref " + strconv.Itoa(priority))
|
||||
|
||||
@@ -14,7 +14,7 @@ type OutboundRoutesSetter interface {
|
||||
SetOutboundRoutes(outboundSubnets []net.IPNet) error
|
||||
}
|
||||
|
||||
func (r *routing) SetOutboundRoutes(outboundSubnets []net.IPNet) error {
|
||||
func (r *Routing) SetOutboundRoutes(outboundSubnets []net.IPNet) error {
|
||||
defaultInterface, defaultGateway, err := r.DefaultRoute()
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -22,7 +22,7 @@ func (r *routing) SetOutboundRoutes(outboundSubnets []net.IPNet) error {
|
||||
return r.setOutboundRoutes(outboundSubnets, defaultInterface, defaultGateway)
|
||||
}
|
||||
|
||||
func (r *routing) setOutboundRoutes(outboundSubnets []net.IPNet,
|
||||
func (r *Routing) setOutboundRoutes(outboundSubnets []net.IPNet,
|
||||
defaultInterfaceName string, defaultGateway net.IP) error {
|
||||
r.stateMutex.Lock()
|
||||
defer r.stateMutex.Unlock()
|
||||
@@ -38,7 +38,7 @@ func (r *routing) setOutboundRoutes(outboundSubnets []net.IPNet,
|
||||
return r.addOutboundSubnets(subnetsToAdd, defaultInterfaceName, defaultGateway)
|
||||
}
|
||||
|
||||
func (r *routing) removeOutboundSubnets(subnets []net.IPNet,
|
||||
func (r *Routing) removeOutboundSubnets(subnets []net.IPNet,
|
||||
defaultInterfaceName string, defaultGateway net.IP) {
|
||||
for _, subnet := range subnets {
|
||||
const table = 0
|
||||
@@ -50,7 +50,7 @@ func (r *routing) removeOutboundSubnets(subnets []net.IPNet,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *routing) addOutboundSubnets(subnets []net.IPNet,
|
||||
func (r *Routing) addOutboundSubnets(subnets []net.IPNet,
|
||||
defaultInterfaceName string, defaultGateway net.IP) error {
|
||||
for _, subnet := range subnets {
|
||||
const table = 0
|
||||
|
||||
@@ -37,7 +37,7 @@ type DefaultRouteGetter interface {
|
||||
DefaultRoute() (defaultInterface string, defaultGateway net.IP, err error)
|
||||
}
|
||||
|
||||
func (r *routing) DefaultRoute() (defaultInterface string, defaultGateway net.IP, err error) {
|
||||
func (r *Routing) DefaultRoute() (defaultInterface string, defaultGateway net.IP, err error) {
|
||||
routes, err := netlink.RouteList(nil, netlink.FAMILY_ALL)
|
||||
if err != nil {
|
||||
return "", nil, fmt.Errorf("%w: %s", ErrRoutesList, err)
|
||||
@@ -64,7 +64,7 @@ type DefaultIPGetter interface {
|
||||
DefaultIP() (defaultIP net.IP, err error)
|
||||
}
|
||||
|
||||
func (r *routing) DefaultIP() (ip net.IP, err error) {
|
||||
func (r *Routing) DefaultIP() (ip net.IP, err error) {
|
||||
routes, err := netlink.RouteList(nil, netlink.FAMILY_ALL)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%w: %s", ErrRoutesList, err)
|
||||
@@ -92,7 +92,7 @@ type LocalSubnetGetter interface {
|
||||
LocalSubnet() (defaultSubnet net.IPNet, err error)
|
||||
}
|
||||
|
||||
func (r *routing) LocalSubnet() (defaultSubnet net.IPNet, err error) {
|
||||
func (r *Routing) LocalSubnet() (defaultSubnet net.IPNet, err error) {
|
||||
routes, err := netlink.RouteList(nil, netlink.FAMILY_ALL)
|
||||
if err != nil {
|
||||
return defaultSubnet, fmt.Errorf("%w: %s", ErrRoutesList, err)
|
||||
@@ -125,7 +125,7 @@ type LocalNetworksGetter interface {
|
||||
LocalNetworks() (localNetworks []LocalNetwork, err error)
|
||||
}
|
||||
|
||||
func (r *routing) LocalNetworks() (localNetworks []LocalNetwork, err error) {
|
||||
func (r *Routing) LocalNetworks() (localNetworks []LocalNetwork, err error) {
|
||||
links, err := netlink.LinkList()
|
||||
if err != nil {
|
||||
return localNetworks, fmt.Errorf("%w: %s", ErrLinkList, err)
|
||||
@@ -187,7 +187,7 @@ func (r *routing) LocalNetworks() (localNetworks []LocalNetwork, err error) {
|
||||
return localNetworks, nil
|
||||
}
|
||||
|
||||
func (r *routing) assignedIP(interfaceName string) (ip net.IP, err error) {
|
||||
func (r *Routing) assignedIP(interfaceName string) (ip net.IP, err error) {
|
||||
iface, err := net.InterfaceByName(interfaceName)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%w: %s: %s", ErrInterfaceNotFound, interfaceName, err)
|
||||
@@ -212,7 +212,7 @@ type VPNDestinationIPGetter interface {
|
||||
VPNDestinationIP() (ip net.IP, err error)
|
||||
}
|
||||
|
||||
func (r *routing) VPNDestinationIP() (ip net.IP, err error) {
|
||||
func (r *Routing) VPNDestinationIP() (ip net.IP, err error) {
|
||||
routes, err := netlink.RouteList(nil, netlink.FAMILY_ALL)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%w: %s", ErrRoutesList, err)
|
||||
@@ -244,7 +244,7 @@ type VPNLocalGatewayIPGetter interface {
|
||||
VPNLocalGatewayIP(vpnIntf string) (ip net.IP, err error)
|
||||
}
|
||||
|
||||
func (r *routing) VPNLocalGatewayIP(vpnIntf string) (ip net.IP, err error) {
|
||||
func (r *Routing) VPNLocalGatewayIP(vpnIntf string) (ip net.IP, err error) {
|
||||
routes, err := netlink.RouteList(nil, netlink.FAMILY_ALL)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%w: %s", ErrRoutesList, err)
|
||||
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
"github.com/qdm12/golibs/logging"
|
||||
)
|
||||
|
||||
type Routing interface {
|
||||
type ReadWriter interface {
|
||||
Reader
|
||||
Writer
|
||||
}
|
||||
@@ -32,15 +32,15 @@ type Writer interface {
|
||||
OutboundRoutesSetter
|
||||
}
|
||||
|
||||
type routing struct {
|
||||
type Routing struct {
|
||||
logger logging.Logger
|
||||
outboundSubnets []net.IPNet
|
||||
stateMutex sync.RWMutex
|
||||
}
|
||||
|
||||
// NewRouting creates a new routing instance.
|
||||
func NewRouting(logger logging.Logger) Routing {
|
||||
return &routing{
|
||||
// New creates a new routing instance.
|
||||
func New(logger logging.Logger) *Routing {
|
||||
return &Routing{
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user