diff --git a/service.mqtt/resources/language/English/strings.po b/service.mqtt/resources/language/English/strings.po index 892484a..1e4934c 100644 --- a/service.mqtt/resources/language/English/strings.po +++ b/service.mqtt/resources/language/English/strings.po @@ -51,3 +51,23 @@ msgstr "" msgctxt "#30103" msgid "Password" msgstr "" + +msgctxt "#30104" +msgid "Use TLS connection" +msgstr "" + +msgctxt "#30105" +msgid "TLS broker CA crt" +msgstr "" + +msgctxt "#30106" +msgid "Use client certificates" +msgstr "" + +msgctxt "#30107" +msgid "TLS client certificate" +msgstr "" + +msgctxt "#30108" +msgid "TLS client key" +msgstr "" diff --git a/service.mqtt/resources/settings.xml b/service.mqtt/resources/settings.xml index 2b7aef6..2b0803c 100644 --- a/service.mqtt/resources/settings.xml +++ b/service.mqtt/resources/settings.xml @@ -1,14 +1,19 @@ - - + + - - - + + + + + + + + diff --git a/service.mqtt/service.py b/service.mqtt/service.py index 7da80b1..f7af4d0 100644 --- a/service.mqtt/service.py +++ b/service.mqtt/service.py @@ -213,6 +213,13 @@ def startmqtt(): mqc.on_disconnect=disconnecthandler if __addon__.getSetting("mqttanonymousconnection")=='false': mqc.username_pw_set(__addon__.getSetting("mqttusername"), __addon__.getSetting("mqttpassword")) + xbmc.log("MQTT: Anonymous disabled, connecting as user: %s" % __addon__.getSetting("mqttusername")) + if __addon__.getSetting("mqtttlsconnection")=='true' and __addon__.getSetting("mqtttlsconnectioncrt")!='' and __addon__.getSetting("mqtttlsclient")=='false': + mqc.tls_set(__addon__.getSetting("mqtttlsconnectioncrt")) + xbmc.log("MQTT: TLS enabled, connecting using CA certificate: %s" % __addon__.getSetting("mqtttlsconnectioncrt")) + elif __addon__.getSetting("mqtttlsconnection")=='true' and __addon__.getSetting("mqtttlsclient")=='true' and __addon__.getSetting("mqtttlsclientcrt")!='' and __addon__.getSetting("mqtttlsclientkey")!='': + mqc.tls_set(__addon__.getSetting("mqtttlsconnectioncrt"), __addon__.getSetting("mqtttlsclientcrt"), __addon__.getSetting("mqtttlsclientkey")) + xbmc.log("MQTT: TLS with client certificates enabled, connecting using certificates CA: %s, client %s and key: %s" % (__addon__.getSetting("mqttusername"), __addon__.getSetting("mqtttlsclientcrt"), __addon__.getSetting("mqtttlsclientkey"))) topic=__addon__.getSetting("mqtttopic") if not topic.endswith("/"): topic+="/"