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()
494 hm_fragment *frag; in dtls1_retrieve_buffered_fragment() local
502 frag = (hm_fragment *)item->data; in dtls1_retrieve_buffered_fragment()
504 if (frag->msg_header.seq < s->d1->handshake_read_seq) { in dtls1_retrieve_buffered_fragment()
507 dtls1_hm_fragment_free(frag); in dtls1_retrieve_buffered_fragment()
510 frag = NULL; in dtls1_retrieve_buffered_fragment()
515 if (frag->reassembly != NULL) in dtls1_retrieve_buffered_fragment()
518 if (s->d1->handshake_read_seq == frag->msg_header.seq) { in dtls1_retrieve_buffered_fragment()
519 size_t frag_len = frag->msg_header.frag_len; in dtls1_retrieve_buffered_fragment()
523 ret = dtls1_preprocess_fragment(s, &frag->msg_header); in dtls1_retrieve_buffered_fragment()
525 if (ret && frag->msg_header.frag_len > 0) { in dtls1_retrieve_buffered_fragment()
528 memcpy(&p[frag->msg_header.frag_off], frag->fragment, in dtls1_retrieve_buffered_fragment()
529 frag->msg_header.frag_len); in dtls1_retrieve_buffered_fragment()
532 dtls1_hm_fragment_free(frag); in dtls1_retrieve_buffered_fragment()
551 hm_fragment *frag = NULL; in dtls1_reassemble_fragment() local
573 frag = dtls1_hm_fragment_new(msg_hdr->msg_len, 1); in dtls1_reassemble_fragment()
574 if (frag == NULL) in dtls1_reassemble_fragment()
576 memcpy(&(frag->msg_header), msg_hdr, sizeof(*msg_hdr)); in dtls1_reassemble_fragment()
577 frag->msg_header.frag_len = frag->msg_header.msg_len; in dtls1_reassemble_fragment()
578 frag->msg_header.frag_off = 0; in dtls1_reassemble_fragment()
580 frag = (hm_fragment *)item->data; in dtls1_reassemble_fragment()
581 if (frag->msg_header.msg_len != msg_hdr->msg_len) { in dtls1_reassemble_fragment()
583 frag = NULL; in dtls1_reassemble_fragment()
593 if (frag->reassembly == NULL) { in dtls1_reassemble_fragment()
611 frag->fragment + msg_hdr->frag_off, in dtls1_reassemble_fragment()
618 RSMBLY_BITMASK_MARK(frag->reassembly, (long)msg_hdr->frag_off, in dtls1_reassemble_fragment()
623 RSMBLY_BITMASK_IS_COMPLETE(frag->reassembly, (long)msg_hdr->msg_len, in dtls1_reassemble_fragment()
627 OPENSSL_free(frag->reassembly); in dtls1_reassemble_fragment()
628 frag->reassembly = NULL; in dtls1_reassemble_fragment()
632 item = pitem_new(seq64be, frag); in dtls1_reassemble_fragment()
653 dtls1_hm_fragment_free(frag); in dtls1_reassemble_fragment()
661 hm_fragment *frag = NULL; in dtls1_process_out_of_seq_message() local
711 frag = dtls1_hm_fragment_new(frag_len, 0); in dtls1_process_out_of_seq_message()
712 if (frag == NULL) in dtls1_process_out_of_seq_message()
715 memcpy(&(frag->msg_header), msg_hdr, sizeof(*msg_hdr)); in dtls1_process_out_of_seq_message()
722 frag->fragment, frag_len, 0, in dtls1_process_out_of_seq_message()
730 item = pitem_new(seq64be, frag); in dtls1_process_out_of_seq_message()
751 dtls1_hm_fragment_free(frag); in dtls1_process_out_of_seq_message()
1020 hm_fragment *frag; in dtls1_retransmit_buffered_messages() local
1026 frag = (hm_fragment *)item->data; in dtls1_retransmit_buffered_messages()
1029 (frag->msg_header.seq, in dtls1_retransmit_buffered_messages()
1030 frag->msg_header.is_ccs), &found) <= 0) in dtls1_retransmit_buffered_messages()
1040 hm_fragment *frag; in dtls1_buffer_message() local
1050 frag = dtls1_hm_fragment_new(s->init_num, 0); in dtls1_buffer_message()
1051 if (frag == NULL) in dtls1_buffer_message()
1054 memcpy(frag->fragment, s->init_buf->data, s->init_num); in dtls1_buffer_message()
1062 dtls1_hm_fragment_free(frag); in dtls1_buffer_message()
1068 dtls1_hm_fragment_free(frag); in dtls1_buffer_message()
1073 frag->msg_header.msg_len = s->d1->w_msg_hdr.msg_len; in dtls1_buffer_message()
1074 frag->msg_header.seq = s->d1->w_msg_hdr.seq; in dtls1_buffer_message()
1075 frag->msg_header.type = s->d1->w_msg_hdr.type; in dtls1_buffer_message()
1076 frag->msg_header.frag_off = 0; in dtls1_buffer_message()
1077 frag->msg_header.frag_len = s->d1->w_msg_hdr.msg_len; in dtls1_buffer_message()
1078 frag->msg_header.is_ccs = is_ccs; in dtls1_buffer_message()
1081 frag->msg_header.saved_retransmit_state.enc_write_ctx = s->enc_write_ctx; in dtls1_buffer_message()
1082 frag->msg_header.saved_retransmit_state.write_hash = s->write_hash; in dtls1_buffer_message()
1083 frag->msg_header.saved_retransmit_state.compress = s->compress; in dtls1_buffer_message()
1084 frag->msg_header.saved_retransmit_state.session = s->session; in dtls1_buffer_message()
1085 frag->msg_header.saved_retransmit_state.epoch = in dtls1_buffer_message()
1091 char)(dtls1_get_queue_priority(frag->msg_header.seq, in dtls1_buffer_message()
1092 frag->msg_header.is_ccs) >> 8); in dtls1_buffer_message()
1095 char)(dtls1_get_queue_priority(frag->msg_header.seq, in dtls1_buffer_message()
1096 frag->msg_header.is_ccs)); in dtls1_buffer_message()
1098 item = pitem_new(seq64be, frag); in dtls1_buffer_message()
1100 dtls1_hm_fragment_free(frag); in dtls1_buffer_message()
1113 hm_fragment *frag; in dtls1_retransmit_message() local
1131 frag = (hm_fragment *)item->data; in dtls1_retransmit_message()
1133 if (frag->msg_header.is_ccs) in dtls1_retransmit_message()
1138 memcpy(s->init_buf->data, frag->fragment, in dtls1_retransmit_message()
1139 frag->msg_header.msg_len + header_length); in dtls1_retransmit_message()
1140 s->init_num = frag->msg_header.msg_len + header_length; in dtls1_retransmit_message()
1142 dtls1_set_message_header_int(s, frag->msg_header.type, in dtls1_retransmit_message()
1143 frag->msg_header.msg_len, in dtls1_retransmit_message()
1144 frag->msg_header.seq, 0, in dtls1_retransmit_message()
1145 frag->msg_header.frag_len); in dtls1_retransmit_message()
1157 s->enc_write_ctx = frag->msg_header.saved_retransmit_state.enc_write_ctx; in dtls1_retransmit_message()
1158 s->write_hash = frag->msg_header.saved_retransmit_state.write_hash; in dtls1_retransmit_message()
1159 s->compress = frag->msg_header.saved_retransmit_state.compress; in dtls1_retransmit_message()
1160 s->session = frag->msg_header.saved_retransmit_state.session; in dtls1_retransmit_message()
1162 frag->msg_header. in dtls1_retransmit_message()
1165 ret = dtls1_do_write(s, frag->msg_header.is_ccs ? in dtls1_retransmit_message()