mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-06 17:29:15 +08:00
relay functionality working
This commit is contained in:
@@ -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 {
|
||||
|
@@ -755,21 +755,27 @@ func updateNode(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
newNode.PullChanges = "yes"
|
||||
relayupdate := false
|
||||
oldRelayAddrs := node.RelayAddrs
|
||||
if node.IsRelay == "yes" && len(newNode.RelayAddrs) > 0 {
|
||||
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 {
|
||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||
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() {
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user