static int dissect_dtpt_conversation(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { guint offset = 0; /* First try to decode it as "normal" DTPT packets. */ offset = dissect_dtpt(tvb, pinfo, tree); if (offset == 0) { /* No, maybe it was a DTPT data packet. */ offset = dissect_dtpt_data(tvb, pinfo, tree); } /* Handle any remaining bytes ... */ if (tvb_reported_length_remaining(tvb, offset) > 0) { /* ... as data. */ call_dissector(data_handle, tvb_new_subset_remaining(tvb, offset), pinfo, tree); } return tvb_reported_length(tvb); }
} break; } } offset += sockaddr_len2; return offset; } static int dissect_dtpt_conversation(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { guint offset = 0; /* First try to decode it as "normal" DTPT packets. */ offset = dissect_dtpt(tvb, pinfo, tree, NULL); if (offset == 0) { /* No, maybe it was a DTPT data packet. */ offset = dissect_dtpt_data(tvb, pinfo, tree); } /* Handle any remaining bytes ... */ if (tvb_reported_length_remaining(tvb, offset) > 0) { /* ... as data. */ call_dissector(data_handle, tvb_new_subset_remaining(tvb, offset), pinfo, tree); } return tvb_reported_length(tvb); }