mirror of
https://github.com/obgm/libcoap.git
synced 2026-11-09 02:32:53 +03:00
Calling coap_free_context() does not free off any async entries, and so raises assertion errors when coming to freeing off sessions if any async entries exist. async_data_t is a union, but the size of val and ptr are not the same - so usage can have uninitialized data - hence bad timeout values. Makefile.am: Do not expose coap_delete_all*() functions. examples/coap-server.c: Fix async_data_t issue. examples/etsi_iot_01.c: Fix 32 bit compiler warnings using same logic as coap-server for holding the async timeout value. examples/lwip/Makefile: Include async.c for the LwIP build. include/coap2/async.h Define coap_delete_all_async() function. include/coap2/net.h include/coap2/resource.h Document coap_delete_all*() functions as internal. libcoap-2.map libcoap-2.sym Remove non-exposed coap_delete_all*() functions. src/async.c Provide coap_delete_all_async() function. src/net.c Call coap_delete_all_async() from within coap_free_context().
Example of libcoap running on lwIP
==================================
To run the example, do
$ make
$ sudo ./server
(and in a second terminal)
$ sudo ip a a dev tap0 192.168.113.1/24
and query `coap://192.168.113.2/time?ticks` with any coap tool,
or query `coap://[aaaa::1000]/.well-known/core`
This will
* download lwip and lwip-contrib from the upstream git sources
* build the server application
* run the server application, creating a virtual network device tap0 (unless
that exists)
* configure your network interface to make the server accessible.
* return the appropriate response from the server to the client.
The server creates a resource for 'time' with a query 'ticks'. This is
reported for `.well-known/core`. The work flow for adding more resources does
not differ from regular libcoap usage. If you seem to run out of memory
creating the resources, tweak the number of pre-allocated resources
in `include/coap/lwippools.h`.