Преглед на файлове

respect username/password

Chris Mullins преди 8 години
родител
ревизия
bbaa373bf8
променени са 2 файла, в които са добавени 19 реда и са изтрити 5 реда
  1. 18 5
      lib/MQTT/MqttClient.cpp
  2. 1 0
      lib/MQTT/MqttClient.h

+ 18 - 5
lib/MQTT/MqttClient.cpp

@@ -40,15 +40,28 @@ void MqttClient::begin() {
   reconnect();
 }
 
-void MqttClient::reconnect() {
-  if (! mqttClient->connected()) {
+bool MqttClient::connect() {
+  char nameBuffer[30];
+  sprintf_P(nameBuffer, PSTR("milight-hub-%u"), ESP.getChipId());
+
 #ifdef MQTT_DEBUG
     Serial.println(F("MqttClient - connecting"));
 #endif
-    char nameBuffer[30];
-    sprintf_P(nameBuffer, PSTR("milight-hub-%u"), ESP.getChipId());
 
-    if (mqttClient->connect(nameBuffer)) {
+  if (settings.mqttUsername.length() > 0) {
+    return mqttClient->connect(
+      nameBuffer,
+      settings.mqttUsername.c_str(),
+      settings.mqttPassword.c_str()
+    );
+  } else {
+    return mqttClient->connect(nameBuffer);
+  }
+}
+
+void MqttClient::reconnect() {
+  if (! mqttClient->connected()) {
+    if (connect()) {
       subscribe();
     } else {
       Serial.println(F("ERROR: Failed to connect to MQTT server"));

+ 1 - 0
lib/MQTT/MqttClient.h

@@ -22,6 +22,7 @@ private:
   Settings& settings;
   char* domain;
 
+  bool connect();
   void subscribe();
   void publishCallback(char* topic, byte* payload, int length);
 };