Lines Matching refs:frag
58 hm_fragment *frag = NULL; in dtls1_hm_fragment_new() local
62 if ((frag = OPENSSL_malloc(sizeof(*frag))) == NULL) { in dtls1_hm_fragment_new()
70 OPENSSL_free(frag); in dtls1_hm_fragment_new()
76 frag->fragment = buf; in dtls1_hm_fragment_new()
84 OPENSSL_free(frag); in dtls1_hm_fragment_new()
89 frag->reassembly = bitmask; in dtls1_hm_fragment_new()
91 return frag; in dtls1_hm_fragment_new()
94 void dtls1_hm_fragment_free(hm_fragment *frag) in dtls1_hm_fragment_free() argument
96 if (!frag) in dtls1_hm_fragment_free()
98 if (frag->msg_header.is_ccs) { in dtls1_hm_fragment_free()
99 EVP_CIPHER_CTX_free(frag->msg_header. in dtls1_hm_fragment_free()
101 EVP_MD_CTX_free(frag->msg_header.saved_retransmit_state.write_hash); in dtls1_hm_fragment_free()
103 OPENSSL_free(frag->fragment); in dtls1_hm_fragment_free()
104 OPENSSL_free(frag->reassembly); in dtls1_hm_fragment_free()
105 OPENSSL_free(frag); in dtls1_hm_fragment_free()
495 hm_fragment *frag; in dtls1_retrieve_buffered_fragment() local
505 frag = (hm_fragment *)item->data; in dtls1_retrieve_buffered_fragment()
507 if (frag->msg_header.seq < s->d1->handshake_read_seq) { in dtls1_retrieve_buffered_fragment()
512 || frag->msg_header.seq != 0 in dtls1_retrieve_buffered_fragment()
521 dtls1_hm_fragment_free(frag); in dtls1_retrieve_buffered_fragment()
524 frag = NULL; in dtls1_retrieve_buffered_fragment()
541 dtls1_hm_fragment_free(frag); in dtls1_retrieve_buffered_fragment()
544 frag = nextfrag; in dtls1_retrieve_buffered_fragment()
556 if (frag->reassembly != NULL) in dtls1_retrieve_buffered_fragment()
559 if (s->d1->handshake_read_seq == frag->msg_header.seq || chretran) { in dtls1_retrieve_buffered_fragment()
560 size_t frag_len = frag->msg_header.frag_len; in dtls1_retrieve_buffered_fragment()
564 ret = dtls1_preprocess_fragment(s, &frag->msg_header); in dtls1_retrieve_buffered_fragment()
566 if (ret && frag->msg_header.frag_len > 0) { in dtls1_retrieve_buffered_fragment()
569 memcpy(&p[frag->msg_header.frag_off], frag->fragment, in dtls1_retrieve_buffered_fragment()
570 frag->msg_header.frag_len); in dtls1_retrieve_buffered_fragment()
573 dtls1_hm_fragment_free(frag); in dtls1_retrieve_buffered_fragment()
602 hm_fragment *frag = NULL; in dtls1_reassemble_fragment() local
624 frag = dtls1_hm_fragment_new(msg_hdr->msg_len, 1); in dtls1_reassemble_fragment()
625 if (frag == NULL) in dtls1_reassemble_fragment()
627 memcpy(&(frag->msg_header), msg_hdr, sizeof(*msg_hdr)); in dtls1_reassemble_fragment()
628 frag->msg_header.frag_len = frag->msg_header.msg_len; in dtls1_reassemble_fragment()
629 frag->msg_header.frag_off = 0; in dtls1_reassemble_fragment()
631 frag = (hm_fragment *)item->data; in dtls1_reassemble_fragment()
632 if (frag->msg_header.msg_len != msg_hdr->msg_len) { in dtls1_reassemble_fragment()
634 frag = NULL; in dtls1_reassemble_fragment()
644 if (frag->reassembly == NULL) { in dtls1_reassemble_fragment()
662 frag->fragment + msg_hdr->frag_off, in dtls1_reassemble_fragment()
669 RSMBLY_BITMASK_MARK(frag->reassembly, (long)msg_hdr->frag_off, in dtls1_reassemble_fragment()
674 RSMBLY_BITMASK_IS_COMPLETE(frag->reassembly, (long)msg_hdr->msg_len, in dtls1_reassemble_fragment()
678 OPENSSL_free(frag->reassembly); in dtls1_reassemble_fragment()
679 frag->reassembly = NULL; in dtls1_reassemble_fragment()
683 item = pitem_new(seq64be, frag); in dtls1_reassemble_fragment()
704 dtls1_hm_fragment_free(frag); in dtls1_reassemble_fragment()
712 hm_fragment *frag = NULL; in dtls1_process_out_of_seq_message() local
762 frag = dtls1_hm_fragment_new(frag_len, 0); in dtls1_process_out_of_seq_message()
763 if (frag == NULL) in dtls1_process_out_of_seq_message()
766 memcpy(&(frag->msg_header), msg_hdr, sizeof(*msg_hdr)); in dtls1_process_out_of_seq_message()
773 frag->fragment, frag_len, 0, in dtls1_process_out_of_seq_message()
781 item = pitem_new(seq64be, frag); in dtls1_process_out_of_seq_message()
802 dtls1_hm_fragment_free(frag); in dtls1_process_out_of_seq_message()
1095 hm_fragment *frag; in dtls1_retransmit_buffered_messages() local
1101 frag = (hm_fragment *)item->data; in dtls1_retransmit_buffered_messages()
1104 (frag->msg_header.seq, in dtls1_retransmit_buffered_messages()
1105 frag->msg_header.is_ccs), &found) <= 0) in dtls1_retransmit_buffered_messages()
1115 hm_fragment *frag; in dtls1_buffer_message() local
1125 frag = dtls1_hm_fragment_new(s->init_num, 0); in dtls1_buffer_message()
1126 if (frag == NULL) in dtls1_buffer_message()
1129 memcpy(frag->fragment, s->init_buf->data, s->init_num); in dtls1_buffer_message()
1137 dtls1_hm_fragment_free(frag); in dtls1_buffer_message()
1143 dtls1_hm_fragment_free(frag); in dtls1_buffer_message()
1148 frag->msg_header.msg_len = s->d1->w_msg_hdr.msg_len; in dtls1_buffer_message()
1149 frag->msg_header.seq = s->d1->w_msg_hdr.seq; in dtls1_buffer_message()
1150 frag->msg_header.type = s->d1->w_msg_hdr.type; in dtls1_buffer_message()
1151 frag->msg_header.frag_off = 0; in dtls1_buffer_message()
1152 frag->msg_header.frag_len = s->d1->w_msg_hdr.msg_len; in dtls1_buffer_message()
1153 frag->msg_header.is_ccs = is_ccs; in dtls1_buffer_message()
1156 frag->msg_header.saved_retransmit_state.enc_write_ctx = s->enc_write_ctx; in dtls1_buffer_message()
1157 frag->msg_header.saved_retransmit_state.write_hash = s->write_hash; in dtls1_buffer_message()
1158 frag->msg_header.saved_retransmit_state.compress = s->compress; in dtls1_buffer_message()
1159 frag->msg_header.saved_retransmit_state.session = s->session; in dtls1_buffer_message()
1160 frag->msg_header.saved_retransmit_state.epoch = in dtls1_buffer_message()
1166 char)(dtls1_get_queue_priority(frag->msg_header.seq, in dtls1_buffer_message()
1167 frag->msg_header.is_ccs) >> 8); in dtls1_buffer_message()
1170 char)(dtls1_get_queue_priority(frag->msg_header.seq, in dtls1_buffer_message()
1171 frag->msg_header.is_ccs)); in dtls1_buffer_message()
1173 item = pitem_new(seq64be, frag); in dtls1_buffer_message()
1175 dtls1_hm_fragment_free(frag); in dtls1_buffer_message()
1188 hm_fragment *frag; in dtls1_retransmit_message() local
1206 frag = (hm_fragment *)item->data; in dtls1_retransmit_message()
1208 if (frag->msg_header.is_ccs) in dtls1_retransmit_message()
1213 memcpy(s->init_buf->data, frag->fragment, in dtls1_retransmit_message()
1214 frag->msg_header.msg_len + header_length); in dtls1_retransmit_message()
1215 s->init_num = frag->msg_header.msg_len + header_length; in dtls1_retransmit_message()
1217 dtls1_set_message_header_int(s, frag->msg_header.type, in dtls1_retransmit_message()
1218 frag->msg_header.msg_len, in dtls1_retransmit_message()
1219 frag->msg_header.seq, 0, in dtls1_retransmit_message()
1220 frag->msg_header.frag_len); in dtls1_retransmit_message()
1232 s->enc_write_ctx = frag->msg_header.saved_retransmit_state.enc_write_ctx; in dtls1_retransmit_message()
1233 s->write_hash = frag->msg_header.saved_retransmit_state.write_hash; in dtls1_retransmit_message()
1234 s->compress = frag->msg_header.saved_retransmit_state.compress; in dtls1_retransmit_message()
1235 s->session = frag->msg_header.saved_retransmit_state.session; in dtls1_retransmit_message()
1237 frag->msg_header. in dtls1_retransmit_message()
1240 ret = dtls1_do_write(s, frag->msg_header.is_ccs ? in dtls1_retransmit_message()