Commit Graph

46 Commits

Author SHA1 Message Date
Roger A. Light
4d3f5b2b39 Ensure pollfd_index is initialised. 2018-03-13 17:52:03 +00:00
Roger A. Light
c26b852c53 Don't double free when using remote_clientid/username/password. 2017-07-19 22:04:56 +01:00
Roger A. Light
e74203de2c Merge branch 'master' into develop 2017-07-16 22:52:01 +01:00
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
2017-06-27 14:33:02 +01:00
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>
2016-09-09 17:27:39 +00:00
Roger A. Light
017db6706f Rename mosquitto_broker.h -> mosquitto_broker_internal.h 2016-07-08 10:10:04 +01:00
Roger A. Light
8378fe44cf Update copyrights. 2016-07-08 09:42:24 +01:00
Roger A. Light
1c3988a397 Merge branch 'master' into develop 2016-06-21 23:33:58 +01:00
Pierre Fersing
44f23252a0 Improve performance with lots of queued message
Split message queue in two queues: in-flight and queued to avoid the
need to iterate over all messages.

Signed-off-by: Pierre Fersing <pierre.fersing@bleemeo.com>
2016-04-18 16:24:13 +02:00
Roger A. Light
af995d211d Fix client library keepalive handling.
Fix the case where a message received just before the keepalive timer
expired would cause the client to miss the keepalive timer.

Thanks to Graham Benton.
2016-02-28 17:24:43 +00:00
Roger A. Light
b4fbe904d4 Remove more unnecessary "if(x) mosquitto__free(x)" checks. 2015-09-22 14:42:56 +01:00
Roger A. Light
436d3fac19 Merge branch 'fixes' into develop
Conflicts:
	CMakeLists.txt
	ChangeLog.txt
	config.mk
	installer/mosquitto.nsi
	installer/mosquitto64.nsi
	lib/mosquitto.c
	lib/mosquitto.h
	src/loop.c
2015-09-22 14:18:12 +01:00
Roger A. Light
ed97a3b2f1 Fix potential memory leaks. 2015-09-22 14:08:10 +01:00
Roger Light
e2324ff9bb Merge remote-tracking branch 'remotes/origin/master' into develop
Conflicts:
	CMakeLists.txt
	ChangeLog.txt
	THANKS.txt
	appveyor.yml
	config.mk
	installer/mosquitto-cygwin.nsi
	installer/mosquitto.nsi
	lib/messages_mosq.c
	lib/messages_mosq.h
	lib/mosquitto.c
	lib/mosquitto.h
	lib/net_mosq.c
	lib/net_mosq.h
	lib/send_client_mosq.c
	lib/send_mosq.c
	lib/socks_mosq.c
	lib/will_mosq.c
	src/bridge.c
	src/conf.c
	src/context.c
	src/database.c
	src/loop.c
	src/mosquitto.c
	src/mosquitto_broker.h
	src/net.c
	src/read_handle.c
	src/read_handle_server.c
	src/subs.c
2015-09-09 22:02:46 +01:00
Roger A. Light
3f86d316d8 Allow mosquitto__free(NULL).
Remove all unnecessary "if(X)" before a call to mosquitto__free.
2015-08-18 14:53:22 +01:00
Roger A. Light
4195fde70b Last raft of renames for the moment. 2015-05-18 09:29:22 +01:00
Roger A. Light
3c703408f2 More function renaming. 2015-05-16 18:43:06 +01:00
Roger A. Light
94ef6ec7bb Big set of function renames. 2015-05-16 15:24:24 +01:00
Roger A. Light
1744477cf8 Rename/reorganise packet functions. 2015-05-16 14:16:40 +01:00
Roger A. Light
b598aec385 Sys -> user includes. 2015-04-29 21:37:47 +01:00
Roger A. Light
970ba58da6 Code reorganise. 2015-04-29 21:23:59 +01:00
Roger A. Light
11756d24c8 Change internal funcs _foo_bar() to foo__bar(). 2015-04-19 22:10:59 +01:00
Roger A. Light
21b372ed9e ACLs are now checked before sending a will message. 2015-04-18 22:16:57 +01:00
Roger A. Light
dacee786be [463000] Use own type to simplify socket handling.
Means that SOCKET is used as the socket type everywhere on Windows.
2015-03-29 10:43:08 +01:00
Roger A. Light
2ce4d94282 Fix dereferencing of msg store items. 2014-11-19 20:59:10 +00:00
Roger A. Light
db3c016fdd Don't use bridge hash in each client.
Store a DB wide array of bridges. There shouldn't be many of them, so
iterating/searching isn't a problem. Saves 56 bytes in the client
struct.
2014-11-18 23:34:54 +00:00
Roger A. Light
ea8537c048 Remove unused messages from store immediately.
This removes the need for *store_clean*.
2014-11-17 23:46:02 +00:00
Roger A. Light
ab49b96db1 Windows related fixes. 2014-10-26 21:17:08 +00:00
Roger A. Light
c92e2f5581 Declare variables before code. 2014-10-24 21:57:33 +01:00
Roger A. Light
d2dbe16d68 Client structs store sub information to make _subs_clean_session more efficient. 2014-10-09 23:28:16 +01:00
Roger A. Light
db9d6b9f3d Fix potential memory leak from context->current_out_packet. 2014-09-23 00:32:34 +01:00
Roger A. Light
154b2fc264 Must remove memory reference here. 2014-09-22 23:37:19 +01:00
Roger A. Light
dcd469c177 Use own linked list for storing disused contexts for freeing.
Seemed to be a problem with getting it to work under a hash and there
isn't really any need for a hash.
2014-09-22 23:35:09 +01:00
Roger A. Light
1fb5a3edc6 Use hash counts to calculate numbers of clients. 2014-09-17 00:03:14 +01:00
Roger A. Light
f9951595c8 Fix missing headers. 2014-09-14 18:08:09 +01:00
Roger A. Light
b937a043e7 Rename remote bridge identifiers to remote_. 2014-08-16 21:31:12 +01:00
Roger A. Light
bb1a69b7d7 Disconnect clients consistently. 2014-07-08 23:07:19 +01:00
Roger A. Light
84619c296d Fix building for WITH_BRIDGE=no. 2014-06-30 23:37:03 +01:00
Roger A. Light
bdb3e74100 More memory fixes. 2014-06-29 23:16:10 +01:00
Roger A. Light
15efd2d072 Various memory fixes. 2014-06-28 01:38:58 +01:00
Roger A. Light
3577dbf332 Add sock hash earlier to avoid crashes. 2014-06-23 23:47:48 +01:00
Roger A. Light
764b7e0a91 Use hash functions to store client data. 2014-06-23 17:57:35 +01:00
Roger A. Light
7b62bfd7da Use time() for disconnect_t, CLOCK_MONOTONIC isn't useful over reboots. 2014-06-04 22:14:16 +01:00
Roger A. Light
4430228855 Be consistent about removing listener counts on socket close. 2014-06-03 16:21:46 +01:00
Roger A. Light
6a7f77d2a8 More intelligent client counting. 2014-06-02 22:08:40 +01:00
Roger Light
0364bd1be7 Initial contribution. 2014-05-07 23:27:00 +01:00