mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-11 07:34:31 +08:00
Fix issue with netclient failing when interface doesnt exist, issue #221
This commit is contained in:
parent
80dd97455e
commit
fa5de4e777
2 changed files with 14 additions and 6 deletions
|
@ -6,6 +6,7 @@ import (
|
|||
"errors"
|
||||
"log"
|
||||
"strings"
|
||||
"os"
|
||||
|
||||
nodepb "github.com/gravitl/netmaker/grpc"
|
||||
"github.com/gravitl/netmaker/models"
|
||||
|
@ -226,7 +227,12 @@ func Pull(network string, manual bool) (*models.Node, error) {
|
|||
}
|
||||
} else {
|
||||
if err = wireguard.SetWGConfig(network, true); err != nil {
|
||||
return nil, err
|
||||
if errors.Is(err, os.ErrNotExist) {
|
||||
log.Println("readding interface")
|
||||
return Pull(network, true)
|
||||
} else {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
setDNS(&resNode, servercfg, &cfg.Node)
|
||||
|
|
|
@ -234,7 +234,7 @@ func SetWGConfig(network string, peerupdate bool) error {
|
|||
return err
|
||||
}
|
||||
if peerupdate {
|
||||
SetPeers(nodecfg.Interface, nodecfg.PersistentKeepalive, peers)
|
||||
err = SetPeers(nodecfg.Interface, nodecfg.PersistentKeepalive, peers)
|
||||
} else {
|
||||
err = InitWireguard(&nodecfg, privkey, peers, hasGateway, gateways)
|
||||
}
|
||||
|
@ -245,22 +245,22 @@ func SetWGConfig(network string, peerupdate bool) error {
|
|||
return err
|
||||
}
|
||||
|
||||
func SetPeers(iface string, keepalive int32, peers []wgtypes.PeerConfig) {
|
||||
func SetPeers(iface string, keepalive int32, peers []wgtypes.PeerConfig) error {
|
||||
|
||||
client, err := wgctrl.New()
|
||||
if err != nil {
|
||||
log.Println("failed to start wgctrl")
|
||||
return
|
||||
return err
|
||||
}
|
||||
device, err := client.Device(iface)
|
||||
if err != nil {
|
||||
log.Println("failed to parse interface")
|
||||
return
|
||||
return err
|
||||
}
|
||||
devicePeers := device.Peers
|
||||
if len(devicePeers) > 1 && len(peers) == 0 {
|
||||
log.Println("no peers pulled")
|
||||
return
|
||||
return err
|
||||
}
|
||||
|
||||
for _, peer := range peers {
|
||||
|
@ -316,6 +316,8 @@ func SetPeers(iface string, keepalive int32, peers []wgtypes.PeerConfig) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func StorePrivKey(key string, network string) error {
|
||||
|
|
Loading…
Add table
Reference in a new issue