diff options
author | Guy Harris <guy@alum.mit.edu> | 2016-09-18 18:48:50 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2016-09-19 02:51:13 +0000 |
commit | d7fe514fc05e95e3a99fd211768de5abdc3f6486 (patch) | |
tree | 68b3e2a24ee11c7dd223089bc9a21ac9ccae302b /epan/dissectors/packet-dcerpc.c | |
parent | 630b64613567c268b2b08966707c81d3ec8661a5 (diff) |
Improve support for single-character fields and filter expressions.
Add an FT_CHAR type, which is like FT_UINT8 except that the value is
displayed as a C-style character constant.
Allow use of C-style character constants in filter expressions; they can
be used in comparisons with all integral types, and in "contains"
operators.
Use that type for some fields that appear (based on the way they're
displayed, or on the use of C-style character constants in their
value_string tables) to be 1-byte characters rather than 8-bit numbers.
Change-Id: I39a9f0dda0bd7f4fa02a9ca8373216206f4d7135
Reviewed-on: https://code.wireshark.org/review/17787
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'epan/dissectors/packet-dcerpc.c')
-rw-r--r-- | epan/dissectors/packet-dcerpc.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/epan/dissectors/packet-dcerpc.c b/epan/dissectors/packet-dcerpc.c index d4c0d11b39..4029904ff4 100644 --- a/epan/dissectors/packet-dcerpc.c +++ b/epan/dissectors/packet-dcerpc.c @@ -2042,6 +2042,26 @@ dcerpcstat_param(register_srt_t* srt, const char* opt_arg, char** err) */ int +dissect_dcerpc_char(tvbuff_t *tvb, gint offset, packet_info *pinfo _U_, + proto_tree *tree, guint8 *drep, + int hfindex, guint8 *pdata) +{ + guint8 data; + + /* + * XXX - fix to handle EBCDIC if we ever support EBCDIC FT_CHAR. + */ + data = tvb_get_guint8(tvb, offset); + if (hfindex != -1) { + proto_tree_add_item(tree, hfindex, tvb, offset, 1, ENC_ASCII|DREP_ENC_INTEGER(drep)); + } + if (pdata) + *pdata = data; + tvb_ensure_bytes_exist(tvb, offset, 1); + return offset + 1; +} + +int dissect_dcerpc_uint8(tvbuff_t *tvb, gint offset, packet_info *pinfo _U_, proto_tree *tree, guint8 *drep, int hfindex, guint8 *pdata) |