diff --git a/netclient/command/commands.go b/netclient/command/commands.go index 1bb61ec6..4b07c26f 100644 --- a/netclient/command/commands.go +++ b/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 { diff --git a/netclient/config/config.go b/netclient/config/config.go index e6de5579..4cbf2b1e 100644 --- a/netclient/config/config.go +++ b/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") } diff --git a/netclient/functions/daemon.go b/netclient/functions/daemon.go index 442b2592..0552b56c 100644 --- a/netclient/functions/daemon.go +++ b/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) {