123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090 |
- 2.0.13 - 2021-10-27
- ===================
- Broker:
- - Fix `max_keepalive` option not being able to be set to 0.
- - Fix LWT messages not being delivered if `per_listener_settings` was set to
- true. Closes #2314.
- - Various fixes around inflight quota management. Closes #2306.
- - Fix problem parsing config files with Windows line endings. Closes #2297.
- - Don't send retained messages when a shared subscription is made.
- - Fix log being truncated in Windows.
- - Fix client id not showing in log on failed connections, where possible.
- - Fix broker sending duplicate CONNACK on failed MQTT v5 reauthentication.
- Closes #2339.
- - Fix mosquitto_plugin.h not including mosquitto_broker.h. Closes #2350.
- Client library:
- - Initialise sockpairR/W to invalid in `mosquitto_reinitialise()` to avoid
- closing invalid sockets in `mosquitto_destroy()` on error. Closes #2326.
- Clients:
- - Fix date format in mosquitto_sub output. Closes #2353.
- 2.0.12 - 2021-08-31
- ===================
- Security:
- - An MQTT v5 client connecting with a large number of user-property properties
- could cause excessive CPU usage, leading to a loss of performance and
- possible denial of service. This has been fixed.
- - Fix `max_keepalive` not applying to MQTT v3.1.1 and v3.1 connections.
- These clients are now rejected if their keepalive value exceeds
- max_keepalive. This option allows CVE-2020-13849, which is for the MQTT
- v3.1.1 protocol itself rather than an implementation, to be addressed.
- - Using certain listener related configuration options e.g. `cafile`, that
- apply to the default listener without defining any listener would cause a
- remotely accessible listener to be opened that was not confined to the local
- machine but did have anonymous access enabled, contrary to the
- documentation. This has been fixed. Closes #2283.
- - CVE-2021-34434: If a plugin had granted ACL subscription access to a
- durable/non-clean-session client, then removed that access, the client would
- keep its existing subscription. This has been fixed.
- - Incoming QoS 2 messages that had not completed the QoS flow were not being
- checked for ACL access when a clean session=False client was reconnecting.
- This has been fixed.
- Broker:
- - Fix possible out of bounds memory reads when reading a corrupt/crafted
- configuration file. Unless your configuration file is writable by untrusted
- users this is not a risk. Closes #567213.
- - Fix `max_connections` option not being correctly counted.
- - Fix TLS certificates and TLS-PSK not being able to be configured at the same
- time.
- - Disable TLS v1.3 when using TLS-PSK, because it isn't correctly configured.
- - Fix `max_keepalive` not applying to MQTT v3.1.1 and v3.1 connections.
- These clients are now rejected if their keepalive value exceeds
- max_keepalive. This option allows CVE-2020-13849, which is for the MQTT
- v3.1.1 protocol itself rather than an implementation, to be addressed.
- - Fix broker not quiting if e.g. the `password_file` is specified as a
- directory. Closes #2241.
- - Fix listener mount_point not being removed on outgoing messages.
- Closes #2244.
- - Strict protocol compliance fixes, plus test suite.
- - Fix $share subscriptions not being recovered for durable clients that
- reconnect.
- - Update plugin configuration documentation. Closes #2286.
- Client library:
- - If a client uses TLS-PSK then force the default cipher list to use "PSK"
- ciphers only. This means that a client connecting to a broker configured
- with x509 certificates only will now fail. Prior to this, the client would
- connect successfully without verifying certificates, because they were not
- configured.
- - Disable TLS v1.3 when using TLS-PSK, because it isn't correctly configured.
- - Threaded mode is deconfigured when the mosquitto_loop_start() thread ends,
- which allows mosquitto_loop_start() to be called again. Closes #2242.
- - Fix MOSQ_OPT_SSL_CTX not being able to be set to NULL. Closes #2289.
- - Fix reconnecting failing when MOSQ_OPT_TLS_USE_OS_CERTS was in use, but none
- of capath, cafile, psk, nor MOSQ_OPT_SSL_CTX were set, and
- MOSQ_OPT_SSL_CTX_WITH_DEFAULTS was set to the default value of true.
- Closes #2288.
- Apps:
- - Fix `mosquitto_ctrl dynsec setDefaultACLAccess` command not working.
- Clients:
- - mosquitto_sub and mosquitto_rr now open stdout in binary mode on Windows
- so binary payloads are not modified when printing.
- - Document TLS certificate behaviour when using `-p 8883`.
- Build:
- - Fix installation using WITH_TLS=no. Closes #2281.
- - Fix builds with libressl 3.4.0. Closes #2198.
- - Remove some unnecessary code guards related to libressl.
- - Fix printf format build warning on MIPS. Closes #2271.
- 2.0.11 - 2021-06-08
- ===================
- Security:
- - If a MQTT v5 client connects with a crafted CONNECT packet a memory leak
- will occur. This has been fixed.
- Broker:
- - Fix possible crash having just upgraded from 1.6 if `per_listener_settings
- true` is set, and a SIGHUP is sent to the broker before a client has
- reconnected to the broker. Closes #2167.
- - Fix bridge not reconnectng if the first reconnection attempt fails.
- Closes #2207.
- - Improve QoS 0 outgoing packet queueing.
- - Fix non-reachable bridge blocking the broker on Windows. Closes #2172.
- - Fix possible corruption of pollfd array on Windows when bridges were
- reconnecting. Closes #2173.
- - Fix QoS 0 messages not being queued when `queue_qos0_messages` was enabled.
- Closes #2224.
- - Fix openssl not being linked to dynamic security plugin. Closes #2277.
- Clients:
- - If sending mosquitto_sub output to a pipe, mosquitto_sub will now detect
- that the pipe has closed and disconnect. Closes #2164.
- - Fix `mosquitto_pub -l` quitting if a message publication is attempted when
- the broker is temporarily unavailable. Closes #2187.
- 2.0.10 - 2021-04-03
- ==================
- Security:
- - CVE-2021-28166: If an authenticated client connected with MQTT v5 sent a
- malformed CONNACK message to the broker a NULL pointer dereference occurred,
- most likely resulting in a segfault.
- Affects versions 2.0.0 to 2.0.9 inclusive.
- Broker:
- - Don't over write new receive-maximum if a v5 client connects and takes over
- an old session. Closes #2134.
- - Fix CVE-2021-28166. Closes #2163.
- Clients:
- - Set `receive-maximum` to not exceed the `-C` message count in mosquitto_sub
- and mosquitto_rr, to avoid potentially lost messages. Closes #2134.
- - Fix TLS-PSK mode not working with port 8883. Closes #2152.
- Client library:
- - Fix possible socket leak. This would occur if a client was using
- `mosquitto_loop_start()`, then if the connection failed due to the remote
- server being inaccessible they called `mosquitto_loop_stop(, true)` and
- recreated the mosquitto object.
- Build:
- - A variety of minor build related fixes, like functions not having previous
- declarations.
- - Fix CMake cross compile builds not finding opensslconf.h. Closes #2160.
- - Fix build on Solaris non-sparc. Closes #2136.
- 2.0.9 - 2021-03-11
- ==================
- Security:
- - If an empty or invalid CA file was provided to the client library for
- verifying the remote broker, then the initial connection would fail but
- subsequent connections would succeed without verifying the remote broker
- certificate. Closes #2130.
- - If an empty or invalid CA file was provided to the broker for verifying the
- remote broker for an outgoing bridge connection then the initial connection
- would fail but subsequent connections would succeed without verifying the
- remote broker certificate. Closes #2130.
- Broker:
- - Fix encrypted bridge connections incorrectly connecting when `bridge_cafile`
- is empty or invalid. Closes #2130.
- - Fix `tls_version` behaviour not matching documentation. It was setting the
- exact TLS version to use, not the minimium TLS version to use. Closes #2110.
- - Fix messages to `$` prefixed topics being rejected. Closes #2111.
- - Fix QoS 0 messages not being delivered when max_queued_bytes was configured.
- Closes #2123.
- - Fix bridge increasing backoff calculation.
- - Improve handling of invalid combinations of listener address and bind
- interface configurations. Closes #2081.
- - Fix `max_keepalive` option not applying to clients connecting with keepalive
- set to 0. Closes #2117.
- Client library:
- - Fix encrypted connections incorrectly connecting when the CA file passed to
- `mosquitto_tls_set()` is empty or invalid. Closes #2130.
- - Fix connections retrying very rapidly in some situations.
- Build:
- - Fix cmake epoll detection.
- 2.0.8 - 2021-02-25
- ==================
- Broker:
- - Fix incorrect datatypes in `struct mosquitto_evt_tick`. This changes the
- size and offset of two of the members of this struct, and changes the size
- of the struct. This is an ABI break, but is considered to be acceptable
- because plugins should never be allocating their own instance of this
- struct, and currently none of the struct members are used for anything, so a
- plugin should not be accessing them. It would also be safe to read/write
- from the existing struct parameters.
- - Give compile time warning if libwebsockets compiled without external poll
- support. Closes #2060.
- - Fix memory tracking not being available on FreeBSD or macOS. Closes #2096.
- Client library:
- - Fix mosquitto_{pub|sub}_topic_check() functions not returning MOSQ_ERR_INVAL
- on topic == NULL.
- Clients:
- - Fix possible loss of data in `mosquitto_pub -l` when sending multiple long
- lines. Closes #2078.
- Build:
- - Provide a mechanism for Docker users to run a broker that doesn't use
- authentication, without having to provide their own configuration file.
- Closes #2040.
- 2.0.7 - 2021-02-04
- ==================
- Broker:
- - Fix exporting of executable symbols on BSD when building via makefile.
- - Fix some minor memory leaks on exit only.
- - Fix possible memory leak on connect. Closes #2057.
- - Fix openssl engine not being able to load private key. Closes #2066.
- Clients:
- - Fix config files truncating options after the first space. Closes #2059.
- Build:
- - Fix man page building to not absolutely require xsltproc when using CMake.
- This now handles the case where we are building from the released tar, or
- building from git if xsltproc is available, or building from git if xsltproc
- is not available.
- 1.6.13 - 2021-02-04
- ===================
- Broker:
- - Fix crash on Windows if loading a plugin fails. Closes #1866.
- - Fix DH group not being set for TLS connections, which meant ciphers using
- DHE couldn't be used. Closes #1925. Closes #1476.
- - Fix local bridges being disconnected on SIGHUP. Closes #1942.
- - Fix $SYS/broker/publish/messages/+ counters not being updated for QoS 1, 2
- messages. Closes #1968.
- - Fix listener not being reassociated with client when reloading a persistence
- file and `per_listener_settings true` is set and the client did not set a
- username. Closes #1891.
- - Fix file logging on Windows. Closes #1880.
- - Fix bridge sock not being removed from sock hash on error. Closes #1897.
- Client library:
- - Fix build on Mac Big Sur. Closes #1905.
- - Fix DH group not being set for TLS connections, which meant ciphers using
- DHE couldn't be used. Closes #1925. Closes #1476.
- Clients:
- - mosquitto_sub will now quit with an error if the %U option is used on
- Windows, rather than just quitting. Closes #1908.
- - Fix config files truncating options after the first space. Closes #2059.
- Apps:
- - Perform stricter parsing of input username in mosquitto_passwd. Closes
- #570126 (Eclipse bugzilla).
- Build:
- - Enable epoll support in CMake builds.
- 2.0.6 - 2021-01-28
- ==================
- Broker:
- - Fix calculation of remaining length parameter for websockets clients that
- send fragmented packets. Closes #1974.
- Broker:
- - Fix potential duplicate Will messages being sent when a will delay interval
- has been set.
- - Fix message expiry interval property not being honoured in
- `mosquitto_broker_publish` and `mosquitto_broker_publish_copy`.
- - Fix websockets listeners with TLS not responding. Closes #2020.
- - Add notes that libsystemd-dev or similar is needed if building with systemd
- support. Closes #2019.
- - Improve logging in obscure cases when a client disconnects. Closes #2017.
- - Fix reloading of listeners where multiple listeners have been defined with
- the same port but different bind addresses. Closes #2029.
- - Fix `message_size_limit` not applying to the Will payload. Closes #2022.
- - The error topic-alias-invalid was being sent if an MQTT v5 client published
- a message with empty topic and topic alias set, but the topic alias hadn't
- already been configured on the broker. This has been fixed to send a
- protocol error, as per section 3.3.4 of the specification.
- - Note in the man pages that SIGHUP reloads TLS certificates. Closes #2037.
- - Fix bridges not always connecting on Windows. Closes #2043.
- Apps:
- - Allow command line arguments to override config file options in
- mosquitto_ctrl. Closes #2010.
- - mosquitto_ctrl: produce an error when requesting a new password if both
- attempts do not match. Closes #2011.
- Build:
- - Fix cmake builds using `WITH_CJSON=no` not working if cJSON not found.
- Closes #2026.
- Other:
- - The SPDX identifiers for EDL-1.0 have been changed to BSD-3-Clause as per
- The Eclipse legal documentation generator. The licenses are identical.
- 2.0.5 - 2021-01-11
- ==================
- Broker:
- - Fix `auth_method` not being provided to the extended auth plugin event.
- Closes #1975.
- - Fix large packets not being completely published to slow clients.
- Closes #1977.
- - Fix bridge connection not relinquishing POLLOUT after messages are sent.
- Closes #1979.
- - Fix apparmor incorrectly denying access to
- /var/lib/mosquitto/mosquitto.db.new. Closes #1978.
- - Fix potential intermittent initial bridge connections when using poll().
- - Fix `bind_interface` option. Closes #1999.
- - Fix invalid behaviour in dynsec plugin if a group or client is deleted
- before a role that was attached to the group or client is deleted.
- Closes #1998.
- - Improve logging in dynsec addGroupRole command. Closes #2005.
- - Improve logging in dynsec addGroupClient command. Closes #2008.
- Client library:
- - Improve documentation around the `_v5()` and non-v5 functions, e.g.
- `mosquitto_publish()` and `mosquitto_publish_v5().
- Build:
- - `install` Makefile target should depend on `all`, not `mosquitto`, to ensure
- that man pages are always built. Closes #1989.
- - Fixes for lots of minor build warnings highlighted by Visual Studio.
- Apps:
- - Disallow control characters in mosquitto_passwd usernames.
- - Fix incorrect description in mosquitto_ctrl man page. Closes #1995.
- - Fix `mosquitto_ctrl dynsec getGroup` not showing roles. Closes #1997.
- 2.0.4 - 2020-12-22
- ==================
- Broker:
- - Fix $SYS/broker/publish/messages/+ counters not being updated for QoS 1, 2
- messages. Closes #1968.
- - mosquitto_connect_bind_async() and mosquitto_connect_bind_v5() should not
- reset the bind address option if called with bind_address == NULL.
- - Fix dynamic security configuration possibly not being reloaded on Windows
- only. Closes #1962.
- - Add more log messages for dynsec load/save error conditions.
- - Fix websockets connections blocking non-websockets connections on Windows.
- Closes #1934.
- Build:
- - Fix man pages not being built when using CMake. Closes #1969.
- 2.0.3 - 2020-12-17
- ==================
- Security:
- - Running mosquitto_passwd with the following arguments only
- `mosquitto_passwd -b password_file username password` would cause the
- username to be used as the password.
- Broker:
- - Fix excessive CPU use on non-Linux systems when the open file limit is set
- high. Closes #1947.
- - Fix LWT not being sent on client takeover when the existing session wasn't
- being continued. Closes #1946.
- - Fix bridges possibly not completing connections when WITH_ADNS is in use.
- Closes #1960.
- - Fix QoS 0 messages not being delivered if max_queued_messages was set to 0.
- Closes #1956.
- - Fix local bridges being disconnected on SIGHUP. Closes #1942.
- - Fix slow initial bridge connections for WITH_ADNS=no.
- - Fix persistence_location not appending a '/'.
- Clients:
- - Fix mosquitto_sub being unable to terminate with Ctrl-C if a successful
- connection is not made. Closes #1957.
- Apps:
- - Fix `mosquitto_passwd -b` using username as password (not if `-c` is also
- used). Closes #1949.
- Build:
- - Fix `install` target when using WITH_CJSON=no. Closes #1938.
- - Fix `generic` docker build. Closes #1945.
- 2.0.2 - 2020-12-10
- ==================
- Broker:
- - Fix build regression for WITH_WEBSOCKETS=yes on non-Linux systems.
- 2.0.1 - 2020-12-10
- ==================
- Broker:
- - Fix websockets connections on Windows blocking subsequent connections.
- Closes #1934.
- - Fix DH group not being set for TLS connections, which meant ciphers using
- DHE couldn't be used. Closes #1925. Closes #1476.
- - Fix websockets listeners not causing the main loop not to wake up.
- Closes #1936.
- Client library:
- - Fix DH group not being set for TLS connections, which meant ciphers using
- DHE couldn't be used. Closes #1925. Closes #1476.
- Apps:
- - Fix `mosquitto_passwd -U`
- Build:
- - Fix cjson include paths.
- - Fix build using WITH_TLS=no when the openssl headers aren't available.
- - Distribute cmake/ and snap/ directories in tar.
- 2.0.0 - 2020-12-03
- ==================
- Breaking changes:
- - When the Mosquitto broker is run without configuring any listeners it will
- now bind to the loopback interfaces 127.0.0.1 and/or ::1. This means that
- only connections from the local host will be possible.
- Running the broker as `mosquitto` or `mosquitto -p 1883` will bind to the
- loopback interface.
- Running the broker with a configuration file with no listeners configured
- will bind to the loopback interface with port 1883.
- Running the broker with a listener defined will bind by default to `0.0.0.0`
- / `::` and so will be accessible from any interface. It is still possible to
- bind to a specific address/interface.
- If the broker is run as `mosquitto -c mosquitto.conf -p 1884`, and a
- listener is defined in the configuration file, then the port defined on the
- command line will be IGNORED, and no listener configured for it.
- - All listeners now default to `allow_anonymous false` unless explicitly set
- to true in the configuration file. This means that when configuring a
- listener the user must either configure an authentication and access control
- method, or set `allow_anonymous true`. When the broker is run without a
- configured listener, and so binds to the loopback interface, anonymous
- connections are allowed.
- - If Mosquitto is run on as root on a unix like system, it will attempt to
- drop privileges as soon as the configuration file has been read. This is in
- contrast to the previous behaviour where elevated privileges were only
- dropped after listeners had been started (and hence TLS certificates loaded)
- and logging had been started. The change means that clients will never be
- able to connect to the broker when it is running as root, unless the user
- explicitly sets it to run as root, which is not advised. It also means that
- all locations that the broker needs to access must be available to the
- unprivileged user. In particular those people using TLS certificates from
- Lets Encrypt will need to do something to allow Mosquitto to access
- those certificates. An example deploy renewal hook script to help with this
- is at `misc/letsencrypt/mosquitto-copy.sh`.
- The user that Mosquitto will change to are the one provided in the
- configuration, `mosquitto`, or `nobody`, in order of availability.
- - The `pid_file` option will now always attempt to write a pid file,
- regardless of whether the `-d` argument is used when running the broker.
- - The `tls_version` option now defines the *minimum* TLS protocol version to
- be used, rather than the exact version. Closes #1258.
- - The `max_queued_messages` option has been increased from 100 to 1000 by
- default, and now also applies to QoS 0 messages, when a client is connected.
- - The mosquitto_sub, mosquitto_pub, and mosquitto_rr clients will now load
- OS provided CA certificates by default if `-L mqtts://...` is used, or if
- the port is set to 8883 and no other CA certificates are loaded.
- - Minimum support libwebsockets version is now 2.4.0
- - The license has changed from "EPL-1.0 OR EDL-1.0" to "EPL-2.0 OR EDL-1.0".
- Broker features:
- - New plugin interface which is more flexible, easier to develop for and
- easier to extend.
- - New dynamic security plugin, which allows clients, groups, and roles to be
- defined and updated as the broker is running.
- - Performance improvements, particularly for higher numbers of clients.
- - When running as root, if dropping privileges to the "mosquitto" user fails,
- then try "nobody" instead. This reduces the burden on users installing
- Mosquitto themselves.
- - Add support for Unix domain socket listeners.
- - Add `bridge_outgoing_retain` option, to allow outgoing messages from a
- bridge to have the retain bit completely disabled, which is useful when
- bridging to e.g. Amazon or Google.
- - Add support for MQTT v5 bridges to handle the "retain-available" property
- being false.
- - Allow MQTT v5.0 outgoing bridges to fall back to MQTT v3.1.1 if connecting
- to a v3.x only broker.
- - DLT logging is now configurable at runtime with `log_dest dlt`.
- Closes #1735.
- - Add `mosquitto_broker_publish()` and `mosquitto_broker_publish_copy()`
- functions, which can be used by plugins to publish messages.
- - Add `mosquitto_client_protocol_version()` function which can be used by
- plugins to determine which version of MQTT a client has connected with.
- - Add `mosquitto_kick_client_by_clientid()` and `mosquitto_kick_client_by_username()`
- functions, which can be used by plugins to disconnect clients.
- - Add support for handling $CONTROL/ topics in plugins.
- - Add support for PBKDF2-SHA512 password hashing.
- - Enabling certificate based TLS encryption is now through certfile and
- keyfile, not capath or cafile.
- - Added support for controlling UNSUBSCRIBE calls in v5 plugin ACL checks.
- - Add "deny" acl type. Closes #1611.
- - The broker now sends the receive-maximum property for MQTT v5 CONNACKs.
- - Add the `bridge_max_packet_size` option. Closes #265.
- - Add the `bridge_bind_address` option. Closes #1311.
- - TLS certificates for the server are now reloaded on SIGHUP.
- - Default for max_queued_messages has been changed to 1000.
- - Add `ciphers_tls1.3` option, to allow setting TLS v1.3 ciphersuites.
- Closes #1825.
- - Bridges now obey MQTT v5 server-keepalive.
- - Add bridge support for the MQTT v5 maximum-qos property.
- - Log client port on new connections. Closes #1911.
- Broker fixes:
- - Send DISCONNECT with `malformed-packet` reason code on invalid PUBLISH,
- SUBSCRIBE, and UNSUBSCRIBE packets.
- - Document that X509_free() must be called after using
- mosquitto_client_certificate(). Closes #1842.
- - Fix listener not being reassociated with client when reloading a persistence
- file and `per_listener_settings true` is set and the client did not set a
- username. Closes #1891.
- - Fix bridge sock not being removed from sock hash on error. Closes #1897.
- - mosquitto_password now forbids the : character. Closes #1833.
- - Fix `log_timestamp_format` not applying to `log_dest topic`. Closes #1862.
- - Fix crash on Windows if loading a plugin fails. Closes #1866.
- - Fix file logging on Windows. Closes #1880.
- - Report an error if the config file is set to a directory. Closes #1814.
- - Fix bridges incorrectly setting Wills to manage remote notifications when
- `notifications_local_only` was set true. Closes #1902.
- Client library features:
- - Client no longer generates random client ids for v3.1.1 clients, these are
- now expected to be generated on the broker. This matches the behaviour for
- v5 clients. Closes #291.
- - Add support for connecting to brokers through Unix domain sockets.
- - Add `mosquitto_property_identifier()`, for retrieving the identifier integer
- for a property.
- - Add `mosquitto_property_identifier_to_string()` for converting a property
- identifier integer to the corresponding property name string.
- - Add `mosquitto_property_next()` to retrieve the next property in a list, for
- iterating over property lists.
- - mosquitto_pub now handles the MQTT v5 retain-available property by never
- setting the retain bit.
- - Added MOSQ_OPT_TCP_NODELAY, to allow disabling Nagle's algorithm on client
- sockets. Closes #1526.
- - Add `mosquitto_ssl_get()` to allow clients to access their SSL structure and
- perform additional verification.
- - Add MOSQ_OPT_BIND_ADDRESS to allow setting of a bind address independently
- of the `mosquitto_connect*()` call.
- - Add `MOSQ_OPT_TLS_USE_OS_CERTS` option, to instruct the client to load and
- trust OS provided CA certificates for use with TLS connections.
- Client library fixes:
- - Fix send quota being incorrecly reset on reconnect. Closes #1822.
- - Don't use logging until log mutex is initialised. Closes #1819.
- - Fix missing mach/mach_time.h header on OS X. Closes #1831.
- - Fix connect properties not being sent when the client automatically
- reconnects. Closes #1846.
- Client features:
- - Add timeout return code (27) for `mosquitto_sub -W <secs>` and
- `mosquitto_rr -W <secs>`. Closes #275.
- - Add support for connecting to brokers through Unix domain sockets with the
- `--unix` argument.
- - Use cJSON library for producing JSON output, where available. Closes #1222.
- - Add support for outputting MQTT v5 property information to mosquitto_sub/rr
- JSON output. Closes #1416.
- - Add `--pretty` option to mosquitto_sub/rr for formatted/unformatted JSON
- output.
- - Add support for v5 property printing to mosquitto_sub/rr in non-JSON mode.
- Closes #1416.
- - Add `--nodelay` to all clients to allow them to use the MOSQ_OPT_TCP_NODELAY
- option.
- - Add `-x` to all clients to all the session-expiry-interval property to be
- easily set for MQTT v5 clients.
- - Add `--random-filter` to mosquitto_sub, to allow only a certain proportion
- of received messages to be printed.
- - mosquitto_sub %j and %J timestamps are now in a ISO 8601 compatible format.
- - mosquitto_sub now supports extra format specifiers for field width and
- precision for some parameters.
- - Add `--version` for all clients.
- - All clients now load OS provided CA certificates if used with `-L
- mqtts://...`, or if port is set to 8883 and no other CA certificates are
- used. Closes #1824.
- - Add the `--tls-use-os-certs` option to all clients.
- Client fixes:
- - mosquitto_sub will now exit if all subscriptions were denied.
- - mosquitto_pub now sends 0 length files without an error when using `-f`.
- - Fix description of `-e` and `-t` arguments in mosquitto_rr. Closes #1881.
- - mosquitto_sub will now quit with an error if the %U option is used on
- Windows, rather than just quitting. Closes #1908.
- 1.6.12 - 2020-08-19
- ===================
- Security:
- - In some circumstances, Mosquitto could leak memory when handling PUBLISH
- messages. This is limited to incoming QoS 2 messages, and is related
- to the combination of the broker having persistence enabled, a clean
- session=false client, which was connected prior to the broker restarting,
- then has reconnected and has now sent messages at a sufficiently high rate
- that the incoming queue at the broker has filled up and hence messages are
- being dropped. This is more likely to have an effect where
- max_queued_messages is a small value. This has now been fixed. Closes #1793.
- Broker:
- - Build warning fixes when building with WITH_BRIDGE=no and WITH_TLS=no.
- Clients:
- - All clients exit with an error exit code on CONNACK failure. Closes #1778.
- - Don't busy loop with `mosquitto_pub -l` on a slow connection.
- 1.5.10 - 2020-08-19
- ===================
- Security:
- - In some circumstances, Mosquitto could leak memory when handling PUBLISH
- messages. This is limited to incoming QoS 2 messages, and is related
- to the combination of the broker having persistence enabled, a clean
- session=false client, which was connected prior to the broker restarting,
- then has reconnected and has now sent messages at a sufficiently high rate
- that the incoming queue at the broker has filled up and hence messages are
- being dropped. This is more likely to have an effect where
- max_queued_messages is a small value. This has now been fixed. Closes #1793.
- 1.6.11 - 2020-08-11
- ===================
- Security:
- - On Windows the Mosquitto service was being installed without appropriate
- path quoting, this has been fixed.
- Broker:
- - Fix usage message only mentioning v3.1.1. Closes #1713.
- - Fix broker refusing to start if only websockets listeners were defined.
- Closes #1740.
- - Change systemd unit files to create /var/log/mosquitto before starting.
- Closes #821.
- - Don't quit with an error if opening the log file isn't possible.
- Closes #821.
- - Fix bridge topic remapping when using "" as the topic. Closes #1749.
- - Fix messages being queued for disconnected bridges when clean start was
- set to true. Closes #1729.
- - Fix `autosave_interval` not being triggered by messages being delivered.
- Closes #1726.
- - Fix websockets clients sometimes not being disconnected promptly.
- Closes #1718.
- - Fix "slow" file based logging by switching to line based buffering.
- Closes #1689. Closes #1741.
- - Log protocol error message where appropriate from a bad UNSUBSCRIBE, rather
- than the generic "socket error".
- - Don't try to start DLT logging if DLT unavailable, to avoid a long delay
- when shutting down the broker. Closes #1735.
- - Fix potential memory leaks. Closes #1773. Closes #1774.
- - Fix clients not receiving messages after a previous client with the same
- client ID and positive will delay interval quit. Closes #1752.
- - Fix overly broad HAVE_PTHREAD_CANCEL compile guard. Closes #1547.
- Client library:
- - Improved documentation around connect callback return codes. Close #1730.
- - Fix `mosquitto_publish*()` no longer returning `MOSQ_ERR_NO_CONN` when not
- connected. Closes #1725.
- - `mosquitto_loop_start()` now sets a thread name on Linux, FreeBSD, NetBSD,
- and OpenBSD. Closes #1777.
- - Fix `mosquitto_loop_stop()` not stopping on Windows. Closes #1748. Closes #117.
- 1.6.10 - 2020-05-25
- ===================
- Broker:
- - Report invalid bridge prefix+pattern combinations at config parsing time
- rather than letting the bridge fail later. Issue #1635.
- - Fix `mosquitto_passwd -b` not updating passwords for existing users
- correctly. Creating a new user with `-b` worked without problem.
- Closes #1664.
- - Fix memory leak when connecting clients rejected.
- - Don't disconnect clients that are already disconnected. This prevents the
- session expiry being extended on SIGHUP. Closes #1521.
- - Fix support for openssl 3.0.
- - Fix check when loading persistence file of a different version than the
- native version. Closes #1684.
- - Fix possible assert crash associated with bridge reconnecting when compiled
- without epoll support. Closes #1700.
- Client library:
- - Don't treat an unexpected PUBACK, PUBREL, or PUBCOMP as a fatal error.
- Issue #1629.
- - Fix support for openssl 3.0.
- - Fix memory leaks from multiple calls to
- `mosquitto_lib_init()`/`mosquitto_lib_cleanup()`. Closes #1691.
- - Fix documentation on return code of `mosquitto_lib_init()` for Windows.
- Closes #1690.
- Clients:
- - Fix mosquitto_sub %j or %J not working on Windows. Closes #1674.
- Build:
- - Various fixes for building with <C99 support. Closes #1622.
- - Fix use of sed on BSD. Closes #1614.
- 1.6.9 - 20200227
- ================
- Broker:
- - Fix session expiry with very large expiry intervals. Closes #1525.
- - Check ACL patterns for validity when loading. Closes #1539.
- - Use presence of password file as indicator for whether username checks
- should take place, not whether usernames are defined in the password file.
- Closes #1545.
- - Strip whitespace from end of config file string options. Closes #1566.
- - Satisfy valgrind when exiting on error due to not being able to open a
- listening socket, by calling freeaddrinfo. Closes #1565.
- - Fix config->user not being freed on exit. Closes #1564.
- - Fix trailing whitespace not being trimmed on acl users. Closes #1539.
- - Fix `bind_interface` not working for the default listener. Closes #1533.
- - Improve password file parsing in the broker and mosqitto_passwd. Closes #1584.
- - Print OpenSSL errors in more situations, like when loading certificates
- fails. Closes #1552.
- - Fix `mosquitto_client_protocol() returning incorrect values.
- Client library:
- - Set minimum keepalive argument to `mosquitto_connect*()` to be 5 seconds.
- Closes #1550.
- - Fix `mosquitto_topic_matches_sub()` not returning MOSQ_ERR_INVAL if the
- topic contains a wildcard. Closes #1589.
- Clients:
- - Fix `--remove-retained` not obeying the `-T` option for filtering out
- topics. Closes #1585.
- - Default behaviour for v5 clients using `-c` is now to use infinite length
- sessions, as with v3 clients. Closes #1546.
- 1.6.8 - 20191128
- ================
- Broker:
- - Various fixes for `allow_zero_length_clientid` config, where this option was
- not being set correctly. Closes #1429.
- - Fix incorrect memory tracking causing problems with memory_limit option.
- Closes #1437.
- - Fix subscription topics being limited to 200 characters instead of 200
- hierarchy levels. Closes #1441.
- - Only a single CRL could be loaded at once. This has been fixed.
- Closes #1442.
- - Fix problems with reloading config when `per_listener_settings` was true.
- Closes #1459.
- - Fix retained messages with an expiry interval not being expired after being
- restored from persistence. Closes #1464.
- - Fix messages with an expiry interval being sent without an expiry interval
- property just before they were expired. Closes #1464.
- - Fix TLS Websockets clients not receiving messages after taking over a
- previous connection. Closes #1489.
- - Fix MQTT 3.1.1 clients using clean session false, or MQTT 5.0 clients using
- session-expiry-interval set to infinity never expiring, even when the global
- `persistent_client_expiration` option was set. Closes #1494.
- Client library:
- - Fix publish properties not being passed to on_message_v5 callback for QoS 2
- messages. Closes #1432.
- - Fix documentation issues in mosquitto.h. Closes #1478.
- - Document `mosquitto_connect_srv()`. Closes #1499.
- Clients:
- - Fix duplicate cfg definition in rr_client. Closes #1453.
- - Fix `mosquitto_pub -l` hang when stdin stream ends. Closes #1448.
- - Fix `mosquitto_pub -l` not sending the final line of stdin if it does not
- end with a new line. Closes #1473.
- - Make documentation for `mosquitto_pub -l` match reality - blank lines are
- sent as empty messages. Closes #1474.
- - Free memory in `mosquitto_sub` when quiting without having made a successful
- connection. Closes #1513.
- Build:
- - Added `CLIENT_STATIC_LDADD` to makefile builds to allow more libraries to be
- linked when compiling the clients with a static libmosquitto, as required
- for e.g. openssl on some systems.
- Installer:
- - Fix mosquitto_rr.exe not being included in Windows installers. Closes #1463.
- 1.6.7 - 20190925
- ================
- Broker:
- - Add workaround for working with libwebsockets 3.2.0.
- - Fix potential crash when reloading config. Closes #1424, #1425.
- Client library:
- - Don't use `/` in autogenerated client ids, to avoid confusing with topics.
- - Fix `mosquitto_max_inflight_messages_set()` and `mosquitto_int_option(...,
- MOSQ_OPT_*_MAX, ...)` behaviour. Closes #1417.
- - Fix regression on use of `mosquitto_connect_async()` not working.
- Closes #1415 and #1422.
- Clients:
- - mosquitto_sub: Fix `-E` incorrectly not working unless `-d` was also
- specified. Closes #1418.
- - Updated documentation around automatic client ids.
- 1.6.6 - 20190917
- ================
- Security:
- - Restrict topic hierarchy to 200 levels to prevent possible stack overflow.
- Closes #1412.
- Broker:
- - Restrict topic hierarchy to 200 levels to prevent possible stack overflow.
- Closes #1412.
- - mosquitto_passwd now returns 1 when attempting to update a user that does
- not exist. Closes #1414.
- 1.6.5 - 20190912
- ================
- Broker:
- - Fix v5 DISCONNECT packets with remaining length == 2 being treated as a
- protocol error. Closes #1367.
- - Fix support for libwebsockets 3.x.
- - Fix slow websockets performance when sending large messages. Closes #1390.
- - Fix bridges potentially not connecting on Windows. Closes #478.
- - Fix clients authorised using `use_identity_as_username` or
- `use_subject_as_username` being disconnected on SIGHUP. Closes #1402.
- - Improve error messages in some situations when clients disconnect. Reduces
- the number of "Socket error on client X, disconnecting" messages.
- - Fix Will for v5 clients not being sent if will delay interval was greater
- than the session expiry interval. Closes #1401.
- - Fix CRL file not being reloaded on HUP. Closes #35.
- - Fix repeated "Error in poll" messages on Windows when only websockets
- listeners are defined. Closes #1391.
- Client library:
- - Fix reconnect backoff for the situation where connections are dropped rather
- than refused. Closes #737.
- - Fix missing locks on `mosq->state`. Closes #1374.
- Documentation:
- - Improve details on global/per listener options in the mosquitto.conf man page.
- Closes #274.
- - Clarify behaviour when clients exceed the `message_size_limit`. Closes #448.
- - Improve documentation for `max_inflight_bytes`, `max_inflight_messages`,
- and `max_queued_messages`.
- Build:
- - Fix missing function warnings on NetBSD.
- - Fix WITH_STATIC_LIBRARIES using CMake on Windows. Closes #1369.
- - Guard ssize_t definition on Windows. Closes #522.
- 1.6.4 - 20190801
- ================
- Broker:
- - Fix persistent clients being incorrectly expired on Raspberry Pis.
- Closes #1272.
- - Windows: Allow other applications access to the log file when running.
- Closes #515.
- - Fix incoming QoS 2 messages being blocked when `max_inflight_messages` was
- set to 1. Closes #1332.
- - Fix incoming messages not being removed for a client if the topic being
- published to does not have any subscribers. Closes #1322.
- Client library:
- - Fix MQTT v5 subscription options being incorrectly set for MQTT v3
- subscriptions. Closes #1353.
- - Make behaviour of `mosquitto_connect_async()` consistent with
- `mosquitto_connect()` when connecting to a non-existent server.
- Closes #1345.
- - `mosquitto_string_option(mosq, MOSQ_OPT_TLS_KEYFORM, ...)` was incorrectly
- returning `MOSQ_ERR_INVAL` with valid input. This has been fixed.
- Closes #1360.
- - on_connect callback is now called with the correct v5 reason code if a v5
- client connects to a v3.x broker and is sent a CONNACK with the
- "unacceptable protocol version" connack reason code.
- - Fix memory leak when setting v5 properties in mosquitto_connect_v5().
- - Fix properties not being sent on QoS>0 PUBLISH messages.
- Clients:
- - mosquitto_pub: fix error codes not being returned when mosquitto_pub exits.
- Closes #1354.
- - All clients: improve error messages when connecting to a v3.x broker when in
- v5 mode. Closes #1344.
- Other:
- - Various documentation fixes.
- 1.6.3 - 20190618
- ================
- Broker:
- - Fix detection of incoming v3.1/v3.1.1 bridges. Closes #1263.
- - Fix default max_topic_alias listener config not being copied to the in-use
- listener when compiled without TLS support.
- - Fix random number generation if compiling using `WITH_TLS=no` and on Linux
- with glibc >= 2.25. Without this fix, no random numbers would be generated
- for e.g. on broker client id generation, and so clients connecting expecting
- this feature would be unable to connect.
- - Fix compilation problem related to `getrandom()` on non-glibc systems.
- - Fix Will message for a persistent client incorrectly being sent when the
- client reconnects after a clean disconnect. Closes #1273.
- - Fix Will message for a persistent client not being sent on disconnect.
- Closes #1273.
- - Improve documentation around the upgrading of persistence files. Closes
- #1276.
- - Add 'extern "C"' on mosquitto_broker.h and mosquitto_plugin.h for C++ plugin
- writing. Closes #1290.
- - Fix persistent Websockets clients not receiving messages after they
- reconnect, having sent DISCONNECT on a previous session. Closes #1227.
- - Disable TLS renegotiation. Client initiated renegotiation is considered to
- be a potential attack vector against servers. Closes #1257.
- - Fix incorrect shared subscription topic '$shared'.
- - Fix zero length client ids being rejected for MQTT v5 clients with clean
- start set to true.
- - Fix MQTT v5 overlapping subscription behaviour. Clients now receive message
- from all matching subscriptions rather than the first one encountered, which
- ensures the maximum QoS requirement is met.
- - Fix incoming/outgoing quota problems for QoS>0.
- - Remove obsolete `store_clean_interval` from documentation.
- - Fix v4 authentication plugin never calling psk_key_get.
- Client library:
- - Fix typo causing build error on Windows when building without TLS support.
- Closes #1264.
- Clients:
- - Fix -L url parsing when `/topic` part is missing.
- - Stop some error messages being printed even when `--quiet` was used.
- Closes #1284.
- - Fix mosquitto_pub exiting with error code 0 when an error occurred.
- Closes #1285.
- - Fix mosquitto_pub not using the `-c` option. Closes #1273.
- - Fix MQTT v5 clients not being able to specify a password without a username.
- Closes #1274.
- - Fix `mosquitto_pub -l` not handling network failures. Closes #1152.
- - Fix `mosquitto_pub -l` not handling zero length input. Closes #1302.
- - Fix double free on exit in mosquitto_pub. Closes #1280.
- Documentation:
- - Remove references to Python binding and C++ wrapper in libmosquitto man
- page. Closes #1266.
- Build:
- - CLIENT_LDFLAGS now uses LDFLAGS. Closes #1294.
- 1.6.2 - 20190430
- ================
- Broker:
- - Fix memory access after free, leading to possible crash, when v5 client with
- Will message disconnects, where the Will message has as its first property
- one of `content-type`, `correlation-data`, `payload-format-indicator`, or
- `response-topic`. Closes #1244.
- - Fix build for WITH_TLS=no. Closes #1250.
- - Fix Will message not allowing user-property properties.
- - Fix broker originated messages (e.g. $SYS/broker/version) not being
- published when `check_retain_source` set to true. Closes #1245.
- - Fix $SYS/broker/version being incorrectly expired after 60 seconds.
- Closes #1245.
- Library:
- - Fix crash after client has been unable to connect to a broker. This occurs
- when the client is exiting and is part of the final library cleanup routine.
- Closes #1246.
- Clients:
- - Fix -L url parsing. Closes #1248.
- 1.6.1 - 20190426
- ================
- Broker:
- - Document `memory_limit` option.
- Clients:
- - Fix compilation on non glibc systems due to missing sys/time.h header.
- Build:
- - Add `make check` target and document testing procedure. Closes #1230.
- - Document bundled dependencies and how to disable. Closes #1231.
- - Split CFLAGS and CPPFLAGS, and LDFLAGS and LDADD/LIBADD.
- - test/unit now respects CPPFLAGS and LDFLAGS. Closes #1232.
- - Don't call ldconfig in CMake scripts. Closes #1048.
- - Use CMAKE_INSTALL_* variables when installing in CMake. Closes #1049.
- 1.6 - 20190417
- ==============
- Broker features:
- - Add support for MQTT v5
- - Add support for OCSP stapling.
- - Add support for ALPN on bridge TLS connections. Closes #924.
- - Add support for Automotive DLT logging.
- - Add TLS Engine support.
- - Persistence file read/write performance improvements.
- - General performance improvements.
- - Add max_keepalive option, to allow a maximum keepalive value to be set for
- MQTT v5 clients only.
- - Add `bind_interface` option which allows a listener to be bound to a
- specific network interface, in a similar fashion to the `bind_address` option.
- Linux only.
- - Add improved bridge restart interval based on Decorrelated Jitter.
- - Add `dhparamfile` option, to allow DH parameters to be loaded for Ephemeral
- DH support
- - Disallow writing to $ topics where appropriate.
- - Fix mosquitto_passwd crashing on corrupt password file. Closes #1207.
- - Add explicit support for TLS v1.3.
- - Drop support for TLS v1.0.
- - Improved general support for broker generated client ids. Removed libuuid
- dependency.
- - auto_id_prefix now defaults to 'auto-'.
- - QoS 1 and 2 flow control improvements.
- Client library features:
- - Add support for MQTT v5
- - Add mosquitto_subscribe_multiple() for sending subscriptions to multiple
- topics in one command.
- - Add TLS Engine support.
- - Add explicit support for TLS v1.3.
- - Drop support for TLS v1.0.
- - QoS 1 and 2 flow control improvements.
- Client features:
- - Add support for MQTT v5
- - Add mosquitto_rr client, which can be used for "request-response" messaging,
- by sending a request message and awaiting a response.
- - Add TLS Engine support.
- - Add support for ALPN on TLS connections. Closes #924.
- - Add -D option for all clients to specify MQTT v5 properties.
- - Add -E to mosquitto_sub, which causes it to exit immediately after having
- its subscriptions acknowledged. Use with -c to create a durable client
- session without requiring a message to be received.
- - Add --remove-retained to mosquitto_sub, which can be used to clear retained
- messages on a broker.
- - Add --repeat and --repeat-delay to mosquitto_pub, which can be used to
- repeat single message publishes at a regular interval.
- - -V now accepts `5, `311`, `31`, as well as `mqttv5` etc.
- - Add explicit support for TLS v1.3.
- - Drop support for TLS v1.0.
- Broker fixes:
- - Improve error reporting when creating listeners.
- - Fix build on SmartOS due to missing IPV6_V6ONLY. Closes #1212.
- Client library fixes
- - Add missing `mosquitto_userdata()` function.
- Client fixes:
- - mosquitto_pub wouldn't always publish all messages when using `-l` and
- QoS>0. This has been fixed.
- - mosquitto_sub was incorrectly encoding special characters when using %j
- output format. Closes #1220.
- 1.5.8 - 20190228
- ================
- Broker:
- - Fix clients being disconnected when ACLs are in use. This only affects the
- case where a client connects using a username, and the anonymous ACL list is
- defined but specific user ACLs are not defined. Closes #1162.
- - Make error messages for missing config file clearer.
- - Fix some Coverity Scan reported errors that could occur when the broker was
- already failing to start.
- - Fix broken mosquitto_passwd on FreeBSD. Closes #1032.
- - Fix delayed bridge local subscriptions causing missing messages.
- Closes #1174.
- Library:
- - Use higher resolution timer for random initialisation of client id
- generation. Closes #1177.
- - Fix some Coverity Scan reported errors that could occur when the library was
- already quitting.
- 1.5.7 - 20190213
- ================
- Broker:
- - Fix build failure when using WITH_ADNS=yes
- - Ensure that an error occurs if `per_listener_settings true` is given after
- other security options. Closes #1149.
- - Fix include_dir not sorting config files before loading. This was partially
- fixed in 1.5 previously.
- - Improve documentation around the `include_dir` option. Closes #1154.
- - Fix case where old unreferenced msg_store messages were being saved to the
- persistence file, bloating its size unnecessarily. Closes #389.
- Library:
- - Fix `mosquitto_topic_matches_sub()` not returning MOSQ_ERR_INVAL for
- invalid subscriptions like `topic/#abc`. This only affects the return value,
- not the match/no match result, which was already correct.
- Build:
- - Don't require C99 compiler.
- - Add rewritten build test script and remove some build warnings.
- 1.5.6 - 20190206
- ================
- Security:
- - CVE-2018-12551: If Mosquitto is configured to use a password file for
- authentication, any malformed data in the password file will be treated as
- valid. This typically means that the malformed data becomes a username and no
- password. If this occurs, clients can circumvent authentication and get access
- to the broker by using the malformed username. In particular, a blank line
- will be treated as a valid empty username. Other security measures are
- unaffected. Users who have only used the mosquitto_passwd utility to create
- and modify their password files are unaffected by this vulnerability.
- Affects version 1.0 to 1.5.5 inclusive.
- - CVE-2018-12550: If an ACL file is empty, or has only blank lines or
- comments, then mosquitto treats the ACL file as not being defined, which
- means that no topic access is denied. Although denying access to all topics
- is not a useful configuration, this behaviour is unexpected and could lead
- to access being incorrectly granted in some circumstances. This is now
- fixed. Affects versions 1.0 to 1.5.5 inclusive.
- - CVE-2018-12546. If a client publishes a retained message to a topic that
- they have access to, and then their access to that topic is revoked, the
- retained message will still be delivered to future subscribers. This
- behaviour may be undesirable in some applications, so a configuration option
- `check_retain_source` has been introduced to enforce checking of the
- retained message source on publish.
- Broker:
- - Fixed comment handling for config options that have optional arguments.
- - Improved documentation around bridge topic remapping.
- - Handle mismatched handshakes (e.g. QoS1 PUBLISH with QoS2 reply) properly.
- - Fix spaces not being allowed in the bridge remote_username option. Closes
- #1131.
- - Allow broker to always restart on Windows when using `log_dest file`. Closes
- #1080.
- - Fix Will not being sent for Websockets clients. Closes #1143.
- - Windows: Fix possible crash when client disconnects. Closes #1137.
- - Fixed durable clients being unable to receive messages when offline, when
- per_listener_settings was set to true. Closes #1081.
- - Add log message for the case where a client is disconnected for sending a
- topic with invalid UTF-8. Closes #1144.
- Library:
- - Fix TLS connections not working over SOCKS.
- - Don't clear SSL context when TLS connection is closed, meaning if a user
- provided an external SSL_CTX they have less chance of leaking references.
- Build:
- - Fix comparison of boolean values in CMake build. Closes #1101.
- - Fix compilation when openssl deprecated APIs are not available.
- Closes #1094.
- - Man pages can now be built on any system. Closes #1139.
- 1.5.5 - 20181211
- ================
- Security:
- - If `per_listener_settings` is set to true, then the `acl_file` setting was
- ignored for the "default listener" only. This has been fixed. This does not
- affect any listeners defined with the `listener` option. Closes #1073.
- This is now tracked as CVE-2018-20145.
- Broker:
- - Add `socket_domain` option to allow listeners to disable IPv6 support.
- This is required to work around a problem in libwebsockets that means
- sockets only listen on IPv6 by default if IPv6 support is compiled in.
- Closes #1004.
- - When using ADNS, don't ask for all network protocols when connecting,
- because this can lead to confusing "Protocol not supported" errors if the
- network is down. Closes #1062.
- - Fix outgoing retained messages not being sent by bridges on initial
- connection. Closes #1040.
- - Don't reload auth_opt_ options on reload, to match the behaviour of the
- other plugin options. Closes #1068.
- - Print message on error when installing/uninstalling as a Windows service.
- - All non-error connect/disconnect messages are controlled by the
- `connection_messages` option. Closes #772. Closes #613. Closes #537.
- Library:
- - Fix reconnect delay backoff behaviour. Closes #1027.
- - Don't call on_disconnect() twice if keepalive tests fail. Closes #1067.
- Client:
- - Always print leading zeros in mosquitto_sub when output format is hex.
- Closes #1066.
- Build:
- - Fix building where TLS-PSK is not available. Closes #68.
- 1.5.4 - 20181108
- ================
- Security:
- - When using a TLS enabled websockets listener with "require_certificate"
- enabled, the mosquitto broker does not correctly verify client certificates.
- This is now fixed. All other security measures operate as expected, and in
- particular non-websockets listeners are not affected by this. Closes #996.
- Broker:
- - Process all pending messages even when a client has disconnected. This means
- a client that send a PUBLISH then DISCONNECT quickly, then disconnects will
- have its DISCONNECT message processed properly and so no Will will be sent.
- Closes #7.
- - $SYS/broker/clients/disconnected should never be negative. Closes #287.
- - Give better error message if a client sends a password without a username.
- Closes #1015.
- - Fix bridge not honoring restart_timeout. Closes #1019.
- - Don't disconnect a client if an auth plugin denies access to SUBSCRIBE.
- Closes #1016.
- Library:
- - Fix memory leak that occurred if mosquitto_reconnect() was used when TLS
- errors were present. Closes #592.
- - Fix TLS connections when using an external event loop with
- mosquitto_loop_read() and mosquitto_write(). Closes #990.
- Build:
- - Fix clients not being compiled with threading support when using CMake.
- Closes #983.
- - Header fixes for FreeBSD. Closes #977.
- - Use _GNU_SOURCE to fix build errors in websockets and getaddrinfo usage.
- Closes #862 and #933.
- - Fix builds on QNX 7.0.0. Closes #1018.
- 1.5.3 - 20180925
- ================
- Security:
- - Fix CVE-2018-12543. If a message is sent to Mosquitto with a topic that
- begins with $, but is not $SYS, then an assert that should be unreachable is
- triggered and Mosquitto will exit.
- Broker:
- - Elevate log level to warning for situation when socket limit is hit.
- - Remove requirement to use `user root` in snap package config files.
- - Fix retained messages not sent by bridges on outgoing topics at the first
- connection. Closes #701.
- - Documentation fixes. Closes #520, #600.
- - Fix duplicate clients being added to by_id hash before the old client was
- removed. Closes #645.
- - Fix Windows version not starting if include_dir did not contain any files.
- Closes #566.
- - When an authentication plugin denied access to a SUBSCRIBE, the client would
- be disconnected incorrectly. This has been fixed. Closes #1016.
- Build:
- - Various fixes to ease building.
- 1.5.2 - 20180919
- ================
- Broker:
- - Fix build when using WITH_ADNS=yes.
- - Fix incorrect call to setsockopt() for TCP_NODELAY. Closes #941.
- - Fix excessive CPU usage when the number of sockets exceeds the system limit.
- Closes #948.
- - Fix for bridge connections when using WITH_ADNS=yes.
- - Fix round_robin false behaviour. Closes #481.
- - Fix segfault on HUP when bridges and security options are configured.
- Closes #965.
- Library:
- - Fix situation where username and password is used with SOCKS5 proxy. Closes
- #927.
- - Fix SOCKS5 behaviour when passing IP addresses. Closes #927.
- Build:
- - Make it easier to build without bundled uthash.h using "WITH_BUNDLED_DEPS=no".
- - Fix build with OPENSSL_NO_ENGINE. Closes #932.
- 1.5.1 - 20180816
- ================
- Broker:
- - Fix plugin cleanup function not being called on exit of the broker.
- Closes #900.
- - Print more OpenSSL errors when loading certificates/keys fail.
- - Use AF_UNSPEC etc. instead of PF_UNSPEC to comply with POSIX. Closes #863.
- - Remove use of AI_ADDRCONFIG, which means the broker can be used on systems
- where only the loopback interface is defined. Closes #869, Closes #901.
- - Fix IPv6 addresses not being able to be used as bridge addresses.
- Closes #886.
- - All clients now time out if they exceed their keepalive*1.5, rather than
- just reach it. This was inconsistent in two places.
- - Fix segfault on startup if bridge CA certificates could not be read.
- Closes #851.
- - Fix problem opening listeners on Pi caused by unsigned char being default.
- Found via #849.
- - ACL patterns that do not contain either %c or %u now produce a warning in
- the log. Closes #209.
- - Fix bridge publishing failing when per_listener_settings was true. Closes
- #860.
- - Fix `use_identity_as_username true` not working. Closes #833.
- - Fix UNSUBACK messages not being logged. Closes #903.
- - Fix possible endian issue when reading the `memory_limit` option.
- - Fix building for libwebsockets < 1.6.
- - Fix accessor functions for username and client id when used in plugin auth
- check.
- Library:
- - Fix some places where return codes were incorrect, including to the
- on_disconnect() callback. This has resulted in two new error codes,
- MOSQ_ERR_KEEPALIVE and MOSQ_ERR_LOOKUP.
- - Fix connection problems when mosquitto_loop_start() was called before
- mosquitto_connect_async(). Closes #848.
- Clients:
- - When compiled using WITH_TLS=no, the default port was incorrectly being set
- to -1. This has been fixed.
- - Fix compiling on Mac OS X <10.12. Closes #813 and #240.
- Build:
- - Fixes for building on NetBSD. Closes #258.
- - Fixes for building on FreeBSD.
- - Add support for compiling with static libwebsockets library.
- 1.5 - 20180502
- ==============
- Security:
- - Fix memory leak that could be caused by a malicious CONNECT packet.
- CVE-2017-7654. Closes #533493 (on Eclipse bugtracker)
- Broker features:
- - Add per_listener_settings to allow authentication and access control to be
- per listener.
- - Add limited support for reloading listener settings. This allows settings
- for an already defined listener to be reloaded, but port numbers must not be
- changed.
- - Add ability to deny access to SUBSCRIBE messages as well as the current
- read/write accesses. Currently for auth plugins only.
- - Reduce calls to malloc through the use of UHPA.
- - Outgoing messages with QoS>1 are no longer retried after a timeout period.
- Messages will be retried when a client reconnects. This change in behaviour
- can be justified by considering when the timeout may have occurred.
- * If a connection is unreliable and has dropped, but without one end
- noticing, the messages will be retried on reconnection. Sending
- additional PUBLISH or PUBREL would not have changed anything.
- * If a client is overloaded/unable to respond/has a slow connection then
- sending additional PUBLISH or PUBREL would not help the client catch
- up. Once the backlog has cleared the client will respond. If it is not
- able to catch up, sending additional duplicates would not help either.
- - Add use_subject_as_username option for certificate based client
- authentication to use the entire certificate subject as a username, rather
- than just the CN. Closes #469467.
- - Change sys tree printing output. This format shouldn't be relied upon and
- may change at any time. Closes #470246.
- - Minimum supported libwebsockets version is now 1.3.
- - Add systemd startup notification and services. Closes #471053.
- - Reduce unnecessary malloc and memcpy when receiving a message and storing
- it. Closes #470258.
- - Support for Windows XP has been dropped.
- - Bridge connections now default to using MQTT v3.1.1.
- - mosquitto_db_dump tool can now output some stats on clients.
- - Perform utf-8 validation on incoming will, subscription and unsubscription
- topics.
- - new $SYS/broker/store/messages/count (deprecates $SYS/broker/messages/stored)
- - new $SYS/broker/store/messages/bytes
- - max_queued_bytes feature to limit queues by real size rather than
- than just message count. Closes Eclipse #452919 or Github #100
- - Add support for bridges to be configured to only send notifications to the
- local broker.
- - Add set_tcp_nodelay option to allow Nagle's algorithm to be disabled on
- client sockets. Closes #433.
- - The behaviour of allow_anonymous has changed. In the old behaviour, the
- default if not set was to allow anonymous access. The new behaviour is to
- default is to allow anonymous access unless another security option is set.
- For example, if password_file is set and allow_anonymous is not set, then
- anonymous access will be denied. It is still possible to allow anonymous
- access by setting it explicitly.
- Broker fixes:
- - Fix UNSUBSCRIBE with no topic is accepted on MQTT 3.1.1. Closes #665.
- - Produce an error if two bridges share the same local_clientid.
- - Miscellaneous fixes on Windows.
- - queue_qos0_messages was not observing max_queued_** limits
- - When using the include_dir configuration option sort the files
- alphabetically before loading them. Closes #17.
- - IPv6 is no longer disabled for websockets listeners.
- - Remove all build timestamp information including $SYS/broker/timestamp.
- Close #651.
- - Correctly handle incoming strings that contain a NULL byte. Closes #693.
- - Use constant time memcmp for password comparisons.
- - Fix incorrect PSK key being used if it had leading zeroes.
- - Fix memory leak if a client provided a username/password for a listener with
- use_identity_as_username configured.
- - Fix use_identity_as_username not working on websockets clients.
- - Don't crash if an auth plugin returns MOSQ_ERR_AUTH for a username check on
- a websockets client. Closes #490.
- - Fix 08-ssl-bridge.py test when using async dns lookups. Closes #507.
- - Lines in the config file are no longer limited to 1024 characters long.
- Closes #652.
- - Fix $SYS counters of messages and bytes sent when message is sent over
- a Websockets. Closes #250.
- - Fix upgrade_outgoing_qos for retained message. Closes #534.
- - Fix CONNACK message not being sent for unauthorised connect on websockets.
- Closes #8.
- - Maximum connections on Windows increased to 2048.
- - When a client with an in-use client-id connects, if the old client has a
- will, send the will message. Closes #26.
- - Fix parsing of configuration options that end with a space. Closes #804.
- Client library features:
- - Outgoing messages with QoS>1 are no longer retried after a timeout period.
- Messages will be retried when a client reconnects.
- - DNS-SRV support is now disabled by default.
- - Add mosquitto_subscribe_simple() This is a helper function to make
- retrieving messages from a broker very straightforward. Examples of its use
- are in examples/subscribe_simple.
- - Add mosquitto_subscribe_callback() This is a helper function to make
- processing messages from a broker very straightforward. An example of its use
- is in examples/subscribe_simple.
- - Connections now default to using MQTT v3.1.1.
- - Add mosquitto_validate_utf8() to check whether a string is valid UTF-8
- according to the UTF-8 spec and to the additional restrictions imposed by
- the MQTT spec.
- - Topic inputs are checked for UTF-8 validity.
- - Add mosquitto_userdata function to allow retrieving the client userdata
- member variable. Closes #111.
- - Add mosquitto_pub_topic_check2(), mosquitto_sub_topic_check2(), and
- mosquitto_topic_matches_sub2() which are identical to the similarly named
- functions but also take length arguments.
- - Add mosquitto_connect_with_flags_callback_set(), which allows a second
- connect callback to be used which also exposes the connect flags parameter.
- Closes #738 and #128.
- - Add MOSQ_OPT_SSL_CTX option to allow a user specified SSL_CTX to be used
- instead of the one generated by libmosquitto. This allows greater control
- over what options can be set. Closes #715.
- - Add MOSQ_OPT_SSL_CTX_WITH_DEFAULTS to work with MOSQ_OPT_SSL_CTX and have
- the default libmosquitto SSL_CTX configuration applied to the user provided
- SSL_CTX. Closes #567.
- Client library fixes:
- - Fix incorrect PSK key being used if it had leading zeroes.
- - Initialise "result" variable as soon as possible in
- mosquitto_topic_matches_sub. Closes #654.
- - No need to close socket again if setting non-blocking failed. Closes #649.
- - Fix mosquitto_topic_matches_sub() not correctly matching foo/bar against
- foo/+/#. Closes #670.
- - SNI host support added.
- Client features:
- - Add -F to mosquitto_sub to allow the user to choose the output format.
- - Add -U to mosquitto_sub for unsubscribing from topics.
- - Add -c (clean session) to mosquitto_pub.
- - Add --retained-only to mosquitto_sub to exit after receiving all retained
- messages.
- - Add -W to allow mosquitto_sub to stop processing incoming messages after a
- timeout.
- - Connections now default to using MQTT v3.1.1.
- - Default to using port 8883 when using TLS.
- - mosquitto_sub doesn't continue to keep connecting if CONNACK tells it the
- connection was refused.
- Client fixes:
- - Correctly handle empty files with "mosquitto_pub -l". Closes #676.
- Build:
- - Add WITH_STRIP option (defaulting to "no") that when set to "yes" will strip
- executables and shared libraries when installing.
- - Add WITH_STATIC_LIBRARIES (defaulting to "no") that when set to "yes" will
- build and install static versions of the client libraries.
- - Don't run TLS-PSK tests if TLS-PSK disabled at compile time. Closes #636.
- - Support for openssl versions 1.0.0 and 1.0.1 has been removed as these are
- no longer supported by openssl.
- Documentation:
- - Replace mentions of deprecated 'c_rehash' with 'openssl rehash'.
- 1.4.15 - 20180228
- =================
- Security:
- - Fix CVE-2017-7652. If a SIGHUP is sent to the broker when there are no more
- file descriptors, then opening the configuration file will fail and security
- settings will be set back to their default values.
- - Fix CVE-2017-7651. Unauthenticated clients can cause excessive memory use by
- setting "remaining length" to be a large value. This is now mitigated by
- limiting the size of remaining length to valid values. A "memory_limit"
- configuration option has also been added to allow the overall memory used by
- the broker to be limited.
- Broker:
- - Use constant time memcmp for password comparisons.
- - Fix incorrect PSK key being used if it had leading zeroes.
- - Fix memory leak if a client provided a username/password for a listener with
- use_identity_as_username configured.
- - Fix use_identity_as_username not working on websockets clients.
- - Don't crash if an auth plugin returns MOSQ_ERR_AUTH for a username check on
- a websockets client. Closes #490.
- - Fix 08-ssl-bridge.py test when using async dns lookups. Closes #507.
- - Lines in the config file are no longer limited to 1024 characters long.
- Closes #652.
- - Fix $SYS counters of messages and bytes sent when message is sent over
- a Websockets. Closes #250.
- - Fix upgrade_outgoing_qos for retained message. Closes #534.
- - Fix CONNACK message not being sent for unauthorised connect on websockets.
- Closes #8.
- Client library:
- - Fix incorrect PSK key being used if it had leading zeroes.
- - Initialise "result" variable as soon as possible in
- mosquitto_topic_matches_sub. Closes #654.
- - No need to close socket again if setting non-blocking failed. Closes #649.
- - Fix mosquitto_topic_matches_sub() not correctly matching foo/bar against
- foo/+/#. Closes #670.
- Clients:
- - Correctly handle empty files with "mosquitto_pub -l". Closes #676.
- Build:
- - Don't run TLS-PSK tests if TLS-PSK disabled at compile time. Closes #636.
- 1.4.14 - 20170710
- =================
- Broker:
- - Fix regression from 1.4.13 where persistence data was not being saved.
- 1.4.13 - 20170627
- =================
- Security:
- - Fix CVE-2017-9868. The persistence file was readable by all local users,
- potentially allowing sensitive information to be leaked.
- This can also be fixed administratively, by restricting access to the
- directory in which the persistence file is stored.
- Broker:
- - Fix for poor websockets performance.
- - Fix lazy bridges not timing out for idle_timeout. Closes #417.
- - Fix problems with large retained messages over websockets. Closes #427.
- - Set persistence file to only be readable by owner, except on Windows. Closes
- #468.
- - Fix CONNECT check for reserved=0, as per MQTT v3.1.1 check MQTT-3.1.2-3.
- - When the broker stop, wills for any connected clients are now "sent". Closes
- #477.
- - Auth plugins can be configured to disable the check for +# in
- usernames/client ids with the auth_plugin_deny_special_chars option.
- Partially closes #462.
- - Restrictions for CVE-2017-7650 have been relaxed - '/' is allowed in
- usernames/client ids. Remainder of fix for #462.
- Clients:
- - Don't use / in auto-generated client ids.
- 1.4.12 - 20170528
- =================
- Security:
- - Fix CVE-2017-7650, which allows clients with username or client id set to
- '#' or '+' to bypass pattern based ACLs or third party plugins. The fix
- denies message sending or receiving of messages for clients with a '#' or
- '+' in their username or client id and if the message is subject to a
- pattern ACL check or plugin check.
- Patches for other versions are available at
- https://mosquitto.org/files/cve/2017-7650/
- Broker:
- - Fix mosquitto.db from becoming corrupted due to client messages being
- persisted with no stored message. Closes #424.
- - Fix bridge not restarting properly. Closes #428.
- - Fix unitialized memory in gets_quiet on Windows. Closes #426.
- - Fix building with WITH_ADNS=no for systems that don't use glibc. Closes
- #415.
- - Fixes to readme.md.
- - Fix deprecation warning for OpenSSL 1.1. PR #416.
- - Don't segfault on duplicate bridge names. Closes #446.
- - Fix CVE-2017-7650.
- 1.4.11 - 20170220
- =================
- Broker:
- - Fix crash when "lazy" type bridge attempts to reconnect. Closes #259.
- - maximum_connections now applies to websockets listeners. Closes #271.
- - Allow bridges to use TLS with IPv6.
- - Don't error on zero length persistence files. Closes #316.
- - For http only websockets clients, close files served over http in all cases
- when the client disconnects. Closes #354.
- - Fix error message when websockets http_dir directory does not exist.
- - Improve password utility error message. Closes #379.
- Clients:
- - Use of --ciphers no longer requires you to also pass --tls-version.
- Closes #380.
- Client library:
- - Clients can now use TLS with IPv6.
- - Fix potential socket leakage when reconnecting. Closes #304.
- - Fix potential negative timeout being passed to pselect. Closes #329.
- 1.4.10 - 20160816
- =================
- Broker:
- - Fix TLS operation with websockets listeners and libwebsockts 2.x. Closes
- #186.
- - Don't disconnect client on HUP before reading the pending data. Closes #7.
- - Fix some $SYS messages being incorrectly persisted. Closes #191.
- - Support OpenSSL 1.1.0.
- - Call fsync after persisting data to ensure it is correctly written. Closes
- #189.
- - Fix persistence saving of subscription QoS on big-endian machines.
- - Fix will retained flag handling on Windows. Closes #222.
- - Broker now displays an error if it is unable to open the log file. Closes
- #234.
- Client library:
- - Support OpenSSL 1.1.0.
- - Fixed the C++ library not allowing SOCKS support to be used. Closes #198.
- - Fix memory leak when verifying a server certificate with a subjectAltName
- section. Closes #237.
- Build:
- - Don't attempt to install docs when WITH_DOCS=no. Closes #184.
- 1.4.9 - 20160603
- ================
- Broker:
- - Ensure websockets clients that previously connected with clean session set
- to false have their queued messages delivered immediately on reconnecting.
- Closes #476314.
- - Reconnecting client with clean session set to false doesn't start with mid=1
- again.
- - Will topic isn't truncated by one byte when using a mount_point any more.
- - Network errors are printed correctly on Windows.
- - Fix incorrect $SYS heap memory reporting when using ACLs.
- - Bridge config parameters couldn't contain a space, this has been fixed.
- Closes #150.
- - Fix saving of persistence messages that start with a '/'. Closes #151.
- - Fix reconnecting for bridges that use TLS on Windows. Closes #154.
- - Broker and bridges can now cope with unknown incoming PUBACK, PUBREC,
- PUBREL, PUBCOMP without disconnecting. Closes #57.
- - Fix websockets listeners not being able to bind to an IP address. Closes
- #170.
- - mosquitto_passwd utility now correctly deals with unknown command line
- arguments in all cases. Closes #169.
- - Fix publishing of $SYS/broker/clients/maximum
- - Fix order of #includes in lib/send_mosq.c to ensure struct mosquitto doesn't
- differ between source files when websockets is being used. Closes #180.
- - Fix possible rare crash when writing out persistence file and a client has
- incomplete messages inflight that it has been denied the right to publish.
- Client library:
- - Fix the case where a message received just before the keepalive timer
- expired would cause the client to miss the keepalive timer.
- - Return value of pthread_create is now checked.
- - _mosquitto_destroy should not cancel threads that weren't created by
- libmosquitto. Closes #166.
- - Clients can now cope with unknown incoming PUBACK, PUBREC, PUBREL, PUBCOMP
- without disconnecting. Closes #57.
- - Fix mosquitto_topic_matches_sub() reporting matches on some invalid
- subscriptions.
- Clients:
- - Handle some unchecked malloc() calls. Closes #1.
- Build:
- - Fix string quoting in CMakeLists.txt. Closes #4.
- - Fix building on Visual Studio 2015. Closes #136.
- 1.4.8 - 20160214
- ================
- Broker:
- - Wills published by clients connected to a listener with mount_point defined
- now correctly obey the mount point. This was a potential security risk
- because it allowed clients to publish messages outside of their restricted
- mount point. This is only affects brokers where the mount_point option is in
- use. Closes #487178.
- - Fix detection of broken connections on Windows. Closes #485143.
- - Close stdin etc. when daemonised. Closes #485589.
- - Fix incorrect detection of FreeBSD and OpenBSD. Closes #485131.
- Client library:
- - mosq->want_write should be cleared immediately before a call to SSL_write,
- to allow clients using mosquitto_want_write() to get accurate results.
- 1.4.7 - 20151221
- ================
- Broker:
- - Fix support for libwebsockets 1.22.
- 1.4.6 - 20151220
- ================
- Broker:
- - Add support for libwebsockets 1.6.
- Client library:
- - Fix _mosquitto_socketpair() on Windows, reducing the chance of delays when
- publishing. Closes #483979.
- Clients:
- - Fix "mosquitto_pub -l" stripping the final character on a line. Closes
- #483981.
- 1.4.5 - 20151108
- ================
- Broker:
- - Fix possible memory leak if bridge using SSL attempts to connect to a
- host that is not up.
- - Free unused topic tree elements (fix in 1.4.3 was incomplete). Closes
- #468987.
- Clients:
- - "mosquitto_pub -l" now no longer limited to 1024 byte lines. Closes #478917.
- 1.4.4 - 20150916
- ================
- Broker:
- - Don't leak sockets when outgoing bridge with multiple addresses cannot
- connect. Closes #477571.
- - Fix cross compiling of websockets. Closes #475807.
- - Fix memory free related crashes on openwrt. Closes #475707.
- - Fix excessive calls to message retry check.
- 1.4.3 - 20150818
- ================
- Broker:
- - Fix incorrect bridge notification on initial connection. Closes #467096.
- - Build fixes for OpenBSD.
- - Fix incorrect behaviour for autosave_interval, most noticable for
- autosave_interval=1. Closes #465438.
- - Fix handling of outgoing QoS>0 messages for bridges that could not be sent
- because the bridge connection was down.
- - Free unused topic tree elements. Closes #468987.
- - Fix some potential memory leaks. Closes #470253.
- - Fix potential crash on libwebsockets error.
- Client library:
- - Add missing error strings to mosquitto_strerror.
- - Handle fragmented TLS packets without a delay. Closes #470660.
- - Fix incorrect loop timeout being chosen when using threaded interface and
- keepalive = 0. Closes #471334.
- - Increment inflight messages count correctly. Closes #474935.
- Clients:
- - Report error string on connection failure rather than error code.
- 1.4.2 - 20150507
- ================
- Broker:
- - Fix bridge prefixes only working for the first outgoing message. Closes
- #464437.
- - Fix incorrect bridge connection notifications on local broker.
- - Fix persistent db writing on Windows. Closes #464779.
- - ACLs are now checked before sending a will message.
- - Fix possible crash when using bridges on Windows. Closes #465384.
- - Fix parsing of auth_opt_ arguments with extra spaces/tabs.
- - Broker will return CONNACK rc=5 when a username/password is not authorised.
- This was being incorrectly set as rc=4.
- - Fix handling of payload lengths>4096 with websockets.
- Client library:
- - Inflight message count wasn't being decreased for outgoing messages using
- QoS 2, meaning that only up to 20 QoS 2 messages could be sent. This has
- been fixed. Closes #464436.
- - Fix CMake dependencies for C++ wrapper building. Closes #463884.
- - Fix possibility of select() being called with a socket that is >FD_SETSIZE.
- This is a fix for #464632 that will be followed up by removing the select()
- call in a future version.
- - Fix calls to mosquitto_connect*_async() not completing.
- 1.4.1 - 20150403
- ================
- Broker:
- - Fix possible crash under heavy network load. Closes #463241.
- - Fix possible crash when using pattern ACLs.
- - Fix problems parsing config strings with multiple leading spaces. Closes
- #462154.
- - Websockets clients are now periodically disconnected if they have not
- maintained their keepalive timer. Closes #461619.
- - Fix possible minor memory leak on acl parsing.
- Client library:
- - Inflight limits should only apply to outgoing messages. Closes #461620.
- - Fix reconnect bug on Windows. Closes #463000.
- - Return -1 on error from mosquitto_socket(). Closes #461705.
- - Fix crash on multiple calls to mosquitto_lib_init/mosquitto_lib_cleanup.
- Closes #462780.
- - Allow longer paths on Windows. Closes #462781.
- - Make _mosquitto_mid_generate() thread safe. Closes #463479.
- 1.4 - 20150218
- ==============
- Important changes:
- - Websockets support in the broker.
- - Bridge behaviour on the local broker has changed due to the introduction of
- the local_* options. This may affect you if you are using authentication
- and/or ACLs with bridges.
- - The default TLS behaviour has changed to accept all of TLS v1.2, v1.1 and
- v1.0, rather than only only one version of the protocol. It is still
- possible to restrict a listener to a single version of TLS.
- - The Python client has been removed now that the Eclipse Paho Python client
- has had a release.
- - When a durable client reconnects, its queued messages are now checked
- against ACLs in case of a change in username/ACL state since it last
- connected.
- - New use_username_as_clientid option on the broker, for preventing hijacking
- of a client id.
- - The client library and clients now have experimental SOCKS5 support.
- - Wildcard TLS certificates are now supported for bridges and clients.
- - The clients have support for config files with default options.
- - Client and client libraries have support for MQTT v3.1.1.
- - Bridge support for MQTT v3.1.1.
- Broker:
- - Websockets support in the broker.
- - Add local_clientid, local_username, local_password for bridge connections to
- authenticate to the local broker.
- - Default TLS mode now accepts TLS v1.2, v1.1 and v1.0.
- - Support for ECDHE-ECDSA family ciphers.
- - Fix bug #1324411, which could have had unexpected consequences for delayed
- messages in rare circumstances.
- - Add support for "session present" in CONNACK messages for MQTT v3.1.1.
- - Remove strict protocol #ifdefs.
- - Change $SYS/broker/clients/active -> $SYS/broker/clients/connected
- - Change $SYS/broker/clients/inactive -> $SYS/broker/clients/disconnected
- - When a durable client reconnects, its queued messages are now checked
- against ACLs in case of a change in username/ACL state since it last
- connected.
- - libuuid is used to generate client ids, where it is available, when an MQTT
- v3.1.1 client connects with a zero length client id.
- - Anonymous clients are no longer accidently disconnected from the broker
- after a SIGHUP.
- - mosquitto_passwd now supports -b (batch mode) to allow the password to be
- provided at the command line.
- - Removed $SYS/broker/changeset. This was intended for use with debugging, but
- in practice is of no use.
- - Add support for use_username_as_clientid which can be used with
- authentication to restrict ownership of client ids and hence prevent one
- client disconnecting another by using the same client id.
- - When "require_certificate" was false, the broker was incorrectly asking for
- a certificate (but not checking it). This caused problems with some clients
- and has been fixed so the broker no longer asks.
- - When using syslog logging on non-Windows OSs, it is now possible to specify
- the logging facility to one of local0-7 instead of the default "daemon".
- - The bridge_attempt_unsubscribe option has been added, to allow the sending
- of UNSUBSCRIBE requests to be disabled for topics with "out" direction.
- Closes bug #456899.
- - Wildcard TLS certificates are now supported for bridges.
- - Support for "hour" client expiration lengths for the
- persistent_client_expiration option. Closes bug #425835.
- - Bridge support for MQTT v3.1.1.
- - Root privileges are now dropped after starting listeners and loading
- certificates/private keys, to allow private keys to have their permissions
- restricted to the root user only. Closes bug #452914.
- - Usernames and topics given in ACL files can now include a space. Closes bug
- #431780.
- - Fix hang if pattern acl contains a %u but an anonymous client connect.
- Closes bug #455402.
- - Fix man page installation with cmake. Closes bug #458843.
- - When using "log_dest file" the output file is now flushed periodically.
- Clients:
- - Both clients can now load default configuration options from a file.
- - Add -C option to mosquitto_sub to allow the client to quit after receiving a
- certain count of messages. Closes bug #453850.
- - Add --proxy SOCKS5 support for both clients.
- - Pub client supports setting its keepalive. Closes bug #454852.
- - Add support for config files with default options.
- - Add support for MQTT v3.1.1.
- Client library:
- - Add experimental SOCKS5 support.
- - mosquitto_loop_forever now quits after a fatal error, rather than blindly
- retrying.
- - SRV support is now not compiled in by default.
- - Wildcard TLS certificates are now supported.
- - mosquittopp now has a virtual destructor. Closes bug #452915.
- - Add support for MQTT v3.1.1.
- - Don't quit mosquitto_loop_forever() if broker not available on first
- connect. Closes bug #453293, but requires more work.
- - Don't reset queued messages state on CONNACK. Fixes bug with duplicate
- messages on connection.
- 1.3.5 - 20141008
- ================
- Broker:
- - Fix possible memory leak when using a topic that has a leading slash. Fixes
- bug #1360985.
- - Fix saving persistent database on Windows.
- - Temporarily disable ACL checks on subscriptions when using MQTT v3.1.1. This
- is due to the complexity of checking wildcard ACLs against wildcard
- subscriptions. This does not have a negative impact on security because
- checks are still made before a message is sent to a client.
- Fixes bug #1374291.
- - When using -v and the broker receives a SIGHUP, verbose logging was being
- disabled. This has been fixed.
- Client library:
- - Fix mutex being incorrectly passed by value. Fixes bug #1373785.
- 1.3.4 - 20140806
- ================
- Broker:
- - Don't ask client for certificate when require_certificate is false.
- - Backout incomplete functionality that was incorrectly included in 1.3.2.
- 1.3.3 - 20140801
- ================
- Broker:
- - Fix incorrect handling of anonymous bridges on the local broker.
- 1.3.2 - 20140713
- ================
- Broker:
- - Don't allow access to clients when authenticating if a security plugin
- returns an application error. Fixes bug #1340782.
- - Ensure that bridges verify certificates by default when using TLS.
- - Fix possible crash when using pattern ACLs that do not include a %u and
- clients that connect without a username.
- - Fix subscriptions being deleted when clients subscribed to a topic beginning
- with a $ but that is not $SYS.
- - When a durable client reconnects, its queued messages are now checked
- against ACLs in case of a change in username/ACL state since it last
- connected.
- - Fix bug #1324411, which could have had unexpected consequences for delayed
- messages in rare circumstances.
- - Anonymous clients are no longer accidently disconnected from the broker
- after a SIGHUP.
- Client library:
- - Fix topic matching edge case.
- - Fix callback deadlocks after calling mosquitto_disconnect(), when using the
- threaded interfaces. Closes bug #1313725.
- - Fix SRV support when building with CMake.
- - Remove strict protocol #ifdefs.
- General:
- - Use $(STRIP) for stripping binaries when installing, to allow easier cross
- compilation.
- 1.3.1 - 20140324
- ================
- Broker:
- - Prevent possible crash on client reconnect. Closes bug #1294108.
- - Don't accept zero length unsubscription strings (MQTT v3.1.1 fix)
- - Don't accept QoS 3 (MQTT v3.1.1 fix)
- - Don't disconnect clients immediately on HUP to give chance for all data to
- be read.
- - Reject invalid un/subscriptions e.g. foo/+bar #/bar.
- - Take more care not to disconnect clients that are sending large messages.
- Client library:
- - Fix socketpair code on the Mac.
- - Fix compilation for WITH_THREADING=no.
- - Break out of select() when calling mosquitto_loop_stop().
- - Reject invalid un/subscriptions e.g. foo/+bar #/bar.
- - Add mosquitto_threaded_set().
- Clients:
- - Fix keepalive value on mosquitto_pub.
- - Fix possibility of mosquitto_pub not exiting after sending messages when
- using -l.
- 1.3 - 20140316
- ==============
- Broker:
- - The broker no longer ignores the auth_plugin_init() return value.
- - Accept SSLv2/SSLv3 HELLOs when using TLSv1, whilst keeping SSLv2 and SSLv3
- disabled. This increases client compatibility without sacrificing security.
- - The $SYS tree can now be disabled at runtime as well as at compile time.
- - When remapping bridged topics, only check for matches when the message
- direction is correct. This allows two identical topics to be remapped
- differently for both in and out.
- - Change "$SYS/broker/heap/current size" to "$SYS/broker/heap/current" for
- easier parsing.
- - Change "$SYS/broker/heap/maximum size" to "$SYS/broker/heap/maximum" for
- easier parsing.
- - Topics are no longer normalised from e.g a///topic to a/topic. This matches
- the behaviour as clarified by the Oasis MQTT spec. This will lead to
- unexpected behaviour if you were using topics of this form.
- - Log when outgoing messages for a client begin to drop off the end of the
- queue.
- - Bridge clients are recognised as bridges even after reloading from
- persistence.
- - Basic support for MQTT v3.1.1. This does not include being able to bridge to
- an MQTT v3.1.1 broker.
- - Username is displayed in log if present when a client connects.
- - Support for 0 length client ids (v3.1.1 only) that result in automatically
- generated client ids on the broker (see option allow_zero_length_clientid).
- - Ability to set the prefix of automatically generated client ids (see option
- auto_id_prefix).
- - Add support for TLS session resumption.
- - When using TLS, the server now chooses the cipher to use when negotiating
- with the client.
- - Weak TLS ciphers are now disabled by default.
- Client library:
- - Fix support for Python 2.6, 3.0, 3.1.
- - Add support for un/subscribing to multiple topics at once in un/subscribe().
- - Clients now close their socket after sending DISCONNECT.
- - Python client now contains its version number.
- - C library mosquitto_want_write() now supports TLS clients.
- - Fix possible memory leak in C/C++ library when communicating with
- a broker that doesn't follow the spec.
- - Return strerror() through mosquitto_strerror() to make error printing
- easier.
- - Topics are no longer normalised from e.g a///topic to a/topic. This matches
- the behaviour as clarified by the Oasis MQTT spec. This will lead to
- unexpected behaviour if you were using topics of this form.
- - Add support for SRV lookups.
- - Break out of select() on publish(), subscribe() etc. when using the threaded
- interface. Fixes bug #1270062.
- - Handle incoming and outgoing messages separately. Fixes bug #1263172.
- - Don't terminate threads on mosquitto_destroy() when a client is not using
- the threaded interface but does use their own thread. Fixes bug #1291473.
- Clients:
- - Add --ciphers to allow specifying which TLS ciphers to support.
- - Add support for SRV lookups.
- - Add -N to sub client to suppress printing of EOL after the payload.
- - Add -T to sub client to suppress printing of a topic hierarchy.
- 1.2.3 - 20131202
- ================
- Broker:
- - Don't always attempt to call read() for SSL clients, irrespective of whether
- they were ready to read or not. Reduces syscalls significantly.
- - Possible memory leak fixes.
- - Further fix for bug #1226040: multiple retained messages being delivered for
- subscriptions ending in #.
- - Fix bridge reconnections when using multiple bridge addresses.
- Client library:
- - Fix possible memory leak in C/C++ library when communicating with
- a broker that doesn't follow the spec.
- - Block in Python loop_stop() until all messages are sent, as the
- documentation states should happen.
- - Fix for asynchronous connections on Windows. Closes bug #1249202.
- - Module version is now available in mosquitto.py.
- Clients:
- - mosquitto_sub now uses fwrite() instead of printf() to output messages, so
- messages with NULL characters aren't truncated.
- 1.2.2 - 20131021
- ================
- Broker:
- - Fix compliance with max_inflight_messages when a non-clean session client
- reconnects. Closes one of the issues on bug #1237389.
- Client library:
- - Fix incorrect inflight message accounting, which caused messages to go
- unsent. Partial fix for bug #1237351.
- - Fix potential memory corruption when sending QoS>0 messages at a high rate
- using the threaded interface. Further fix for #1237351.
- - Fix incorrect delay scaling when exponential_backoff=true in
- mosquitto_reconnect_delay_set().
- - Some pep8 fixes for Python.
- 1.2.1 - 20130918
- ================
- Broker:
- - The broker no longer ignores the auth_plugin_init() return value. Closes
- bug #1215084.
- - Use RTLD_GLOBAL when opening authentication plugins on posix systems. Fixes
- resolving of symbols in libraries used by authentication plugins.
- - Add/fix some config documentation.
- - Fix ACLs for topics with $SYS.
- - Clients loaded from the persistence file on startup were not being added to
- the client hash, causing subtle problems when the client reconnected,
- including ACLs failing. This has been fixed.
- - Add note to mosquitto-tls man page stating that certificates need to be
- unique. Closes bug #1221285.
- - Fix incorrect retained message delivery when using wildcard subs in some
- circumstances. Fixes bug #1226040.
- Client library:
- - Fix support for Python 2.6, 3.0, 3.1.
- - Fix TLS subjectAltName verification and segfaults.
- - Handle EAGAIN in Python on Windows. Closes bug #1220004.
- - Fix compilation when using WITH_TLS=no.
- - Don't fail reconnecting in Python when broker is temporarily unavailable.
- 1.2 - 20130708
- ==============
- Broker:
- - Replace O(n) username lookup on CONNECT with a roughly O(1) hashtable version.
- - It is now possible to disable $SYS at compile time.
- - Add dropped publish messages to load tree in $SYS. Closes bug #1183318.
- - Add support for logging SUBSCRIBE/UNSUBSCRIBE events.
- - Add "log_dest file" logging support.
- - Auth plugin ACL check function now passes the client id as well as username
- and password.
- - The queue_qos0_messages option wasn't working correctly, this has now been
- fixed. Closes bug #1125200.
- - Don't drop all messages for disconnected durable clients when
- max_queued_messages=0.
- - Add support for "log_type all".
- - Add support for "-v" option on the command line to provide the equivalent of
- "log_type all" without needing a config file.
- - Add the "upgrade_outgoing_qos" option, a non-standard feature.
- - Persistence data is now written to a temporary file which is atomically
- renamed on completion, so a crash during writing will not produce a corrupt
- file.
- - mosquitto.conf is now installed as mosquitto.conf.example
- - Configuration file errors are now reported with filename and line number.
- - The broker now uses a monotonic clock if available, to avoid changes in time
- causing client disconnections or message retries.
- - Clean session and keepalive status are now display the log when a client
- connects.
- - Add support for TLSv1.2 and TLSv1.1.
- - Clients that connect with zero length will topics are now rejected.
- - Add the ability to set a maximum allowed PUBLISH payload size.
- - Fix an ACL with topic "#" incorrectly granting access to $SYS.
- - Fix retained messages incorrectly being set on wildcard topics, leading to
- duplicate retained messages being sent on subscription. Closes bug #1116233.
- - Don't discard listener values when no "port" option given. Closes bug
- #1131406.
- - Client password check was always failing when security was being reapplied
- after a config reload. This meant that all clients were being disconnected.
- This has been fixed.
- - Fix build when WITH_TLS=no. Closes bug #1174971.
- - Fix single outgoing packets not being sent in a timely fashion if they were
- not sent in one call to write(). Closes bug #1176796.
- - Fix remapping of messages for clients connected to a listener with
- mount_point set. Closes bug #1180765.
- - Fix duplicate retained messages being sent for some wildcard patterns.
- - If a client connects with a will topic to which they do not have write
- access, they are now disconnected with CONNACK "not authorised".
- - Fix retained messages on topic foo being incorrectly delivered to
- subscriptions of /#
- - Fix handling of SSL errors on SSL_accept().
- - Fix handling of QoS 2 messages on client reconnect.
- - Drop privileges now sets supplementary groups correctly.
- - Fix load reporting interval (is now 60s).
- - Be strict with malformed PUBLISH packets - clients are now disconnected
- rather than the packet discarded. This goes inline with future OASIS spec
- changes and makes other changes more straightforward.
- - Process incoming messages denied by ACL properly so that clients don't keep
- resending them.
- - Add support for round_robin bridge option.
- - Add bridge support for verifying remote server certificate subject against
- the remote hostname.
- - Fix problem with out of order calls to free() when restarting a lazy bridge.
- - The broker now attempts to resolve bind_address and bridge addresses
- immediately when parsing the config file in order to detect invalid hosts.
- - Bridges now set their notification state before attempting to connect, so if
- they fail to connect the state can still be seen.
- - Fix bridge notification payload length - no need to send a null byte.
- - mosquitto_passwd utility now reports errors more clearly.
- - Fix "mosquitto_passwd -U".
- Client library:
- - Add support for TLSv1.2 and TLSv1.1, except for on the Python module.
- - Add support for verifying remote server certificate subject against the
- remote hostname.
- - Add mosquitto_reconnect_async() support and make asynchronous connections
- truely asynchronous rather than simply deferred. DNS lookups are still
- blocking, so asynchronous connections require an IP address instead of
- hostname.
- - Allow control of reconnection timeouts in mosquitto_loop_forever() and after
- mosquitto_loop_start() by using mosquitto_reconnect_delay_set().
- - Fix building on Android NDK.
- - Re-raise unhandled errors in Python so as not to provide confusing error
- messages later on.
- - Python module supports IPv6 connections.
- - mosquitto_sub_topic_tokenise() was behaving incorrectly if the last topic
- hierarchy had only a single character. This has been fixed. Closes bug
- #1163348.
- - Fix possible crash after disconnects when using the threaded interface with
- TLS.
- - Allow build/install without Python. Closes bug #1174972.
- - Add support for binding connection to a local interface.
- - Implement maximum inflight messages handling.
- - Fix Python client not handling will_payload==None.
- - Fix potential memory leak when setting username/password.
- - Fix handling of QoS 2 messages on reconnect.
- - Improve handling of mosquitto_disconnect() with threaded mode.
- Clients:
- - Add support for TLSv1.2 and TLSv1.1.
- - Sub client can now suppress printing of messages with the retain bit set.
- - Add support for binding connection to a local interface.
- - Implement maximum inflight messages handling for the pub client.
- 1.1.3 - 20130211
- ================
- Broker:
- - mosquitto_passwd utility now uses tmpfile() to generate its temporary data
- storage file. It also creates a backup file that can be used to recover data
- if an errors occur.
- Other:
- - Build script fixes to help packaging on Debian.
- 1.1.2 - 20130130
- ================
- Client library:
- - Fix tls_cert_reqs not being set to SSL_VERIFY_PEER by default. This meant
- that clients were not verifying the server certificate when connecting over
- TLS. This affects the C, C++ and Python libraries.
- 1.1.1 - 20130116
- ================
- Broker:
- - Fix crash on reload if using acl patterns.
- Client library:
- - Fix static C++ functions not being exported on Windows. Fixes bug #1098256.
- 1.1 - 20121219
- ==============
- Broker:
- - Add $SYS/broker/messages/dropped
- - Add $SYS/broker/clients/expired
- - Replace $SYS/broker/+/per second/+ with moving average versions published at
- $SYS/broker/load/#
- - Add $SYS/broker/load/sockets/+ and $SYS/broker/load/connections/+
- - Documentation on password file format has been fixed.
- - Disable SSL compression. This reduces memory usage significantly and removes
- the possibility of CRIME type attacks.
- - Enable SSL_MODE_RELEASE_BUFFERS mode to reduce SSL memory usage further.
- - Add allow_duplicate_messages option.
- - ACL files can now have comment lines with # as the first character.
- - Display message on startup about which config is being loaded.
- - Fix max_inflight_messages and max_queued_messages not being applied.
- - Fix documentation error in mosquitto.conf.
- - Ensure that QoS 2 queued messages are sent out in a timely manner.
- - Local bridges now act on clean_session correctly.
- - Local bridges with clean_session==false now remove unused subscriptions on
- broker restart.
- - The $SYS/broker/heap/# messages now no longer include "bytes" as part of the
- string for ease of use.
- Client library:
- - Free memory used by OpenSSL in mosquitto_lib_cleanup() where possible.
- - Change WebSocket subprotocol name to mqttv3.1 to make future changes easier
- and for compatibility with other implementations.
- - mosquitto_loop_read() and mosquitto_loop_write() now handle errors
- themselves rather than having mosquitto_loop() handle their errors. This
- makes using them in a separate event loop more straightforward.
- - Add mosquitto_loop_forever() / loop_forever() function call to make simple
- clients easier.
- - Disable SSL compression. This reduces memory usage significantly and removes
- the possibility of CRIME type attacks.
- - Enable SSL_MODE_RELEASE_BUFFERS mode to reduce SSL memory usage further.
- - mosquitto_tls_set() will now return an error or raise an exception
- immediately if the CA certificate or client certificate/key cannot be
- accessed.
- - Fix potential memory leaks on connection failures.
- - Don't produce return error from mosquitto_loop() if a system call is
- interrupted. This prevents disconnects/reconnects in threaded mode and
- simplifies non-threaded client handling.
- - Ignore SIGPIPE to prevent unnecessary client quits in threaded mode.
- - Fix document error for mosquitto_message_retry_set().
- - Fix mosquitto_topic_matches_sub() for subscriptions with + as the final
- character. Fixes bug #1085797.
- - Rename all "obj" parameters to "userdata" for consistency with other
- libraries.
- - Reset errno before network read/write to ensure EAGAIN isn't mistakenly
- returned.
- - The message queue length is now tracked and used to determine the maximum
- number of packets to process at once. This removes the need for the
- max_packets parameter which is now unused.
- - Fix incorrect error value in Python error_string() function. Fixes bug
- #1086777.
- - Reset last message in/out timer in Python module when we send a PINGREQ.
- Fixes too-early disconnects.
- Clients:
- - Clients now display their own version number and library version number in
- their help messages.
- - Fix "mosquitto_pub -l -q 2" disconnecting before all messages were
- transmitted.
- - Fix potential out-of-bounds array access with client ids. Fixes bug
- #1083182.
- Other:
- - mosquitto_passwd can now convert password files with plain text files to
- hashed versions.
- 1.0.5 - 20121103
- ================
- Broker:
- - Fix crash when the broker has use_identity_as_username set to true but a
- client connects without a certificate.
- - mosquitto_passwd should only be installed if WITH_TLS=yes.
- Library:
- - Use symbolic errno values rather than numbers in Python module to avoid
- cross platform issues (incorrect errno on Mac OS).
- Other:
- - Build script fixes for FreeBSD.
- 1.0.4 - 20121017
- ================
- Broker:
- - Deal with poll() POLLIN/POLLOUT before POLL[RD]HUP to correctly handle the
- case where a client sends data and immediately closes its socket.
- Library:
- - Fix memory leak with messages of QoS=2. Fixes bug #1064981.
- - Fix potential thread synchronisation problem with outgoing packets in the
- Python module. Fixes bug #1064977.
- Clients:
- - Fix "mosquitto_sub -l" incorrectly only sending one message per second.
- 1.0.3 - 20120927
- ================
- Broker:
- - Fix loading of psk files.
- - Don't return an error when reloading config if an ACL file isn't defined.
- This was preventing psk files being reloaded.
- - Clarify meaning of $SYS/broker/clients/total in mosquitto(8) man page.
- - Clarify meaning of $SYS/broker/messages/stored in mosquitto(8) man page.
- - Fix non-retained message delivery when subscribing to #.
- - Fix retained message delivery for subs to foo/# with retained messages at
- foo.
- - Include the filename in password/acl file loading errors.
- Library:
- - Fix possible AttributeError when self._sock == None in Python module.
- - Fix reconnecting after a timeout in Python module.
- - Fix reconnecting when there were outgoing packets in the queue in the Python
- module.
- - Fix problem with mutex initialisation causing crashes on some Windows
- installations.
- 1.0.2 - 20120919
- ================
- Broker:
- - If the broker was configured for persistence, a durable client had a
- subscription to topics in $SYS/# and had messages in its queue when the
- broker restarted, then the persistent database would have messages missing
- and so the broker would not restart properly. This has been fixed.
- Library:
- - Fix threading problem on some systems.
- Tests:
- - Close socket after 08-ssl-connect-no-auth-wrong-ca.py test to prevent
- subsequent tests having problems.
- Build scripts:
- - Install pskfile.example in CMake. Fixes bug #1037504.
- Other:
- - Fix db_dump parameter printing message store and sub chunks.
- 1.0.1 - 20120815
- ================
- Broker:
- - Fix default log_dest when running as a Windows service.
- Client library:
- - Fix incorrect parameters in Python on_log() callback call. Fixes bug
- #1036818.
- Clients:
- - Clients now don't display TLS/TLS-PSK usage help if they don't support it.
- Build scripts:
- - Fix TLS-PSK support in the CMake build files.
- - Fix man page installation in the CMake build files.
- - Fix SYSCONFDIR in cmake on *nix when installing to /usr. Fixes bug #1036908.
- Documentation:
- - Fix mqtt/MQTT capitalisation in man pages.
- - Update compiling.txt.
- - Fix incorrect callback docs in mosquitto.py. Fixes bug #1036607.
- - Fix various doc typos and remove obsolete script. Fixes bug #1037088.
- 1.0 - 20120814
- ==============
- Broker:
- - Add SSL/TLS support.
- - Add TLS-PSK support, providing a simpler encryption method for constrained
- devices.
- - Passwords are now salted+hashed if compiled with WITH_TLS (recommended).
- - Add mosquitto_passwd for handling password files.
- - Add $SYS/broker/publish/messages/{sent|received} to show the number of
- PUBLISH messages sent/received.
- - Add $SYS/broker/publish/bytes/{sent|received} to show the number of
- PUBLISH bytes sent/received.
- - Add reload parameter for security init/cleanup functions.
- - Add option for expiring disconnected persistent clients.
- - Add option for queueing of QoS 0 messages when persistent clients are
- disconnected.
- - Enforce client id limits in the broker (only when WITH_STRICT_PROTOCOL is
- defined).
- - Fix reloading of log configuration.
- - Add support for try_private config option for bridge connections.
- - Add support for autosave_on_changes config option.
- - Add support for include_dir config option.
- - Add support for topic remapping.
- - Usernames were being lost when a non clean-session client reconnected,
- potentially causing problems with ACLs. This has been fixed.
- - Significant improvement to memory handling on Windows.
- - Bridges with outgoing topics will now set the retain flag correctly so that
- messages will be retained on the remote broker.
- - Incoming bridge connections are now detected by checking if bit 8 of the
- protocol version number is set. This requires support from the remote broker.
- - Add support for notification_topic option.
- - Add $SYS/broker/subscriptions/count and $SYS/broker/retained messages/count.
- - Add restart_timeout to control the amount of time an automatic bridge will
- wait before reconnecting.
- - Overlapping subscriptions are now handled properly. Fixes bug #928538.
- - Fix reloading of persistence_file and persistence_location.
- - Fix broker crash on incorrect protocol number.
- - Fix missing COMPAT_ECONNRESET define on Windows.
- - Clients that had disconnected were not always being detected immediately on
- Linux. This has been fixed.
- - Don't save $SYS messages to the on-disk persistent db. All $SYS messages
- should be reconstructed on a restart. This means bridge connection
- notifications will now be correct on a restart.
- - Fix reloading of bridge clients from the persistent db. This means that
- outgoing bridged topics should always work.
- - Local bridges are now no longer restricted by local ACLs.
- - Discard publish messages with zero length topics.
- - Drop to "mosquitto" user even if no config file specified.
- - Don't incorrectly allow topic access if ACL patterns but no normal ACL rules
- are defined.
- Client library:
- - Add SSL/TLS support.
- - Add TLS-PSK support, providing a simpler encryption method for constrained
- devices.
- - Add javascript/websockets client library.
- - Add "struct mosquitto *mosq" parameter for all callbacks in the client
- library. This is a binary incompatible change so the soversion of the
- libraries has been incremented. The new parameter should make it easier to
- use callbacks in practice.
- - Add mosquitto_want_write() for use when using own select() loop with
- mosquitto_socket().
- - Add mosquitto_connect_async() to provide a non-blocking connect client call.
- - Add mosquitto_user_data_set() to allow user data pointer to be updated.
- - Add "int rc" parameter to disconnect callback to indicate whether disconnect
- was unexpected or the result of calling mosquitto_disconnect().
- - Add mosquitto_strerror() for obtaining a string description of error numbers.
- - Add mosquitto_connack_string() for obtaining a string description of MQTT
- connection results.
- - Add mosquitto_will_clear() and change mosquitto_will_set() to only set the
- will.
- - Add mosquitto_sub_topic_tokenise() and mosquitto_sub_topic_tokens_free()
- utility functions to tokenise a subscription/topic string into a string
- array.
- - Add mosquitto_topic_matches_sub() to check whether a topic matches a
- subscription.
- - Replaced mosquitto_log_init() with mosquitto_log_callback_set() to allow
- clients to decide what to do with log messages.
- - Client will now disconnect itself from the broker if it doesn't receive a
- PINGRESP in the keepalive period after sending a PINGREQ.
- - Client will now send a PINGREQ if it has not received a message from the
- broker in keepalive seconds.
- - mosquitto_new() will now generate a random client id if the id parameter is
- NULL.
- - Added max_packets to mosquitto_loop(), mosquitto_loop_read() and
- mosquitto_loop_write() to control the maximum number of packets that are
- handled per call.
- - Payload parameters are now void * instead of uint8_t *.
- - The clean_session parameter has been moved from mosquitto_connect() to
- mosquitto_new() because it is a client parameter rather than a connection
- parameter.
- - Functions now use int instead of uint*_t where possible.
- - mosquitto_new() now sets errno to indicate failure type.
- - Return MOSQ_ERR_INVAL on zero length topic.
- - Fix automatic client id generation on Windows.
- - mosquitto_loop_misq() can now return MOSQ_ERR_NO_CONN.
- - Compile static library as well as dynamic library with default makefiles.
- - Rename C++ namespace from mosquittopp to mosqpp to remove ambiguity.
- - C++ lib_init(), lib_version() and lib_cleanup() are now in the mosqpp
- namespace directly, not mosquittopp class members.
- - The Python library is now written in pure Python and so no longer depends on
- libmosquitto.
- - The Python library includes SSL/TLS support.
- - The Python library should now be compatible with Python 3.
- Other:
- - Fix db_dump reading of retained messages.
- - Add example of logging all messages to mysql.
- - Add C++ client example.
- - Fix potential buffer overflow in pub/sub clients.
- - Add "make binary" target that doesn't make documents.
- - Add "--help" arguments to pub/sub clients.
- - Fix building on Solaris.
- 0.15 - 20120205
- ===============
- - Add support for $SYS/broker/clients/maximum and $SYS/broker/clients/active
- topics.
- - Add support for $SYS messages/byte per second received/sent topics.
- - Updated mosquitto man page - $SYS hierarchy and signal support were out of
- date.
- - Auto generated pub/sub client ids now include the hostname.
- - Tool for dumping persistent DB contents is available in src/db_dump. It isn't
- installed by default.
- - Enforce topic length checks in client library.
- - Implement "once" and "lazy" bridge start types.
- - Add new return type MOSQ_ERR_ERRNO to indicate that the errno variable should
- be checked for the real error code.
- - Add support for connection_messages config option.
- - mosquitto_sub will now refuse to run if the -c option (disable clean session)
- is given and no client id is provided.
- - mosquitto_pub now gives more useful error messages on invalid input or other
- error conditions.
- - Fix Python will_set() true/True typo.
- - Fix messages to topic "a/b" incorrectly matching on a subscription "a" if
- another subscription "a/#" exists.
- 0.14.4 - 20120106
- =================
- - Fix local bridge notification messages.
- - Fix return values for more internal library calls.
- - Fix incorrect out of memory checks in library and broker.
- - Never time out local bridge connections.
- 0.14.3 - 20111210
- =================
- - Fix potential crash when client connects with an invalid CONNECT packet.
- - Fix incorrect invalid socket comparison on Windows.
- - Server shouldn't crash when a message is published to foo/ when a
- subscription to foo/# exists (bug #901697).
- - SO_REUSEADDR doesn't work the same on Windows, so don't use it.
- - Cygwin builds now support Windows service features.
- - Fix $SYS/broker/bytes/sent reporting.
- 0.14.2 - 20111123
- =================
- - Add uninstall target for libs.
- - Don't try to write packet whilst in a callback.
- 0.14.1 - 20111117
- =================
- - Fix Python sytax errors (bug #891673).
- 0.14 - 20111116
- ===============
- - Add support for matching ACLs based on client id and username.
- - Add a Windows installer file (NSIS based).
- - Add native support for running the broker as a Windows service. This is the
- default when installed using the new installer.
- - Fix client count for listeners. When clients disconnect, decrement the
- count. Allow max_connections to work again.
- - Attempt to send all packets immediately upon being queued. This will result
- in more immediate network communication in many cases.
- - Log IP address when reporting CONNACK packets if the client id isn't yet
- known.
- - Fix payload length calculation in python will_set function.
- - Fix Python publish and will_set functions for payload=None.
- - Fix keepalive value being lost when reconnecting a client (bug #880863).
- - Persistence file writing now uses portable file functions, so the Cygwin
- broker build should no longer be necessary.
- - Duplicate code between the client and broker side has been reduced.
- - Queued messages for clients reconnecting with clean_session=false set were
- not being sent until the next message for that client was received. This has
- been fixed (bug #890724).
- - Fix subscriptions to # incorrectly matching against topics beginning with /
- 0.13 - 20110920
- ===============
- - Implement bridge state notification messages.
- - Save client last used mid in persistent database (DB version number bumped).
- - Expose message id in Python MosquittoMessage.
- - It is now possible to set the topic QoS level for bridges.
- - Python MosquittoMessage payload parameter is now a Python string, not a
- ctypes object which makes it much easier to use.
- - Fix queueing of messages for disconnected clients. The max_queued_messages
- option is now obeyed.
- - C++ library is now in its own namespace, mosquittopp.
- - Add support for adding log message timestamps in the broker.
- - Fix missing mosquitto_username_pw_set() python binding.
- - Fix keepalive timeout for reconnecting non clean-session clients. Prevents
- immediate disconnection on reconnection.
- - Fix subscription wildcard matching - a subscription of +/+ will now match
- against /foo
- - Fix subscription wildcard matching - a subscription of foo/# will now match
- against foo
- - When restoring persistent database, clients should be set to non
- clean-session or their subscriptions will be immediately removed.
- - Fix SUBACK payload for multiple topic subscriptions.
- - Don't send retained messages when a client subscribes to a topic it is
- already subscribed to.
- 0.12 - 20110725
- ===============
- - Reload (most) configuration on SIGHUP.
- - Memory tracking is no longer compiled in the client library.
- - Add --help option to mosquitto to display usage.
- - Add --id-prefix option to clients to allow easier use with brokers that are
- using the clientid_prefix option.
- - Fix compilation on QNX.
- - Add -P as a synonym argument for --pw in the clients.
- - Fix python MosquittoMessage payload parameter. This is now returned as a
- pointer to an array of c_uint8 values so binary data is handled correctly.
- If a string is needed, use msg.payload_str
- - Fix memory leaks on client authentication.
- - If password_file is not defined then clients can now connect even if they
- use a username/password.
- - Add mosquitto_reconnect() to the client library.
- - Add option for compiling with liberal protocol compliance support (enabled
- by default).
- - Fix problems with clients reconnecting and old messages remaining in the
- message store.
- - Display both ip and client id in the log message when a client connects.
- Change the socket connection message to make it more obvious that it is just
- a socket connection being made (bug #801135).
- - Fix retained message delivery where a subscription contains a +.
- - Be more lenient when reloading persistent database to reduce errors with
- empty retained messages.
- 0.11.3 - 20110707
- =================
- - Don't complain and quit if persistence_file option is given (bug #802423).
- - Initialise listeners correctly when clients with duplicate client ids
- connect. Bug #801678.
- - Memory tracking is now disabled for Symbian builds due to lack of malloc.h.
- - Fix memory tracking compilation for kFreeBSD.
- - Python callbacks can now be used with class member functions.
- - Fix persistent database writing of client message chunks which caused
- errors when restoring (bug #798164).
- 0.11.2 - 20110626
- =================
- - Don't free contexts in mqtt3_context_disconnect() (bug #799688 / #801678).
- - Only free will if present when freeing a client context.
- 0.11.1 - 20110620
- =================
- - Fix buffer overrun when checking for + and # in topics (bug #799688).
- - Pub client now quits if publish fails.
- 0.11 - 20110619
- ===============
- - Removed all old sqlite code.
- - Remove client id limit in clients.
- - Implemented $SYS/broker/heap/maximum size
- - Implemented $SYS/broker/clients/inactive to show the number of disconnected
- non-clean session clients.
- - $SYS/broker/heap/current size and maximum size messages now include "bytes"
- to match rsmb message format.
- - Implemented the retained_persistence config file option - a synonym of the
- "persistence" option.
- - Added security_external.c to broker source to make it easier for third
- parties to add support for their existing username/password and ACL database
- for security checks. See external_security_checks.txt.
- - $SYS messages are now only republished when their value changes.
- - Windows native broker now responds to command line arguments.
- - Simplify client disconnecting so wills gets sent in all cases (bug #792468).
- - Clients now have a --quiet option.
- - The on_disconnect() callback will always be called now, even if the client
- has disconnected unexpectedly.
- - Always close persistent DB file after restoring.
- - Return error code when exiting the clients.
- - mosquitto_publish() now returns MOSQ_ERR_INVAL if the topic contains + or #
- - mosquitto now silently rejects published messages with + or # in the topic.
- - max_connections is now a per-listener setting instead of global.
- - Connection count is now reduced when clients disconnect (bug #797983).
- 0.10.2 - 20110106
- =================
- - Don't abort when connecting if the first connection fails. This is important
- on e.g. Windows 7, where IPV6 is offered as the first choice but may not be
- available.
- - Deal with long logging messages properly (bug #785882).
- - Fix library compilation on Symbian - no pselect() available.
- - Don't stop processing subscriptions on received messages after a
- subscription with # matches. (bug #791206).
- 0.10.1 - 20110512
- =================
- - Fix Windows compilation.
- - Fix mosquitto.py on Windows - call lib init/cleanup.
- - Don't abort when connecting if given an unknown address type (assuming an
- IPv4 or IPv6 address is given).
- 0.10 - 20110429
- ===============
- - Implement support for the password_file option and accompanying
- authentication requirements in the broker.
- - Implement topic Access Control Lists.
- - mosquitto_will_set() and mosquitto_publish() now return
- MOSQ_ERR_PAYLOAD_SIZE if the payload is too large (>268,435,455 bytes).
- - Bridge support can now be disabled at compile time.
- - Group together network writes for outgoing packets - don't send single byte
- writes!
- - Add support for clientid_prefixes variable.
- - Add support for the clientid config variable for controlling bridge client
- ids.
- - Remove 32-bit database ID support because htobe64() no longer used.
- - Multiple client subscriptions to the same topic result in only a single
- subscription. Bug #744077.
- 0.9.3 - 20110310
- ================
- - Set retained message status for QoS 2 messages (bug #726535).
- - Only abort with an error when opening listening sockets if no address family
- is available, rather than aborting when any address family is not available.
- - Don't clean queued messages when a non clean session client reconnects.
- - Make mosquitto.py compatible with Python <2.6.
- - Fix mosquitto.h header includes for Windows.
- 0.9.2 - 20110208
- ================
- - Only send a single DISCONNECT command when using -l in the pub client.
- - Set QoS=1 on PUBREL commands to meet protocol spec.
- - Don't leak sockets on connection failure in the library.
- - Install man pages when building under cmake.
- - Fix crash bug on malformed CONNECT message.
- - Clients are now rejected if their socket peer name cannot be obtained on
- connection.
- - Fix a number of potential problems caused when a client with a duplicate id
- connects.
- - Install mosquitto.conf under cmake.
- 0.9.1 - 20101203
- ================
- - Add missing code for parsing the "bind_address" configuration option.
- - Fix missing include when compiling with tcp-wrappers support.
- - Add linker version script for C library to control exported functions.
- 0.9 - 20101114
- ==============
- - Client and message data is now stored in memory with custom routines rather
- than a sqlite database. This removes the dependencies on sqlite, pcre and
- sqlite3-pcre. It also means that the persistent database format has had to
- be reimplemented in a custom format. Optional support for importing old
- sqlite databases is provided.
- - Added IPv6 support for mosquitto and the clients.
- - Provide username and password support for the clients and client libraries.
- This is part of the new MQTT v3.1 spec.
- - The broker supports the username and password connection flags, but will not
- do anything with the username and password.
- - Python callback functions now optionally take an extra argument which will
- return the user object passed to the Mosquitto() constructor, or the calling
- python object itself if nothing was given to Mosquitto().
- - Remove the mosquitto command line option "-i interface".
- - Remove the mosquitto.conf "interface" variable.
- - Add support for the listener config variable (replaces the interface
- variable)
- - Add support for the bind_address config variable.
- - Change the port config variable behaviour to match that of rsmb (applies to
- the default listener only, can be given just once).
- - Fix QoS 2 protocol compliance - stop sending duplicate messages and handle
- timeouts correctly. Fixes bug #598290.
- - Set retain flag correctly for outgoing messages. It should only be set for
- messages sent in response to a subscribe command (ie. stale data).
- - Fix bug in returning correct CONNACK result to on_connect client callback.
- - Don't send client will if it is disconnected for exceeding its keepalive
- timer.
- - Fix client library unsubscribe function incorrectly sending a SUBSCRIBE
- command when it should be UNSUBSCRIBE.
- - Fix max_inflight_messages and max_queued_messages operation. These
- parameters now apply only to QoS 1 and 2 messages and are used regardless of
- the client connection state.
- - mosquitto.conf now installed to /etc/mosquitto/mosquitto.conf instead of
- /etc/mosquitto.conf. The /etc/mosquitto/ directory will be used for password
- and access control files in the future.
- - Give the compile time option of using 32-bit integers for the database IDs
- instead of 64-bit integers. This is useful where htobe64()/be64toh() are not
- available or for embedded systems for example.
- - The DUP bit is now set correctly when resending PUBREL messages.
- - A port to Windows native has been partially completed. This currently drops a
- number of features, including the ability to change configuration parameters
- and persistent storage.
- 0.8.3 - 20101004
- ================
- - Fix QoS 2 protocol compliance - stop sending duplicate messages and handle
- timeouts correctly. Fixes bug #598290. (backported from future 0.9 code)
- 0.8.2 - 20100815
- ================
- - Fix default loop() timeout value in mosquitto.py. Previous value was 0,
- causing high cpu load.
- - Fix message handling problem in client library when more than one message was
- in the client queue.
- - Fix the logic used to determine whether a QoS>0 message needs to be retried.
- - Fix the Python sub.py example so that it quits on error.
- 0.8.1 - 20100812
- ================
- - Improve python interface
- - Fix incorrect return value from message delete function
- - Use logging function to print error messages in clients.
- - Fix python installation script DESTDIR.
- - Fix library destination path for 64-bit machines.
- 0.8 - 20100807
- ==============
- - Topics starting with a / are treated as distinct to those not starting with
- a /. For example, /topic/path is different to topic/path. This matches the
- behaviour of rsmb.
- - Correctly calculate the will QoS on a new client connection (bug #597451).
- - Add "addresses" configuration file variable as an alias of "address", for
- better rsmb compatibility.
- - Bridge clean_session setting is now false, to give more sensible behaviour
- and be more compatible with rsmb.
- - Add cleansession variable for configuring bridges.
- - Add keepalive_interval variable for bridges.
- - Remove default topic subscription for mosquitto_sub because the old
- behaviour was too confusing.
- - Added a C client library, which the pub and sub clients now use.
- - Added a C++ client library (bound to the C library).
- - Added a Python client library (bound to the C library).
- - Added CMake build scripts to allow the library and clients (not the broker)
- to be compiled natively on Windows.
- 0.7 - 20100615
- ==============
- - mosquitto_pub can now send null (zero length) messages.
- - Don't store QoS=0 messages for disconnected clients with subscriptions of
- QoS>0.
- - accept() all available sockets when new clients are connecting, rather than
- just one.
- - Add option to print debug messages in pub and sub clients.
- - hg revision is now exported via $SYS/broker/changeset
- - Send Will when client exceeds keepalive timer and is disconnected.
- - Check to see if a client has a will before sending it.
- - Correctly deal with clients connecting with the same id multiple times.
- - Add compile time option to disable heap memory tracking.
- - Use poll() instead of select() to allow >1024 clients.
- - Implement max_connections.
- - Run VACUUM on in-memory database on receiving SIGUSR2.
- - Fix bridge keepalive timeouts and reconnects.
- - Don't attempt to drop root privileges when running on Windows as this isn't
- well supported (bug #586231).
- 0.6.1 - 20100506
- ================
- - Fix DB auto upgrade for messages table.
- 0.6 - 20100505
- ==============
- - Basic support for connecting multiple MQTT brokers together (bridging).
- - mosquitto_sub can now subscribe to multiple topics (limited to a global QoS).
- - mosquitto_pub can now send a file as a message.
- - mosquitto_pub can now read all of stdin and send it as a message.
- - mosquitto_pub can now read stdin and send each line as a message.
- - mosquitto will now correctly run VACUUM on the persistent database on exit.
- - Implement a more efficient database design, so that only one copy of each
- message is held in the database, rather than one per subscribed client.
- - Add the store_cleanup_interval config option for dealing with the internal
- message store.
- - Add support for disabling "clean session" for the sub client.
- - Add support for automatic upgrading of the mosquitto DB from v1 to v2.
- - Add persistence_file config option to allow changing the filename of the
- persistence database. This allows multiple mosquitto DBs to be stored in the
- same location whilst keeping persistence_location compatible with rsmb.
- - Don't store QoS=0 messages for disconnected clients. Fixes bug #572608. This
- wasn't correctly fixed in version 0.5.
- - Don't disconnect clients if they send a PUBLISH with zero length payload
- (bug #573610).
- - If a retained message is received with a zero length payload, the retained
- message for that topic is deleted.
- - Send through zero length messages.
- - Produce a warning on unsupported rsmb options instead of quitting.
- - Describe clean session flag in the mqtt man page.
- - Implement the max_inflight_messages and max_queued_messages features in the
- broker.
- 0.5.4 - 20100311
- ================
- - Fix memory allocation in mqtt3_fix_sub_topic() (bug #531861).
- - Remove accidental limit of 100 client connections.
- - Fix mosquitto_pub handling of messages with QoS>0 (bug #537061).
- 0.5.3 - 20100303
- ================
- - Will messages are now only sent when a client disconnects unexpectedly.
- - Fix all incoming topics/subscriptions that start with a / or contain
- multiple / in a row (//).
- - Do actually disconnect client when it sends an empty subscription/topic string.
- - Add missing $SYS/broker/clients/total to man page.
- 0.5.2 - 20100302
- ================
- - Always update last backup time, so that the backup doesn't run every time
- through the main loop once autosave_interval has been reached.
- - Report $SYS/broker/uptime in the same format as rsmb.
- - Make mandatory options obvious in usage output and man page of mosquitto_pub.
- Fixes bug #529990.
- - Treat subscriptions with a trailing slash correctly. This should fix bugs
- #530369 and #530099.
- 0.5.1 - 20100227
- ================
- - Must daemonise before pid file is written.
- 0.5 - 20100227
- ==============
- - No longer store QoS=0 messages for disconnected clients that do not have
- clean start set.
- - Rename msg_timeout option to retry_interval for better rsmb compatibility.
- - Change persistence behaviour. The database is now stored in memory even if
- persistence is enabled. It is written to disk when mosquitto exits and also at
- periodic intervals as defined by the new autosave_interval option.
- - The writing of the persistence database may be forced by sending mosquitto
- the SIGUSR1 signal.
- - Clients that do not send CONNECT as their first command are now
- disconnected.
- - Boolean configuration values may now be specified with true/false as well as
- 1/0.
- - Log message on CONNECT with invalid protocol or protocol version.
- - Default sqlite3-pcre path on Linux is now /usr/lib/sqlite3/pcre.so to match
- future sqlite3-pcre packages.
- - Add mosquitto_sub and mosquitto_pub, simple clients for subscribe/publish.
- - Add man pages for clients.
- - Add general man page on mqtt.
- - Root privileges are now dropped only after attempting to write a pid file
- (if configured). This means that the pid file can be written to /var/run/
- directly and should fix bug #523183.
- 0.4.2 - 20100203
- ================
- - Fix segfault on client connect with invalid protocol name/version.
- 0.4.1 - 20100112
- ===============
- - Fix regex used for finding retained messages to send on new subscription.
- 0.4 - 20100105
- ==============
- - Added support for wildcard subscriptions using + and #.
- - All network operations are now non-blocking and can cope with partial
- packets, meaning that networking should be a lot more reliable.
- - Total messsages/bytes sent/received are now available in $SYS.
- - Improved logging information - use client ip address and id instead of
- socket number.
- - Broker build timestamp is available in $SYS.
- - Keepalive==0 is now correctly treated as "never disconnect".
- - Fixed manpage installation.
- - Fixed incorrect $SYS hierarchy locations in documentation and code.
- - Debug type log messages are no longer sent to "topics".
- - Default logging destination no longer includes "topics" to prevent possible
- error logging to the db before it is initialised.
- - Periodic $SYS messages can now be disabled.
- - stdout and stderr are flushed when logging to them to give more timely
- updates.
- - dup is now set correctly when resending messages.
- - Database format bumped due to topic column naming fix.
- 0.3 - 20091217
- ==============
- - The port option in the configuration file and --port command line argument
- may now be given any number of times to make mosquitto listen on multiple
- sockets.
- - Add new config file and command line option "interface" to specify an
- interface to listen on, rather than all interfaces.
- - Added host access control through tcp-wrappers support.
- - Set SO_REUSEADDR on the listening socket so restart is much quicker.
- - Added support for tracking current heap memory usage - this is published on
- the topic "$SYS/broker/heap/current size"
- - Added code for logging to stderr, stdout, syslog and topics.
- - Added logging to numerous places - still plenty of scope for more.
- 0.2 - 20091204
- ==============
- - Replaced the command line option --foreground with --daemon, swapping the
- default behaviour.
- - Added the command line option --config-file, to specify a config file to
- load. If this is not given, no config file is load and the default options
- are used.
- - Added the command line option --port for specifying the port to listen on.
- This overrides values in the config file.
- - Don't use persistence by default.
- - Default behaviour is now more sane when run by a normal user with no command
- line options (combination of above changes).
- - Added option user to config file, defaulting to a value of mosquitto. If
- this value isn't blank and mosquitto is started by root, then it will drop
- privileges by changing to the user and its primary group. This replaces the
- current behaviour of refusing to start if run by root.
- - Fix non-persistent mode, which would never work in the previous release.
- - Added information on default values of msg_timeout and sys_interval to the
- mosquitto.conf man page. (closes bug #492045).
|