If the server is responding to a mcast request with a packet that is a
part of larger body (i.e. responding with Block2 option) the requests
for the missing packets have to be using unicast, which continues
to be supported.
The application can determine the unicast remote address before the next
coap_send() by using coap_session_get_addr_remote().
Add in a new function coap_session_get_addr_mcast() to get the mcast IP
if the client session was set up to talk to a mcast address.
Add in optional callbacks for when dynamic resources are setup and deleted.
Add in optional callbacks for when observe subscriptions start and stop.
Add in optional callbacks for when the observe counter is updated (can be
ratelimited) for a resource as well as track when a resource is deleted.
Add is support for new functions
Main functions with libcoap tracking support are
coap_persist_startup()
coap_persist_stop()
coap-server has -t option to track observe information.
UDP sessions supported, as well as OSCORE over UDP.
Documentation updated
libcoap tracking support (as opposed to application tracking) is configurable.
This allows for code reduction if not all logging levels are required.
Done by defining ./configure --enable-max-logging-level=X, where X can have
the value of 0 through 8 inclusive.
COAP_LOG_EMERG is always logged.
Can save up to 40k bytes.
Follows RFC6455, as specified in RFC8323.
Make support configurable.
Add in example support.
Update other code to be aware of WebSockets as a CoAP protocol.
syslog.h is no longer required for libcoap as all LOG_ usage has been replaced
with COAP_LOG_.
Added #include <stdio.h> to example code for code-client and coap-server as
a hint should application code be using LOG_.
Current stack:-
Application
CoAP
CoAP-Session
DTLS
Netif
Sockets
Network Stack
Depending on the CoAP protocol, indexing functions through coap_layers_coap[]
(in src/coap_io.c) will invoke the correct layer function when used at the
CoAP and DTLS layers.
It is then easy to add in another protocol layer by updating coap_layers_coap[].
Add in new file src/coap_dtls.c.
Add in coap_(d)tls_establish() functions which are called when netif
accept / connect take place.
Add in coap_session_establish() function which is called when (D)TLS
has established as well as at the session layer if there is no (D)TLS
in preparation for properly supporting protocol layers.
Add in coap_(d)tls_close() functions which are called prior to
coap_netif_close().
Useful when coap-client is used to send block transfers.
Without this, users have to run coap-client with `-v 7`
before they can see why coap-client ends earlier than expected.
Logging at warning level to match the default log level
set by coap-client source code.