MCPcopy Create free account
hub / github.com/PasarGuard/node / buildPeerConfigsForRestart

Function buildPeerConfigsForRestart

backend/wireguard/wireguard.go:301–317  ·  view source on GitHub ↗
(peers []*PeerInfo, presharedKey *wgtypes.Key)

Source from the content-addressed store, hash-verified

299}
300
301func buildPeerConfigsForRestart(peers []*PeerInfo, presharedKey *wgtypes.Key) ([]wgtypes.PeerConfig, error) {
302 orderedPeers := append([]*PeerInfo(nil), peers...)
303 sort.Slice(orderedPeers, func(i, j int) bool {
304 return orderedPeers[i].PublicKey.String() < orderedPeers[j].PublicKey.String()
305 })
306
307 peerConfigs := make([]wgtypes.PeerConfig, 0, len(orderedPeers))
308 for _, peer := range orderedPeers {
309 if len(peer.AllowedIPs) == 0 {
310 return nil, fmt.Errorf("peer %s has no allowed IPs", peer.Email)
311 }
312
313 peerConfigs = append(peerConfigs, buildAddConfig(peer.PublicKey, peer.AllowedIPs, presharedKey))
314 }
315
316 return peerConfigs, nil
317}
318
319func (wg *WireGuard) shutdownLocked() {
320 if wg.cancelFunc != nil {

Calls 2

buildAddConfigFunction · 0.85
StringMethod · 0.45