mirror of
https://github.com/obgm/libcoap.git
synced 2026-11-13 11:50:40 +03:00
Update Keepalive support to include unreliable sessions
Add in support for both reliable and unreliable sessions when calling coap_context_set_keepalive(). include/coap2/coap_session.h: Track the last ping mid in coap_session_t. src/coap_io.c: src/coap_session.c: Support both reliable and unreliable sending of pings in coap_write(). src/net.c: Determine whether RST packet response is associated with a CoAP Empty Ping that was sent and handle accordingly. configure.ac: examples/client.c: include/coap2/net.h: man/Makefile.am: man/coap-client.txt.in: man/coap.txt.in: man/coap_handler.txt.in: man/coap_keepalive.txt.in: (New) man/coap_observe.txt.in: Add in a new man page (coap_keepalive). Update documentation to remove references to TCP and reliable only.
This commit is contained in:
1 parent
cfe83f19dc
commit
55aeaa6cc1
13 files changed
+136
-20
No files matched your search
@@ -71,6 +71,7 @@ typedef struct coap_session_t {
|
||||
void *tls; /**< security parameters */
|
||||
uint16_t tx_mid; /**< the last message id that was used in this session */
|
||||
uint8_t con_active; /**< Active CON request sent */
|
||||
coap_tid_t last_ping_mid; /**< the last keepalive message id that was used in this session */
|
||||
struct coap_queue_t *delayqueue; /**< list of delayed messages waiting to be sent */
|
||||
size_t partial_write; /**< if > 0 indicates number of bytes already written from the pdu at the head of sendqueue */
|
||||
uint8_t read_header[8]; /**< storage space for header of incoming message header */
|
||||
|
||||
+8
-4
@@ -347,12 +347,16 @@ coap_context_set_pki_root_cas(coap_context_t *context,
|
||||
* Set the context keepalive timer for sessions.
|
||||
* A keepalive message will be sent after if a session has been inactive,
|
||||
* i.e. no packet sent or received, for the given number of seconds.
|
||||
* For reliable protocols, a PING message will be sent. If a PONG has not
|
||||
* been received before the next PING is due to be sent, the session will
|
||||
* considered as disconnected.
|
||||
* For unreliable protocols, a CoAP Empty message will be sent. If a
|
||||
* CoAP RST is not received, the CoAP Empty messages will get resent based
|
||||
* on the Confirmable retry parameters until there is a failure timeout,
|
||||
* at which point the session will be considered as disconnected.
|
||||
* For reliable protocols, a CoAP PING message will be sent. If a CoAP PONG
|
||||
* has not been received before the next PING is due to be sent, the session
|
||||
* will be considered as disconnected.
|
||||
*
|
||||
* @param context The coap_context_t object.
|
||||
* @param seconds Number of seconds for the inactivity timer, or zero
|
||||
* @param seconds Number of seconds for the inactivity timer, or zero
|
||||
* to disable CoAP-level keepalive messages.
|
||||
*
|
||||
* @return 1 if successful, else 0
|
||||
|
||||
Reference in new issue
Block a user