Преглед изворни кода

pkg/mesh: enable generating config without peer

This commit re-enables old functionality, which permitted the generation
of the configuration for a cluster without any peers.

Signed-off-by: Lucas Servén Marín <lserven@gmail.com>
Lucas Servén Marín пре 6 година
родитељ
комит
b54b31b699
1 измењених фајлова са 4 додато и 7 уклоњено
  1. 4 7
      pkg/mesh/topology.go

+ 4 - 7
pkg/mesh/topology.go

@@ -400,22 +400,19 @@ func (t *Topology) AsPeer() *wireguard.Peer {
 
 // PeerConf generates a WireGuard configuration file for a given peer in a Topology.
 func (t *Topology) PeerConf(name string) *wireguard.Conf {
-	var p *Peer
+	var pka int
 	for i := range t.peers {
 		if t.peers[i].Name == name {
-			p = t.peers[i]
+			pka = t.peers[i].PersistentKeepalive
 			break
 		}
 	}
-	if p == nil {
-		return nil
-	}
 	c := &wireguard.Conf{}
 	for _, s := range t.segments {
 		peer := &wireguard.Peer{
 			AllowedIPs:          s.allowedIPs,
 			Endpoint:            s.endpoint,
-			PersistentKeepalive: p.PersistentKeepalive,
+			PersistentKeepalive: pka,
 			PublicKey:           s.key,
 		}
 		c.Peers = append(c.Peers, peer)
@@ -426,7 +423,7 @@ func (t *Topology) PeerConf(name string) *wireguard.Conf {
 		}
 		peer := &wireguard.Peer{
 			AllowedIPs:          t.peers[i].AllowedIPs,
-			PersistentKeepalive: p.PersistentKeepalive,
+			PersistentKeepalive: pka,
 			PublicKey:           t.peers[i].PublicKey,
 			Endpoint:            t.peers[i].Endpoint,
 		}