Select one of the symbols to view example projects that use it.
 
Outline
...
...
...
...
#define NX_SECURE_SOURCE_CODE
#include "nx_secure_tls.h"
...
...
_nx_secure_tls_session_delete(NX_SECURE_TLS_SESSION *)
Files
loading...
CodeScopeSTM32 Libraries and Samplesnetxduonx_secure/src/nx_secure_tls_session_delete.c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/**************************************************************************/ /* */ /* Copyright (c) Microsoft Corporation. All rights reserved. */ /* */ /* This software is licensed under the Microsoft Software License */ /* Terms for Microsoft Azure RTOS. Full text of the license can be */ /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ /* and in the root directory of this software. */ /* */... /**************************************************************************/ ... /**************************************************************************/ /**************************************************************************/ /** */ /** NetX Secure Component */ /** */ /** Transport Layer Security (TLS) */ /** */... /**************************************************************************/ /**************************************************************************/ #define NX_SECURE_SOURCE_CODE #include "nx_secure_tls.h" ... /**************************************************************************/ /* */ /* FUNCTION RELEASE */ /* */ /* _nx_secure_tls_session_delete PORTABLE C */ /* 6.1 */ /* AUTHOR */ /* */ /* Timothy Stapko, Microsoft Corporation */ /* */ /* DESCRIPTION */ /* */ /* This function deletes a TLS session object, returning any resources */ /* to the system. */ /* */ /* INPUT */ /* */ /* tls_session TLS control block */ /* */ /* OUTPUT */ /* */ /* status Completion status */ /* */ /* CALLS */ /* */ /* _nx_secure_tls_session_reset Clear TLS control block */ /* tx_mutex_get Get protection mutex */ /* tx_mutex_put Put protection mutex */ /* */ /* CALLED BY */ /* */ /* Application Code */ /* _nx_secure_dtls_session_delete Delete the DTLS session */ /* */ /* RELEASE HISTORY */ /* */ /* DATE NAME DESCRIPTION */ /* */ /* 05-19-2020 Timothy Stapko Initial Version 6.0 */ /* 09-30-2020 Timothy Stapko Modified comment(s), and */ /* fixed race condition for */ /* multithread transmission, */ /* fixed underflow issue, */ /* resulting in version 6.1 */ /* */... /**************************************************************************/ UINT _nx_secure_tls_session_delete(NX_SECURE_TLS_SESSION *tls_session) { UINT status; /* Reset the TLS state so this socket can be reused. */ status = _nx_secure_tls_session_reset(tls_session); /* Get the protection. */ tx_mutex_get(&_nx_secure_tls_protection, TX_WAIT_FOREVER); /* Remove the TLS instance from the created list. */ /* See if the TLS instance is the only one on the list. */ if (tls_session == tls_session -> nx_secure_tls_created_next) { /* Only created TLS instance, just set the created list to NULL. */ _nx_secure_tls_created_ptr = NX_NULL; }if (tls_session == tls_session -> nx_secure_tls_created_next) { ... } else { /* Otherwise, not the only created TLS, link-up the neighbors. */ if(tls_session -> nx_secure_tls_created_next != NX_NULL) { (tls_session -> nx_secure_tls_created_next) -> nx_secure_tls_created_previous = tls_session -> nx_secure_tls_created_previous; }if (tls_session -> nx_secure_tls_created_next != NX_NULL) { ... } (tls_session -> nx_secure_tls_created_previous) -> nx_secure_tls_created_next = tls_session -> nx_secure_tls_created_next; /* See if we have to update the created list head pointer. */ if (_nx_secure_tls_created_ptr == tls_session) { /* Yes, move the head pointer to the next link. */ _nx_secure_tls_created_ptr = tls_session -> nx_secure_tls_created_next; }if (_nx_secure_tls_created_ptr == tls_session) { ... } }else { ... } /* We shouldn't need this conditional but occasionally automated code may call delete after all sessions have already been deleted. *//* ... */ if(_nx_secure_tls_created_count > 0) { _nx_secure_tls_created_count--; }if (_nx_secure_tls_created_count > 0) { ... } /* Make sure the session is completely reset - set ID to zero for error checking. */ tls_session -> nx_secure_tls_id = 0; /* Delete the mutex used for TLS session while transmitting packets. */ tx_mutex_delete(&(tls_session -> nx_secure_tls_session_transmit_mutex)); /* Release the protection. */ tx_mutex_put(&_nx_secure_tls_protection); return(status); }{ ... }