tests/pkg_tinydtls_sock_async: use sock_dtls_get_event_session()
in DTLS handler
This commit is contained in:
parent
050b268705
commit
c65b4d378b
@ -12,6 +12,7 @@ USEMODULE += gnrc_ipv6_default
|
||||
USEMODULE += sock_async_event
|
||||
USEMODULE += sock_dtls
|
||||
USEMODULE += sock_udp
|
||||
USEMODULE += sock_util
|
||||
USEMODULE += event_thread_medium
|
||||
USEMODULE += event_timeout
|
||||
|
||||
|
||||
@ -24,9 +24,11 @@
|
||||
#include "net/sock/async/event.h"
|
||||
#include "net/sock/udp.h"
|
||||
#include "net/sock/dtls.h"
|
||||
#include "net/sock/util.h"
|
||||
#include "net/ipv6/addr.h"
|
||||
#include "net/credman.h"
|
||||
#include "timex.h"
|
||||
#include "test_utils/expect.h"
|
||||
|
||||
#include "tinydtls_common.h"
|
||||
#include "tinydtls_keys.h"
|
||||
@ -109,6 +111,8 @@ static void _dtls_handler(sock_dtls_t *sock, sock_async_flags_t type, void *arg)
|
||||
|
||||
event_timeout_clear(&_timeouter);
|
||||
if (type & SOCK_ASYNC_CONN_RECV) {
|
||||
expect(!sock_dtls_get_event_session(sock, &session));
|
||||
|
||||
char *send_data = arg;
|
||||
puts("Session handshake received");
|
||||
if (sock_dtls_recv(sock, &session, _recv_buf, sizeof(_recv_buf),
|
||||
@ -134,9 +138,21 @@ static void _dtls_handler(sock_dtls_t *sock, sock_async_flags_t type, void *arg)
|
||||
_close_sock(sock);
|
||||
}
|
||||
if (type & SOCK_ASYNC_CONN_RDY) {
|
||||
puts("Session became ready");
|
||||
if (sock_dtls_get_event_session(sock, &session)) {
|
||||
sock_udp_ep_t ep;
|
||||
char addrstr[IPV6_ADDR_MAX_STR_LEN];
|
||||
uint16_t port;
|
||||
|
||||
sock_dtls_session_get_udp_ep(&session, &ep);
|
||||
sock_udp_ep_fmt(&ep, addrstr, &port);
|
||||
printf("Session became ready: [%s]:%u\n", addrstr, port);
|
||||
} else {
|
||||
puts("A session became ready, but the corresponding " \
|
||||
"session could not be retrieved from socket");
|
||||
}
|
||||
}
|
||||
if (type & SOCK_ASYNC_MSG_RECV) {
|
||||
expect(!sock_dtls_get_event_session(sock, &session));
|
||||
int res;
|
||||
|
||||
if ((res = sock_dtls_recv(sock, &session, _recv_buf, sizeof(_recv_buf),
|
||||
|
||||
@ -25,9 +25,11 @@
|
||||
#include "net/sock/async/event.h"
|
||||
#include "net/sock/udp.h"
|
||||
#include "net/sock/dtls.h"
|
||||
#include "net/sock/util.h"
|
||||
#include "net/credman.h"
|
||||
#include "msg.h"
|
||||
#include "thread.h"
|
||||
#include "test_utils/expect.h"
|
||||
|
||||
#include "tinydtls_common.h"
|
||||
#include "tinydtls_keys.h"
|
||||
@ -105,8 +107,10 @@ static void _dtls_handler(sock_dtls_t *sock, sock_async_flags_t type, void *arg)
|
||||
return;
|
||||
}
|
||||
|
||||
sock_dtls_session_t session = { 0 };
|
||||
|
||||
if (type & SOCK_ASYNC_CONN_RECV) {
|
||||
sock_dtls_session_t session = { 0 };
|
||||
expect(!sock_dtls_get_event_session(sock, &session));
|
||||
|
||||
puts("Session handshake received");
|
||||
if (sock_dtls_recv(sock, &session, _recv_buf, sizeof(_recv_buf),
|
||||
@ -117,13 +121,35 @@ static void _dtls_handler(sock_dtls_t *sock, sock_async_flags_t type, void *arg)
|
||||
puts("New client connected");
|
||||
}
|
||||
if (type & SOCK_ASYNC_CONN_FIN) {
|
||||
puts("Session was destroyed by peer");
|
||||
if (sock_dtls_get_event_session(sock, &session)) {
|
||||
sock_udp_ep_t ep;
|
||||
char addrstr[IPV6_ADDR_MAX_STR_LEN];
|
||||
uint16_t port;
|
||||
|
||||
sock_dtls_session_get_udp_ep(&session, &ep);
|
||||
sock_udp_ep_fmt(&ep, addrstr, &port);
|
||||
printf("Session was destroyed by peer: [%s]:%u\n", addrstr, port);
|
||||
} else {
|
||||
puts("A session was destroyed by peer, but the corresponding " \
|
||||
"session could not be retrieved from socket");
|
||||
}
|
||||
}
|
||||
if (type & SOCK_ASYNC_CONN_RDY) {
|
||||
puts("Session became ready");
|
||||
if (sock_dtls_get_event_session(sock, &session)) {
|
||||
sock_udp_ep_t ep;
|
||||
char addrstr[IPV6_ADDR_MAX_STR_LEN];
|
||||
uint16_t port;
|
||||
|
||||
sock_dtls_session_get_udp_ep(&session, &ep);
|
||||
sock_udp_ep_fmt(&ep, addrstr, &port);
|
||||
printf("Session became ready: [%s]:%u\n", addrstr, port);
|
||||
} else {
|
||||
puts("A session became ready, but the corresponding session " \
|
||||
"could not be retrieved from the socket");
|
||||
}
|
||||
}
|
||||
if (type & SOCK_ASYNC_MSG_RECV) {
|
||||
sock_dtls_session_t session = { 0 };
|
||||
expect(!sock_dtls_get_event_session(sock, &session));
|
||||
ssize_t res;
|
||||
|
||||
res = sock_dtls_recv(sock, &session, _recv_buf, sizeof(_recv_buf), 0);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user