# HG changeset patch # User Michiel Broek # Date 1601219307 -7200 # Node ID 5563ee81570142c5eb504b4eb71792f4e7ebad03 # Parent ee433a47fc13b7ffea57a75dbdd4a265533ce2ee Implemented MQTT user/password auth. diff -r ee433a47fc13 -r 5563ee815701 thermferm/mqtt.c --- a/thermferm/mqtt.c Sat Sep 12 16:50:35 2020 +0200 +++ b/thermferm/mqtt.c Sun Sep 27 17:08:27 2020 +0200 @@ -1580,6 +1580,9 @@ case EINVAL: syslog(LOG_NOTICE, "MQTT: mosquitto_new: Invalid id"); break; + default: + syslog(LOG_NOTICE, "MQTT: mosquitto_new: Unknown error %d", errno); + break; } mosquitto_lib_cleanup(); return; @@ -1608,6 +1611,25 @@ mosquitto_message_callback_set(mosq, my_message_callback); mosquitto_subscribe_callback_set(mosq, my_subscribe_callback); + if (Config.mqtt_username && Config.mqtt_password) { + syslog(LOG_NOTICE, "MQTT: mosquitto_username_pw_set(%s, %s)", Config.mqtt_username, Config.mqtt_password); + if ((rc = mosquitto_username_pw_set(mosq, Config.mqtt_username, Config.mqtt_password))) { + switch(errno) { + case ENOMEM: + syslog(LOG_NOTICE, "MQTT: mosquitto_username_pw_set: Out of memory"); + break; + case EINVAL: + syslog(LOG_NOTICE, "MQTT: mosquitto_username_pw_set: Invalid id"); + break; + default: + syslog(LOG_NOTICE, "MQTT: mosquitto_username_pw_set: Unknown error %d", errno); + break; + } + mosquitto_lib_cleanup(); + return; + } + } + if ((rc = mosquitto_connect(mosq, Config.mqtt_host, Config.mqtt_port, keepalive))) { if (rc == MOSQ_ERR_ERRNO) { strerror_r(errno, err, 1024);