144 |
|
static void dtls1_clear_queues(SSL *s) |
145 |
|
{ |
146 |
|
pitem *item = NULL; |
147 |
– |
hm_fragment *frag = NULL; |
147 |
|
DTLS1_RECORD_DATA *rdata; |
148 |
|
|
149 |
|
while ((item = pqueue_pop(s->d1->unprocessed_rcds.q)) != NULL) { |
164 |
|
pitem_free(item); |
165 |
|
} |
166 |
|
|
167 |
+ |
while ((item = pqueue_pop(s->d1->buffered_app_data.q)) != NULL) { |
168 |
+ |
rdata = (DTLS1_RECORD_DATA *)item->data; |
169 |
+ |
if (rdata->rbuf.buf) { |
170 |
+ |
OPENSSL_free(rdata->rbuf.buf); |
171 |
+ |
} |
172 |
+ |
OPENSSL_free(item->data); |
173 |
+ |
pitem_free(item); |
174 |
+ |
} |
175 |
+ |
|
176 |
+ |
dtls1_clear_received_buffer(s); |
177 |
+ |
dtls1_clear_sent_buffer(s); |
178 |
+ |
} |
179 |
+ |
|
180 |
+ |
void dtls1_clear_received_buffer(SSL *s) |
181 |
+ |
{ |
182 |
+ |
pitem *item = NULL; |
183 |
+ |
hm_fragment *frag = NULL; |
184 |
+ |
|
185 |
|
while ((item = pqueue_pop(s->d1->buffered_messages)) != NULL) { |
186 |
|
frag = (hm_fragment *)item->data; |
187 |
|
dtls1_hm_fragment_free(frag); |
188 |
|
pitem_free(item); |
189 |
|
} |
190 |
+ |
} |
191 |
|
|
192 |
+ |
void dtls1_clear_sent_buffer(SSL *s) |
193 |
+ |
{ |
194 |
+ |
pitem *item = NULL; |
195 |
+ |
hm_fragment *frag = NULL; |
196 |
+ |
|
197 |
|
while ((item = pqueue_pop(s->d1->sent_messages)) != NULL) { |
198 |
|
frag = (hm_fragment *)item->data; |
199 |
|
dtls1_hm_fragment_free(frag); |
200 |
|
pitem_free(item); |
201 |
|
} |
179 |
– |
|
180 |
– |
while ((item = pqueue_pop(s->d1->buffered_app_data.q)) != NULL) { |
181 |
– |
rdata = (DTLS1_RECORD_DATA *)item->data; |
182 |
– |
if (rdata->rbuf.buf) { |
183 |
– |
OPENSSL_free(rdata->rbuf.buf); |
184 |
– |
} |
185 |
– |
OPENSSL_free(item->data); |
186 |
– |
pitem_free(item); |
187 |
– |
} |
202 |
|
} |
203 |
|
|
204 |
+ |
|
205 |
|
void dtls1_free(SSL *s) |
206 |
|
{ |
207 |
|
ssl3_free(s); |
435 |
|
BIO_ctrl(SSL_get_rbio(s), BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT, 0, |
436 |
|
&(s->d1->next_timeout)); |
437 |
|
/* Clear retransmission buffer */ |
438 |
< |
dtls1_clear_record_buffer(s); |
438 |
> |
dtls1_clear_sent_buffer(s); |
439 |
|
} |
440 |
|
|
441 |
|
int dtls1_check_timeout_num(SSL *s) |