Fix: restricting route listing to IPv4 only (#419)

This commit is contained in:
Michael Robbins
2021-04-11 22:50:59 +10:00
committed by GitHub
parent d1558a3472
commit 69f9461bcd
2 changed files with 6 additions and 6 deletions

View File

@@ -95,7 +95,7 @@ func (c *configurator) enable(ctx context.Context) (err error) {
}
for _, network := range c.localNetworks {
if err := c.acceptOutputFromIPToSubnet(ctx, network.InterfaceName, network.IP, network.Subnet, remove); err != nil {
if err := c.acceptOutputFromIPToSubnet(ctx, network.InterfaceName, network.IP, *network.IPNet, remove); err != nil {
return fmt.Errorf("cannot enable firewall: %w", err)
}
}
@@ -109,7 +109,7 @@ func (c *configurator) enable(ctx context.Context) (err error) {
// Allows packets from any IP address to go through eth0 / local network
// to reach Gluetun.
for _, network := range c.localNetworks {
if err := c.acceptInputToSubnet(ctx, network.InterfaceName, network.Subnet, remove); err != nil {
if err := c.acceptInputToSubnet(ctx, network.InterfaceName, *network.IPNet, remove); err != nil {
return fmt.Errorf("cannot enable firewall: %w", err)
}
}

View File

@@ -10,7 +10,7 @@ import (
)
type LocalNetwork struct {
Subnet net.IPNet
IPNet *net.IPNet
InterfaceName string
IP net.IP
}
@@ -117,7 +117,7 @@ func (r *routing) LocalNetworks() (localNetworks []LocalNetwork, err error) {
return localNetworks, fmt.Errorf("cannot find any local interfaces")
}
routes, err := netlink.RouteList(nil, netlink.FAMILY_ALL)
routes, err := netlink.RouteList(nil, netlink.FAMILY_V4)
if err != nil {
return localNetworks, fmt.Errorf("cannot list local routes: %w", err)
}
@@ -131,9 +131,9 @@ func (r *routing) LocalNetworks() (localNetworks []LocalNetwork, err error) {
var localNet LocalNetwork
localNet.Subnet = *route.Dst
localNet.IPNet = route.Dst
if r.verbose {
r.logger.Info("local subnet found: %s", localNet.Subnet.String())
r.logger.Info("local ipnet found: %s", localNet.IPNet.String())
}
link, err := netlink.LinkByIndex(route.LinkIndex)