mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-04 08:27:27 +08:00
added time to prevent UDP reset
This commit is contained in:
@@ -282,29 +282,7 @@ func (s *NodeServiceServer) GetExtPeers(ctx context.Context, req *nodepb.Object)
|
||||
}
|
||||
|
||||
// == private methods ==
|
||||
/*
|
||||
func getNewOrLegacyNode(data string) (models.Node, error) {
|
||||
var reqNode, node models.Node
|
||||
var err error
|
||||
|
||||
if err = json.Unmarshal([]byte(data), &reqNode); err != nil {
|
||||
oldID := strings.Split(data, "###") // handle legacy client IDs
|
||||
if len(oldID) == 2 {
|
||||
if node, err = logic.GetNodeByID(reqNode.ID); err != nil {
|
||||
return models.Node{}, err
|
||||
}
|
||||
} else {
|
||||
return models.Node{}, err
|
||||
}
|
||||
} else {
|
||||
node, err = logic.GetNodeByID(reqNode.ID)
|
||||
if err != nil {
|
||||
return models.Node{}, err
|
||||
}
|
||||
}
|
||||
return node, nil
|
||||
}
|
||||
*/
|
||||
func getNodeFromRequestData(data string) (models.Node, error) {
|
||||
var reqNode models.Node
|
||||
var err error
|
||||
|
@@ -121,6 +121,13 @@ func MessageQueue(ctx context.Context, network string) {
|
||||
var cfg config.ClientConfig
|
||||
cfg.Network = network
|
||||
ncutils.Log("pulling latest config for " + cfg.Network)
|
||||
var configPath = fmt.Sprintf("%sconfig/netconfig-%s", ncutils.GetNetclientPathSpecific(), network)
|
||||
fileInfo, err := os.Stat(configPath)
|
||||
if err != nil {
|
||||
ncutils.Log("could not stat config file: " + configPath)
|
||||
}
|
||||
// speed up UDP
|
||||
if time.Now().After(fileInfo.ModTime().Add(time.Minute)) {
|
||||
sleepTime := 2
|
||||
for {
|
||||
_, err := Pull(network, true)
|
||||
@@ -135,6 +142,7 @@ func MessageQueue(ctx context.Context, network string) {
|
||||
time.Sleep(time.Second * time.Duration(sleepTime))
|
||||
sleepTime = sleepTime * 2
|
||||
}
|
||||
}
|
||||
time.Sleep(time.Second << 1)
|
||||
cfg.ReadConfig()
|
||||
ncutils.Log("daemon started for network: " + network)
|
||||
|
@@ -109,9 +109,9 @@ func JoinNetwork(cfg config.ClientConfig, privateKey string) error {
|
||||
}
|
||||
|
||||
if ncutils.IsLinux() {
|
||||
_, err := exec.LookPath("resolvconf")
|
||||
_, err := exec.LookPath("resolvectl")
|
||||
if err != nil {
|
||||
ncutils.PrintLog("resolvconf not present", 2)
|
||||
ncutils.PrintLog("resolvectl not present", 2)
|
||||
ncutils.PrintLog("unable to configure DNS automatically, disabling automated DNS management", 2)
|
||||
cfg.Node.DNSOn = "no"
|
||||
}
|
||||
|
@@ -7,8 +7,8 @@ import (
|
||||
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
||||
)
|
||||
|
||||
// SetPeerRoutes - sets/removes ip routes for each peer on a network
|
||||
func SetPeerRoutes(iface string, oldPeers map[string][]net.IPNet, newPeers []wgtypes.PeerConfig) {
|
||||
|
||||
// traverse through all recieved peers
|
||||
for _, peer := range newPeers {
|
||||
// if pubkey found in existing peers, check against existing peer
|
||||
@@ -29,9 +29,9 @@ func SetPeerRoutes(iface string, oldPeers map[string][]net.IPNet, newPeers []wgt
|
||||
}
|
||||
}
|
||||
}
|
||||
delete(oldPeers, peer.PublicKey.String())
|
||||
delete(oldPeers, peer.PublicKey.String()) // remove peer as it was found and processed
|
||||
} else {
|
||||
for _, allowedIP := range peer.AllowedIPs {
|
||||
for _, allowedIP := range peer.AllowedIPs { // add all routes as peer doesn't exist
|
||||
if err := setRoute(iface, &allowedIP); err != nil {
|
||||
ncutils.PrintLog(err.Error(), 1)
|
||||
}
|
||||
@@ -39,7 +39,7 @@ func SetPeerRoutes(iface string, oldPeers map[string][]net.IPNet, newPeers []wgt
|
||||
}
|
||||
}
|
||||
|
||||
// traverse through all existing peers
|
||||
// traverse through all remaining existing peers
|
||||
for _, allowedIPs := range oldPeers {
|
||||
for _, allowedIP := range allowedIPs {
|
||||
deleteRoute(iface, &allowedIP)
|
||||
|
@@ -18,6 +18,7 @@ func IfaceDelta(currentNode *models.Node, newNode *models.Node) bool {
|
||||
newNode.UDPHolePunch != currentNode.UDPHolePunch ||
|
||||
newNode.IsPending != currentNode.IsPending ||
|
||||
newNode.PersistentKeepalive != currentNode.PersistentKeepalive ||
|
||||
newNode.DNSOn != currentNode.DNSOn ||
|
||||
len(newNode.ExcludedAddrs) != len(currentNode.ExcludedAddrs) ||
|
||||
len(newNode.AllowedIPs) != len(currentNode.AllowedIPs) {
|
||||
return true
|
||||
|
@@ -85,8 +85,6 @@ func SetPeers(iface string, keepalive int32, peers []wgtypes.PeerConfig) error {
|
||||
}
|
||||
if err != nil {
|
||||
log.Println("error setting peer", peer.PublicKey.String())
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user