Remove ppid member from packet_info structure and just pass it to SCTP subdissectors. There are no subdissectors currently in Wireshark source that use the ppid member so any third party dissectors need to update accordingly.

svn path=/trunk/; revision=53424
This commit is contained in:
Michael Mann 2013-11-19 01:07:28 +00:00
parent d766ab6560
commit bfcc63972e
2 changed files with 5 additions and 8 deletions

View File

@ -2049,12 +2049,10 @@ dissect_payload(tvbuff_t *payload_tvb, packet_info *pinfo, proto_tree *tree, gui
{
guint32 low_port, high_port;
pinfo->ppid = ppi;
if (enable_ulp_dissection) {
if (try_heuristic_first) {
/* do lookup with the heuristic subdissector table */
if (dissector_try_heuristic(sctp_heur_subdissector_list, payload_tvb, pinfo, tree, NULL))
if (dissector_try_heuristic(sctp_heur_subdissector_list, payload_tvb, pinfo, tree, GUINT_TO_POINTER(ppi)))
return TRUE;
}
@ -2075,7 +2073,7 @@ dissect_payload(tvbuff_t *payload_tvb, packet_info *pinfo, proto_tree *tree, gui
XXX - we ignore port numbers of 0, as some dissectors use a port
number of 0 to disable the port. */
if (dissector_try_uint(sctp_ppi_dissector_table, ppi, payload_tvb, pinfo, tree))
if (dissector_try_uint_new(sctp_ppi_dissector_table, ppi, payload_tvb, pinfo, tree, TRUE, GUINT_TO_POINTER(ppi)))
return TRUE;
if (pinfo->srcport > pinfo->destport) {
low_port = pinfo->destport;
@ -2085,15 +2083,15 @@ dissect_payload(tvbuff_t *payload_tvb, packet_info *pinfo, proto_tree *tree, gui
high_port = pinfo->destport;
}
if (low_port != 0 &&
dissector_try_uint(sctp_port_dissector_table, low_port, payload_tvb, pinfo, tree))
dissector_try_uint_new(sctp_port_dissector_table, low_port, payload_tvb, pinfo, tree, TRUE, GUINT_TO_POINTER(ppi)))
return TRUE;
if (high_port != 0 &&
dissector_try_uint(sctp_port_dissector_table, high_port, payload_tvb, pinfo, tree))
dissector_try_uint_new(sctp_port_dissector_table, high_port, payload_tvb, pinfo, tree, TRUE, GUINT_TO_POINTER(ppi)))
return TRUE;
if (!try_heuristic_first) {
/* do lookup with the heuristic subdissector table */
if (dissector_try_heuristic(sctp_heur_subdissector_list, payload_tvb, pinfo, tree, NULL))
if (dissector_try_heuristic(sctp_heur_subdissector_list, payload_tvb, pinfo, tree, GUINT_TO_POINTER(ppi)))
return TRUE;
}
}

View File

@ -176,7 +176,6 @@ typedef struct _packet_info {
tvbuff_t *gssapi_decrypted_tvb;
gboolean gssapi_data_encrypted;
guint32 ppid; /**< SCTP PPI of current DATA chunk */
/** This is a valid PPID, but we use it to mark the end of the list */
#define LAST_PPID 0xffffffff
guint32 ppids[MAX_NUMBER_OF_PPIDS]; /**< The first NUMBER_OF_PPIDS PPIDS which are present