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); }
