Browse Source

updated to run a daemon per different comms

0xdcarns 3 years ago
parent
commit
095f1002dd
2 changed files with 12 additions and 16 deletions
  1. 11 15
      netclient/functions/daemon.go
  2. 1 1
      netclient/functions/mqpublish.go

+ 11 - 15
netclient/functions/daemon.go

@@ -39,8 +39,9 @@ func Daemon() error {
 	if err != nil {
 	if err != nil {
 		return errors.New("no comm networks exist")
 		return errors.New("no comm networks exist")
 	}
 	}
-	for _, net := range commsNetworks {
-		client := setupMQTT(false)
+	for net := range commsNetworks {
+		ncutils.PrintLog("started comms network daemon, "+net, 1)
+		client := setupMQTT(false, net)
 		defer client.Disconnect(250)
 		defer client.Disconnect(250)
 	}
 	}
 	wg := sync.WaitGroup{}
 	wg := sync.WaitGroup{}
@@ -108,13 +109,13 @@ func PingServer(cfg *config.ClientConfig) error {
 // == Private ==
 // == Private ==
 
 
 // setupMQTT creates a connection to broker and return client
 // setupMQTT creates a connection to broker and return client
-func setupMQTT(publish bool) mqtt.Client {
+func setupMQTT(publish bool, networkName string) mqtt.Client {
 	var cfg *config.ClientConfig
 	var cfg *config.ClientConfig
-	cfg.Network = ncutils.COMMS_NETWORK_NAME
+	cfg.Network = networkName
 	cfg.ReadConfig()
 	cfg.ReadConfig()
 	opts := mqtt.NewClientOptions()
 	opts := mqtt.NewClientOptions()
 	server := getServerAddress(cfg)
 	server := getServerAddress(cfg)
-	opts.AddBroker(server + ":1883")
+	opts.AddBroker(server + ":1883") // TODO get the appropriate port of the comms mq server
 	id := ncutils.MakeRandomString(23)
 	id := ncutils.MakeRandomString(23)
 	opts.ClientID = id
 	opts.ClientID = id
 	opts.SetDefaultPublishHandler(All)
 	opts.SetDefaultPublishHandler(All)
@@ -136,12 +137,6 @@ func setupMQTT(publish bool) mqtt.Client {
 		if err != nil {
 		if err != nil {
 			ncutils.Log("could not run pull, server unreachable: " + err.Error())
 			ncutils.Log("could not run pull, server unreachable: " + err.Error())
 			ncutils.Log("waiting to retry...")
 			ncutils.Log("waiting to retry...")
-			/*
-				//Consider putting in logic to restart - daemon may take long time to refresh
-				time.Sleep(time.Minute * 5)
-					ncutils.Log("restarting netclient")
-					daemon.Restart()
-			*/
 		}
 		}
 		ncutils.Log("connection re-established with mqtt server")
 		ncutils.Log("connection re-established with mqtt server")
 	})
 	})
@@ -282,18 +277,19 @@ func getServerAddress(cfg *config.ClientConfig) string {
 	return server.Address
 	return server.Address
 }
 }
 
 
-func getCommsNetworks() ([]string, error) {
-	var response []string
+func getCommsNetworks() (map[string]bool, error) {
 	var cfg config.ClientConfig
 	var cfg config.ClientConfig
 	networks, err := ncutils.GetSystemNetworks()
 	networks, err := ncutils.GetSystemNetworks()
 	if err != nil {
 	if err != nil {
-		return response, nil
+		return nil, err
 	}
 	}
+	var response = make(map[string]bool, 1)
 	for _, network := range networks {
 	for _, network := range networks {
 		cfg.Network = network
 		cfg.Network = network
 		cfg.ReadConfig()
 		cfg.ReadConfig()
-		commNetwork := cfg.Node.CommID
+		response[cfg.Node.CommID] = true
 	}
 	}
+	return response, nil
 }
 }
 
 
 // == Message Caches ==
 // == Message Caches ==

+ 1 - 1
netclient/functions/mqpublish.go

@@ -121,7 +121,7 @@ func publish(cfg *config.ClientConfig, dest string, msg []byte, qos byte) error
 		return err
 		return err
 	}
 	}
 
 
-	client := setupMQTT(true)
+	client := setupMQTT(true, cfg.Node.CommID)
 	defer client.Disconnect(250)
 	defer client.Disconnect(250)
 	encrypted, err := ncutils.Chunk(msg, serverPubKey, trafficPrivKey)
 	encrypted, err := ncutils.Chunk(msg, serverPubKey, trafficPrivKey)
 	if err != nil {
 	if err != nil {