if(flags != FR_FULL) { tvbuff_t* new_tvb = NULL; fragment_data *frag_msg = NULL; guint16 msg_seq = tvb_get_ntohs(tvb,4) + 1; offset = len; msg_id = 1; proto_tree_add_text(tree, tvb, 0, -1,"msg_seq: %d",msg_seq); pinfo->fragmented = TRUE; frag_msg = fragment_add_seq_check(tvb,offset,pinfo,msg_id,dan_fragment_table, dan_reassembled_table,msg_seq,tvb_length_remaining(tvb,offset),(flags == FR_LAST)); if (frag_msg == NULL) proto_tree_add_text(tree, tvb, 0, -1,"frag_msg: %s","NULL"); else { if(frag_msg->next != NULL) proto_tree_add_text(tree, tvb, 0, -1,"frag_msg->next: %u",frag_msg->next); else proto_tree_add_text(tree, tvb, 0, -1,"frag_msg->next: %s","NULL"); } new_tvb = process_reassembled_data(tvb,offset,pinfo,"Reassembled Message",frag_msg, &dan_frag_items, NULL,tree); if(frag_msg) col_append_str(pinfo->cinfo, COL_INFO, "Message Reassembled"); else col_append_fstr(pinfo->cinfo, COL_INFO, "Message Fragment %u", msg_seq); proto_tree_add_text(tree, tvb, 0, -1,"new_tvb: %u",new_tvb); if (new_tvb) { next_tvb = new_tvb; dan_parse = TRUE; //dan_parse_frag = TRUE; } else next_tvb = tvb_new_subset(tvb,offset,-1,-1); } else { next_tvb = tvb_new_subset(tvb,offset,-1,-1); dan_parse = TRUE; } pinfo->fragmented = save_fragmented;