From 5e9ae9fa1f329d51ddc2d0eeef38407cbec3409b Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Thu, 30 Oct 2025 17:14:45 +0100 Subject: [PATCH] fix(wireguard): specify IP family for new route (#2629) --- internal/wireguard/route.go | 5 +++++ internal/wireguard/route_test.go | 2 ++ 2 files changed, 7 insertions(+) diff --git a/internal/wireguard/route.go b/internal/wireguard/route.go index 84178d03..9893dc76 100644 --- a/internal/wireguard/route.go +++ b/internal/wireguard/route.go @@ -32,9 +32,14 @@ func (w *Wireguard) addRoutes(link netlink.Link, destinations []netip.Prefix, func (w *Wireguard) addRoute(link netlink.Link, dst netip.Prefix, firewallMark uint32, ) (err error) { + family := netlink.FamilyV4 + if dst.Addr().Is6() { + family = netlink.FamilyV6 + } route := netlink.Route{ LinkIndex: link.Index, Dst: dst, + Family: family, Table: int(firewallMark), } diff --git a/internal/wireguard/route_test.go b/internal/wireguard/route_test.go index 57e48afa..ce05ac60 100644 --- a/internal/wireguard/route_test.go +++ b/internal/wireguard/route_test.go @@ -37,6 +37,7 @@ func Test_Wireguard_addRoute(t *testing.T) { expectedRoute: netlink.Route{ LinkIndex: linkIndex, Dst: ipPrefix, + Family: netlink.FamilyV4, Table: firewallMark, }, }, @@ -49,6 +50,7 @@ func Test_Wireguard_addRoute(t *testing.T) { expectedRoute: netlink.Route{ LinkIndex: linkIndex, Dst: ipPrefix, + Family: netlink.FamilyV4, Table: firewallMark, }, routeAddErr: errDummy,