Browse Source

Merge pull request #1124 from gravitl/refactor_v0.14.1_daemon_init

removed unnecessary loop from daemon start
Alex Feiszli 3 years ago
parent
commit
35f36be993
1 changed files with 16 additions and 17 deletions
  1. 16 17
      netclient/functions/daemon.go

+ 16 - 17
netclient/functions/daemon.go

@@ -42,36 +42,35 @@ type cachedMessage struct {
 
 
 // Daemon runs netclient daemon from command line
 // Daemon runs netclient daemon from command line
 func Daemon() error {
 func Daemon() error {
-	serverSet := make(map[string]config.ClientConfig)
+	serverSet := make(map[string]bool)
 	// == initial pull of all networks ==
 	// == initial pull of all networks ==
 	networks, _ := ncutils.GetSystemNetworks()
 	networks, _ := ncutils.GetSystemNetworks()
 	if len(networks) == 0 {
 	if len(networks) == 0 {
 		return errors.New("no networks")
 		return errors.New("no networks")
 	}
 	}
+	// set ipforwarding on startup
+	err := local.SetIPForwarding()
+	if err != nil {
+		logger.Log(0, err.Error())
+	}
+
 	for _, network := range networks {
 	for _, network := range networks {
 		logger.Log(3, "initializing network", network)
 		logger.Log(3, "initializing network", network)
 		cfg := config.ClientConfig{}
 		cfg := config.ClientConfig{}
 		cfg.Network = network
 		cfg.Network = network
 		cfg.ReadConfig()
 		cfg.ReadConfig()
-		serverSet[cfg.Server.Server] = cfg
 		if err := wireguard.ApplyConf(&cfg.Node, cfg.Node.Interface, ncutils.GetNetclientPathSpecific()+cfg.Node.Interface+".conf"); err != nil {
 		if err := wireguard.ApplyConf(&cfg.Node, cfg.Node.Interface, ncutils.GetNetclientPathSpecific()+cfg.Node.Interface+".conf"); err != nil {
 			logger.Log(0, "failed to start ", cfg.Node.Interface, "wg interface", err.Error())
 			logger.Log(0, "failed to start ", cfg.Node.Interface, "wg interface", err.Error())
 		}
 		}
-		//initialPull(cfg.Network)
-	}
-	// set ipforwarding on startup
-	err := local.SetIPForwarding()
-	if err != nil {
-		logger.Log(0, err.Error())
-	}
-
-	// == subscribe to all nodes for each on machine ==
-	for server := range serverSet {
-		logger.Log(1, "started daemon for server ", server)
-		ctx, cancel := context.WithCancel(context.Background())
-		networkcontext.Store(server, cancel)
-		config := serverSet[server]
-		go messageQueue(ctx, &config)
+		server := cfg.Server.Server
+		if !serverSet[server] {
+			// == subscribe to all nodes for each on machine ==
+			serverSet[server] = true
+			logger.Log(1, "started daemon for server ", server)
+			ctx, cancel := context.WithCancel(context.Background())
+			networkcontext.Store(server, cancel)
+			go messageQueue(ctx, &cfg)
+		}
 	}
 	}
 
 
 	// == add waitgroup and cancel for checkin routine ==
 	// == add waitgroup and cancel for checkin routine ==