mirror of
https://github.com/obgm/libcoap.git
synced 2026-11-08 10:32:53 +03:00
coap_read(), coap_write() and coap_run_once() are confusing in their names and do not really describe what they do. For example, coap_read() does both reading and writing, coap_write() may do some writing, but primarily is used to determine what should be monitored and for how long to wait in the following select() or epoll_wait() calls. coap_run_once() implies that the code is only to be run once - again confusing. By renaming coap_read() to coap_io_do_io(), this better describes what this function does. By renaming coap_write() to coap_io_prepare_io() this better describes what this function does. By renaming coap_run_once() to coap_io_process(), this better describes what this function does. By renaming coap_io_do_events() to coap_io_do_epoll(), this better describes what this function does and is associated with. A wrapper function coap_io_prepare_epoll() has been created, using coap_io_prepare_io() with some preset values to simplify function usage. include/coap2/net.h: Update with the new function names, and deprecate the old functions. Also document the fact that coap_io_prepare_io(), coap_io_do_io(), coap_io_prepare_epoll(), and coap_io_do_epoll() are really internal functions. Create app_io module for Doxygen. libcoap-2.map: libcoap-2.sym: Expose the new functions to applications. examples/client.c: examples/coap-rd.c: examples/coap-server.c: examples/contiki/coap-observer.c: examples/contiki/server.c: examples/etsi_iot_01.c: man/coap_io.txt.in: man/coap_observe.txt.in: src/coap_io.c: src/coap_io_lwip.c: src/net.c: src/pdu.c: Update using the new function names. Setting the etimer has been moved out of coap_io_process() into coap_io_do_epoll(), making the logic easier for applications to use coap_io_do_epoll() should they need to. This also gets rid of a potential timing window where a pending etimer event gets missed. coap_io_do_epoll() now calls coap_io_prepare_epoll() if the etimer has triggered removing the need for applications using coap_io_do_epoll() to set up their own loops if etimer is triggered.
This README documents the test cases supported for the 1st ETSI CoAP plugtest on March 24/25 in Paris, France. <http://www.etsi.org/plugtests/coap/coap.htm> Legend: [+] full support [o] partial support [-] no support [?] needs check [ ] has open issues Mandatory Tests [+] TD_COAP_CORE_01 Perform GET transaction (CON mode) [+] TD_COAP_CORE_02 Perform POST transaction (CON mode) [+] TD_COAP_CORE_03 Perform PUT transaction (CON mode) [+] TD_COAP_CORE_04 Perform DELETE transaction (CON mode) [+] TD_COAP_CORE_05 Perform GET transaction (NON mode) [+] TD_COAP_CORE_06 Perform POST transaction (NON mode) [+] TD_COAP_CORE_07 Perform PUT transaction (NON mode) [+] TD_COAP_CORE_08 Perform DELETE transaction (NON mode) [+] TD_COAP_CORE_09 Perform GET transaction with delayed response (CON mode, no piggyback) [+] TD_COAP_CORE_10 Handle request containing Token option [+] TD_COAP_CORE_11 Handle request not containing Token option [+] TD_COAP_CORE_12 Handle request containing several Uri-Path options [+] TD_COAP_CORE_13 Handle request containing several Uri-Query options [?] TD_COAP_CORE_14 Interoperate in lossy context (CON mode, piggybacked response) [?] TD_COAP_CORE_15 Interoperate in lossy context (CON mode, delayed response) Optional Tests [ ] TD_COAP_LINK_01 Access to well-known interface for resource discovery [-] TD_COAP_LINK_02 Use filtered requests for limiting discovery results [+] TD_COAP_BLOCK_01 Handle GET blockwise transfer for large resource (early negotiation) [+] TD_COAP_BLOCK_02 Handle GET blockwise transfer for large resource (late negotiation) [-] TD_COAP_BLOCK_03 Handle PUT blockwise transfer for large resource [-] TD_COAP_BLOCK_04 Handle POST blockwise transfer for large resource [-] TD_COAP_OBS_01 Handle resource observation [-] TD_COAP_OBS_02 Stop resource observation [-] TD_COAP_OBS_03 Client detection of deregistration (Max-Age) [-] TD_COAP_OBS_04 Server detection of deregistration (client OFF) [-] TD_COAP_OBS_05 Server detection of deregistration (explicit RST)