Lines Matching refs:frag

58     hm_fragment *frag = NULL;  in dtls1_hm_fragment_new()  local
62 if ((frag = OPENSSL_zalloc(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()
99 OPENSSL_free(frag->fragment); in dtls1_hm_fragment_free()
100 OPENSSL_free(frag->reassembly); in dtls1_hm_fragment_free()
101 OPENSSL_free(frag); in dtls1_hm_fragment_free()
491 hm_fragment *frag; in dtls1_retrieve_buffered_fragment() local
501 frag = (hm_fragment *)item->data; in dtls1_retrieve_buffered_fragment()
503 if (frag->msg_header.seq < s->d1->handshake_read_seq) { in dtls1_retrieve_buffered_fragment()
508 || frag->msg_header.seq != 0 in dtls1_retrieve_buffered_fragment()
517 dtls1_hm_fragment_free(frag); in dtls1_retrieve_buffered_fragment()
520 frag = NULL; in dtls1_retrieve_buffered_fragment()
537 dtls1_hm_fragment_free(frag); in dtls1_retrieve_buffered_fragment()
540 frag = nextfrag; in dtls1_retrieve_buffered_fragment()
552 if (frag->reassembly != NULL) in dtls1_retrieve_buffered_fragment()
555 if (s->d1->handshake_read_seq == frag->msg_header.seq || chretran) { in dtls1_retrieve_buffered_fragment()
556 size_t frag_len = frag->msg_header.frag_len; in dtls1_retrieve_buffered_fragment()
560 ret = dtls1_preprocess_fragment(s, &frag->msg_header); in dtls1_retrieve_buffered_fragment()
562 if (ret && frag->msg_header.frag_len > 0) { in dtls1_retrieve_buffered_fragment()
565 memcpy(&p[frag->msg_header.frag_off], frag->fragment, in dtls1_retrieve_buffered_fragment()
566 frag->msg_header.frag_len); in dtls1_retrieve_buffered_fragment()
569 dtls1_hm_fragment_free(frag); in dtls1_retrieve_buffered_fragment()
598 hm_fragment *frag = NULL; in dtls1_reassemble_fragment() local
620 frag = dtls1_hm_fragment_new(msg_hdr->msg_len, 1); in dtls1_reassemble_fragment()
621 if (frag == NULL) in dtls1_reassemble_fragment()
623 memcpy(&(frag->msg_header), msg_hdr, sizeof(*msg_hdr)); in dtls1_reassemble_fragment()
624 frag->msg_header.frag_len = frag->msg_header.msg_len; in dtls1_reassemble_fragment()
625 frag->msg_header.frag_off = 0; in dtls1_reassemble_fragment()
627 frag = (hm_fragment *)item->data; in dtls1_reassemble_fragment()
628 if (frag->msg_header.msg_len != msg_hdr->msg_len) { in dtls1_reassemble_fragment()
630 frag = NULL; in dtls1_reassemble_fragment()
640 if (frag->reassembly == NULL) { in dtls1_reassemble_fragment()
658 frag->fragment + msg_hdr->frag_off, in dtls1_reassemble_fragment()
665 RSMBLY_BITMASK_MARK(frag->reassembly, (long)msg_hdr->frag_off, in dtls1_reassemble_fragment()
670 RSMBLY_BITMASK_IS_COMPLETE(frag->reassembly, (long)msg_hdr->msg_len, in dtls1_reassemble_fragment()
674 OPENSSL_free(frag->reassembly); in dtls1_reassemble_fragment()
675 frag->reassembly = NULL; in dtls1_reassemble_fragment()
679 item = pitem_new(seq64be, frag); in dtls1_reassemble_fragment()
700 dtls1_hm_fragment_free(frag); in dtls1_reassemble_fragment()
708 hm_fragment *frag = NULL; in dtls1_process_out_of_seq_message() local
758 frag = dtls1_hm_fragment_new(frag_len, 0); in dtls1_process_out_of_seq_message()
759 if (frag == NULL) in dtls1_process_out_of_seq_message()
762 memcpy(&(frag->msg_header), msg_hdr, sizeof(*msg_hdr)); in dtls1_process_out_of_seq_message()
769 frag->fragment, frag_len, 0, in dtls1_process_out_of_seq_message()
777 item = pitem_new(seq64be, frag); in dtls1_process_out_of_seq_message()
798 dtls1_hm_fragment_free(frag); in dtls1_process_out_of_seq_message()
1091 hm_fragment *frag; in dtls1_retransmit_buffered_messages() local
1097 frag = (hm_fragment *)item->data; in dtls1_retransmit_buffered_messages()
1100 (frag->msg_header.seq, in dtls1_retransmit_buffered_messages()
1101 frag->msg_header.is_ccs), &found) <= 0) in dtls1_retransmit_buffered_messages()
1111 hm_fragment *frag; in dtls1_buffer_message() local
1121 frag = dtls1_hm_fragment_new(s->init_num, 0); in dtls1_buffer_message()
1122 if (frag == NULL) in dtls1_buffer_message()
1125 memcpy(frag->fragment, s->init_buf->data, s->init_num); in dtls1_buffer_message()
1133 dtls1_hm_fragment_free(frag); in dtls1_buffer_message()
1139 dtls1_hm_fragment_free(frag); in dtls1_buffer_message()
1144 frag->msg_header.msg_len = s->d1->w_msg_hdr.msg_len; in dtls1_buffer_message()
1145 frag->msg_header.seq = s->d1->w_msg_hdr.seq; in dtls1_buffer_message()
1146 frag->msg_header.type = s->d1->w_msg_hdr.type; in dtls1_buffer_message()
1147 frag->msg_header.frag_off = 0; in dtls1_buffer_message()
1148 frag->msg_header.frag_len = s->d1->w_msg_hdr.msg_len; in dtls1_buffer_message()
1149 frag->msg_header.is_ccs = is_ccs; in dtls1_buffer_message()
1152 frag->msg_header.saved_retransmit_state.enc_write_ctx = s->enc_write_ctx; in dtls1_buffer_message()
1153 frag->msg_header.saved_retransmit_state.write_hash = s->write_hash; in dtls1_buffer_message()
1154 frag->msg_header.saved_retransmit_state.compress = s->compress; in dtls1_buffer_message()
1155 frag->msg_header.saved_retransmit_state.session = s->session; in dtls1_buffer_message()
1156 frag->msg_header.saved_retransmit_state.epoch = in dtls1_buffer_message()
1162 char)(dtls1_get_queue_priority(frag->msg_header.seq, in dtls1_buffer_message()
1163 frag->msg_header.is_ccs) >> 8); in dtls1_buffer_message()
1166 char)(dtls1_get_queue_priority(frag->msg_header.seq, in dtls1_buffer_message()
1167 frag->msg_header.is_ccs)); in dtls1_buffer_message()
1169 item = pitem_new(seq64be, frag); in dtls1_buffer_message()
1171 dtls1_hm_fragment_free(frag); in dtls1_buffer_message()
1184 hm_fragment *frag; in dtls1_retransmit_message() local
1202 frag = (hm_fragment *)item->data; in dtls1_retransmit_message()
1204 if (frag->msg_header.is_ccs) in dtls1_retransmit_message()
1209 memcpy(s->init_buf->data, frag->fragment, in dtls1_retransmit_message()
1210 frag->msg_header.msg_len + header_length); in dtls1_retransmit_message()
1211 s->init_num = frag->msg_header.msg_len + header_length; in dtls1_retransmit_message()
1213 dtls1_set_message_header_int(s, frag->msg_header.type, in dtls1_retransmit_message()
1214 frag->msg_header.msg_len, in dtls1_retransmit_message()
1215 frag->msg_header.seq, 0, in dtls1_retransmit_message()
1216 frag->msg_header.frag_len); in dtls1_retransmit_message()
1228 s->enc_write_ctx = frag->msg_header.saved_retransmit_state.enc_write_ctx; in dtls1_retransmit_message()
1229 s->write_hash = frag->msg_header.saved_retransmit_state.write_hash; in dtls1_retransmit_message()
1230 s->compress = frag->msg_header.saved_retransmit_state.compress; in dtls1_retransmit_message()
1231 s->session = frag->msg_header.saved_retransmit_state.session; in dtls1_retransmit_message()
1233 frag->msg_header. in dtls1_retransmit_message()
1236 ret = dtls1_do_write(s, frag->msg_header.is_ccs ? in dtls1_retransmit_message()