Delay exit briefly checking if there are any response packets following
observe cancellation and process as appropriate.
If multiple observes are outstanding, cancelling them using CON will
cause issues as NSTART limit is hit. The server then does not know
about all of the cancellations.
Also, this can allow the server to properly shutdown observe
activity when blocks are used.
The RFC references appear without the hyperlink in the man pages,
but now appear as hyperlinked in the doxygen output.
SEE ALSO updated with missing references.
Simplify code for applications by providing coap_uri_into_options()
which then adds the (optional) port and splits out the path / query
as CoAP options, adding them to the optlist_chain for subsequent use.
Added a new coap_delete_uri() for completeness.
Update documentation to include the uri based functions.
Update examples to use the new coap_uri_into_options() function.
New demo client app.
Update some of the memory sizes.
New coap_lwip_dump_memory_pools() to dump LwIP memory pool usage.
Add in logic to handle new client sessions.
New coap_io_process() to handle LwIP which can invoke a callback handler
to wait / timeout for the next input handler.
New coap_lwip_set_input_wait_handler() to define this handler.
Update coap_io_prepare_io() to handle LwIP.
Support re-use of pbuf for PDU re-transmissions.
Make sure that NSTART is correctly obeyed.
Build the client with client only libcoap code.
Build the server with server only libcoap code.
Update LwIP source to latest stable release.
Reserve memory for a response PDU.
New coap_lwip(3) man page.
Update directory structures for config files.
Update files contained in "make dist" and check lwip rebuilds
in the github workflows.
If a response packet is received that is badly formatted, invoke the
nack handler (if defined) with COAP_NACK_BAD_RESPONSE so that the
requestor knows there is an issue, rather than timing out.
However, if the response packet is so badly formatted, or it is not
possible to find the requesting packet, then this nack event will not
trigger, but an event is triggered with COAP_EVENT_BAD_PACKET.
Fix the link for the last entry in the name list where asciidoc
converts the minus sign to an extended dash (em dash)
Remove the updating of navtree.js as it is done differently in later
versions of doxygen.
Add in the missing name entry for coap_attribute.
Add in a new index tag for all the functions defined within the man pages.
Highlight the occurrence of that function name in the appropriate displayed
page.
For the man pages that have been restructured to break out the individual
functions, jump to the function definition.
When coap_make_session() fails, the local variable session will be
NULL, and the program continues at the error label. Because of
session == NULL, coap_session_free() will return immediately, leaving
a NULL entry in ep->sessions.
This fix is related to CID 1520613.
Add in new event COAP_EVENT_XMIT_BLOCK_FAIL which gets triggered on
detecting transmission failure of large body using BlockX.
Track the last time a lg_xmit was sent, so it can be timed out on failure.
Correctly track the next lg_xmit timeout time (and lg_crcv, lg_srcv) so that
the lg_xmit can be expired.
Support for larger COAP_OBS_MAX_NON and COAP_OBS_MAX_FAIL definitions.
Change default for COAP_OBS_MAX_FAIL to 1 as there will already have
been MAX_RETRANSMIT(4) of the notification over a period of 93 seconds if
defaults are used.
Code and documentation clean up
Replace usage of hdr_size with max_hdr_size as appropriate as hdr_size
is not set until PDU is encoded. This should eliminate potential buffer
overruns.
Better checks for available space for the payload when using BlockX.
Clarify documentation.
If coap_cancel_all_messages() is called because of missing separate ACK,
then release any pending delayqueue entries if message is CON.
Remove duplicate code in coap_cancel_all_messages().
As an incoming proxy request may delay its response (e.g. initiate an
ongoing connection), send back empty ACK immediately so that the
client does not timeout and re-transmit the request.
Do not process duplicated (i.e. re-transmitted) proxy requests.
Correct a couple of typos in example proxy code.