mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-06 01:07:41 +08:00
Combined client + server code, Added HA ability, minor bug fixes
This commit is contained in:
25
logic/wireguard.go
Normal file
25
logic/wireguard.go
Normal file
@@ -0,0 +1,25 @@
|
||||
package logic
|
||||
|
||||
import (
|
||||
"github.com/gravitl/netmaker/models"
|
||||
"golang.zx2c4.com/wireguard/wgctrl"
|
||||
)
|
||||
|
||||
func GetSystemPeers(node *models.Node) (map[string]string, error) {
|
||||
peers := make(map[string]string)
|
||||
|
||||
client, err := wgctrl.New()
|
||||
if err != nil {
|
||||
return peers, err
|
||||
}
|
||||
device, err := client.Device(node.Interface)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, peer := range device.Peers {
|
||||
if IsBase64(peer.PublicKey.String()) && peer.Endpoint != nil && CheckEndpoint(peer.Endpoint.String()) {
|
||||
peers[peer.PublicKey.String()] = peer.Endpoint.String()
|
||||
}
|
||||
}
|
||||
return peers, nil
|
||||
}
|
Reference in New Issue
Block a user