diff --git a/internal/app/wireguard/wireguard_interfaces.go b/internal/app/wireguard/wireguard_interfaces.go index 63b2288..34dac09 100644 --- a/internal/app/wireguard/wireguard_interfaces.go +++ b/internal/app/wireguard/wireguard_interfaces.go @@ -11,6 +11,7 @@ import ( "github.com/h44z/wg-portal/internal/app" "github.com/h44z/wg-portal/internal/app/audit" + "github.com/h44z/wg-portal/internal/config" "github.com/h44z/wg-portal/internal/domain" ) @@ -267,18 +268,12 @@ func (m Manager) RestoreInterfaceState( // restore peers for _, peer := range peers { switch { - case iface.IsDisabled(): // if interface is disabled, delete all peers + case iface.IsDisabled() && iface.Backend == config.LocalBackendName: // if interface is disabled, delete all peers if err := m.wg.GetController(iface).DeletePeer(ctx, iface.Identifier, peer.Identifier); err != nil { return fmt.Errorf("failed to remove peer %s for disabled interface %s: %w", peer.Identifier, iface.Identifier, err) } - case peer.IsDisabled(): // if peer is disabled, delete it - if err := m.wg.GetController(iface).DeletePeer(ctx, iface.Identifier, - peer.Identifier); err != nil { - return fmt.Errorf("failed to remove disbaled peer %s from interface %s: %w", - peer.Identifier, iface.Identifier, err) - } default: // update peer err := m.wg.GetController(iface).SavePeer(ctx, iface.Identifier, peer.Identifier, func(pp *domain.PhysicalPeer) (*domain.PhysicalPeer, error) {