Browse Source

server update

0xdcarns 3 years ago
parent
commit
424c801c6c

+ 5 - 2
controllers/node_grpc.go

@@ -68,8 +68,11 @@ func (s *NodeServiceServer) CreateNode(ctx context.Context, req *nodepb.Object)
 	}
 
 	var serverNodes = logic.GetServerNodes(node.Network)
-	for _, server := range serverNodes {
-		node.NetworkSettings.DefaultServerAddrs = append(node.NetworkSettings.DefaultServerAddrs, server.Address)
+	for i, server := range serverNodes {
+		node.NetworkSettings.DefaultServerAddrs += server.Address
+		if i < len(serverNodes)-1 {
+			node.NetworkSettings.DefaultServerAddrs += ","
+		}
 	}
 
 	err = logic.CreateNode(&node)

+ 5 - 5
models/network.go

@@ -34,11 +34,11 @@ type Network struct {
 	LocalRange          string      `json:"localrange" bson:"localrange" validate:"omitempty,cidr"`
 
 	// checkin interval is depreciated at the network level. Set on server with CHECKIN_INTERVAL
-	DefaultCheckInInterval int32    `json:"checkininterval,omitempty" bson:"checkininterval,omitempty" validate:"omitempty,numeric,min=2,max=100000"`
-	DefaultUDPHolePunch    string   `json:"defaultudpholepunch" bson:"defaultudpholepunch" validate:"checkyesorno"`
-	DefaultExtClientDNS    string   `json:"defaultextclientdns" bson:"defaultextclientdns"`
-	DefaultMTU             int32    `json:"defaultmtu" bson:"defaultmtu"`
-	DefaultServerAddrs     []string `json:"defaultserveraddrs" bson:"defaultserveraddrs"`
+	DefaultCheckInInterval int32  `json:"checkininterval,omitempty" bson:"checkininterval,omitempty" validate:"omitempty,numeric,min=2,max=100000"`
+	DefaultUDPHolePunch    string `json:"defaultudpholepunch" bson:"defaultudpholepunch" validate:"checkyesorno"`
+	DefaultExtClientDNS    string `json:"defaultextclientdns" bson:"defaultextclientdns"`
+	DefaultMTU             int32  `json:"defaultmtu" bson:"defaultmtu"`
+	DefaultServerAddrs     string `json:"defaultserveraddrs" bson:"defaultserveraddrs" yaml:"defaultserveraddrs"`
 }
 
 // SaveData - sensitive fields of a network that should be kept the same

+ 1 - 0
netclient/config/config.go

@@ -119,6 +119,7 @@ func ModConfig(node *models.Node) error {
 
 	modconfig.Node = (*node)
 	modconfig.NetworkSettings = node.NetworkSettings
+	log.Printf("%v \n", modconfig)
 	err = Write(&modconfig, network)
 	return err
 }

+ 5 - 4
netclient/functions/daemon.go

@@ -8,6 +8,7 @@ import (
 	"os"
 	"os/signal"
 	"runtime"
+	"strings"
 	"sync"
 	"syscall"
 	"time"
@@ -59,7 +60,8 @@ func Daemon() error {
 // SetupMQTT creates a connection to broker and return client
 func SetupMQTT(cfg *config.ClientConfig) mqtt.Client {
 	opts := mqtt.NewClientOptions()
-	for i, addr := range cfg.Node.NetworkSettings.DefaultServerAddrs {
+	serverAddrs := strings.Split(cfg.Node.NetworkSettings.DefaultServerAddrs, ",")
+	for i, addr := range serverAddrs {
 		if addr != "" {
 			ncutils.Log(fmt.Sprintf("adding server (%d) to listen on network %s \n", (i + 1), cfg.Node.Network))
 			opts.AddBroker(addr + ":1883")
@@ -215,13 +217,12 @@ var UpdatePeers mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message)
 		var cfg config.ClientConfig
 		cfg.Network = peerUpdate.Network
 		cfg.ReadConfig()
-		var shouldReSub = shouldResub(cfg.Node.NetworkSettings.DefaultServerAddrs, peerUpdate.ServerAddrs)
+		var shouldReSub = shouldResub(strings.Split(cfg.Node.NetworkSettings.DefaultServerAddrs, ","), peerUpdate.ServerAddrs)
 		if shouldReSub {
 			client.Disconnect(250) // kill client
 			// un sub, re sub.. how?
 			client.Unsubscribe("update/"+cfg.Node.ID, "update/peers/"+cfg.Node.ID)
-			cfg.Node.NetworkSettings.DefaultServerAddrs = peerUpdate.ServerAddrs
-
+			cfg.Node.NetworkSettings.DefaultServerAddrs = strings.Join(peerUpdate.ServerAddrs, ",")
 		}
 		file := ncutils.GetNetclientPathSpecific() + cfg.Node.Interface + ".conf"
 		err = wireguard.UpdateWgPeers(file, peerUpdate.Peers)

+ 2 - 0
netclient/functions/join.go

@@ -161,6 +161,7 @@ func JoinNetwork(cfg config.ClientConfig, privateKey string) error {
 		if err = json.Unmarshal([]byte(nodeData), &node); err != nil {
 			return err
 		}
+		log.Printf("%v \n", nodeData)
 	}
 
 	// get free port based on returned default listen port
@@ -183,6 +184,7 @@ func JoinNetwork(cfg config.ClientConfig, privateKey string) error {
 	}
 
 	if node.IsServer != "yes" { // == handle client side ==
+		cfg.Node = node
 		err = config.ModConfig(&node)
 		if err != nil {
 			return err