diff -r 49580ca85ab7 -r 92b546d4a839 thermferm/rdconfig.c --- 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 * @@ -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); }