Files
gluetun/internal/routing/routing.go
Quentin McGaw (desktop) 94b60d9f70 Maint: firewall and routing use logger.Debug
- Remove SetVerbose and SetDebug from both
- Log routing teardown
- Default logging level set to info
2021-07-23 18:20:18 +00:00

37 lines
831 B
Go

// Package routing defines interfaces to interact with the ip routes using NETLINK.
package routing
import (
"net"
"sync"
"github.com/qdm12/golibs/logging"
)
type Routing interface {
// Mutations
Setup() (err error)
TearDown() error
SetOutboundRoutes(outboundSubnets []net.IPNet) error
// 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 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{
logger: logger,
}
}