From f34594f8d2252b94f9071e8b46fac8da62c36dda Mon Sep 17 00:00:00 2001 From: Christoph Haas Date: Thu, 8 Apr 2021 19:10:38 +0200 Subject: [PATCH] fix allowed ip's for peers in server-mode --- internal/wireguard/peermanager.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/internal/wireguard/peermanager.go b/internal/wireguard/peermanager.go index bf3ac53..9db25fe 100644 --- a/internal/wireguard/peermanager.go +++ b/internal/wireguard/peermanager.go @@ -148,12 +148,18 @@ func (p Peer) GetConfig(dev *Device) wgtypes.PeerConfig { keepAlive = &keepAliveDuration } - peerAllowedIPs := p.GetAllowedIPs() - allowedIPs := make([]net.IPNet, len(peerAllowedIPs)) - for i, ip := range peerAllowedIPs { + allowedIPs := make([]net.IPNet, 0) + var peerAllowedIPs []string + switch dev.Type { + case DeviceTypeClient: + peerAllowedIPs = p.GetAllowedIPs() + case DeviceTypeServer: + peerAllowedIPs = p.GetIPAddresses() + } + for _, ip := range peerAllowedIPs { _, ipNet, err := net.ParseCIDR(ip) if err == nil { - allowedIPs[i] = *ipNet + allowedIPs = append(allowedIPs, *ipNet) } }