relay functionality working

This commit is contained in:
afeiszli 2021-09-16 21:49:09 -04:00
parent 61c2c5f0a0
commit 31ea969e3d
3 changed files with 17 additions and 7 deletions

View file

@ -98,7 +98,6 @@ func (s *NodeServiceServer) UpdateNode(ctx context.Context, req *nodepb.Object)
return nil, err
}
relayupdate := false
oldRelayAddrs := node.RelayAddrs
if node.IsRelay == "yes" && len(newnode.RelayAddrs) > 0 {
for i, addr := range newnode.RelayAddrs {
if addr != node.RelayAddrs[i] {
@ -111,7 +110,10 @@ func (s *NodeServiceServer) UpdateNode(ctx context.Context, req *nodepb.Object)
return nil, err
}
if relayupdate {
UpdateRelay(node.Network, oldRelayAddrs, node.RelayAddrs)
UpdateRelay(node.Network, node.RelayAddrs, newnode.RelayAddrs)
if err = functions.NetworkNodesUpdatePullChanges(node.Network); err != nil {
functions.PrintUserLog("netmaker", "error setting relay updates: " + err.Error(), 1)
}
}
nodeData, err := json.Marshal(&newnode)
if err != nil {

View file

@ -755,13 +755,16 @@ func updateNode(w http.ResponseWriter, r *http.Request) {
}
newNode.PullChanges = "yes"
relayupdate := false
oldRelayAddrs := node.RelayAddrs
if node.IsRelay == "yes" && len(newNode.RelayAddrs) > 0 {
for i, addr := range newNode.RelayAddrs {
if addr != node.RelayAddrs[i] {
if len(newNode.RelayAddrs) != len(node.RelayAddrs) {
relayupdate = true
} else {
for i, addr := range newNode.RelayAddrs {
if addr != node.RelayAddrs[i] {
relayupdate = true
}
}
}
}
}
err = node.Update(&newNode)
if err != nil {
@ -769,7 +772,10 @@ func updateNode(w http.ResponseWriter, r *http.Request) {
return
}
if relayupdate {
UpdateRelay(node.Network, oldRelayAddrs, node.RelayAddrs)
UpdateRelay(node.Network, node.RelayAddrs, newNode.RelayAddrs)
if err = functions.NetworkNodesUpdatePullChanges(node.Network); err != nil {
functions.PrintUserLog("netmaker", "error setting relay updates: " + err.Error(), 1)
}
}
if servercfg.IsDNSMode() {

View file

@ -4,6 +4,7 @@ import (
"encoding/json"
"errors"
"net/http"
"time"
"github.com/gorilla/mux"
"github.com/gravitl/netmaker/database"
"github.com/gravitl/netmaker/functions"
@ -112,6 +113,7 @@ func ValidateRelay(relay models.RelayRequest) error {
}
func UpdateRelay(network string, oldAddrs []string, newAddrs []string) {
time.Sleep(time.Second/4)
err := SetNodesDoNotPropagate("no", network, oldAddrs)
if err != nil {
functions.PrintUserLog("netmaker",err.Error(),1)