diff options
author | Michael Mann <mmann78@netscape.net> | 2013-11-10 03:20:04 +0000 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2013-11-10 03:20:04 +0000 |
commit | af0819f942fc85919fe9e81a9e990b0f9bf50ca2 (patch) | |
tree | c9f62d5848425f56a87583227b0672dbf1787c83 /epan/dissectors/packet-rpc.c | |
parent | 2965a6bf250609ee3536ebf9fbc44864b55f6931 (diff) |
Add data parameter to dissect_function_t in vsff structure. The intention here is to use it to replace some pinfo->private_data.
I didn't realize how expansive this change would be, so committing it now before replacing the pinfo->private_data, so if something needs to be reverted, all of this is not lost.
svn path=/trunk/; revision=53213
Diffstat (limited to 'epan/dissectors/packet-rpc.c')
-rw-r--r-- | epan/dissectors/packet-rpc.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/epan/dissectors/packet-rpc.c b/epan/dissectors/packet-rpc.c index a6b98a3b70..cb01516ecc 100644 --- a/epan/dissectors/packet-rpc.c +++ b/epan/dissectors/packet-rpc.c @@ -636,7 +636,7 @@ dissect_rpc_opaque_data(tvbuff_t *tvb, int offset, opaque_tvb = tvb_new_subset(tvb, data_offset, string_length_copy, string_length); - return (*dissect_it)(opaque_tvb, offset, pinfo, tree); + return (*dissect_it)(opaque_tvb, offset, pinfo, tree, NULL); } @@ -776,7 +776,7 @@ dissect_rpc_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, offset, 4, value_follows); offset += 4; if (value_follows == 1) { - offset = rpc_list_dissector(tvb, offset, pinfo, tree); + offset = rpc_list_dissector(tvb, offset, pinfo, tree, NULL); } else { break; @@ -814,7 +814,7 @@ dissect_rpc_array(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, hf_rpc_array_len, offset); while (num--) { - offset = rpc_array_dissector(tvb, offset, pinfo, lock_tree); + offset = rpc_array_dissector(tvb, offset, pinfo, lock_tree, NULL); } proto_item_set_end(lock_item, tvb, offset); @@ -1425,7 +1425,8 @@ dissect_auth_gssapi_data(tvbuff_t *tvb, proto_tree *tree, int offset) static int call_dissect_function(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, - int offset, dissect_function_t* dissect_function, const char *progname) + int offset, dissect_function_t* dissect_function, const char *progname, + rpc_call_info_value *rpc_call) { const char *saved_proto; @@ -1437,7 +1438,7 @@ call_dissect_function(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, pinfo->current_proto = progname; /* call the dissector for the next level */ - offset = dissect_function(tvb, offset, pinfo, tree); + offset = dissect_function(tvb, offset, pinfo, tree, rpc_call); /* restore the protocol name */ pinfo->current_proto = saved_proto; @@ -1451,7 +1452,7 @@ static int dissect_rpc_authgss_integ_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, dissect_function_t* dissect_function, - const char *progname) + const char *progname, rpc_call_info_value *rpc_call) { guint32 length, rounded_length, seq; @@ -1474,7 +1475,7 @@ dissect_rpc_authgss_integ_data(tvbuff_t *tvb, packet_info *pinfo, if (dissect_function != NULL) { /* offset = */ call_dissect_function(tvb, pinfo, gtree, offset, - dissect_function, progname); + dissect_function, progname, rpc_call); } offset += rounded_length - 4; offset = dissect_rpc_authgss_token(tvb, tree, offset, pinfo, hf_rpc_authgss_checksum); @@ -1669,7 +1670,7 @@ dissect_rpc_indir_call(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, /* Dissect the arguments */ offset = call_dissect_function(tvb, pinfo, tree, offset, - dissect_function, NULL); + dissect_function, NULL, rpc_call); return offset; } @@ -1805,7 +1806,7 @@ dissect_rpc_indir_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, /* Dissect the return value */ offset = call_dissect_function(tvb, pinfo, tree, offset, - dissect_function, NULL); + dissect_function, NULL, rpc_call); return offset; } @@ -2752,7 +2753,7 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, * payload. */ offset = call_dissect_function(tvb, pinfo, ptree, offset, - dissect_function, progname); + dissect_function, progname, rpc_call); break; case FLAVOR_GSSAPI_NO_INFO: @@ -2790,13 +2791,13 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, offset = call_dissect_function(tvb, pinfo, ptree, offset, dissect_function, - progname); + progname, rpc_call); } else if (gss_svc == RPCSEC_GSS_SVC_INTEGRITY) { offset = dissect_rpc_authgss_integ_data(tvb, pinfo, ptree, offset, dissect_function, - progname); + progname, rpc_call); } else if (gss_svc == RPCSEC_GSS_SVC_PRIVACY) { if (pinfo->gssapi_decrypted_tvb) { @@ -2804,7 +2805,7 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, pinfo->gssapi_decrypted_tvb, pinfo, ptree, 4, dissect_function, - progname); + progname, rpc_call); offset = tvb_length(pinfo->gssapi_decrypted_tvb); } } |