Provided by: libcoap3t64_4.3.4-1.1build4_amd64 bug

NAME

       coap_context, coap_new_context, coap_free_context, coap_context_set_max_idle_sessions,
       coap_context_get_max_idle_sessions, coap_context_set_max_handshake_sessions,
       coap_context_get_max_handshake_sessions, coap_context_set_session_timeout,
       coap_context_get_session_timeout, coap_context_set_csm_timeout,
       coap_context_get_csm_timeout, coap_context_set_max_token_size - Work with CoAP contexts

SYNOPSIS

       #include <coap3/coap.h>

       coap_context_t *coap_new_context(const coap_address_t *listen_addr);

       void coap_free_context(coap_context_t *context);

       void coap_context_set_max_idle_sessions(coap_context_t *context, unsigned int
       max_idle_sessions);

       unsigned int coap_context_get_max_idle_sessions( const coap_context_t *context);

       void coap_context_set_max_handshake_sessions(coap_context_t *context, unsigned int
       max_handshake_sessions);

       unsigned int coap_context_get_max_handshake_sessions( const coap_context_t *context);

       void coap_context_set_session_timeout(coap_context_t *context, unsigned int
       session_timeout);

       unsigned int coap_context_get_session_timeout( const coap_context_t *context);

       void coap_context_set_csm_timeout(coap_context_t *context, unsigned int csm_timeout);

       unsigned int coap_context_get_csm_timeout(const coap_context_t *context);

       void coap_context_set_max_token_size(coap_context_t *context, size_t max_token_size);

       For specific (D)TLS library support, link with -lcoap-3-notls, -lcoap-3-gnutls,
       -lcoap-3-openssl, -lcoap-3-mbedtls or -lcoap-3-tinydtls. Otherwise, link with -lcoap-3 to
       get the default (D)TLS library support.

DESCRIPTION

       This man page focuses on the CoAP Context and how to update or get information from the
       opaque coap_context_t structure.

       The CoAP stack’s global state is stored in a coap_context_t Context object. Resources,
       Endpoints and Sessions are associated with this context object. There can be more than one
       coap_context_t object per application, it is up to the application to manage each one
       accordingly.

FUNCTIONS

       Function: coap_new_context()

       The coap_new_context() function creates a new Context that is then used to keep all the
       CoAP Resources, Endpoints and Sessions information. The optional listen_addr parameter, if
       set for a CoAP server, creates an Endpoint that is added to the context that is listening
       for un-encrypted traffic on the IP address and port number defined by listen_addr.

       Function: coap_free_context()

       The coap_free_context() function must be used to release the CoAP stack context. It clears
       all entries from the receive queue and send queue and deletes the Resources that have been
       registered with context, and frees the attached Sessions and Endpoints.

       WARNING: It is unsafe to call coap_free_context() in an atexit() handler as other
       libraries may also call atexit() and clear down some CoAP required functionality.

       Function: coap_context_set_max_idle_sessions()

       The coap_context_set_max_idle_sessions() function sets the maximum number of idle server
       sessions to max_idle_sessions for context. If this number is exceeded, the least recently
       used server session is completely removed. 0 (the initial default) means that the number
       of idle sessions is not monitored.

       Function: coap_context_get_max_idle_sessions()

       The coap_context_get_max_idle_sessions() function returns the maximum number of idle
       server sessions for context.

       Function: coap_context_set_max_handshake_sessions()

       The coap_context_set_max_handshake_sessions() function sets the maximum number of
       outstanding server sessions in (D)TLS handshake to max_handshake_sessions for context. If
       this number is exceeded, the least recently used server session in handshake is completely
       removed. 0 (the default) means that the number of handshakes is not monitored.

       Function: coap_context_get_max_handshake_sessions()

       The coap_context_get_max_handshake_sessions() function returns the maximum number of
       outstanding server sessions in (D)TLS handshake for context.

       Function: coap_context_set_session_timeout()

       The coap_context_set_session_timeout() function sets the number of seconds of inactivity
       to session_timeout for context before an idle server session is removed. 0 (the default)
       means wait for the default of 300 seconds.

       Function: coap_context_get_session_timeout()

       The coap_context_get_session_timeout() function returns the seconds to wait before timing
       out an idle server session for context.

       Function: coap_context_set_csm_timeout()

       The coap_context_set_csm_timeout() function sets the number of seconds to wait for a (TCP)
       CSM negotiation response from the peer to csm_timeout for context. 0 (the default) means
       wait forever.

       Function: coap_context_get_csm_timeout()

       The coap_context_get_csm_timeout() function returns the seconds to wait for a (TCP) CSM
       negotiation response from the peer for context,

       Function: coap_context_set_max_token_size()

       The coap_context_set_max_token_size() function sets the max_token_size for context.
       max_token_size must be greater than 8 to indicate support for RFC8974 up to max_token_size
       bytes, else 8 to disable RFC8974 (if previously set).

       NOTE: For the client, it will send an initial PDU to test the server supports the
       requested extended token size as per "RFC8794 Section 2.2.2"

RETURN VALUES

       coap_new_context() returns a newly created context or NULL if there is a creation failure.

       coap_context_get_max_idle_sessions() returns the maximum number of idle server sessions.

       coap_context_get_max_handshake_sessions() returns the maximum number of outstanding server
       sessions in (D)TLS handshake.

       coap_context_get_session_timeout() returns the seconds to wait before timing out an idle
       server session.

       coap_context_get_csm_timeout() returns the seconds to wait for a (TCP) CSM negotiation
       response from the peer.

SEE ALSO

       coap_session(3)

FURTHER INFORMATION

       See

       "RFC7252: The Constrained Application Protocol (CoAP)"

       "RFC8974: Extended Tokens and Stateless Clients in the Constrained Application Protocol
       (CoAP)"

       for further information.

BUGS

       Please report bugs on the mailing list for libcoap:
       libcoap-developers@lists.sourceforge.net or raise an issue on GitHub at
       https://github.com/obgm/libcoap/issues

AUTHORS

       The libcoap project <libcoap-developers@lists.sourceforge.net>