Commit Graph

815 Commits (863c0ee3ab15f3bd685c881ae5b1344f0b3bd9e0)

Author SHA1 Message Date
Abilio Marques a4a5236568 fix bug where bridge doesn't honor restart_timeout setting
Signed-off-by: Abilio Marques <abiliojr@gmail.com>
7 years ago
Bartosz Taczała e86b27a2da Adding support for QNX7.0.0
Change-Id: Id01e2880aa5cadc0e93a46b95fe675e1938051fa
Signed-off-by: Bartosz Taczała <bartosz.taczala@mobica.com>
7 years ago
Roger A. Light eff8fab1b4 Only process network errors for clients that have nothing to read.
Closes #7.
7 years ago
Roger A. Light 93f9e965a8 Only remove context from hash if there is a client id.
This should never happen, but just in case.
7 years ago
Roger A. Light f77c1ca91b private struct mqtt5__property -> public mosquitto_property. 7 years ago
Roger A. Light 80f526a5e5 Message Expiry Interval support. 7 years ago
Roger A. Light 4ca83c1768 Fix leak when handling publish props. 7 years ago
Roger A. Light de3a9af1f7 Client+library support for unsubscribe properties. 7 years ago
Roger A. Light 383608613a Client+lib will property support. 7 years ago
Roger A. Light 12cba75c73 Client support for adding properties. 7 years ago
Roger A. Light 636e813d1c Load of constant renames ahead of making mqtt_protocol.h public. 7 years ago
Roger A. Light 9eebcf6704 Rename property__free_all->mosquitto_property_free_all
Make public function.
7 years ago
Roger A. Light 12fa336140 Handle some incoming PUBLISH properties.
PAYLOAD_FORMAT_INDICATOR, CORRELATION_DATA, USER_PROPERTY, CONTENT_TYPE
are now all passed on to subscribing clients from an incoming PUBLISH
only (not from Wills). The other PUBLISH properties are silently
dropped.
7 years ago
Roger A. Light b6c667689d Write properties for all commands apart from AUTH. 7 years ago
Roger A. Light 8077376a79 Add read support for AUTH packets. 7 years ago
Roger A. Light ca40255720 mid == 0 is a protocol error. 7 years ago
Roger A. Light eefa7f7604 All existing commands read properties. 7 years ago
Roger A. Light 723d9c2782 Check whether properties are on the correct commands. 7 years ago
Roger A. Light 267178bd99 User properties are copied from PUBLISH to PUBLISH. 7 years ago
Roger A. Light 0baf358cf8 Add properties member to will struct. 7 years ago
Roger A. Light 35dea07dcd Merge branch 'master' 7 years ago
JaeHoon Lee 2cb0354163 Implement DLT logging feature for automotive platform
Signed-off-by: JaeHoon Lee <bbabbi01@gmail.com>
7 years ago
Roger A. Light 5edc87bcdf Build options for building with coverage support. 7 years ago
Roger A. Light a7fff2ad2e Topic test improvements. 7 years ago
Roger A. Light 8210c1fa7a All outgoing packets now write property length for MQTT 5.
At the moment this only writes a 0 property length, i.e. no properties.
It does mean that output packets are more correct than before.
7 years ago
Roger A. Light 246c9e6565 Read will properties, and free properties immediately for the moment. 7 years ago
Roger A. Light abb3fee1f8 Coverage reporting for whole broker. 7 years ago
Roger A. Light f4b2838574 Property reading, and tests for byte properties. 7 years ago
Roger A. Light 366744bad7 Fix subscribe_multiple datatypes. 7 years ago
Roger A. Light 400db91166 Handle UTF-8 validation in packet__read_string. 7 years ago
Roger A. Light 99a1c0e43a Move simple datatype reading functions to own file.
This facilitates easier testing.
7 years ago
Roger A. Light 1488992ea8 Naive reading of MQTT 5 properties. No processing done. 7 years ago
Roger Light 6c9e8d51c2 Merge branch 'develop' into mqtt5 7 years ago
Roger A. Light 1867f30785 Merge branch 'master'
Conflicts:
	ChangeLog.txt
7 years ago
Vinod Kumar e492a61cd8 return MOSQ_ERR_INVAL if config has invalid boolean value
Signed-off-by: Vinod Kumar <kumar003vinod@gmail.com>
7 years ago
Roger A. Light cf9a72d8db Add mosquitto_subscribe_multiple. 7 years ago
Roger A. Light 588d39efdc Fix Windows version not starting if include_dir did not contain any files.
Closes #566.

Thanks to marleau.
7 years ago
Roger A. Light f9c9f3d396 Fix incorrect hash usage with duplicate clients.
Fix duplicate clients being added to by_id hash before the old client
was removed.

Closes #645.
7 years ago
Roger A. Light 7b1892caef Fix retained msgs not sent by bridges.
This occurred when a bridge connected for the first time and so made a
local subscription for outgoing topics.

Closes #701.
7 years ago
Roger A. Light f7474d3482 Revert "Remove some test that was always true"
This reverts commit 6fc7cadb63.
7 years ago
Kurt Van Dijck e3b4bd8937 fix signal handler on win32
The signal handler thread on win32 did listen to 4 HANDLEs,
of which only 3 were initialized.
The result was 1 thread eating 100% cpu.
This commit reduces the HANDLE array storage.

Signed-off-by: Kurt Van Dijck <dev.kurt@vandijck-laurijssen.be>
7 years ago
Roger A. Light 7ca3a24686 Remove requirement to use `user root` in snap package config files. 7 years ago
Roger A. Light 0e16a248f2 Elevate log level to warning for situation when socket limit is hit. 7 years ago
Roger A. Light 55ca61f14e Fix segfault on HUP when bridges and security options are configured.
Closes #849. Closes #965. Thanks to Wolfgand Hottgenroth and Dustin Sallings.
7 years ago
Roger A. Light 2b4ba10b3d Fix "round_robin false" behaviour.
Closes #481.
7 years ago
Roger A. Light 3ae387e232 Close spare sock at exit. 7 years ago
Roger A. Light 1e47ee4cad Fix for bridge connections when using WITH_ADNS=yes. 7 years ago
Roger A. Light 4ee6941188 Primitive v5 CONNACK support - no properties. 7 years ago
Roger A. Light 561513fdd4 Very simple v5 CONNECT support - no properties. 7 years ago
Roger A. Light 33a523eea9 Add identifiers for v5.
Clients know about v5, just need library support...
7 years ago
Roger A. Light 99c6ec7f6e Protocol name will never be changed from MQTT. 7 years ago
Roger A. Light 0bacff11df Rename mqtt3_protocol.h -> mqtt_protocol.h. 7 years ago
Roger A. Light d1b36507db Better implementation of #948. 7 years ago
Roger A. Light ee8e20de75 Fix excessive CPU usage when the number of sockets exceeds the system limit.
Closes #948. Thanks to wiebeytec.
7 years ago
Roger A. Light dceb02f444 Make it easier to build without bundled uthash.h.
Use "make WITH_BUNDLED_DEPS=no".
7 years ago
Roger A. Light e6a0199bb2 Fix incorrect call to setsockopt() for TCP_NODELAY.
Closes #941. Thanks to rfalke.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 2221deb7a7 Fix build when using WITH_ADNS=yes. 7 years ago
Roger A. Light 11395f9852 Fix accessor functions for username and client id when used in plugin auth check. 7 years ago
Roger A. Light 9d157f86ff Fix for building on Windows with static lws. 7 years ago
Roger A. Light 14bd96e1e1 Add support for compiling with static libwebsockets library. 7 years ago
Roger A. Light 88765a5e80 Consistent use of config.h across the project. 7 years ago
Roger A. Light 0a4810286b Check for 918 7 years ago
Roger A. Light a199cac69e Don't confuse expiring and duplicate clients. 7 years ago
Roger A. Light ab5af8f0b9 Fix building for libwebsockets < 1.6. 7 years ago
Pierre Fersing 6fc7cadb63 Remove some test that was always true
Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
7 years ago
Roger A. Light af2678ea49 Fix possible endian issue when reading the `memory_limit` option.
Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 945b3283a6 No need to calculate topic len twice. 7 years ago
Tatsuzo Osawa cb56a75bbb Fix subs memory issue #505
Signed-off-by: Tatsuzo Osawa <tatsuzo.osawa@gmail.com>
7 years ago
Roger A. Light 10b19a42ed Fixes for building on NetBSD.
Closes #258.

Thanks to Daniel Ölschlegel.
7 years ago
Roger A. Light ecb4006f38 Don't reject ACL patterns without %u or %c, just warn.
Using `pattern blah/#` is a legitimate method of getting a global ACL.
We shouldn't be changing behaviour in a fixes release.
7 years ago
Natanael Copa 9e92cb0129 Flush stdout when asking for password.
Make sure the prompt is actaually printed by flushing stdout when asking
for passwords.

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
7 years ago
Tobias Assarsson cc96485330 Add missing parameters to internal mosquitto_acl_check
Signed-off-by: Tobias Assarsson <tobias.assarsson@gmail.com>
7 years ago
Roger A. Light 7c94a73c17 Fix UNSUBACK messages not being logged.
Closes #903.

Thanks to Christoph Krey.
7 years ago
Roger A. Light 0d25cb58b4 Fix `use_identity_as_username true` not working.
Closes #833.

Thanks to David Crook and Brice Waegeneire.

Bug: https://github.com/eclipse/mosquitto/issues/833

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
bricewge 2a3305a4a2 fix #833
Signed-off-by: Brice Waegeneire <brice.wge@gmail.com>
7 years ago
Roger A. Light e185d18917 Better fix for #851.
Ensure all sockets that are closed are set to INVALID_SOCKET.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Wolfgang Hottgenroth 88456c655f Move check whether context is a bridge in front of check whether a listener
exists for context. New test now passes.

Signed-off-by: Wolfgang Hottgenroth <wolfgang.hottgenroth@icloud.com>
7 years ago
Roger A. Light 39170d1181 ACL patterns that do not contain either %c or %u are now rejected.
Closes #209.

Bug: https://github.com/eclipse/mosquitto/issues/209

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Pierre Fersing abaceb9c9e Fix missing rename of mosquitto__socket_get_address
Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
7 years ago
Roger A. Light 2f6f5dbf9d Fix problem on Pi caused by unsigned char being default.
Found via #849.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light fc9a0db966 All clients now time out if they exceed their keepalive*1.5
This was inconsistent before.

Partially addresses #865.
7 years ago
Roger A. Light b07e0c08bf Fix IPv6 addresses not being able to be used as bridge addresses.
Closes #886.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light bcf76b9cb6 Remove use of AI_ADDRCONFIG.
Closes #869, #901.

Thanks to Alex Richman.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 286400abcf Use AF_UNSPEC etc. instead of PF_UNSPEC to comply with POSIX.
Closes #863.

Thanks to denigmus and Patrick TJ McPhee.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light a954081673 Print more OpenSSL errors when loading certificates/keys fail.
Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Dave Miller 81a82f6fe2 Fix for issue #874
With special acknowledgement to sxsing (his github login) for his
help in development and testing of this fix.

NOTE: Pull-request is against master as the fixes branch has not
been updated with the v1.5 file src/handle_connect.c

Signed-off-by: Dave Miller <dmiller@tibco.com>
7 years ago
Roger A. Light 8bbb5887d0 [Broker] Fix auth plugin cleanup function not being called.
Closes #900.

Thanks to Julian Zhao.

Signed-off-by: Roger A. Light <roger@atchoo.org>
7 years ago
Roger A. Light 5e60136449 Merge branch 'develop' 8 years ago
Roger A. Light e9d03c8ffd Merge branch 'fixes' 8 years ago
Roger A. Light e90a32835b Merge branch 'fixes' into develop 8 years ago
Roger A. Light 1a913bddd9 Fix realpath() usage for nonexistant files. 8 years ago
Roger A. Light 377dc82d3f Fix parsing of configuration options that end with a space.
Closes #804.

Thanks to Nicola Lunghi.
8 years ago
Roger A. Light 6c7ecd7e97 Fix compiling without TLS. 8 years ago
Roger A. Light 51ec5601c2 Fix memory leak that could be caused by a malicious CONNECT packet.
Closes #533493 (on Eclipse bugtracker)

Thanks to Daniel Romero.
8 years ago
Roger A. Light cec1af1386 Don't print uninteresting epoll warnings. 8 years ago
Roger A. Light 5b4a4cfc6a Fix compilation warnings around _BSD_SOURCE. 8 years ago
Roger A. Light 2d1667b120 Remove c99-isms due to problems with dependencies. 8 years ago
Roger A. Light 23230b7b18 Add per-listener acl handling. 8 years ago
Roger A. Light 62d99ecbc2 Build fixes. 8 years ago
Roger A. Light caa9e46fda Fix bad merge. 8 years ago
Roger A. Light 57ee8b92bc Mac build fixes. 8 years ago
Roger A. Light 7bf16919f3 Validate config strings as UTF-8. 8 years ago
Eric Schneeberger e4e6a67959 Increase maximum connections (Windows) from 512 to 2048 (Maximum)
Signed-off-by: Eric Schneeberger <eric.schneeberger@gtt.com>
8 years ago
Roger A. Light 7615ae24ce Handle CONNECT protocol errors.
Don't allow username when no username flag set.
Don't allow password when no password flag set.

Closes #730. Closes #731.

Thanks to Umberto Boscolo.
8 years ago
Roger A. Light 729a09310a Add UTF-8 tests, plus some validation fixes.
Closes #693.
8 years ago
Roger A. Light 6a2172f472 Windows fixes. 8 years ago
Roger A. Light f4c9435f54 Use server methods in the broker. 8 years ago
hailinzeng a6aa3bc5f9 remove dead code
Signed-off-by: hailinzeng <hailinzeng@gmail.com>
8 years ago
Roger A. Light 5ff8127f44 Fix will sending for duplicate clients.
When a client with an in-use client-id connects, if the old client has a
will, send the will message. Closes #26.

Thanks to Pierre F.
8 years ago
Roger A. Light 943b311344 Don't use deprecated openssl functions. 8 years ago
Roger A. Light a5781c0b46 Missing #endif. 8 years ago
Roger A. Light 24d68b5af8 Remove support for openssl 1.0.0 and 1.0.1.
These are no longer supported by openssl.
8 years ago
Roger A. Light f4d238be18 Bump copyright years. 8 years ago
Roger A. Light d982c265cb Fix signed/unsigned comparison.
Closes #747, closes #753.
8 years ago
Tifaifai Maupiti f2376551bc Fix: use websockets without OpenSSL / TLS.
Signed-off-by: Tifaifai Maupiti <tifaifai.maupiti@gmail.com>
8 years ago
Roger A. Light 40e6a75709 Use c99 as compiling standard.
Closes: #765.
8 years ago
Roger A. Light c3314fd593 Add missing tests (Closes #748). 8 years ago
Roger A. Light 2a05602d84 Obtain canonical name for password file. 8 years ago
Roger A. Light d09d7c47c5 Further Coverity Scan fixes. 8 years ago
Roger A. Light dbdd113c86 Merge branch 'develop' of github.com:eclipse/mosquitto into develop 8 years ago
Roger A. Light e273c2593e Fix uninitialised variable. 8 years ago
Roger A. Light 8a22b918c0 Fix Coverity Scan defects. 8 years ago
Roger A. Light a979ed6535 Per listener plugins. 8 years ago
Roger A. Light a3b859a995 Remove name confusion 8 years ago
Roger A. Light 600217649b Merge branch 'develop' of github.com:eclipse/mosquitto into develop 8 years ago
Roger A. Light 13753f7661 Fix building mosquitto_passwd on Windows. 8 years ago
Roger A. Light 26bc3206cd Per listener allow_zero_length_clientid. 8 years ago
Roger A. Light 7271893966 Per listener auto_id_prefix. 8 years ago
Roger A. Light 4e266ff28f Copy default parameters. 8 years ago
Roger A. Light fd7b08c0eb Per listener psk_file. 8 years ago
Roger A. Light b2e1592376 Per listener allow_anonymous. 8 years ago
Roger A. Light 7046691b7d Reload password files properly. 8 years ago
Roger A. Light aa87f3c170 Per listener allow_anonymous. 8 years ago
Roger A. Light a571104809 Check correct password list. 8 years ago
Roger A. Light 0fef6bdee8 Maximum connections on Windows increased to 2048.
Thanks to ericGTT.
8 years ago
Peter Korsgaard 01ead7e73e websockets.c: unbreak build without TLS
Commit 7943072b1f (Fix use_identity_as_username not working on websockets
clients) added code which unconditionally accesses mosq-ssl, breaking the
build when TLS support is disabled.

Fix it by guarding this logic inside #ifdef WITH_TLS.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
8 years ago
Roger A. Light 57e852db05 Per listener password file. 8 years ago
Roger A. Light bc13eab9d6 Add per_listener_settings, which isn't used yet. 8 years ago
Roger A. Light 4d3f5b2b39 Ensure pollfd_index is initialised. 8 years ago
Thomas Pedley ba8734b749 Add LWT message logging.
Signed-off-by: Thomas Pedley <me@shallax.com>
8 years ago
Roger A. Light 9ea0d38002 [706] Serve http /dir/ as /dir/index.html.
Thanks to Jean-Claude Wippler.
8 years ago
Roger A. Light 4f838e5161 Windows fixes. 8 years ago
Roger A. Light 5b2bf3d1c1 Bump version number, update copyrights. 8 years ago
Roger A. Light e6cbff0e94 Fix unauthorised clients being able to cause OOM on connect. 8 years ago
Roger A. Light b76982db13 Fix reloading of config when fds are exhausted. 8 years ago
Roger A. Light ec63d7bfc7 Add set_tcp_nodelay option to disable Nagle's algorithm.
Bug: https://github.com/eclipse/mosquitto/issues/433
8 years ago
Roger A. Light 81cb7ab547 Merge branch 'fixes' into develop 8 years ago
Roger A. Light c001e778c1 [693] Fix handling of null bytes in received strings.
Thanks to Umberto Boscolo.

Bug: https://github.com/eclipse/mosquitto/issues/693
8 years ago
Roger A. Light 3066f89a24 packet__read_string() returns the string length. 8 years ago
Roger A. Light ff55499725 Fix persistence reloading. 8 years ago
Roger A. Light 027c5d7f6e Don't remove invalid socket from epoll fd. 8 years ago
Roger A. Light 2283585e39 Remove build timestamp information for reproducible builds. 8 years ago
Pierre Fersing 59380cef2d Fix CONNACK not send over WebSocket for bad auth
When client over WebSockets fail to authenticate, the CONNACK packet was
not sent because the connection was closed too early. Closes #18.

Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
8 years ago
Roger A. Light b4c72e8fc0 Fix HUP disconnecting clients incorrectly.
Bug: https://github.com/eclipse/mosquitto/issues/657
8 years ago
Roger A. Light 9c6a5f3cf0 [656] Fix building on Windows.
Thanks to Arun Kirthi Cherian.

Bug: https://github.com/eclipse/mosquitto/issues/656
8 years ago
Tatsuzo Osawa 024fd400d4 Fix Unsubscribe with No Topic
Signed-off-by: Tatsuzo Osawa <tatsuzo.osawa@gmail.com>
8 years ago
Pierre Fersing 7775924bae [534]Fix upgrade_outgoing_qos for retained message 8 years ago
Pierre Fersing 7df5c40004 Fix $SYS counters when message is sent over WS
Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
8 years ago
Roger A. Light 7f82cdc753 [652] Don't limit config file lines to 1024 chars.
Bug: https://github.com/eclipse/mosquitto/issues/652
8 years ago
Michael Heimpold 48dec391f7 Quote ${DESTDIR} usage in various Makefiles
This prevents failures during make install when whitespace
is part of DESTDIR pathname.

Signed-off-by: Michael Heimpold <michael.heimpold@i2se.com>
8 years ago
Roger A. Light d3239920d7 Validate UTF-8 client ids, usernames and topics. 8 years ago
Roger A. Light 0745bcdb91 Improve some struct ordering. 8 years ago
Roger A. Light 8795f063d4 Add ability to deny access to SUBSCRIBE messages.
This is as well as the current read/write accesses. Currently for auth
plugins only.
8 years ago
Roger A. Light 7096d57c3a Documentation fix. 8 years ago
Roger A. Light 36e86355d7 Improve documentation and formatting. 8 years ago
toast-uz df9ad5f0bd Add Epoll. (#495)
Signed-off-by: Tatsuzo Osawa <tatsuzo.osawa@gmail.com>
8 years ago
Roger A. Light 7943072b1f Fix use_identity_as_username not working on websockets clients.
Thanks to achest.
8 years ago
Roger A. Light 53c71b2a77 Fix memory leak related to use_identity_as_username. 8 years ago
Roger A. Light c26b852c53 Don't double free when using remote_clientid/username/password. 8 years ago
Roger A. Light ac6997d7bc Fix merge error. 8 years ago
Roger A. Light 5a267368d7 Merge branch 'master' into develop 8 years ago
Roger A. Light ba0122f9a9 Don't disable IPv6 support for websockets. 8 years ago
Roger A. Light d8cc5bc4fe Merge branch 'fixes' of github.com:eclipse/mosquitto into fixes 8 years ago
Roger A. Light 0ba0bc434e Use constant time memcmp for password checks. 8 years ago
Fredrik Fornwall 366194cde4 Replace getdtablesize() with sysconf(_SC_OPEN_MAX)
From http://man7.org/linux/man-pages/man3/getdtablesize.3.html:

"It is not specified in POSIX.1; portable applications should employ
sysconf(_SC_OPEN_MAX) instead of this call."

Specifically this fixes a build failure on Android which does not
have getdtablesize().

Signed-off-by: Fredrik Fornwall <fredrik@fornwall.net>
8 years ago
Roger A. Light e74203de2c Merge branch 'master' into develop 8 years ago
Roger A. Light 2a50b2e9bd Fix regression from 1.4.13 where persistence data was not being saved. 8 years ago
Dr. Lars Voelker 74adb43cc1 Adding OCSP Stapling support to mosquitto
Adding OCSP Stapling support to mosquitto, so that the TLS client side
requests the certificate status and checks it.
This code uses the OpenSSL-based OCSP implementation and is somewhat
based on the libcurl code for OCSP stapling.

Signed-off-by: Dr. Lars Voelker <lars.voelker@bmw.de>
8 years ago
Roger A. Light 8de5ed4464 Remove "error in poll" messages. 8 years ago
Roger A. Light cd17ca45cd [462] Relax CVE-2017-7650 checks.
Checks for '/' are no longer made, this character is a much lower risk
and is widely used in usernames.

Bug: https://github.com/eclipse/mosquitto/issues/462
8 years ago
Roger A. Light c3823c0a81 [462] Add auth_plugin_deny_special_chars option.
Auth plugins can be configured to disable the check for +# in
usernames/client ids with the auth_plugin_deny_special_chars option.

Thanks to wiebeytec.

Bug: https://github.com/eclipse/mosquitto/issues/462
8 years ago
Roger A. Light 5246a76f87 [477] Send will messages for connected clients when broker stops.
Thanks to mikeS7.

Bug: https://github.com/eclipse/mosquitto/issues/477
8 years ago
Roger A. Light 96db6d6644 Fix CONNECT check for reserved=0, as per MQTT v3.1.1 check MQTT-3.1.2-3. 8 years ago
Roger A. Light 6e7d02ba16 Fix for CVE-2017-9868 for Windows. 8 years ago
Pierre Fersing 408972ddc1 Fix two issues with Websocket (#472)
* Websocket were always marked as "want_write" (even if they only
  want to read, or worse want nothing).
* Websocket FD was read twice in some case (when socket recv queue was
  larger that size read by libwebsocket)

Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
8 years ago
Roger A. Light 09cb1b61c8 [468] Set persistence file to only be readable by owner.
Not implemented on Windows.

Thanks to Moshe Zioni.

Bug: https://github.com/eclipse/mosquitto/issues/468
8 years ago
Roger A. Light ab45f86d74 Prevent out of bounds array access. 8 years ago
Roger A. Light c78678607d [427] Fix large retained messages over websockets.
Thanks to Brian Block.

Bug: https://github.com/eclipse/mosquitto/issues/427
8 years ago
Roger A. Light bb61cd2dee Fix merge error. 8 years ago
Roger A. Light 8f59d5ad28 Remove unused vars and reset pollfd_index on disconnect. 8 years ago
Roger A. Light c07ba2a3da Experimental fix for poor websockets performance. 8 years ago
Jan Lukavsky 621f18d696 #419 Broker sometimes kills connection to client
Signed-off-by: Jan Lukavsky <je.ik@seznam.cz>
8 years ago
Roger A. Light b61fefcf08 Merge branch 'master' into develop 8 years ago
Roger A. Light 9af3c6958f Fix for CVE-2017-7650. 8 years ago
Roger A. Light ca8a507607 [446] Don't segfault on duplicate bridge names.
Thanks to Tifaifai Maupiti.

Bug: https://github.com/eclipse/mosquitto/issues/446
9 years ago
Riccardo Magliocchetti 059ba5f00b Fix use of unitialized memory in gets_quiet
Spotted by cppcheck

Signed-off-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
9 years ago
YuLun Shih 97572610c0 Fix bridge->restart_t won't be reset
Signed-off-by: YuLun Shih <shih@yulun.me>
9 years ago
Roger A. Light a93a0c9bb1 [424]
Fix mosquitto.db from becoming corrupted due to client messages being
persisted with no stored message.

Thanks to codami.

Bug: https://github.com/eclipse/mosquitto/issues/424
9 years ago
Roger A. Light 91b308a11d Merge branch 'master' into develop 9 years ago
Jiří Pinkava 1ed39b9aac Add (missing) plugin.c into build
Signed-off-by: Jiří Pinkava <j-pi@seznam.cz>
9 years ago
Roger A. Light 1a0240b5d5 [379] Improve mosquitto_passwd error messages.
Thanks to Jaimyn Mayer. Closes #379.

Bug: https://github.com/eclipse/mosquitto/issues/379
9 years ago
Roger A. Light b55e7035ff [344] Fix non-async case. 9 years ago
Roger A. Light 433ee5c4d6 [344] Don't compile in async dns support by default for makefiles. 9 years ago
Roger A. Light 8406c08124 [344] Detect libanl in cmake. 9 years ago
Roger A. Light 6f45ab9624 [344] Only do async dns on glibc. 9 years ago
Roger A. Light e0e8cc9f3e [344] Fix leaks and incorrect connect call. 9 years ago
Roger A. Light e13af18ed9 Start of fix for [344]. 9 years ago
Fredrik Fornwall 54a467d782 Include <syslog.h> instead of <sys/syslog.h>
Using the standard <syslog.h> header instead of <sys/syslog.h> makes it
consistent with other source files and fixes compilation on Android.

Signed-off-by: Fredrik Fornwall <fredrik@fornwall.net>
9 years ago
Fredrik Fornwall 35cc1eb21e Check for rt and pthread libraries before linking
This fixes building on Android which does not have separate librt
or libpthread libraries.

Signed-off-by: Fredrik Fornwall <fredrik@fornwall.net>
9 years ago
Roger A. Light 2c92d3b837 More file closing fixes. 9 years ago
Roger A. Light e7c1507f88 Fix error message when websockets http_dir directory does not exist. 9 years ago
Roger A. Light b01e32bd8b [354] Close http files even on bad clients.
Thanks to jbwdevries.

Bug: https://github.com/eclipse/mosquitto/issues/354
9 years ago
Roger A. Light 7279e48191 [316] Don't error on zero length persistence files.
Closes #316.

Bug: https://github.com/eclipse/mosquitto/issues/316
9 years ago
Roger A. Light ed80a9a526 [295] Usage should say we support 3.1.1 as well as 3.1.
Closes #295.

Bug: https://github.com/eclipse/mosquitto/issues/295
9 years ago
tucic 9f743d5972 Maximum connections for websockets listener (#271)
Check current number of connections before accepting new websockets clients.

Signed-off-by: tucic <tucic.milan@gmail.com>
9 years ago
Roger A. Light 6b68371dbe [259] Fix crash when "lazy" type bridge attempts to reconnect.
Thanks to hakofugu41.

Bug: https://github.com/eclipse/mosquitto/issues/259
9 years ago
Karl Palsson 20197e2496 websockets: fix compatibility with older lws versions (#260)
In 1.3, 1.4 and 1.5, the function was "libwebsockets_get_protocol" not
"libwebsocket_get_protocol"  While the #define name doesn't matter on
newer libwebsockets, where it redirects to lws_get_protocol, the naming
is critical for older versions.

Fixes: 477cd3e399 (Fix missing context->listener for websocket client)

Signed-off-by: Karl Palsson <karlp@etactica.com>
9 years ago
Roger A. Light f72d9b3a34 [17] Sort include_dir files before loading them.
Bug: https://github.com/eclipse/mosquitto/issues/17
9 years ago
Roger A. Light ebad302119 [379] Improve mosquitto_passwd error messages.
Thanks to Jaimyn Mayer. Closes #379.

Bug: https://github.com/eclipse/mosquitto/issues/379
9 years ago
Roger A. Light 565c9c3432 [344] Fix non-async case. 9 years ago
Roger A. Light f0485d1398 [344] Don't compile in async dns support by default for makefiles. 9 years ago
Roger A. Light fb824e7f1e [344] Detect libanl in cmake. 9 years ago
Roger A. Light 3d40ffe18b [344] Only do async dns on glibc. 9 years ago
Roger A. Light f464970fcf [344] Fix leaks and incorrect connect call. 9 years ago
Roger A. Light ef7a230365 Start of fix for [344]. 9 years ago
Fredrik Fornwall 23b0891048 Include <syslog.h> instead of <sys/syslog.h>
Using the standard <syslog.h> header instead of <sys/syslog.h> makes it
consistent with other source files and fixes compilation on Android.

Signed-off-by: Fredrik Fornwall <fredrik@fornwall.net>
9 years ago
Fredrik Fornwall 532273250c Check for rt and pthread libraries before linking
This fixes building on Android which does not have separate librt
or libpthread libraries.

Signed-off-by: Fredrik Fornwall <fredrik@fornwall.net>
9 years ago
Roger A. Light 9b05b12039 More file closing fixes. 9 years ago
Roger A. Light a2a2099fa1 Fix error message when websockets http_dir directory does not exist. 9 years ago
Roger A. Light 8171a975ae [354] Close http files even on bad clients.
Thanks to jbwdevries.

Bug: https://github.com/eclipse/mosquitto/issues/354
9 years ago
Roger A. Light 7f66bf1f65 [316] Don't error on zero length persistence files.
Closes #316.

Bug: https://github.com/eclipse/mosquitto/issues/316
9 years ago
Ben Hardill 740b710a0b Add support for local only bridge notifications (#328)
This update adds an option to only publishes bridge
notification messages to the local side of the bridge.

It adds a config file option called notifications_local_only
that accepts a boolean value, defaults to false to be
consistent with existing behaviour.

Fixes #233

Signed-off-by: Ben Hardill <hardillb@uk.ibm.com>
9 years ago
Roger A. Light 1abd089afb [295] Usage should say we support 3.1.1 as well as 3.1.
Closes #295.

Bug: https://github.com/eclipse/mosquitto/issues/295
9 years ago
tucic f272e2e047 Maximum connections for websockets listener (#271)
Check current number of connections before accepting new websockets clients.

Signed-off-by: tucic <tucic.milan@gmail.com>
9 years ago
Roger A. Light 762126064c [259] Fix crash when "lazy" type bridge attempts to reconnect.
Thanks to hakofugu41.

Bug: https://github.com/eclipse/mosquitto/issues/259
9 years ago
Roger A. Light 7ace6c9e7e Merge branch 'master' into fixes 9 years ago
Roger A. Light a71bee494f HASH_DELETE needs to modify subhier. 9 years ago
Roger A. Light 9ddec11f89 Fix Coverity issue 1362805. 9 years ago
Karl Palsson 374c62586e db_dump: use objects to simplify printing (#215)
Prepratory work for providing more filtering of the output dump.
This makes _no_ difference to the current behaviour, but makes it much
simpler for people who "need", for whatever reason, to hack some private
changes into the db_dump tool.

Signed-off-by: Karl Palsson <karlp@etactica.com>
9 years ago
Karl Palsson 2dec0ed895 broker: fix queue_qos0_messages behaviour
Prior, offline qos0 clients had an unlimited queue depth when
queue_qos0_messages was true.

Signed-off-by: Karl Palsson <karlp@etactica.com>
9 years ago
Karl Palsson c6aac741c2 broker: support byte based queueing
Limiting queued message depth purely based on message count is hard to
control for memory constrained devices.  The size of messages can vary
wildly, from a few bytes, to a few kilobytes.  Support a new
max_queued_bytes option, and drop packets when the first limit is
reached.  Option defaults to 0 (disabled) by default.
Support also a max_inflight_bytes variable, with similar behaviour.

Fixes (partof) https://github.com/eclipse/mosquitto/issues/100

This pulls up some helper routines for calculating whether to allow
inflight or queuing, resolving some inconsistences in connection
resumption.

Signed-off-by: Karl Palsson <karlp@etactica.com>
9 years ago
Karl Palsson 03d4b8c270 websockets: fix compatibility with older lws versions (#260)
In 1.3, 1.4 and 1.5, the function was "libwebsockets_get_protocol" not
"libwebsocket_get_protocol"  While the #define name doesn't matter on
newer libwebsockets, where it redirects to lws_get_protocol, the naming
is critical for older versions.

Fixes: 477cd3e399 (Fix missing context->listener for websocket client)

Signed-off-by: Karl Palsson <karlp@etactica.com>
9 years ago
Karl Palsson 8268e6da08 database: drop unnecessary local variable
No need to maintain count and context->msg_count separately.

Signed-off-by: Karl Palsson <karlp@etactica.com>
9 years ago
Karl Palsson 8a48fd13f1 broker: publish initial load averages
This publishes initial 0 figures for all load averages, as is done for
all the existing counter values in the SYS tree.  This makes the
behaviour of certain variables use for diagnostics (stored count for
instance) more predictable, instead of changing due to the creation of
load topics as soon as the load became non-zero.

Signed-off-by: Karl Palsson <karlp@etactica.com>
9 years ago
Karl Palsson 30c96f4a1c broker: track stored messages in bytes as well as count
Instead of simply tracking the count of stored messages, keep track of
the total byte size of stored messages.  While only informational at
this point, it provides the basis for byte based limits in the future.

Signed-off-by: Karl Palsson <karlp@etactica.com>
9 years ago
Karl Palsson 641158aed9 config: garbage line number if file not found
If the file is not found, showing 0 rather than a garbage number is
mildly better.

Signed-off-by: Karl Palsson <karlp@etactica.com>
9 years ago
Roger A. Light ee1fd1718b Merge branch 'fixes' 9 years ago
kcallin 7ba3f3d33b [189] Mosquitto database corrupted on power-loss. (#206)
Mosquitto database writes are not atomic and if power is lost during
a write the file will be permanently lost.  This commit makes writes as
atomic as possible.

Signed-off-by: Keegan Callin <kc@kcallin.net>
Bug: https://github.com/eclipse/mosquitto/issues/189
9 years ago
Roger A. Light ba2de88790 Display error if broker unable to open the log file.
Thanks to Matthew Treinish.

Bug: https://github.com/eclipse/mosquitto/issues/234
9 years ago
Pierre Fersing 477cd3e399 Fix missing context->listener for websocket client (#239)
The context associated with websocket client didn't had listener
filled, which caused use_username_as_clientid to be ignored.

Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
9 years ago