Merge pull request #16967 from miri64/dsm/enh/peer-sync
dsm: rename DTLS_PEER_MAX and make it dependent on CONFIG_DTLS_PEER_MAX
This commit is contained in:
commit
44927b493f
@ -62,13 +62,6 @@
|
|||||||
*/
|
*/
|
||||||
#ifndef CONFIG_DTLS_CONTEXT_MAX
|
#ifndef CONFIG_DTLS_CONTEXT_MAX
|
||||||
#define CONFIG_DTLS_CONTEXT_MAX (2)
|
#define CONFIG_DTLS_CONTEXT_MAX (2)
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief The maximum number DTLS peers (i.e. sessions)
|
|
||||||
*/
|
|
||||||
#ifndef CONFIG_DTLS_PEER_MAX
|
|
||||||
#define CONFIG_DTLS_PEER_MAX (1)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -31,6 +31,8 @@
|
|||||||
#define NET_DSM_H
|
#define NET_DSM_H
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#include "dtls.h"
|
||||||
#include "net/sock/dtls.h"
|
#include "net/sock/dtls.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
@ -40,8 +42,8 @@ extern "C" {
|
|||||||
/**
|
/**
|
||||||
* @brief Maximum number of maintained DTLS sessions (tinyDTLS)
|
* @brief Maximum number of maintained DTLS sessions (tinyDTLS)
|
||||||
*/
|
*/
|
||||||
#ifndef DTLS_PEER_MAX
|
#ifndef CONFIG_DSM_PEER_MAX
|
||||||
#define DTLS_PEER_MAX (1)
|
#define CONFIG_DSM_PEER_MAX (CONFIG_DTLS_PEER_MAX)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -40,6 +40,13 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The maximum number DTLS peers (i.e. sessions)
|
||||||
|
*/
|
||||||
|
#ifndef CONFIG_DTLS_PEER_MAX
|
||||||
|
#define CONFIG_DTLS_PEER_MAX (1)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -37,13 +37,13 @@ static int _find_session(sock_dtls_t *sock, sock_dtls_session_t *to_find,
|
|||||||
dsm_session_t **session);
|
dsm_session_t **session);
|
||||||
|
|
||||||
static mutex_t _lock;
|
static mutex_t _lock;
|
||||||
static dsm_session_t _sessions[DTLS_PEER_MAX];
|
static dsm_session_t _sessions[CONFIG_DSM_PEER_MAX];
|
||||||
static uint8_t _available_slots;
|
static uint8_t _available_slots;
|
||||||
|
|
||||||
void dsm_init(void)
|
void dsm_init(void)
|
||||||
{
|
{
|
||||||
mutex_init(&_lock);
|
mutex_init(&_lock);
|
||||||
_available_slots = DTLS_PEER_MAX;
|
_available_slots = CONFIG_DSM_PEER_MAX;
|
||||||
}
|
}
|
||||||
|
|
||||||
dsm_state_t dsm_store(sock_dtls_t *sock, sock_dtls_session_t *session,
|
dsm_state_t dsm_store(sock_dtls_t *sock, sock_dtls_session_t *session,
|
||||||
@ -116,7 +116,7 @@ uint8_t dsm_get_num_available_slots(void)
|
|||||||
|
|
||||||
uint8_t dsm_get_num_maximum_slots(void)
|
uint8_t dsm_get_num_maximum_slots(void)
|
||||||
{
|
{
|
||||||
return DTLS_PEER_MAX;
|
return CONFIG_DSM_PEER_MAX;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t dsm_get_least_recently_used_session(sock_dtls_t *sock, sock_dtls_session_t *session)
|
ssize_t dsm_get_least_recently_used_session(sock_dtls_t *sock, sock_dtls_session_t *session)
|
||||||
@ -124,12 +124,12 @@ ssize_t dsm_get_least_recently_used_session(sock_dtls_t *sock, sock_dtls_session
|
|||||||
int res = -1;
|
int res = -1;
|
||||||
dsm_session_t *session_slot = NULL;
|
dsm_session_t *session_slot = NULL;
|
||||||
|
|
||||||
if (dsm_get_num_available_slots() == DTLS_PEER_MAX) {
|
if (dsm_get_num_available_slots() == CONFIG_DSM_PEER_MAX) {
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_lock(&_lock);
|
mutex_lock(&_lock);
|
||||||
for (uint8_t i=0; i < DTLS_PEER_MAX; i++) {
|
for (uint8_t i=0; i < CONFIG_DSM_PEER_MAX; i++) {
|
||||||
if (_sessions[i].state != SESSION_STATE_ESTABLISHED) {
|
if (_sessions[i].state != SESSION_STATE_ESTABLISHED) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -164,7 +164,7 @@ static int _find_session(sock_dtls_t *sock, sock_dtls_session_t *to_find,
|
|||||||
dsm_session_t *empty_session = NULL;
|
dsm_session_t *empty_session = NULL;
|
||||||
|
|
||||||
sock_dtls_session_get_udp_ep(to_find, &to_find_ep);
|
sock_dtls_session_get_udp_ep(to_find, &to_find_ep);
|
||||||
for (uint8_t i=0; i < DTLS_PEER_MAX; i++) {
|
for (uint8_t i=0; i < CONFIG_DSM_PEER_MAX; i++) {
|
||||||
if (_sessions[i].state == SESSION_STATE_NONE) {
|
if (_sessions[i].state == SESSION_STATE_NONE) {
|
||||||
empty_session = &_sessions[i];
|
empty_session = &_sessions[i];
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user