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>
In order to make the CPP static library include all
objects from the C static library, the list of objects
(MOSQ_OBJS) is isolated into objects.mk to be used for
building the C and CPP static libraries.
Signed-off-by: Lance Chen <cyen0312@gmail.com>
Symbol stripping is done explicitly with strip command,
since stripping with install command removes too many
symbols, making the result library unusable.
Signed-off-by: Lance Chen <cyen0312@gmail.com>
The option WITH_PIC is default to OFF.
By default, the static library is built from the
source code directly. If WITH_PIC is enabled, the
static library is built with the same set of
object libraries that the shared library uses.
To link Mosquitto static library into a shared
library, one must enable WITH_PIC to make the
piece of code locatable.
Signed-off-by: Lance Chen <cyen0312@gmail.com>
The shared library fails to link to `handle*` functions
implementd in lib/handle_* because these source file
definitions seem to be removed accidentally in commit
3499c09.
Signed-off-by: Lance Chen <cyen0312@gmail.com>
Allows message flow to complete where e.g. the broker didn't persist a
partially complete flow.
Thanks to jsaak jsaak and Hiram van Paassen.
Bug: https://github.com/eclipse/mosquitto/issues/57
libmosquitto shouldn't cancel threads it didn't create. This change
allows us to keep track of whether threads were created by the library
or by external code.
Thanks to Josip Ćavar.
Bug: https://github.com/eclipse/mosquitto/issues/166
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>
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.