Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package mosquitto for openSUSE:Factory 
checked in at 2021-11-20 22:48:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mosquitto (Old)
 and      /work/SRC/openSUSE:Factory/.mosquitto.new.1895 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mosquitto"

Sat Nov 20 22:48:01 2021 rev:26 rq:932641 version:2.0.14

Changes:
--------
--- /work/SRC/openSUSE:Factory/mosquitto/mosquitto.changes      2021-10-30 
23:14:39.091099638 +0200
+++ /work/SRC/openSUSE:Factory/.mosquitto.new.1895/mosquitto.changes    
2021-11-20 22:48:25.639783277 +0100
@@ -1,0 +2,12 @@
+Thu Nov 18 21:02:34 UTC 2021 - Martin Hauke <[email protected]>
+
+- Update to version 2.0.14
+  Broker:
+  * Fix bridge not respecting receive-maximum when reconnecting
+    with MQTT v5.
+  Client library:
+  * Fix mosquitto_topic_matches_sub2() not using the length
+    parameters.
+  * Fix incorrect subscribe_callback in mosquittopp.h.
+
+-------------------------------------------------------------------

Old:
----
  mosquitto-2.0.13.tar.gz
  mosquitto-2.0.13.tar.gz.sig

New:
----
  mosquitto-2.0.14.tar.gz
  mosquitto-2.0.14.tar.gz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mosquitto.spec ++++++
--- /var/tmp/diff_new_pack.fsEpYN/_old  2021-11-20 22:48:26.195781434 +0100
+++ /var/tmp/diff_new_pack.fsEpYN/_new  2021-11-20 22:48:26.195781434 +0100
@@ -20,7 +20,7 @@
 %define c_lib   libmosquitto1
 %define cpp_lib libmosquittopp1
 Name:           mosquitto
-Version:        2.0.13
+Version:        2.0.14
 Release:        0
 Summary:        A MQTT v3.1/v3.1.1 Broker
 License:        EPL-1.0

++++++ mosquitto-2.0.13.tar.gz -> mosquitto-2.0.14.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/CMakeLists.txt 
new/mosquitto-2.0.14/CMakeLists.txt
--- old/mosquitto-2.0.13/CMakeLists.txt 2021-10-27 20:30:49.000000000 +0200
+++ new/mosquitto-2.0.14/CMakeLists.txt 2021-11-17 01:28:35.000000000 +0100
@@ -8,7 +8,7 @@
 cmake_policy(SET CMP0042 NEW)
 
 project(mosquitto)
-set (VERSION 2.0.13)
+set (VERSION 2.0.14)
 
 list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/ChangeLog.txt 
new/mosquitto-2.0.14/ChangeLog.txt
--- old/mosquitto-2.0.13/ChangeLog.txt  2021-10-27 20:30:49.000000000 +0200
+++ new/mosquitto-2.0.14/ChangeLog.txt  2021-11-17 01:28:35.000000000 +0100
@@ -1,3 +1,15 @@
+2.0.14 - 2021-11-17
+===================
+
+Broker:
+- Fix bridge not respecting receive-maximum when reconnecting with MQTT v5.
+
+Client library:
+- Fix mosquitto_topic_matches_sub2() not using the length parameters.
+  Closes #2364.
+- Fix incorrect subscribe_callback in mosquittopp.h. Closes #2367.
+
+
 2.0.13 - 2021-10-27
 ===================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/config.mk 
new/mosquitto-2.0.14/config.mk
--- old/mosquitto-2.0.13/config.mk      2021-10-27 20:30:49.000000000 +0200
+++ new/mosquitto-2.0.14/config.mk      2021-11-17 01:28:35.000000000 +0100
@@ -127,7 +127,7 @@
 
 # Also bump lib/mosquitto.h, CMakeLists.txt,
 # installer/mosquitto.nsi, installer/mosquitto64.nsi
-VERSION=2.0.13
+VERSION=2.0.14
 
 # Client library SO version. Bump if incompatible API/ABI changes are made.
 SOVERSION=1
@@ -333,11 +333,6 @@
        BROKER_LDADD:=$(BROKER_LDADD) -lwebsockets
 endif
 
-ifeq ($(WITH_WEBSOCKETS),static)
-       BROKER_CPPFLAGS:=$(BROKER_CPPFLAGS) -DWITH_WEBSOCKETS
-       BROKER_LDADD:=$(BROKER_LDADD) -static -lwebsockets
-endif
-
 INSTALL?=install
 prefix?=/usr/local
 incdir?=${prefix}/include
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/include/mosquitto.h 
new/mosquitto-2.0.14/include/mosquitto.h
--- old/mosquitto-2.0.13/include/mosquitto.h    2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/include/mosquitto.h    2021-11-17 01:28:35.000000000 
+0100
@@ -66,7 +66,7 @@
 
 #define LIBMOSQUITTO_MAJOR 2
 #define LIBMOSQUITTO_MINOR 0
-#define LIBMOSQUITTO_REVISION 13
+#define LIBMOSQUITTO_REVISION 14
 /* LIBMOSQUITTO_VERSION_NUMBER looks like 1002001 for e.g. version 1.2.1. */
 #define LIBMOSQUITTO_VERSION_NUMBER 
(LIBMOSQUITTO_MAJOR*1000000+LIBMOSQUITTO_MINOR*1000+LIBMOSQUITTO_REVISION)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/installer/mosquitto.nsi 
new/mosquitto-2.0.14/installer/mosquitto.nsi
--- old/mosquitto-2.0.13/installer/mosquitto.nsi        2021-10-27 
20:30:49.000000000 +0200
+++ new/mosquitto-2.0.14/installer/mosquitto.nsi        2021-11-17 
01:28:35.000000000 +0100
@@ -9,7 +9,7 @@
 !define env_hklm 'HKLM "SYSTEM\CurrentControlSet\Control\Session 
Manager\Environment"'
 
 Name "Eclipse Mosquitto"
-!define VERSION 2.0.13
+!define VERSION 2.0.14
 OutFile "mosquitto-${VERSION}-install-windows-x86.exe"
 
 InstallDir "$PROGRAMFILES\mosquitto"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/installer/mosquitto64.nsi 
new/mosquitto-2.0.14/installer/mosquitto64.nsi
--- old/mosquitto-2.0.13/installer/mosquitto64.nsi      2021-10-27 
20:30:49.000000000 +0200
+++ new/mosquitto-2.0.14/installer/mosquitto64.nsi      2021-11-17 
01:28:35.000000000 +0100
@@ -9,7 +9,7 @@
 !define env_hklm 'HKLM "SYSTEM\CurrentControlSet\Control\Session 
Manager\Environment"'
 
 Name "Eclipse Mosquitto"
-!define VERSION 2.0.13
+!define VERSION 2.0.14
 OutFile "mosquitto-${VERSION}-install-windows-x64.exe"
 
 !include "x64.nsh"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/CMakeLists.txt 
new/mosquitto-2.0.14/lib/CMakeLists.txt
--- old/mosquitto-2.0.13/lib/CMakeLists.txt     2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/CMakeLists.txt     2021-11-17 01:28:35.000000000 
+0100
@@ -96,7 +96,10 @@
        SOVERSION 1
 )
 
-install(TARGETS libmosquitto RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" 
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+install(TARGETS libmosquitto
+       RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+       ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+       LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
 
 if (WITH_STATIC_LIBRARIES)
        add_library(libmosquitto_static STATIC ${C_SRC})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/cpp/CMakeLists.txt 
new/mosquitto-2.0.14/lib/cpp/CMakeLists.txt
--- old/mosquitto-2.0.13/lib/cpp/CMakeLists.txt 2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/cpp/CMakeLists.txt 2021-11-17 01:28:35.000000000 
+0100
@@ -14,7 +14,10 @@
        VERSION ${VERSION}
        SOVERSION 1
 )
-install(TARGETS mosquittopp RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" 
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+install(TARGETS mosquittopp
+       RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+       ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+       LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
 
 if (WITH_STATIC_LIBRARIES)
        add_library(mosquittopp_static STATIC
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/cpp/mosquittopp.h 
new/mosquitto-2.0.14/lib/cpp/mosquittopp.h
--- old/mosquitto-2.0.13/lib/cpp/mosquittopp.h  2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/cpp/mosquittopp.h  2021-11-17 01:28:35.000000000 
+0100
@@ -64,7 +64,6 @@
                void *userdata,
                const char *topic,
                int qos=0,
-               bool retained=true,
                const char *host="localhost",
                int port=1883,
                const char *client_id=NULL,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/handle_auth.c 
new/mosquitto-2.0.14/lib/handle_auth.c
--- old/mosquitto-2.0.13/lib/handle_auth.c      2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/handle_auth.c      2021-11-17 01:28:35.000000000 
+0100
@@ -36,7 +36,7 @@
        mosquitto_property *properties = NULL;
 
        if(!mosq) return MOSQ_ERR_INVAL;
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received AUTH", mosq->id);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received AUTH", 
SAFE_PRINT(mosq->id));
 
        if(mosq->protocol != mosq_p_mqtt5){
                return MOSQ_ERR_PROTOCOL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/handle_connack.c 
new/mosquitto-2.0.14/lib/handle_connack.c
--- old/mosquitto-2.0.13/lib/handle_connack.c   2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/handle_connack.c   2021-11-17 01:28:35.000000000 
+0100
@@ -32,7 +32,7 @@
 
 static void connack_callback(struct mosquitto *mosq, uint8_t reason_code, 
uint8_t connect_flags, const mosquitto_property *properties)
 {
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received CONNACK (%d)", 
mosq->id, reason_code);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received CONNACK (%d)", 
SAFE_PRINT(mosq->id), reason_code);
        if(reason_code == MQTT_RC_SUCCESS){
                mosq->reconnects = 0;
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/handle_ping.c 
new/mosquitto-2.0.14/lib/handle_ping.c
--- old/mosquitto-2.0.13/lib/handle_ping.c      2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/handle_ping.c      2021-11-17 01:28:35.000000000 
+0100
@@ -49,7 +49,7 @@
        }
 
 #ifdef WITH_BROKER
-       log__printf(NULL, MOSQ_LOG_DEBUG, "Received PINGREQ from %s", mosq->id);
+       log__printf(NULL, MOSQ_LOG_DEBUG, "Received PINGREQ from %s", 
SAFE_PRINT(mosq->id));
 #else
        return MOSQ_ERR_PROTOCOL;
 #endif
@@ -69,9 +69,9 @@
        if(mosq->bridge == NULL){
                return MOSQ_ERR_PROTOCOL;
        }
-       log__printf(NULL, MOSQ_LOG_DEBUG, "Received PINGRESP from %s", 
mosq->id);
+       log__printf(NULL, MOSQ_LOG_DEBUG, "Received PINGRESP from %s", 
SAFE_PRINT(mosq->id));
 #else
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received PINGRESP", 
mosq->id);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received PINGRESP", 
SAFE_PRINT(mosq->id));
 #endif
        return MOSQ_ERR_SUCCESS;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/handle_pubackcomp.c 
new/mosquitto-2.0.14/lib/handle_pubackcomp.c
--- old/mosquitto-2.0.13/lib/handle_pubackcomp.c        2021-10-27 
20:30:49.000000000 +0200
+++ new/mosquitto-2.0.14/lib/handle_pubackcomp.c        2021-11-17 
01:28:35.000000000 +0100
@@ -119,20 +119,20 @@
        }
 
 #ifdef WITH_BROKER
-       log__printf(NULL, MOSQ_LOG_DEBUG, "Received %s from %s (Mid: %d, 
RC:%d)", type, mosq->id, mid, reason_code);
+       log__printf(NULL, MOSQ_LOG_DEBUG, "Received %s from %s (Mid: %d, 
RC:%d)", type, SAFE_PRINT(mosq->id), mid, reason_code);
 
        /* Immediately free, we don't do anything with Reason String or User 
Property at the moment */
        mosquitto_property_free_all(&properties);
 
        rc = db__message_delete_outgoing(mosq, mid, mosq_ms_wait_for_pubcomp, 
qos);
        if(rc == MOSQ_ERR_NOT_FOUND){
-               log__printf(mosq, MOSQ_LOG_WARNING, "Warning: Received %s from 
%s for an unknown packet identifier %d.", type, mosq->id, mid);
+               log__printf(mosq, MOSQ_LOG_WARNING, "Warning: Received %s from 
%s for an unknown packet identifier %d.", type, SAFE_PRINT(mosq->id), mid);
                return MOSQ_ERR_SUCCESS;
        }else{
                return rc;
        }
 #else
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received %s (Mid: %d, 
RC:%d)", mosq->id, type, mid, reason_code);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received %s (Mid: %d, 
RC:%d)", SAFE_PRINT(mosq->id), type, mid, reason_code);
 
        rc = message__delete(mosq, mid, mosq_md_out, qos);
        if(rc == MOSQ_ERR_SUCCESS){
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/handle_publish.c 
new/mosquitto-2.0.14/lib/handle_publish.c
--- old/mosquitto-2.0.13/lib/handle_publish.c   2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/handle_publish.c   2021-11-17 01:28:35.000000000 
+0100
@@ -115,7 +115,7 @@
        }
        log__printf(mosq, MOSQ_LOG_DEBUG,
                        "Client %s received PUBLISH (d%d, q%d, r%d, m%d, '%s', 
... (%ld bytes))",
-                       mosq->id, message->dup, message->msg.qos, 
message->msg.retain,
+                       SAFE_PRINT(mosq->id), message->dup, message->msg.qos, 
message->msg.retain,
                        message->msg.mid, message->msg.topic,
                        (long)message->msg.payloadlen);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/handle_pubrec.c 
new/mosquitto-2.0.14/lib/handle_pubrec.c
--- old/mosquitto-2.0.13/lib/handle_pubrec.c    2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/handle_pubrec.c    2021-11-17 01:28:35.000000000 
+0100
@@ -90,7 +90,7 @@
        }
 
 #ifdef WITH_BROKER
-       log__printf(NULL, MOSQ_LOG_DEBUG, "Received PUBREC from %s (Mid: %d)", 
mosq->id, mid);
+       log__printf(NULL, MOSQ_LOG_DEBUG, "Received PUBREC from %s (Mid: %d)", 
SAFE_PRINT(mosq->id), mid);
 
        if(reason_code < 0x80){
                rc = db__message_update_outgoing(mosq, mid, 
mosq_ms_wait_for_pubcomp, 2);
@@ -99,7 +99,7 @@
        }
 #else
 
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received PUBREC (Mid: 
%d)", mosq->id, mid);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received PUBREC (Mid: 
%d)", SAFE_PRINT(mosq->id), mid);
 
        if(reason_code < 0x80 || mosq->protocol != mosq_p_mqtt5){
                rc = message__out_update(mosq, mid, mosq_ms_wait_for_pubcomp, 
2);
@@ -122,7 +122,7 @@
        }
 #endif
        if(rc == MOSQ_ERR_NOT_FOUND){
-               log__printf(mosq, MOSQ_LOG_WARNING, "Warning: Received PUBREC 
from %s for an unknown packet identifier %d.", mosq->id, mid);
+               log__printf(mosq, MOSQ_LOG_WARNING, "Warning: Received PUBREC 
from %s for an unknown packet identifier %d.", SAFE_PRINT(mosq->id), mid);
        }else if(rc != MOSQ_ERR_SUCCESS){
                return rc;
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/handle_pubrel.c 
new/mosquitto-2.0.14/lib/handle_pubrel.c
--- old/mosquitto-2.0.13/lib/handle_pubrel.c    2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/handle_pubrel.c    2021-11-17 01:28:35.000000000 
+0100
@@ -88,7 +88,7 @@
        }
 
 #ifdef WITH_BROKER
-       log__printf(NULL, MOSQ_LOG_DEBUG, "Received PUBREL from %s (Mid: %d)", 
mosq->id, mid);
+       log__printf(NULL, MOSQ_LOG_DEBUG, "Received PUBREL from %s (Mid: %d)", 
SAFE_PRINT(mosq->id), mid);
 
        /* Immediately free, we don't do anything with Reason String or User 
Property at the moment */
        mosquitto_property_free_all(&properties);
@@ -104,7 +104,7 @@
        rc = send__pubcomp(mosq, mid, NULL);
        if(rc) return rc;
 #else
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received PUBREL (Mid: 
%d)", mosq->id, mid);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received PUBREL (Mid: 
%d)", SAFE_PRINT(mosq->id), mid);
 
        rc = send__pubcomp(mosq, mid, NULL);
        if(rc){
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/handle_suback.c 
new/mosquitto-2.0.14/lib/handle_suback.c
--- old/mosquitto-2.0.13/lib/handle_suback.c    2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/handle_suback.c    2021-11-17 01:28:35.000000000 
+0100
@@ -59,9 +59,9 @@
                /* Client is not a bridge, so shouldn't be sending SUBACK */
                return MOSQ_ERR_PROTOCOL;
        }
-       log__printf(NULL, MOSQ_LOG_DEBUG, "Received SUBACK from %s", mosq->id);
+       log__printf(NULL, MOSQ_LOG_DEBUG, "Received SUBACK from %s", 
SAFE_PRINT(mosq->id));
 #else
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received SUBACK", 
mosq->id);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received SUBACK", 
SAFE_PRINT(mosq->id));
 #endif
        rc = packet__read_uint16(&mosq->in_packet, &mid);
        if(rc) return rc;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/handle_unsuback.c 
new/mosquitto-2.0.14/lib/handle_unsuback.c
--- old/mosquitto-2.0.13/lib/handle_unsuback.c  2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/handle_unsuback.c  2021-11-17 01:28:35.000000000 
+0100
@@ -59,9 +59,9 @@
                /* Client is not a bridge, so shouldn't be sending SUBACK */
                return MOSQ_ERR_PROTOCOL;
        }
-       log__printf(NULL, MOSQ_LOG_DEBUG, "Received UNSUBACK from %s", 
mosq->id);
+       log__printf(NULL, MOSQ_LOG_DEBUG, "Received UNSUBACK from %s", 
SAFE_PRINT(mosq->id));
 #else
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received UNSUBACK", 
mosq->id);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s received UNSUBACK", 
SAFE_PRINT(mosq->id));
 #endif
        rc = packet__read_uint16(&mosq->in_packet, &mid);
        if(rc) return rc;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/mosquitto_internal.h 
new/mosquitto-2.0.14/lib/mosquitto_internal.h
--- old/mosquitto-2.0.13/lib/mosquitto_internal.h       2021-10-27 
20:30:49.000000000 +0200
+++ new/mosquitto-2.0.14/lib/mosquitto_internal.h       2021-11-17 
01:28:35.000000000 +0100
@@ -72,6 +72,8 @@
 typedef int mosq_sock_t;
 #endif
 
+#define SAFE_PRINT(A) (A)?(A):"null"
+
 enum mosquitto_msg_direction {
        mosq_md_in = 0,
        mosq_md_out = 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/send_connect.c 
new/mosquitto-2.0.14/lib/send_connect.c
--- old/mosquitto-2.0.13/lib/send_connect.c     2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/send_connect.c     2021-11-17 01:28:35.000000000 
+0100
@@ -204,10 +204,10 @@
        mosq->keepalive = keepalive;
 #ifdef WITH_BROKER
 # ifdef WITH_BRIDGE
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Bridge %s sending CONNECT", 
clientid);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Bridge %s sending CONNECT", 
SAFE_PRINT(clientid));
 # endif
 #else
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending CONNECT", 
clientid);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending CONNECT", 
SAFE_PRINT(clientid));
 #endif
        return packet__queue(mosq, packet);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/send_disconnect.c 
new/mosquitto-2.0.14/lib/send_disconnect.c
--- old/mosquitto-2.0.13/lib/send_disconnect.c  2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/send_disconnect.c  2021-11-17 01:28:35.000000000 
+0100
@@ -43,15 +43,15 @@
 #ifdef WITH_BROKER
 #  ifdef WITH_BRIDGE
        if(mosq->bridge){
-               log__printf(mosq, MOSQ_LOG_DEBUG, "Bridge %s sending 
DISCONNECT", mosq->id);
+               log__printf(mosq, MOSQ_LOG_DEBUG, "Bridge %s sending 
DISCONNECT", SAFE_PRINT(mosq->id));
        }else
 #  else
        {
-               log__printf(mosq, MOSQ_LOG_DEBUG, "Sending DISCONNECT to %s 
(rc%d)", mosq->id, reason_code);
+               log__printf(mosq, MOSQ_LOG_DEBUG, "Sending DISCONNECT to %s 
(rc%d)", SAFE_PRINT(mosq->id), reason_code);
        }
 #  endif
 #else
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending DISCONNECT", 
mosq->id);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending DISCONNECT", 
SAFE_PRINT(mosq->id));
 #endif
        assert(mosq);
        packet = mosquitto__calloc(1, sizeof(struct mosquitto__packet));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/send_mosq.c 
new/mosquitto-2.0.14/lib/send_mosq.c
--- old/mosquitto-2.0.13/lib/send_mosq.c        2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/send_mosq.c        2021-11-17 01:28:35.000000000 
+0100
@@ -46,9 +46,9 @@
        int rc;
        assert(mosq);
 #ifdef WITH_BROKER
-       log__printf(NULL, MOSQ_LOG_DEBUG, "Sending PINGREQ to %s", mosq->id);
+       log__printf(NULL, MOSQ_LOG_DEBUG, "Sending PINGREQ to %s", 
SAFE_PRINT(mosq->id));
 #else
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending PINGREQ", 
mosq->id);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending PINGREQ", 
SAFE_PRINT(mosq->id));
 #endif
        rc = send__simple_command(mosq, CMD_PINGREQ);
        if(rc == MOSQ_ERR_SUCCESS){
@@ -60,9 +60,9 @@
 int send__pingresp(struct mosquitto *mosq)
 {
 #ifdef WITH_BROKER
-       log__printf(NULL, MOSQ_LOG_DEBUG, "Sending PINGRESP to %s", mosq->id);
+       log__printf(NULL, MOSQ_LOG_DEBUG, "Sending PINGRESP to %s", 
SAFE_PRINT(mosq->id));
 #else
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending PINGRESP", 
mosq->id);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending PINGRESP", 
SAFE_PRINT(mosq->id));
 #endif
        return send__simple_command(mosq, CMD_PINGRESP);
 }
@@ -70,9 +70,9 @@
 int send__puback(struct mosquitto *mosq, uint16_t mid, uint8_t reason_code, 
const mosquitto_property *properties)
 {
 #ifdef WITH_BROKER
-       log__printf(NULL, MOSQ_LOG_DEBUG, "Sending PUBACK to %s (m%d, rc%d)", 
mosq->id, mid, reason_code);
+       log__printf(NULL, MOSQ_LOG_DEBUG, "Sending PUBACK to %s (m%d, rc%d)", 
SAFE_PRINT(mosq->id), mid, reason_code);
 #else
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending PUBACK (m%d, 
rc%d)", mosq->id, mid, reason_code);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending PUBACK (m%d, 
rc%d)", SAFE_PRINT(mosq->id), mid, reason_code);
 #endif
        util__increment_receive_quota(mosq);
        /* We don't use Reason String or User Property yet. */
@@ -82,9 +82,9 @@
 int send__pubcomp(struct mosquitto *mosq, uint16_t mid, const 
mosquitto_property *properties)
 {
 #ifdef WITH_BROKER
-       log__printf(NULL, MOSQ_LOG_DEBUG, "Sending PUBCOMP to %s (m%d)", 
mosq->id, mid);
+       log__printf(NULL, MOSQ_LOG_DEBUG, "Sending PUBCOMP to %s (m%d)", 
SAFE_PRINT(mosq->id), mid);
 #else
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending PUBCOMP (m%d)", 
mosq->id, mid);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending PUBCOMP (m%d)", 
SAFE_PRINT(mosq->id), mid);
 #endif
        util__increment_receive_quota(mosq);
        /* We don't use Reason String or User Property yet. */
@@ -95,9 +95,9 @@
 int send__pubrec(struct mosquitto *mosq, uint16_t mid, uint8_t reason_code, 
const mosquitto_property *properties)
 {
 #ifdef WITH_BROKER
-       log__printf(NULL, MOSQ_LOG_DEBUG, "Sending PUBREC to %s (m%d, rc%d)", 
mosq->id, mid, reason_code);
+       log__printf(NULL, MOSQ_LOG_DEBUG, "Sending PUBREC to %s (m%d, rc%d)", 
SAFE_PRINT(mosq->id), mid, reason_code);
 #else
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending PUBREC (m%d, 
rc%d)", mosq->id, mid, reason_code);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending PUBREC (m%d, 
rc%d)", SAFE_PRINT(mosq->id), mid, reason_code);
 #endif
        if(reason_code >= 0x80 && mosq->protocol == mosq_p_mqtt5){
                util__increment_receive_quota(mosq);
@@ -109,9 +109,9 @@
 int send__pubrel(struct mosquitto *mosq, uint16_t mid, const 
mosquitto_property *properties)
 {
 #ifdef WITH_BROKER
-       log__printf(NULL, MOSQ_LOG_DEBUG, "Sending PUBREL to %s (m%d)", 
mosq->id, mid);
+       log__printf(NULL, MOSQ_LOG_DEBUG, "Sending PUBREL to %s (m%d)", 
SAFE_PRINT(mosq->id), mid);
 #else
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending PUBREL (m%d)", 
mosq->id, mid);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending PUBREL (m%d)", 
SAFE_PRINT(mosq->id), mid);
 #endif
        /* We don't use Reason String or User Property yet. */
        return send__command_with_mid(mosq, CMD_PUBREL|2, mid, false, 0, 
properties);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/send_publish.c 
new/mosquitto-2.0.14/lib/send_publish.c
--- old/mosquitto-2.0.13/lib/send_publish.c     2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/send_publish.c     2021-11-17 01:28:35.000000000 
+0100
@@ -114,7 +114,7 @@
                                                mosquitto__free(mapped_topic);
                                                mapped_topic = topic_temp;
                                        }
-                                       log__printf(NULL, MOSQ_LOG_DEBUG, 
"Sending PUBLISH to %s (d%d, q%d, r%d, m%d, '%s', ... (%ld bytes))", mosq->id, 
dup, qos, retain, mid, mapped_topic, (long)payloadlen);
+                                       log__printf(NULL, MOSQ_LOG_DEBUG, 
"Sending PUBLISH to %s (d%d, q%d, r%d, m%d, '%s', ... (%ld bytes))", 
SAFE_PRINT(mosq->id), dup, qos, retain, mid, mapped_topic, (long)payloadlen);
                                        G_PUB_BYTES_SENT_INC(payloadlen);
                                        rc =  send__real_publish(mosq, mid, 
mapped_topic, payloadlen, payload, qos, retain, dup, cmsg_props, store_props, 
expiry_interval);
                                        mosquitto__free(mapped_topic);
@@ -124,10 +124,10 @@
                }
        }
 #endif
-       log__printf(NULL, MOSQ_LOG_DEBUG, "Sending PUBLISH to %s (d%d, q%d, 
r%d, m%d, '%s', ... (%ld bytes))", mosq->id, dup, qos, retain, mid, topic, 
(long)payloadlen);
+       log__printf(NULL, MOSQ_LOG_DEBUG, "Sending PUBLISH to %s (d%d, q%d, 
r%d, m%d, '%s', ... (%ld bytes))", SAFE_PRINT(mosq->id), dup, qos, retain, mid, 
topic, (long)payloadlen);
        G_PUB_BYTES_SENT_INC(payloadlen);
 #else
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending PUBLISH (d%d, q%d, 
r%d, m%d, '%s', ... (%ld bytes))", mosq->id, dup, qos, retain, mid, topic, 
(long)payloadlen);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending PUBLISH (d%d, q%d, 
r%d, m%d, '%s', ... (%ld bytes))", SAFE_PRINT(mosq->id), dup, qos, retain, mid, 
topic, (long)payloadlen);
 #endif
 
        return send__real_publish(mosq, mid, topic, payloadlen, payload, qos, 
retain, dup, cmsg_props, store_props, expiry_interval);
@@ -175,7 +175,7 @@
        }
        if(packet__check_oversize(mosq, packetlen)){
 #ifdef WITH_BROKER
-               log__printf(NULL, MOSQ_LOG_NOTICE, "Dropping too large outgoing 
PUBLISH for %s (%d bytes)", mosq->id, packetlen);
+               log__printf(NULL, MOSQ_LOG_NOTICE, "Dropping too large outgoing 
PUBLISH for %s (%d bytes)", SAFE_PRINT(mosq->id), packetlen);
 #else
                log__printf(NULL, MOSQ_LOG_NOTICE, "Dropping too large outgoing 
PUBLISH (%d bytes)", packetlen);
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/send_subscribe.c 
new/mosquitto-2.0.14/lib/send_subscribe.c
--- old/mosquitto-2.0.13/lib/send_subscribe.c   2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/send_subscribe.c   2021-11-17 01:28:35.000000000 
+0100
@@ -89,11 +89,11 @@
 
 #ifdef WITH_BROKER
 # ifdef WITH_BRIDGE
-       log__printf(mosq, MOSQ_LOG_DEBUG, "Bridge %s sending SUBSCRIBE (Mid: 
%d, Topic: %s, QoS: %d, Options: 0x%02x)", mosq->id, local_mid, topic[0], 
topic_qos&0x03, topic_qos&0xFC);
+       log__printf(mosq, MOSQ_LOG_DEBUG, "Bridge %s sending SUBSCRIBE (Mid: 
%d, Topic: %s, QoS: %d, Options: 0x%02x)", SAFE_PRINT(mosq->id), local_mid, 
topic[0], topic_qos&0x03, topic_qos&0xFC);
 # endif
 #else
        for(i=0; i<topic_count; i++){
-               log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending SUBSCRIBE 
(Mid: %d, Topic: %s, QoS: %d, Options: 0x%02x)", mosq->id, local_mid, topic[i], 
topic_qos&0x03, topic_qos&0xFC);
+               log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending SUBSCRIBE 
(Mid: %d, Topic: %s, QoS: %d, Options: 0x%02x)", SAFE_PRINT(mosq->id), 
local_mid, topic[i], topic_qos&0x03, topic_qos&0xFC);
        }
 #endif
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/send_unsubscribe.c 
new/mosquitto-2.0.14/lib/send_unsubscribe.c
--- old/mosquitto-2.0.13/lib/send_unsubscribe.c 2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/send_unsubscribe.c 2021-11-17 01:28:35.000000000 
+0100
@@ -89,12 +89,12 @@
 #ifdef WITH_BROKER
 # ifdef WITH_BRIDGE
        for(i=0; i<topic_count; i++){
-               log__printf(mosq, MOSQ_LOG_DEBUG, "Bridge %s sending 
UNSUBSCRIBE (Mid: %d, Topic: %s)", mosq->id, local_mid, topic[i]);
+               log__printf(mosq, MOSQ_LOG_DEBUG, "Bridge %s sending 
UNSUBSCRIBE (Mid: %d, Topic: %s)", SAFE_PRINT(mosq->id), local_mid, topic[i]);
        }
 # endif
 #else
        for(i=0; i<topic_count; i++){
-               log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending 
UNSUBSCRIBE (Mid: %d, Topic: %s)", mosq->id, local_mid, topic[i]);
+               log__printf(mosq, MOSQ_LOG_DEBUG, "Client %s sending 
UNSUBSCRIBE (Mid: %d, Topic: %s)", SAFE_PRINT(mosq->id), local_mid, topic[i]);
        }
 #endif
        return packet__queue(mosq, packet);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/lib/util_topic.c 
new/mosquitto-2.0.14/lib/util_topic.c
--- old/mosquitto-2.0.13/lib/util_topic.c       2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/lib/util_topic.c       2021-11-17 01:28:35.000000000 
+0100
@@ -189,19 +189,11 @@
        return MOSQ_ERR_SUCCESS;
 }
 
-int mosquitto_topic_matches_sub(const char *sub, const char *topic, bool 
*result)
-{
-       return mosquitto_topic_matches_sub2(sub, 0, topic, 0, result);
-}
-
 /* Does a topic match a subscription? */
-int mosquitto_topic_matches_sub2(const char *sub, size_t sublen, const char 
*topic, size_t topiclen, bool *result)
+int mosquitto_topic_matches_sub(const char *sub, const char *topic, bool 
*result)
 {
        size_t spos;
 
-       UNUSED(sublen);
-       UNUSED(topiclen);
-
        if(!result) return MOSQ_ERR_INVAL;
        *result = false;
 
@@ -324,4 +316,131 @@
        }
 
        return MOSQ_ERR_SUCCESS;
+}
+
+/* Does a topic match a subscription? */
+int mosquitto_topic_matches_sub2(const char *sub, size_t sublen, const char 
*topic, size_t topiclen, bool *result)
+{
+       size_t spos, tpos;
+
+       if(!result) return MOSQ_ERR_INVAL;
+       *result = false;
+
+       if(!sub || !topic || !sublen || !topiclen){
+               return MOSQ_ERR_INVAL;
+       }
+
+       if((sub[0] == '$' && topic[0] != '$')
+                       || (topic[0] == '$' && sub[0] != '$')){
+
+               return MOSQ_ERR_SUCCESS;
+       }
+
+       spos = 0;
+       tpos = 0;
+
+       while(spos < sublen){
+               if(tpos < topiclen && (topic[tpos] == '+' || topic[tpos] == 
'#')){
+                       return MOSQ_ERR_INVAL;
+               }
+               if(tpos == topiclen || sub[spos] != topic[tpos]){
+                       if(sub[spos] == '+'){
+                               /* Check for bad "+foo" or "a/+foo" 
subscription */
+                               if(spos > 0 && sub[spos-1] != '/'){
+                                       return MOSQ_ERR_INVAL;
+                               }
+                               /* Check for bad "foo+" or "foo+/a" 
subscription */
+                               if(spos+1 < sublen && sub[spos+1] != '/'){
+                                       return MOSQ_ERR_INVAL;
+                               }
+                               spos++;
+                               while(tpos < topiclen && topic[tpos] != '/'){
+                                       if(topic[tpos] == '+' || topic[tpos] == 
'#'){
+                                               return MOSQ_ERR_INVAL;
+                                       }
+                                       tpos++;
+                               }
+                               if(tpos == topiclen && spos == sublen){
+                                       *result = true;
+                                       return MOSQ_ERR_SUCCESS;
+                               }
+                       }else if(sub[spos] == '#'){
+                               /* Check for bad "foo#" subscription */
+                               if(spos > 0 && sub[spos-1] != '/'){
+                                       return MOSQ_ERR_INVAL;
+                               }
+                               /* Check for # not the final character of the 
sub, e.g. "#foo" */
+                               if(spos+1 < sublen){
+                                       return MOSQ_ERR_INVAL;
+                               }else{
+                                       while(tpos < topiclen){
+                                               if(topic[tpos] == '+' || 
topic[tpos] == '#'){
+                                                       return MOSQ_ERR_INVAL;
+                                               }
+                                               tpos++;
+                                       }
+                                       *result = true;
+                                       return MOSQ_ERR_SUCCESS;
+                               }
+                       }else{
+                               /* Check for e.g. foo/bar matching foo/+/# */
+                               if(tpos == topiclen
+                                               && spos > 0
+                                               && sub[spos-1] == '+'
+                                               && sub[spos] == '/'
+                                               && spos+1 < sublen
+                                               && sub[spos+1] == '#')
+                               {
+                                       *result = true;
+                                       return MOSQ_ERR_SUCCESS;
+                               }
+
+                               /* There is no match at this point, but is the 
sub invalid? */
+                               while(spos < sublen){
+                                       if(sub[spos] == '#' && spos+1 < sublen){
+                                               return MOSQ_ERR_INVAL;
+                                       }
+                                       spos++;
+                               }
+
+                               /* Valid input, but no match */
+                               return MOSQ_ERR_SUCCESS;
+                       }
+               }else{
+                       /* sub[spos] == topic[tpos] */
+                       if(tpos+1 == topiclen){
+                               /* Check for e.g. foo matching foo/# */
+                               if(spos+3 == sublen
+                                               && sub[spos+1] == '/'
+                                               && sub[spos+2] == '#'){
+                                       *result = true;
+                                       return MOSQ_ERR_SUCCESS;
+                               }
+                       }
+                       spos++;
+                       tpos++;
+                       if(spos == sublen && tpos == topiclen){
+                               *result = true;
+                               return MOSQ_ERR_SUCCESS;
+                       }else if(tpos == topiclen && sub[spos] == '+' && spos+1 
== sublen){
+                               if(spos > 0 && sub[spos-1] != '/'){
+                                       return MOSQ_ERR_INVAL;
+                               }
+                               spos++;
+                               *result = true;
+                               return MOSQ_ERR_SUCCESS;
+                       }
+               }
+       }
+       if(tpos < topiclen || spos < sublen){
+               *result = false;
+       }
+       while(tpos < topiclen){
+               if(topic[tpos] == '+' || topic[tpos] == '#'){
+                       return MOSQ_ERR_INVAL;
+               }
+               tpos++;
+       }
+
+       return MOSQ_ERR_SUCCESS;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/man/libmosquitto.3 
new/mosquitto-2.0.14/man/libmosquitto.3
--- old/mosquitto-2.0.13/man/libmosquitto.3     2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/man/libmosquitto.3     2021-11-17 01:28:35.000000000 
+0100
@@ -2,12 +2,12 @@
 .\"     Title: libmosquitto
 .\"    Author: [see the "Author" section]
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/27/2021
+.\"      Date: 11/17/2021
 .\"    Manual: Library calls
 .\"    Source: Mosquitto Project
 .\"  Language: English
 .\"
-.TH "LIBMOSQUITTO" "3" "10/27/2021" "Mosquitto Project" "Library calls"
+.TH "LIBMOSQUITTO" "3" "11/17/2021" "Mosquitto Project" "Library calls"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/man/mosquitto-tls.7 
new/mosquitto-2.0.14/man/mosquitto-tls.7
--- old/mosquitto-2.0.13/man/mosquitto-tls.7    2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/man/mosquitto-tls.7    2021-11-17 01:28:35.000000000 
+0100
@@ -2,12 +2,12 @@
 .\"     Title: mosquitto-tls
 .\"    Author: [see the "Author" section]
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/27/2021
+.\"      Date: 11/17/2021
 .\"    Manual: Conventions and miscellaneous
 .\"    Source: Mosquitto Project
 .\"  Language: English
 .\"
-.TH "MOSQUITTO\-TLS" "7" "10/27/2021" "Mosquitto Project" "Conventions and 
miscellaneous"
+.TH "MOSQUITTO\-TLS" "7" "11/17/2021" "Mosquitto Project" "Conventions and 
miscellaneous"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/man/mosquitto.8 
new/mosquitto-2.0.14/man/mosquitto.8
--- old/mosquitto-2.0.13/man/mosquitto.8        2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/man/mosquitto.8        2021-11-17 01:28:35.000000000 
+0100
@@ -2,12 +2,12 @@
 .\"     Title: mosquitto
 .\"    Author: [see the "Author" section]
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/27/2021
+.\"      Date: 11/17/2021
 .\"    Manual: System management commands
 .\"    Source: Mosquitto Project
 .\"  Language: English
 .\"
-.TH "MOSQUITTO" "8" "10/27/2021" "Mosquitto Project" "System management 
commands"
+.TH "MOSQUITTO" "8" "11/17/2021" "Mosquitto Project" "System management 
commands"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/man/mosquitto.conf.5 
new/mosquitto-2.0.14/man/mosquitto.conf.5
--- old/mosquitto-2.0.13/man/mosquitto.conf.5   2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/man/mosquitto.conf.5   2021-11-17 01:28:35.000000000 
+0100
@@ -2,12 +2,12 @@
 .\"     Title: mosquitto.conf
 .\"    Author: [see the "Author" section]
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/27/2021
+.\"      Date: 11/17/2021
 .\"    Manual: File formats and conventions
 .\"    Source: Mosquitto Project
 .\"  Language: English
 .\"
-.TH "MOSQUITTO\&.CONF" "5" "10/27/2021" "Mosquitto Project" "File formats and 
conventions"
+.TH "MOSQUITTO\&.CONF" "5" "11/17/2021" "Mosquitto Project" "File formats and 
conventions"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/man/mosquitto_ctrl.1 
new/mosquitto-2.0.14/man/mosquitto_ctrl.1
--- old/mosquitto-2.0.13/man/mosquitto_ctrl.1   2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/man/mosquitto_ctrl.1   2021-11-17 01:28:35.000000000 
+0100
@@ -2,12 +2,12 @@
 .\"     Title: mosquitto_ctrl
 .\"    Author: [see the "Author" section]
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/27/2021
+.\"      Date: 11/17/2021
 .\"    Manual: Commands
 .\"    Source: Mosquitto Project
 .\"  Language: English
 .\"
-.TH "MOSQUITTO_CTRL" "1" "10/27/2021" "Mosquitto Project" "Commands"
+.TH "MOSQUITTO_CTRL" "1" "11/17/2021" "Mosquitto Project" "Commands"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/man/mosquitto_ctrl_dynsec.1 
new/mosquitto-2.0.14/man/mosquitto_ctrl_dynsec.1
--- old/mosquitto-2.0.13/man/mosquitto_ctrl_dynsec.1    2021-10-27 
20:30:49.000000000 +0200
+++ new/mosquitto-2.0.14/man/mosquitto_ctrl_dynsec.1    2021-11-17 
01:28:35.000000000 +0100
@@ -2,12 +2,12 @@
 .\"     Title: mosquitto_ctrl_dynsec
 .\"    Author: [see the "Author" section]
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/27/2021
+.\"      Date: 11/17/2021
 .\"    Manual: Commands
 .\"    Source: Mosquitto Project
 .\"  Language: English
 .\"
-.TH "MOSQUITTO_CTRL_DYNSE" "1" "10/27/2021" "Mosquitto Project" "Commands"
+.TH "MOSQUITTO_CTRL_DYNSE" "1" "11/17/2021" "Mosquitto Project" "Commands"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/man/mosquitto_passwd.1 
new/mosquitto-2.0.14/man/mosquitto_passwd.1
--- old/mosquitto-2.0.13/man/mosquitto_passwd.1 2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/man/mosquitto_passwd.1 2021-11-17 01:28:35.000000000 
+0100
@@ -2,12 +2,12 @@
 .\"     Title: mosquitto_passwd
 .\"    Author: [see the "Author" section]
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/27/2021
+.\"      Date: 11/17/2021
 .\"    Manual: Commands
 .\"    Source: Mosquitto Project
 .\"  Language: English
 .\"
-.TH "MOSQUITTO_PASSWD" "1" "10/27/2021" "Mosquitto Project" "Commands"
+.TH "MOSQUITTO_PASSWD" "1" "11/17/2021" "Mosquitto Project" "Commands"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/man/mosquitto_pub.1 
new/mosquitto-2.0.14/man/mosquitto_pub.1
--- old/mosquitto-2.0.13/man/mosquitto_pub.1    2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/man/mosquitto_pub.1    2021-11-17 01:28:35.000000000 
+0100
@@ -2,12 +2,12 @@
 .\"     Title: mosquitto_pub
 .\"    Author: [see the "Author" section]
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/27/2021
+.\"      Date: 11/17/2021
 .\"    Manual: Commands
 .\"    Source: Mosquitto Project
 .\"  Language: English
 .\"
-.TH "MOSQUITTO_PUB" "1" "10/27/2021" "Mosquitto Project" "Commands"
+.TH "MOSQUITTO_PUB" "1" "11/17/2021" "Mosquitto Project" "Commands"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/man/mosquitto_rr.1 
new/mosquitto-2.0.14/man/mosquitto_rr.1
--- old/mosquitto-2.0.13/man/mosquitto_rr.1     2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/man/mosquitto_rr.1     2021-11-17 01:28:35.000000000 
+0100
@@ -2,12 +2,12 @@
 .\"     Title: mosquitto_rr
 .\"    Author: [see the "Author" section]
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/27/2021
+.\"      Date: 11/17/2021
 .\"    Manual: Commands
 .\"    Source: Mosquitto Project
 .\"  Language: English
 .\"
-.TH "MOSQUITTO_RR" "1" "10/27/2021" "Mosquitto Project" "Commands"
+.TH "MOSQUITTO_RR" "1" "11/17/2021" "Mosquitto Project" "Commands"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/man/mosquitto_sub.1 
new/mosquitto-2.0.14/man/mosquitto_sub.1
--- old/mosquitto-2.0.13/man/mosquitto_sub.1    2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/man/mosquitto_sub.1    2021-11-17 01:28:35.000000000 
+0100
@@ -2,12 +2,12 @@
 .\"     Title: mosquitto_sub
 .\"    Author: [see the "Author" section]
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/27/2021
+.\"      Date: 11/17/2021
 .\"    Manual: Commands
 .\"    Source: Mosquitto Project
 .\"  Language: English
 .\"
-.TH "MOSQUITTO_SUB" "1" "10/27/2021" "Mosquitto Project" "Commands"
+.TH "MOSQUITTO_SUB" "1" "11/17/2021" "Mosquitto Project" "Commands"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/man/mqtt.7 
new/mosquitto-2.0.14/man/mqtt.7
--- old/mosquitto-2.0.13/man/mqtt.7     2021-10-27 20:30:49.000000000 +0200
+++ new/mosquitto-2.0.14/man/mqtt.7     2021-11-17 01:28:35.000000000 +0100
@@ -2,12 +2,12 @@
 .\"     Title: mqtt
 .\"    Author: [see the "Author" section]
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/27/2021
+.\"      Date: 11/17/2021
 .\"    Manual: Conventions and miscellaneous
 .\"    Source: Mosquitto Project
 .\"  Language: English
 .\"
-.TH "MQTT" "7" "10/27/2021" "Mosquitto Project" "Conventions and miscellaneous"
+.TH "MQTT" "7" "11/17/2021" "Mosquitto Project" "Conventions and miscellaneous"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mosquitto-2.0.13/plugins/dynamic-security/CMakeLists.txt 
new/mosquitto-2.0.14/plugins/dynamic-security/CMakeLists.txt
--- old/mosquitto-2.0.13/plugins/dynamic-security/CMakeLists.txt        
2021-10-27 20:30:49.000000000 +0200
+++ new/mosquitto-2.0.14/plugins/dynamic-security/CMakeLists.txt        
2021-11-17 01:28:35.000000000 +0100
@@ -35,7 +35,12 @@
        target_link_libraries(mosquitto_dynamic_security ${CJSON_LIBRARIES} 
${OPENSSL_LIBRARIES})
        if(WIN32)
                target_link_libraries(mosquitto_dynamic_security mosquitto)
-       endif(WIN32)
+               install(TARGETS mosquitto_dynamic_security
+                       DESTINATION "${CMAKE_INSTALL_BINDIR}")
+       else()
+               install(TARGETS mosquitto_dynamic_security
+                       RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+                       LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+       endif()
 
-       install(TARGETS mosquitto_dynamic_security RUNTIME DESTINATION 
"${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
 endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/snap/snapcraft.yaml 
new/mosquitto-2.0.14/snap/snapcraft.yaml
--- old/mosquitto-2.0.13/snap/snapcraft.yaml    2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/snap/snapcraft.yaml    2021-11-17 01:28:35.000000000 
+0100
@@ -1,5 +1,5 @@
 name: mosquitto
-version: 2.0.13
+version: 2.0.14
 summary: Eclipse Mosquitto MQTT broker
 description: This is a message broker that supports version 5.0, 3.1.1, and 
3.1 of the MQTT
     protocol.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/src/handle_connack.c 
new/mosquitto-2.0.14/src/handle_connack.c
--- old/mosquitto-2.0.13/src/handle_connack.c   2021-10-27 20:30:49.000000000 
+0200
+++ new/mosquitto-2.0.14/src/handle_connack.c   2021-11-17 01:28:35.000000000 
+0100
@@ -37,6 +37,7 @@
        uint32_t maximum_packet_size;
        uint8_t retain_available;
        uint16_t server_keepalive;
+       uint16_t inflight_maximum;
        uint8_t max_qos = 255;
 
        if(context == NULL){
@@ -83,9 +84,12 @@
                }
 
                /* receive-maximum */
-               mosquitto_property_read_int16(properties, 
MQTT_PROP_RECEIVE_MAXIMUM,
-                               &context->msgs_out.inflight_maximum, false);
-               context->msgs_out.inflight_quota = 
context->msgs_out.inflight_maximum;
+               inflight_maximum = context->msgs_out.inflight_maximum;
+               mosquitto_property_read_int16(properties, 
MQTT_PROP_RECEIVE_MAXIMUM, &inflight_maximum, false);
+               if(context->msgs_out.inflight_maximum != inflight_maximum){
+                       context->msgs_out.inflight_maximum = inflight_maximum;
+                       db__message_reconnect_reset(context);
+               }
 
                /* retain-available */
                if(mosquitto_property_read_byte(properties, 
MQTT_PROP_RETAIN_AVAILABLE,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/test/unit/persist_read_stubs.c 
new/mosquitto-2.0.14/test/unit/persist_read_stubs.c
--- old/mosquitto-2.0.13/test/unit/persist_read_stubs.c 2021-10-27 
20:30:49.000000000 +0200
+++ new/mosquitto-2.0.14/test/unit/persist_read_stubs.c 2021-11-17 
01:28:35.000000000 +0100
@@ -197,3 +197,11 @@
        UNUSED(msg_data);
        UNUSED(msg);
 }
+
+void context__add_to_by_id(struct mosquitto *context)
+{
+       if(context->in_by_id == false){
+               context->in_by_id = true;
+               HASH_ADD_KEYPTR(hh_id, db.contexts_by_id, context->id, 
strlen(context->id), context);
+       }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/test/unit/persist_write_stubs.c 
new/mosquitto-2.0.14/test/unit/persist_write_stubs.c
--- old/mosquitto-2.0.13/test/unit/persist_write_stubs.c        2021-10-27 
20:30:49.000000000 +0200
+++ new/mosquitto-2.0.14/test/unit/persist_write_stubs.c        2021-11-17 
01:28:35.000000000 +0100
@@ -113,3 +113,11 @@
 
        return MOSQ_ERR_SUCCESS;
 }
+
+void context__add_to_by_id(struct mosquitto *context)
+{
+       if(context->in_by_id == false){
+               context->in_by_id = true;
+               HASH_ADD_KEYPTR(hh_id, db.contexts_by_id, context->id, 
strlen(context->id), context);
+       }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mosquitto-2.0.13/test/unit/util_topic_test.c 
new/mosquitto-2.0.14/test/unit/util_topic_test.c
--- old/mosquitto-2.0.13/test/unit/util_topic_test.c    2021-10-27 
20:30:49.000000000 +0200
+++ new/mosquitto-2.0.14/test/unit/util_topic_test.c    2021-11-17 
01:28:35.000000000 +0100
@@ -11,6 +11,16 @@
        rc = mosquitto_topic_matches_sub(sub, topic, &match);
        CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
        CU_ASSERT_EQUAL(match, true);
+       if(match == false){
+               printf("1: %s:%s\n", sub, topic);
+       }
+
+       rc = mosquitto_topic_matches_sub2(sub, strlen(sub), topic, 
strlen(topic), &match);
+       CU_ASSERT_EQUAL(rc, MOSQ_ERR_SUCCESS);
+       CU_ASSERT_EQUAL(match, true);
+       if(match == false){
+               printf("2: %s:%s\n", sub, topic);
+       }
 }
 
 static void no_match_helper(int rc_expected, const char *sub, const char 
*topic)
@@ -22,6 +32,13 @@
        CU_ASSERT_EQUAL(rc, rc_expected);
        if(rc != rc_expected){
                printf("%d:%d %s:%s\n", rc, rc_expected, sub, topic);
+       }
+       CU_ASSERT_EQUAL(match, false);
+
+       rc = mosquitto_topic_matches_sub2(sub, strlen(sub), topic, 
strlen(topic), &match);
+       CU_ASSERT_EQUAL(rc, rc_expected);
+       if(rc != rc_expected){
+               printf("%d:%d %s:%s\n", rc, rc_expected, sub, topic);
        }
        CU_ASSERT_EQUAL(match, false);
 }

Reply via email to