pkg/openwsn/sock: drop messages in mbox on close

This commit is contained in:
Francisco Molina 2021-01-22 14:25:56 +01:00
parent ca2e59d6a2
commit 3d6d8b1872
No known key found for this signature in database
GPG Key ID: 3E94EAC3DBDEEDA8

View File

@ -319,10 +319,19 @@ ssize_t sock_udp_send_aux(sock_udp_t *sock, const void *data, size_t len,
void sock_udp_close(sock_udp_t *sock) void sock_udp_close(sock_udp_t *sock)
{ {
assert(sock != NULL);
if (_udp_socket_list == NULL) { if (_udp_socket_list == NULL) {
return; return;
} }
if (sock) { if (sock) {
/* drop messages in mbox if any */
msg_t msg;
while (mbox_try_get(&sock->mbox, &msg)) {
if (msg.type == _MSG_TYPE_RECV_PKT) {
openqueue_freePacketBuffer(
(OpenQueueEntry_t*) msg.content.ptr);
}
}
/* remove sock from list */ /* remove sock from list */
mutex_lock(&_sock_list_lock); mutex_lock(&_sock_list_lock);
LL_DELETE(_udp_socket_list, sock); LL_DELETE(_udp_socket_list, sock);