updated to run a daemon per different comms

This commit is contained in:
0xdcarns 2022-02-18 16:43:12 -05:00
parent 4cc293ee89
commit 095f1002dd
2 changed files with 12 additions and 16 deletions

View file

@ -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 ==

View file

@ -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 {