diff --git a/netclient/functions/daemon.go b/netclient/functions/daemon.go index 0552b56c..3857cff8 100644 --- a/netclient/functions/daemon.go +++ b/netclient/functions/daemon.go @@ -39,8 +39,9 @@ func Daemon() error { if err != nil { 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) } wg := sync.WaitGroup{} @@ -108,13 +109,13 @@ func PingServer(cfg *config.ClientConfig) error { // == Private == // 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 - cfg.Network = ncutils.COMMS_NETWORK_NAME + cfg.Network = networkName cfg.ReadConfig() opts := mqtt.NewClientOptions() 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) opts.ClientID = id opts.SetDefaultPublishHandler(All) @@ -136,12 +137,6 @@ func setupMQTT(publish bool) mqtt.Client { if err != nil { ncutils.Log("could not run pull, server unreachable: " + err.Error()) 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") }) @@ -282,18 +277,19 @@ func getServerAddress(cfg *config.ClientConfig) string { return server.Address } -func getCommsNetworks() ([]string, error) { - var response []string +func getCommsNetworks() (map[string]bool, error) { var cfg config.ClientConfig networks, err := ncutils.GetSystemNetworks() if err != nil { - return response, nil + return nil, err } + var response = make(map[string]bool, 1) for _, network := range networks { cfg.Network = network cfg.ReadConfig() - commNetwork := cfg.Node.CommID + response[cfg.Node.CommID] = true } + return response, nil } // == Message Caches == diff --git a/netclient/functions/mqpublish.go b/netclient/functions/mqpublish.go index f86b1fb6..f6e0e3c3 100644 --- a/netclient/functions/mqpublish.go +++ b/netclient/functions/mqpublish.go @@ -121,7 +121,7 @@ func publish(cfg *config.ClientConfig, dest string, msg []byte, qos byte) error return err } - client := setupMQTT(true) + client := setupMQTT(true, cfg.Node.CommID) defer client.Disconnect(250) encrypted, err := ncutils.Chunk(msg, serverPubKey, trafficPrivKey) if err != nil {