ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/src/stable/0.8/crypto/openssl/ssl/d1_lib.c
(Generate patch)

Comparing stable/0.8/crypto/openssl/ssl/d1_lib.c (file contents):
Revision 8596 by laffer1, Wed Apr 13 00:29:37 2016 UTC vs.
Revision 8597 by laffer1, Fri Sep 23 17:59:17 2016 UTC

# Line 144 | Line 144 | int dtls1_new(SSL *s)
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) {
# Line 165 | Line 164 | static void dtls1_clear_queues(SSL *s)
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);
# Line 420 | Line 435 | void dtls1_stop_timer(SSL *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)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines