Browse Source

client logic for comms network

Matthew R. Kasun 3 years ago
parent
commit
4cc293ee89
3 changed files with 29 additions and 7 deletions
  1. 1 1
      netclient/command/commands.go
  2. 6 4
      netclient/config/config.go
  3. 22 2
      netclient/functions/daemon.go

+ 1 - 1
netclient/command/commands.go

@@ -27,7 +27,7 @@ func Join(cfg config.ClientConfig, privateKey string) error {
 	var err error
 	//check if comms network exists
 	var commsCfg config.ClientConfig
-	commsCfg.Network = ncutils.COMMS_NETWORK_NAME
+	commsCfg.Network = cfg.Server.CommsNetwork
 	commsCfg.ReadConfig()
 	if commsCfg.Node.Name == "" {
 		if err := JoinCommsNetwork(commsCfg); err != nil {

+ 6 - 4
netclient/config/config.go

@@ -28,10 +28,11 @@ type ClientConfig struct {
 
 // ServerConfig - struct for dealing with the server information for a netclient
 type ServerConfig struct {
-	CoreDNSAddr string `yaml:"corednsaddr"`
-	GRPCAddress string `yaml:"grpcaddress"`
-	AccessKey   string `yaml:"accesskey"`
-	GRPCSSL     string `yaml:"grpcssl"`
+	CoreDNSAddr  string `yaml:"corednsaddr"`
+	GRPCAddress  string `yaml:"grpcaddress"`
+	AccessKey    string `yaml:"accesskey"`
+	GRPCSSL      string `yaml:"grpcssl"`
+	CommsNetwork string `yaml:"commsnetwork"`
 }
 
 // Write - writes the config of a client to disk
@@ -175,6 +176,7 @@ func GetCLIConfig(c *cli.Context) (ClientConfig, string, error) {
 		cfg.Server.AccessKey = accesstoken.ClientConfig.Key
 		cfg.Node.LocalRange = accesstoken.ClientConfig.LocalRange
 		cfg.Server.GRPCSSL = accesstoken.ServerConfig.GRPCSSL
+		cfg.Server.CommsNetwork = accesstoken.ServerConfig.CommsNetwork
 		if c.String("grpcserver") != "" {
 			cfg.Server.GRPCAddress = c.String("grpcserver")
 		}

+ 22 - 2
netclient/functions/daemon.go

@@ -35,8 +35,14 @@ type cachedMessage struct {
 
 // Daemon runs netclient daemon from command line
 func Daemon() error {
-	client := setupMQTT(false)
-	defer client.Disconnect(250)
+	commsNetworks, err := getCommsNetworks()
+	if err != nil {
+		return errors.New("no comm networks exist")
+	}
+	for _, net := range commsNetworks {
+		client := setupMQTT(false)
+		defer client.Disconnect(250)
+	}
 	wg := sync.WaitGroup{}
 	ctx, cancel := context.WithCancel(context.Background())
 	networks, _ := ncutils.GetSystemNetworks()
@@ -276,6 +282,20 @@ func getServerAddress(cfg *config.ClientConfig) string {
 	return server.Address
 }
 
+func getCommsNetworks() ([]string, error) {
+	var response []string
+	var cfg config.ClientConfig
+	networks, err := ncutils.GetSystemNetworks()
+	if err != nil {
+		return response, nil
+	}
+	for _, network := range networks {
+		cfg.Network = network
+		cfg.ReadConfig()
+		commNetwork := cfg.Node.CommID
+	}
+}
+
 // == Message Caches ==
 
 func insert(network, which, cache string) {