thermferm/rdconfig.c

changeset 534
92b546d4a839
parent 518
fd36bedab944
child 540
5a26429abbf8
--- a/thermferm/rdconfig.c	Sat Jul 14 17:21:25 2018 +0200
+++ b/thermferm/rdconfig.c	Sat Jul 14 21:15:20 2018 +0200
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * Copyright (C) 2014-2017
+ * Copyright (C) 2014-2018
  *   
  * Michiel Broek <mbroek at mbse dot eu>
  *
@@ -65,12 +65,16 @@
     Config.temp_value = 20000;
     Config.temp_state = Config.hum_state = 1;	// missing
     Config.hum_value = 50000;
-#ifdef HAVE_MOSQUITTO_H
     if (Config.mqtt_host)
 	free(Config.mqtt_host);
     Config.mqtt_host = NULL;
     Config.mqtt_port = 1883;
-#endif
+    if (Config.mqtt_username)
+	free(Config.mqtt_username);
+    Config.mqtt_username = NULL;
+    if (Config.mqtt_password)
+	free(Config.mqtt_password);
+    Config.mqtt_password = NULL;
  
     for (tmp2 = Config.units; tmp2; tmp2 = tmp2->next) {
 	if (tmp2->uuid)
@@ -255,7 +259,6 @@
 	syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteFormatElement");
 	return 1;
     }
-#ifdef HAVE_MOSQUITTO_H
     if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "MQTT_HOST", "%s", Config.mqtt_host)) < 0) {
 	syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteFormatElement");
 	return 1;
@@ -264,7 +267,16 @@
 	syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteFormatElement");
 	return 1;
     }
-#endif
+    if (Config.mqtt_username && Config.mqtt_password) {
+    	if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "MQTT_USER", "%s", Config.mqtt_username)) < 0) {
+	    syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteFormatElement");
+	    return 1;
+	}
+    	if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "MQTT_PASS", "%s", Config.mqtt_password)) < 0) {
+	    syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteFormatElement");
+	    return 1;
+	}
+    }
 
     /* 
      * Start an element named "LCDS" as child of THERMFERM.
@@ -2131,10 +2143,8 @@
     }
     syslog(LOG_NOTICE, "rdconfig: using %s", mypath);
 
-#ifdef HAVE_MOSQUITTO_H
     Config.mqtt_host = xstrcpy((char *)"localhost");
     Config.mqtt_port = 1883;
-#endif
     Config.next_unit = 1;
 
     if ((cur = xmlDocGetRootElement(doc)) == NULL) {
@@ -2194,7 +2204,6 @@
 		Config.next_unit = ival;
 	    xmlFree(key);
 	}
-#ifdef HAVE_MOSQUITTO_H
 	if ((!xmlStrcmp(cur->name, (const xmlChar *)"MQTT_HOST"))) {
 	    Config.mqtt_host = (char *)xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
 	}
@@ -2204,7 +2213,12 @@
 		Config.mqtt_port = ival;
 	    xmlFree(key);
 	}
-#endif
+	if ((!xmlStrcmp(cur->name, (const xmlChar *)"MQTT_USER"))) {
+	    Config.mqtt_username = (char *)xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
+	}
+	if ((!xmlStrcmp(cur->name, (const xmlChar *)"MQTT_PASS"))) {
+	    Config.mqtt_password = (char *)xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
+	}
 	if ((!xmlStrcmp(cur->name, (const xmlChar *)"LCDS"))) {
 	    parseLCDs(doc, cur);
 	}

mercurial