* Fixed an indexOutOfRange warning when creating coap requests
because the first addOption() call was calling
m_options.insert(1) on an empty list.
* Old code was appending multiple UDP datagrams to a single big Coap
message, however, Coap is specified to only send s single datagram
per message. The datagram length specifies the payload size.
* some boolean member variables weren't initialized which resulted in
occational wrong flags.
* Parsing had issues with determining the option length in some occations
and also would crash when receiving coap messages without any options
or payload. To get rid of the complex and erraneous index calculations,
the entire package parsing is now using a DataStream.
(This makes it work with Shelly devices)
Emit ZigbeeNetworkChanged when it actually changes in the stack,
not directly after we request the stack to change something as
it may fail, or the effective parameters may be not what we think.
canonicalFilePath() behavior seems to have changed at some point
and not existing files outside the public dir will return a 404
rather than a 403. Ideally the logic would be fixed to first
check for the file being outside the public directory, directly
returning a 403, then checking if the file exists, return a 404
if not, and lastly check for permissions on the file and return
a 403 again of denied. However, that would result in a bigger
change.
Also, the tests were failing all along if syslog exists but is
not readable (code is ok, just bad test) but none of our
autotesters seemed to have such a setup till now.
This allows to run it from the build directory without having to
specify LD_LIBRARY_PATH.
This is particularly useul when working with parts that require
special capabilities such as the NetworkDiscovery, given that
setcap on a binary disables LD_LIBRARY_LATH loading for security
reasons.
Building the dpkg package, the rpath will not be added.
QModbusReply seems to never finish in some rare cases:
For instance if a request is sent and before the reply arrives, the
modbus adapter is unplugged. This change should keep upper logic
working which relies on requests finishing eventually.
Also fixes the issue that we emit finished() multiple times if
QModbusClient retries multiple times and emits error() for each
attempt. We're only interested in a single result anyways.