|
@@ -13,6 +13,7 @@ import (
|
|
|
"time"
|
|
|
|
|
|
mqtt "github.com/eclipse/paho.mqtt.golang"
|
|
|
+ "github.com/gravitl/netmaker/logger"
|
|
|
"github.com/gravitl/netmaker/models"
|
|
|
"github.com/gravitl/netmaker/netclient/config"
|
|
|
"github.com/gravitl/netmaker/netclient/local"
|
|
@@ -70,8 +71,17 @@ func SetupMQTT(cfg *config.ClientConfig) mqtt.Client {
|
|
|
}
|
|
|
opts.SetDefaultPublishHandler(All)
|
|
|
client := mqtt.NewClient(opts)
|
|
|
- if token := client.Connect(); token.Wait() && token.Error() != nil {
|
|
|
- log.Fatal(token.Error())
|
|
|
+ tperiod := time.Now().Add(10 * time.Second)
|
|
|
+ for {
|
|
|
+ if token := client.Connect(); token.Wait() && token.Error() != nil {
|
|
|
+ logger.Log(2, "unable to connect to broker, retrying ...")
|
|
|
+ if time.Now().Afer(tperiod) {
|
|
|
+ log.Fatal(0, "could not connect to broker, exiting ...", token.Error())
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ break
|
|
|
+ }
|
|
|
+ time.Sleep(2 * time.Second)
|
|
|
}
|
|
|
return client
|
|
|
}
|