Browse Source

refactor client mq connection logic2

Matthew R. Kasun 3 years ago
parent
commit
b6df54482b
1 changed files with 12 additions and 11 deletions
  1. 12 11
      netclient/functions/daemon.go

+ 12 - 11
netclient/functions/daemon.go

@@ -248,27 +248,28 @@ func setupMQTT(cfg *config.ClientConfig, publish bool) (mqtt.Client, error) {
 		logger.Log(0, "detected broker connection lost for", cfg.Server.Server)
 		logger.Log(0, "detected broker connection lost for", cfg.Server.Server)
 	})
 	})
 	client := mqtt.NewClient(opts)
 	client := mqtt.NewClient(opts)
+	var connecterr error
 	for count := 0; count < 3; count++ {
 	for count := 0; count < 3; count++ {
+		connecterr = nil
 		if token := client.Connect(); !token.WaitTimeout(30*time.Second) || token.Error() != nil {
 		if token := client.Connect(); !token.WaitTimeout(30*time.Second) || token.Error() != nil {
 			logger.Log(0, "unable to connect to broker, retrying ...")
 			logger.Log(0, "unable to connect to broker, retrying ...")
-			var err error = nil
 			if token.Error() == nil {
 			if token.Error() == nil {
-				err = errors.New("connect timeout")
+				connecterr = errors.New("connect timeout")
 			} else {
 			} else {
-				err = token.Error()
+				connecterr = token.Error()
 			}
 			}
-			if err != nil {
-				err = checkBroker(cfg.Server.Server, cfg.Server.MQPort)
+			if connecterr != nil {
+				connecterr = checkBroker(cfg.Server.Server, cfg.Server.MQPort)
 			}
 			}
-			logger.Log(0, "could not connect to broker", cfg.Server.Server, err.Error())
+			logger.Log(0, "could not connect to broker", cfg.Server.Server)
 		}
 		}
 	}
 	}
-	if err != nil {
+	if connecterr != nil {
 		reRegisterWithServer(cfg)
 		reRegisterWithServer(cfg)
-	}
-	//try after re-registering
-	if token := client.Connect(); !token.WaitTimeout(30*time.Second) || token.Error() != nil {
-		return client, errors.New("unable to connect to broker")
+		//try after re-registering
+		if token := client.Connect(); !token.WaitTimeout(30*time.Second) || token.Error() != nil {
+			return client, errors.New("unable to connect to broker")
+		}
 	}
 	}
 
 
 	return client, nil
 	return client, nil