libcoap 4.3.1
coap_session.c File Reference

Session handling functions. More...

#include "coap3/coap_internal.h"
#include <stdio.h>
#include <errno.h>
+ Include dependency graph for coap_session.c:

Go to the source code of this file.

Macros

#define COAP_SESSION_C_
 
#define PRIu32   "u"
 

Functions

void coap_session_set_ack_timeout (coap_session_t *session, coap_fixed_point_t value)
 Set the CoAP initial ack response timeout before the next re-transmit. More...
 
void coap_session_set_ack_random_factor (coap_session_t *session, coap_fixed_point_t value)
 Set the CoAP ack randomize factor. More...
 
void coap_session_set_max_retransmit (coap_session_t *session, uint16_t value)
 Set the CoAP maximum retransmit count before failure. More...
 
void coap_session_set_nstart (coap_session_t *session, uint16_t value)
 Set the CoAP maximum concurrent transmission count of Confirmable messages RFC7252 NSTART. More...
 
void coap_session_set_default_leisure (coap_session_t *session, coap_fixed_point_t value)
 Set the CoAP default leisure time (for multicast) RFC7252 DEFAULT_LEISURE. More...
 
void coap_session_set_probing_rate (coap_session_t *session, uint32_t value)
 Set the CoAP probing rate when there is no response RFC7252 PROBING_RATE. More...
 
coap_fixed_point_t coap_session_get_ack_timeout (const coap_session_t *session)
 Get the CoAP initial ack response timeout before the next re-transmit. More...
 
coap_fixed_point_t coap_session_get_ack_random_factor (const coap_session_t *session)
 Get the CoAP ack randomize factor. More...
 
uint16_t coap_session_get_max_retransmit (const coap_session_t *session)
 Get the CoAP maximum retransmit before failure. More...
 
uint16_t coap_session_get_nstart (const coap_session_t *session)
 Get the CoAP maximum concurrent transmission count of Confirmable messages RFC7252 NSTART. More...
 
coap_fixed_point_t coap_session_get_default_leisure (const coap_session_t *session)
 Get the CoAP default leisure time RFC7252 DEFAULT_LEISURE. More...
 
uint32_t coap_session_get_probing_rate (const coap_session_t *session)
 Get the CoAP probing rate when there is no response RFC7252 PROBING_RATE. More...
 
coap_session_tcoap_session_reference (coap_session_t *session)
 Increment reference counter on a session. More...
 
void coap_session_release (coap_session_t *session)
 Decrement reference counter on a session. More...
 
void coap_session_set_app_data (coap_session_t *session, void *app_data)
 Stores data with the given session. More...
 
void * coap_session_get_app_data (const coap_session_t *session)
 Returns any application-specific data that has been stored with session using the function coap_session_set_app_data(). More...
 
static coap_session_tcoap_make_session (coap_proto_t proto, coap_session_type_t type, const coap_addr_hash_t *addr_hash, const coap_address_t *local_addr, const coap_address_t *remote_addr, int ifindex, coap_context_t *context, coap_endpoint_t *endpoint)
 
void coap_session_mfree (coap_session_t *session)
 
void coap_session_free (coap_session_t *session)
 
static size_t coap_session_max_pdu_size_internal (const coap_session_t *session, size_t max_with_header)
 
size_t coap_session_max_pdu_rcv_size (const coap_session_t *session)
 Get maximum acceptable receive PDU size. More...
 
size_t coap_session_max_pdu_size (const coap_session_t *session)
 Get maximum acceptable PDU size. More...
 
void coap_session_set_mtu (coap_session_t *session, unsigned mtu)
 Set the session MTU. More...
 
ssize_t coap_session_send (coap_session_t *session, const uint8_t *data, size_t datalen)
 Function interface for datagram data transmission. More...
 
ssize_t coap_session_write (coap_session_t *session, const uint8_t *data, size_t datalen)
 Function interface for stream data transmission. More...
 
ssize_t coap_session_delay_pdu (coap_session_t *session, coap_pdu_t *pdu, coap_queue_t *node)
 
void coap_session_send_csm (coap_session_t *session)
 Notify session transport has just connected and CSM exchange can now start. More...
 
coap_mid_t coap_session_send_ping (coap_session_t *session)
 Send a ping message for the session. More...
 
void coap_session_connected (coap_session_t *session)
 Notify session that it has just connected or reconnected. More...
 
void coap_session_disconnected (coap_session_t *session, coap_nack_reason_t reason)
 Notify session that it has failed. More...
 
int coap_session_refresh_psk_hint (coap_session_t *session, const coap_bin_const_t *psk_hint)
 Refresh the session's current Identity Hint (PSK). More...
 
int coap_session_refresh_psk_key (coap_session_t *session, const coap_bin_const_t *psk_key)
 Refresh the session's current pre-shared key (PSK). More...
 
int coap_session_refresh_psk_identity (coap_session_t *session, const coap_bin_const_t *psk_identity)
 Refresh the session's current pre-shared identity (PSK). More...
 
const coap_bin_const_tcoap_session_get_psk_identity (const coap_session_t *session)
 Get the server session's current PSK identity (PSK). More...
 
const coap_bin_const_tcoap_session_get_psk_key (const coap_session_t *session)
 Get the session's current pre-shared key (PSK). More...
 
void coap_session_init_token (coap_session_t *session, size_t len, const uint8_t *data)
 Initializes the token value to use as a starting point. More...
 
void coap_session_new_token (coap_session_t *session, size_t *len, uint8_t *data)
 Creates a new token for use. More...
 
uint16_t coap_new_message_id (coap_session_t *session)
 Returns a new message id and updates session->tx_mid accordingly. More...
 
const coap_address_tcoap_session_get_addr_remote (const coap_session_t *session)
 Get the remote IP address from the session. More...
 
const coap_address_tcoap_session_get_addr_local (const coap_session_t *session)
 Get the local IP address from the session. More...
 
coap_context_tcoap_session_get_context (const coap_session_t *session)
 Get the session context. More...
 
coap_proto_t coap_session_get_proto (const coap_session_t *session)
 Get the session protocol type. More...
 
coap_session_type_t coap_session_get_type (const coap_session_t *session)
 Get the session type. More...
 
coap_session_state_t coap_session_get_state (const coap_session_t *session)
 Get the session state. More...
 
int coap_session_get_ifindex (const coap_session_t *session)
 Get the session if index. More...
 
void * coap_session_get_tls (const coap_session_t *session, coap_tls_library_t *tls_lib)
 Get the session TLS security ptr (TLS type dependent) More...
 
coap_session_tcoap_session_get_by_peer (const coap_context_t *ctx, const coap_address_t *remote_addr, int ifindex)
 
const char * coap_session_str (const coap_session_t *session)
 Get session description. More...
 

Detailed Description

Session handling functions.

Definition in file coap_session.c.

Macro Definition Documentation

◆ COAP_SESSION_C_

#define COAP_SESSION_C_

Definition at line 20 of file coap_session.c.

◆ PRIu32

#define PRIu32   "u"

Definition at line 33 of file coap_session.c.

Function Documentation

◆ coap_make_session()

static coap_session_t * coap_make_session ( coap_proto_t  proto,
coap_session_type_t  type,
const coap_addr_hash_t addr_hash,
const coap_address_t local_addr,
const coap_address_t remote_addr,
int  ifindex,
coap_context_t context,
coap_endpoint_t endpoint 
)
static

Definition at line 166 of file coap_session.c.

+ Here is the call graph for this function:

◆ coap_session_get_by_peer()

coap_session_t * coap_session_get_by_peer ( const coap_context_t ctx,
const coap_address_t remote_addr,
int  ifindex 
)

Definition at line 1617 of file coap_session.c.

+ Here is the call graph for this function:

◆ coap_session_max_pdu_size_internal()

static size_t coap_session_max_pdu_size_internal ( const coap_session_t session,
size_t  max_with_header 
)
static

Definition at line 329 of file coap_session.c.

+ Here is the caller graph for this function:

◆ coap_session_send_ping()

coap_mid_t coap_session_send_ping ( coap_session_t session)

Send a ping message for the session.

Parameters
sessionThe CoAP session.
Returns
COAP_INVALID_MID if there is an error

Definition at line 516 of file coap_session.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function: