diff options
author | Guy Harris <guy@alum.mit.edu> | 2011-09-22 03:10:30 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2011-09-22 03:10:30 +0000 |
commit | fd2f8183537eb146960d864bf6b890b2dbc01a10 (patch) | |
tree | 65569699040f312fa6b9083fa6336dfc9c23faea /epan/dissectors | |
parent | ad1efb6b9c4c2c50289d7264d6ae79afcb1ae7b4 (diff) |
Use ENC_ values in proto_tree_add_item() calls.
In the AgentX dissector, make the "flags" arguments guint8, to match
what's passed in.
In the AIM dissector, use val_to_str() in col_add_str() calls - it gives
the same result if there's a match, and puts a note in the Info column
if there isn't, and is less complicated.
In the AJP13 dissector:
update the URL for the protocol documentation;
add #defines for message types, and use them;
for "enumerated data type" fields, make the fields numerical
rather than strings and give them the value_string tables;
get rid of col_check() calls;
make a Boolean item an FT_BOOLEAN.
svn path=/trunk/; revision=39085
Diffstat (limited to 'epan/dissectors')
-rw-r--r-- | epan/dissectors/packet-afs.c | 10 | ||||
-rw-r--r-- | epan/dissectors/packet-agentx.c | 90 | ||||
-rw-r--r-- | epan/dissectors/packet-aim-location.c | 12 | ||||
-rw-r--r-- | epan/dissectors/packet-aim-signon.c | 6 | ||||
-rw-r--r-- | epan/dissectors/packet-aim-ssi.c | 38 | ||||
-rw-r--r-- | epan/dissectors/packet-aim-userlookup.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-aim.c | 80 | ||||
-rw-r--r-- | epan/dissectors/packet-ajp13.c | 147 |
8 files changed, 190 insertions, 195 deletions
diff --git a/epan/dissectors/packet-afs.c b/epan/dissectors/packet-afs.c index 61aee1bce6..05e23d6cbb 100644 --- a/epan/dissectors/packet-afs.c +++ b/epan/dissectors/packet-afs.c @@ -347,13 +347,13 @@ static gint ett_afs_vldb_flags = -1; /* Output a unsigned integer, stored into field 'field' Assumes it is in network byte order, converts to host before using */ #define OUT_UINT64(field) \ - proto_tree_add_item(tree, field, tvb, offset, 8, FALSE); \ + proto_tree_add_item(tree, field, tvb, offset, 8, ENC_BIG_ENDIAN); \ offset += 8; /* Output a unsigned integer, stored into field 'field' Assumes it is in network byte order, converts to host before using */ #define OUT_INT64(field) \ - proto_tree_add_item(tree, field, tvb, offset, 8, FALSE); \ + proto_tree_add_item(tree, field, tvb, offset, 8, ENC_BIG_ENDIAN); \ offset += 8; /* Output a unsigned integer, stored into field 'field' @@ -418,7 +418,7 @@ static gint ett_afs_vldb_flags = -1; i_orxs = tvb_get_ntohl(tvb, offset); \ len_orxs = ((i_orxs+4-1)/4)*4 + 4; \ proto_tree_add_item(tree, field, tvb, offset-4, len_orxs, \ - FALSE); \ + ENC_ASCII|ENC_BIG_ENDIAN); \ offset += len_orxs; \ } @@ -768,7 +768,7 @@ static gint ett_afs_vldb_flags = -1; /* Raw data */ #define OUT_BYTES(field, bytes) \ - proto_tree_add_item(tree, field, tvb, offset, bytes, FALSE);\ + proto_tree_add_item(tree, field, tvb, offset, bytes, ENC_NA);\ offset += bytes; @@ -1597,7 +1597,7 @@ dissect_afs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) if (tree) { ti = proto_tree_add_item(tree, proto_afs, tvb, offset, -1, - FALSE); + ENC_NA); afs_tree = proto_item_add_subtree(ti, ett_afs); proto_tree_add_text(afs_tree, tvb, 0, 0, diff --git a/epan/dissectors/packet-agentx.c b/epan/dissectors/packet-agentx.c index 68b68c5331..fa93946ed7 100644 --- a/epan/dissectors/packet-agentx.c +++ b/epan/dissectors/packet-agentx.c @@ -297,7 +297,7 @@ enum OID_USAGE { OID_START_RANGE, OID_END_RANGE, OID_EXACT }; tvb_get_letohs(tvb, offset) static int -dissect_octet_string(tvbuff_t *tvb, proto_tree *tree, int offset, char flags) +dissect_octet_string(tvbuff_t *tvb, proto_tree *tree, int offset, guint8 flags) { guint32 n_oct, p_noct; @@ -306,7 +306,11 @@ dissect_octet_string(tvbuff_t *tvb, proto_tree *tree, int offset, char flags) p_noct = PADDING(n_oct); proto_tree_add_uint(tree, hf_ostring_len, tvb, offset, 4, n_oct); - proto_tree_add_item(tree, hf_ostring, tvb, offset + 4, n_oct, FALSE); + /* + * XXX - an "octet string" is not necessarily a text string, so + * having hf_ostring be FT_STRING is not necessarily appropriate. + */ + proto_tree_add_item(tree, hf_ostring, tvb, offset + 4, n_oct, ENC_ASCII|ENC_BIG_ENDIAN); return p_noct + 4; } @@ -333,7 +337,7 @@ convert_oid_to_str(guint32 *oid, int len, char* str, int slen, char prefix) } static int -dissect_object_id(tvbuff_t *tvb, proto_tree *tree, int offset, char flags, enum OID_USAGE oid_usage) +dissect_object_id(tvbuff_t *tvb, proto_tree *tree, int offset, guint8 flags, enum OID_USAGE oid_usage) { guint8 n_subid; guint8 prefix; @@ -381,7 +385,7 @@ dissect_object_id(tvbuff_t *tvb, proto_tree *tree, int offset, char flags, enum } static int -dissect_search_range(tvbuff_t *tvb, proto_tree *tree, int start_offset, char flags, guint8 pdu_type) +dissect_search_range(tvbuff_t *tvb, proto_tree *tree, int start_offset, guint8 flags, guint8 pdu_type) { int offset = start_offset; offset += dissect_object_id(tvb, tree, offset, flags, (pdu_type == AGENTX_GET_PDU) ? OID_EXACT : OID_START_RANGE); @@ -391,27 +395,27 @@ dissect_search_range(tvbuff_t *tvb, proto_tree *tree, int start_offset, char fla } static int -dissect_val64(tvbuff_t *tvb, proto_tree *tree, int offset, char flags) +dissect_val64(tvbuff_t *tvb, proto_tree *tree, int offset, guint8 flags) { - gboolean little_endian = !(flags & NETWORK_BYTE_ORDER); + guint encoding = (flags & NETWORK_BYTE_ORDER) ? ENC_BIG_ENDIAN : ENC_LITTLE_ENDIAN; - proto_tree_add_item(tree, hf_val64, tvb, offset, 8, little_endian); + proto_tree_add_item(tree, hf_val64, tvb, offset, 8, encoding); return 8; } static int -dissect_val32(tvbuff_t *tvb, proto_tree *tree, int offset, char flags) +dissect_val32(tvbuff_t *tvb, proto_tree *tree, int offset, guint8 flags) { - gboolean little_endian = !(flags & NETWORK_BYTE_ORDER); + guint encoding = (flags & NETWORK_BYTE_ORDER) ? ENC_BIG_ENDIAN : ENC_LITTLE_ENDIAN; - proto_tree_add_item(tree, hf_val32, tvb, offset, 4, little_endian); + proto_tree_add_item(tree, hf_val32, tvb, offset, 4, encoding); return 4; } static int -dissect_varbind(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags) +dissect_varbind(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags) { guint16 vtag; int tlen; @@ -462,23 +466,21 @@ dissect_varbind(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags } static void -dissect_response_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags) +dissect_response_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags) { proto_item* item; proto_tree* subtree; - gboolean little_endian = !(flags & NETWORK_BYTE_ORDER); + guint encoding = (flags & NETWORK_BYTE_ORDER) ? ENC_BIG_ENDIAN : ENC_LITTLE_ENDIAN; guint32 r_uptime; item = proto_tree_add_text(tree, tvb, offset, len, "Response-PDU"); subtree = proto_item_add_subtree(item, ett_response); - r_uptime = little_endian ? \ - tvb_get_letohl(tvb, offset) : tvb_get_ntohl(tvb, offset); - + NORLEL(flags, r_uptime, tvb, offset); proto_tree_add_uint_format(subtree, hf_resp_uptime, tvb, offset, 4, r_uptime, "sysUptime: %s", time_msecs_to_str(r_uptime)); - proto_tree_add_item(subtree, hf_resp_error, tvb, offset + 4, 2, little_endian); - proto_tree_add_item(subtree, hf_resp_index, tvb, offset + 6, 2, little_endian); + proto_tree_add_item(subtree, hf_resp_error, tvb, offset + 4, 2, encoding); + proto_tree_add_item(subtree, hf_resp_index, tvb, offset + 6, 2, encoding); offset += 8; len += PDU_HDR_LEN; @@ -488,7 +490,7 @@ dissect_response_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char } static void -dissect_getnext_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags) +dissect_getnext_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags) { proto_item* item; proto_tree* subtree; @@ -508,7 +510,7 @@ dissect_getnext_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char f } static void -dissect_get_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags) +dissect_get_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags) { proto_item* item; proto_tree* subtree; @@ -528,11 +530,11 @@ dissect_get_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags } static void -dissect_getbulk_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags) +dissect_getbulk_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags) { proto_item* item; proto_tree* subtree; - gboolean little_endian = !(flags & NETWORK_BYTE_ORDER); + guint encoding = (flags & NETWORK_BYTE_ORDER) ? ENC_BIG_ENDIAN : ENC_LITTLE_ENDIAN; item = proto_tree_add_text(tree, tvb, offset, len, "GetBulk-PDU"); subtree = proto_item_add_subtree(item, ett_getbulk); @@ -542,8 +544,8 @@ dissect_getbulk_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char f offset += dissect_octet_string(tvb, subtree, offset, flags); } - proto_tree_add_item(subtree, hf_gbulk_nrepeat, tvb, offset, 2, little_endian); - proto_tree_add_item(subtree, hf_gbulk_mrepeat, tvb, offset + 2, 2, little_endian); + proto_tree_add_item(subtree, hf_gbulk_nrepeat, tvb, offset, 2, encoding); + proto_tree_add_item(subtree, hf_gbulk_mrepeat, tvb, offset + 2, 2, encoding); offset+=4; while(len >= offset) { @@ -552,7 +554,7 @@ dissect_getbulk_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char f } static int -dissect_open_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags) +dissect_open_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags) { proto_item* item; proto_tree* subtree; @@ -595,12 +597,12 @@ dissect_close_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len) static int -dissect_register_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags) +dissect_register_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags) { proto_item* item; proto_tree* subtree; - gboolean little_endian = !(flags & NETWORK_BYTE_ORDER); + guint encoding = (flags & NETWORK_BYTE_ORDER) ? ENC_BIG_ENDIAN : ENC_LITTLE_ENDIAN; item = proto_tree_add_text(tree, tvb, offset, len, "Register-PDU"); subtree = proto_item_add_subtree(item, ett_register); @@ -610,9 +612,9 @@ dissect_register_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char offset += dissect_octet_string(tvb, subtree, offset, flags); } - proto_tree_add_item(subtree, hf_reg_timeout, tvb, offset, 1, FALSE); - proto_tree_add_item(subtree, hf_reg_prio, tvb, offset+1, 1, FALSE); - proto_tree_add_item(subtree, hf_reg_rsid, tvb, offset+2, 1, FALSE); + proto_tree_add_item(subtree, hf_reg_timeout, tvb, offset, 1, encoding); + proto_tree_add_item(subtree, hf_reg_prio, tvb, offset+1, 1, encoding); + proto_tree_add_item(subtree, hf_reg_rsid, tvb, offset+2, 1, encoding); offset+=4; /* Region */ @@ -622,7 +624,7 @@ dissect_register_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char len += PDU_HDR_LEN; if(len > offset) { /* Upper bound (opt) */ - proto_tree_add_item(subtree, hf_reg_ubound, tvb, offset, 4, little_endian); + proto_tree_add_item(subtree, hf_reg_ubound, tvb, offset, 4, encoding); offset += 4; } return offset; @@ -630,11 +632,11 @@ dissect_register_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char static int -dissect_unregister_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags) +dissect_unregister_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags) { proto_item* item; proto_tree* subtree; - gboolean little_endian = !(flags & NETWORK_BYTE_ORDER); + guint encoding = (flags & NETWORK_BYTE_ORDER) ? ENC_BIG_ENDIAN : ENC_LITTLE_ENDIAN; item = proto_tree_add_text(tree, tvb, offset, len, "Unregister-PDU"); subtree = proto_item_add_subtree(item, ett_unregister); @@ -644,9 +646,9 @@ dissect_unregister_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, cha offset += dissect_octet_string(tvb, subtree, offset, flags); } - proto_tree_add_item(subtree, hf_unreg_timeout, tvb, offset, 1, FALSE); - proto_tree_add_item(subtree, hf_unreg_prio, tvb, offset+1, 1, FALSE); - proto_tree_add_item(subtree, hf_unreg_rsid, tvb, offset+2, 1, FALSE); + proto_tree_add_item(subtree, hf_unreg_timeout, tvb, offset, 1, encoding); + proto_tree_add_item(subtree, hf_unreg_prio, tvb, offset+1, 1, encoding); + proto_tree_add_item(subtree, hf_unreg_rsid, tvb, offset+2, 1, encoding); offset+=4; /* Region */ @@ -655,7 +657,7 @@ dissect_unregister_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, cha len += PDU_HDR_LEN; if(len > offset) { /* Upper bound (opt) */ - proto_tree_add_item(subtree, hf_unreg_ubound, tvb, offset, 4, little_endian); + proto_tree_add_item(subtree, hf_unreg_ubound, tvb, offset, 4, encoding); offset += 4; } @@ -663,7 +665,7 @@ dissect_unregister_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, cha } static void -dissect_testset_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags) +dissect_testset_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags) { proto_item* item; proto_tree* subtree; @@ -682,7 +684,7 @@ dissect_testset_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char f } static void -dissect_notify_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags) +dissect_notify_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags) { proto_item* item; proto_tree* subtree; @@ -701,7 +703,7 @@ dissect_notify_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char fl } static int -dissect_ping_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags) +dissect_ping_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags) { proto_item* item; proto_tree* subtree; @@ -717,7 +719,7 @@ dissect_ping_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flag } static void -dissect_idx_alloc_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags) +dissect_idx_alloc_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags) { proto_item* item; proto_tree* subtree; @@ -737,7 +739,7 @@ dissect_idx_alloc_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char static void -dissect_idx_dealloc_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags) +dissect_idx_dealloc_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags) { proto_item* item; proto_tree* subtree; @@ -756,7 +758,7 @@ dissect_idx_dealloc_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, ch } static int -dissect_add_caps_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags) +dissect_add_caps_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags) { proto_item* item; proto_tree* subtree; @@ -777,7 +779,7 @@ dissect_add_caps_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char } static int -dissect_rem_caps_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, char flags) +dissect_rem_caps_pdu(tvbuff_t *tvb, proto_tree *tree, int offset, int len, guint8 flags) { proto_item* item; proto_tree* subtree; diff --git a/epan/dissectors/packet-aim-location.c b/epan/dissectors/packet-aim-location.c index d3e1ed4e2f..9032e0133f 100644 --- a/epan/dissectors/packet-aim-location.c +++ b/epan/dissectors/packet-aim-location.c @@ -129,16 +129,16 @@ static int dissect_aim_snac_location_request_user_information(tvbuff_t *tvb, /* Info Type */ proto_tree_add_item(tree, hf_aim_snac_location_request_user_info_infotype, - tvb, offset, 2, FALSE); + tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; /* Buddy Name length */ buddyname_length = tvb_get_guint8(tvb, offset); - proto_tree_add_item(tree, hf_aim_buddyname_len, tvb, offset, 1, FALSE); + proto_tree_add_item(tree, hf_aim_buddyname_len, tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1; /* Buddy name */ - proto_tree_add_item(tree, hf_aim_buddyname, tvb, offset, buddyname_length, FALSE); + proto_tree_add_item(tree, hf_aim_buddyname, tvb, offset, buddyname_length, ENC_ASCII|ENC_BIG_ENDIAN); offset += buddyname_length; return offset; @@ -153,15 +153,15 @@ static int dissect_aim_snac_location_user_information(tvbuff_t *tvb, /* Buddy Name length */ buddyname_length = tvb_get_guint8(tvb, offset); - proto_tree_add_item(tree, hf_aim_buddyname_len, tvb, offset, 1, FALSE); + proto_tree_add_item(tree, hf_aim_buddyname_len, tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1; /* Buddy name */ - proto_tree_add_item(tree, hf_aim_buddyname, tvb, offset, buddyname_length, FALSE); + proto_tree_add_item(tree, hf_aim_buddyname, tvb, offset, buddyname_length, ENC_ASCII|ENC_BIG_ENDIAN); offset += buddyname_length; /* Warning level */ - proto_tree_add_item(tree, hf_aim_userinfo_warninglevel, tvb, offset, 2, FALSE); + proto_tree_add_item(tree, hf_aim_userinfo_warninglevel, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; offset = dissect_aim_tlv_list(tvb, pinfo, offset, tree, aim_onlinebuddy_tlvs); diff --git a/epan/dissectors/packet-aim-signon.c b/epan/dissectors/packet-aim-signon.c index f15139101b..f47c26cced 100644 --- a/epan/dissectors/packet-aim-signon.c +++ b/epan/dissectors/packet-aim-signon.c @@ -80,7 +80,7 @@ static int dissect_aim_snac_signon_signon(tvbuff_t *tvb, packet_info *pinfo, guchar buddyname[MAX_BUDDYNAME_LENGTH + 1]; /* Info Type */ - proto_tree_add_item(tree, hf_aim_infotype, tvb, offset, 2, FALSE); + proto_tree_add_item(tree, hf_aim_infotype, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; /* Unknown */ @@ -108,11 +108,11 @@ static int dissect_aim_snac_signon_signon_reply(tvbuff_t *tvb, /* Logon Challenge Length */ challenge_length = tvb_get_ntohs(tvb, offset); - proto_tree_add_item(tree, hf_aim_signon_challenge_len, tvb, offset, 2, FALSE); + proto_tree_add_item(tree, hf_aim_signon_challenge_len, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; /* Challenge */ - proto_tree_add_item(tree, hf_aim_signon_challenge, tvb, offset, challenge_length, FALSE); + proto_tree_add_item(tree, hf_aim_signon_challenge, tvb, offset, challenge_length, ENC_ASCII|ENC_BIG_ENDIAN); offset += challenge_length; return offset; } diff --git a/epan/dissectors/packet-aim-ssi.c b/epan/dissectors/packet-aim-ssi.c index fcb6829efa..490726efe3 100644 --- a/epan/dissectors/packet-aim-ssi.c +++ b/epan/dissectors/packet-aim-ssi.c @@ -112,31 +112,31 @@ static int dissect_ssi_item(tvbuff_t *tvb, packet_info *pinfo _U_, int offset, p /* Buddy Name Length */ buddyname_length = tvb_get_ntohs(tvb, offset); - proto_tree_add_item(ssi_entry, hf_aim_fnac_subtype_ssi_buddyname_len, tvb, offset, 2, FALSE); + proto_tree_add_item(ssi_entry, hf_aim_fnac_subtype_ssi_buddyname_len, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; /* Buddy Name */ if (buddyname_length > 0) { - proto_tree_add_item(ssi_entry, hf_aim_fnac_subtype_ssi_buddyname, tvb, offset, buddyname_length, FALSE); + proto_tree_add_item(ssi_entry, hf_aim_fnac_subtype_ssi_buddyname, tvb, offset, buddyname_length, ENC_ASCII|ENC_BIG_ENDIAN); offset += buddyname_length; } /* Buddy group ID */ - proto_tree_add_item(ssi_entry, hf_aim_fnac_subtype_ssi_gid, tvb, offset, 2, FALSE); + proto_tree_add_item(ssi_entry, hf_aim_fnac_subtype_ssi_gid, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; /* Buddy ID */ - proto_tree_add_item(ssi_entry, hf_aim_fnac_subtype_ssi_bid, tvb, offset, 2, FALSE); + proto_tree_add_item(ssi_entry, hf_aim_fnac_subtype_ssi_bid, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; /* Buddy Type */ - proto_tree_add_item(ssi_entry, hf_aim_fnac_subtype_ssi_type, tvb, offset, 2, FALSE); + proto_tree_add_item(ssi_entry, hf_aim_fnac_subtype_ssi_type, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; /* Size of the following TLV in bytes (as opposed to the number of TLV objects in the chain) */ tlv_len = tvb_get_ntohs(tvb, offset); - proto_tree_add_item(ssi_entry, hf_aim_fnac_subtype_ssi_tlvlen, tvb, offset, 2, FALSE); + proto_tree_add_item(ssi_entry, hf_aim_fnac_subtype_ssi_tlvlen, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; endoffset = offset; @@ -192,7 +192,7 @@ static int dissect_aim_snac_ssi_time_and_items_num(tvbuff_t *tvb, packet_info *p offset += 4; /* get number of SSI items */ - proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_numitems, tvb, offset, 2, FALSE); + proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_numitems, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; return offset; @@ -208,11 +208,11 @@ static int dissect_aim_snac_ssi_list(tvbuff_t *tvb, packet_info *pinfo _U_, prot gint ssi_entry_size; /* SSI Version */ - proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_version, tvb, offset, 1, FALSE); + proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_version, tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1; /* Number of items */ - proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_numitems, tvb, offset, 2, FALSE); + proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_numitems, tvb, offset, 2, ENC_BIG_ENDIAN); num_items = tvb_get_ntohs(tvb, offset); offset += 2; @@ -237,28 +237,28 @@ static int dissect_aim_snac_ssi_auth_request(tvbuff_t *tvb, packet_info *pinfo _ /* get buddy length (1 byte) */ guint8 buddyname_length = tvb_get_guint8(tvb, offset); - proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_buddyname_len8, tvb, offset, 1, FALSE); + proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_buddyname_len8, tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1; /* show buddy name */ if (buddyname_length > 0) { - proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_buddyname, tvb, offset, buddyname_length, FALSE); + proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_buddyname, tvb, offset, buddyname_length, ENC_ASCII|ENC_BIG_ENDIAN); offset += buddyname_length; } /* get reason message length (2 bytes) */ reason_length = tvb_get_ntohs(tvb, offset); - proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_reason_str_len, tvb, offset, 2, FALSE); + proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_reason_str_len, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; /* show reason message if present */ if (reason_length > 0) { - proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_reason_str, tvb, offset, reason_length, FALSE); + proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_reason_str, tvb, offset, reason_length, ENC_ASCII|ENC_BIG_ENDIAN); offset += reason_length; } /* unknown (always 0x0000 ???) */ /*unknown = tvb_get_ntohs(tvb, offset);*/ - proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_grant_auth_unkn, tvb, offset, 2, FALSE); + proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_grant_auth_unkn, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; return offset; @@ -271,27 +271,27 @@ static int dissect_aim_snac_ssi_auth_reply(tvbuff_t *tvb, packet_info *pinfo _U_ /* get buddy length (1 byte) */ guint8 buddyname_length = tvb_get_guint8(tvb, offset); - proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_buddyname_len8, tvb, offset, 1, FALSE); + proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_buddyname_len8, tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1; /* show buddy name */ if (buddyname_length > 0) { - proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_buddyname, tvb, offset, buddyname_length, FALSE); + proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_buddyname, tvb, offset, buddyname_length, ENC_ASCII|ENC_BIG_ENDIAN); offset += buddyname_length; } /* accept/reject authorization flag */ - proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_allow_auth, tvb, offset, 1, FALSE); + proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_allow_auth, tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1; /* get reason message length (2 bytes) */ reason_length = tvb_get_ntohs(tvb, offset); - proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_reason_str_len, tvb, offset, 2, FALSE); + proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_reason_str_len, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; /* show reason message if present */ if (reason_length > 0) { - proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_reason_str, tvb, offset, reason_length, FALSE); + proto_tree_add_item(tree, hf_aim_fnac_subtype_ssi_reason_str, tvb, offset, reason_length, ENC_ASCII|ENC_BIG_ENDIAN); offset += reason_length; } diff --git a/epan/dissectors/packet-aim-userlookup.c b/epan/dissectors/packet-aim-userlookup.c index 0466b3b1d5..fa6850d571 100644 --- a/epan/dissectors/packet-aim-userlookup.c +++ b/epan/dissectors/packet-aim-userlookup.c @@ -48,7 +48,7 @@ static gint ett_aim_userlookup = -1; static int dissect_aim_userlookup_search(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *lookup_tree) { - proto_tree_add_item(lookup_tree, hf_aim_userlookup_email, tvb, 0, tvb_length(tvb), FALSE); + proto_tree_add_item(lookup_tree, hf_aim_userlookup_email, tvb, 0, tvb_length(tvb), ENC_ASCII|ENC_BIG_ENDIAN); return tvb_length(tvb); } diff --git a/epan/dissectors/packet-aim.c b/epan/dissectors/packet-aim.c index 5273846564..f9f3e48761 100644 --- a/epan/dissectors/packet-aim.c +++ b/epan/dissectors/packet-aim.c @@ -611,26 +611,23 @@ dissect_aim_newconn(tvbuff_t *tvb, packet_info *pinfo, int offset, col_set_str(pinfo->cinfo, COL_INFO, "New Connection"); if (tvb_length_remaining(tvb, offset) > 0) { - proto_tree_add_item(tree, hf_aim_version, tvb, offset, 4, FALSE); + proto_tree_add_item(tree, hf_aim_version, tvb, offset, 4, ENC_NA); offset+=4; offset = dissect_aim_tlv_sequence(tvb, pinfo, offset, tree, aim_client_tlvs); } if (tvb_length_remaining(tvb, offset) > 0) - proto_tree_add_item(tree, hf_aim_data, tvb, offset, -1, FALSE); + proto_tree_add_item(tree, hf_aim_data, tvb, offset, -1, ENC_NA); } int dissect_aim_snac_error(tvbuff_t *tvb, packet_info *pinfo, proto_tree *aim_tree) { - const char *name; - - if ((name = match_strval(tvb_get_ntohs(tvb, 0), aim_snac_errors)) != NULL) { - col_add_str(pinfo->cinfo, COL_INFO, name); - } + col_add_str(pinfo->cinfo, COL_INFO, + val_to_str(tvb_get_ntohs(tvb, 0), aim_snac_errors, "Unknown SNAC error 0x%02x")); - proto_tree_add_item (aim_tree, hf_aim_snac_error, tvb, 0, 2, FALSE); + proto_tree_add_item (aim_tree, hf_aim_snac_error, tvb, 0, 2, ENC_BIG_ENDIAN); return dissect_aim_tlv_sequence(tvb, pinfo, 2, aim_tree, aim_client_tlvs); } @@ -638,13 +635,10 @@ dissect_aim_snac_error(tvbuff_t *tvb, packet_info *pinfo, proto_tree *aim_tree) int dissect_aim_ssi_result(tvbuff_t *tvb, packet_info *pinfo, proto_tree *aim_tree) { - const char *name; - - if ((name = match_strval(tvb_get_ntohs(tvb, 0), aim_ssi_result_codes)) != NULL) { - col_add_str(pinfo->cinfo, COL_INFO, name); - } + col_add_str(pinfo->cinfo, COL_INFO, + val_to_str(tvb_get_ntohs(tvb, 0), aim_ssi_result_codes, "Unknown SSI result code 0x%02x")); - proto_tree_add_item (aim_tree, hf_aim_ssi_result_code, tvb, 0, 2, FALSE); + proto_tree_add_item (aim_tree, hf_aim_ssi_result_code, tvb, 0, 2, ENC_BIG_ENDIAN); return 2; } @@ -655,7 +649,7 @@ dissect_aim_userinfo(tvbuff_t *tvb, packet_info *pinfo, { offset = dissect_aim_buddyname(tvb, pinfo, offset, tree); - proto_tree_add_item(tree, hf_aim_userinfo_warninglevel, tvb, offset, 2, FALSE); + proto_tree_add_item(tree, hf_aim_userinfo_warninglevel, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; return dissect_aim_tlv_list(tvb, pinfo, offset, tree, aim_onlinebuddy_tlvs); @@ -772,7 +766,7 @@ dissect_aim_snac(tvbuff_t *tvb, packet_info *pinfo, int offset, if(aim_tree && family != NULL) { - proto_item *ti = proto_tree_add_item(root_tree, family->proto_id, subtvb, 0, -1, FALSE); + proto_item *ti = proto_tree_add_item(root_tree, family->proto_id, subtvb, 0, -1, ENC_NA); family_tree = proto_item_add_subtree(ti, family->ett); if(subtype) proto_item_append_text(ti, ", %s", subtype->name); @@ -794,7 +788,7 @@ dissect_aim_flap_err(tvbuff_t *tvb, packet_info *pinfo, int offset, /* Show the undissected payload */ if (tvb_length_remaining(tvb, offset) > 0) - proto_tree_add_item(tree, hf_aim_data, tvb, offset, -1, FALSE); + proto_tree_add_item(tree, hf_aim_data, tvb, offset, -1, ENC_NA); } static void @@ -805,7 +799,7 @@ dissect_aim_keep_alive(tvbuff_t *tvb, packet_info *pinfo, int offset, /* Show the undissected payload */ if (tvb_length_remaining(tvb, offset) > 0) - proto_tree_add_item(tree, hf_aim_data, tvb, offset, -1, FALSE); + proto_tree_add_item(tree, hf_aim_data, tvb, offset, -1, ENC_NA); } static void @@ -825,7 +819,7 @@ dissect_aim_unknown_channel(tvbuff_t *tvb, packet_info *pinfo, int offset, /* Show the undissected payload */ if (tvb_length_remaining(tvb, offset) > 0) - proto_tree_add_item(tree, hf_aim_data, tvb, offset, -1, FALSE); + proto_tree_add_item(tree, hf_aim_data, tvb, offset, -1, ENC_NA); } int @@ -845,8 +839,8 @@ dissect_aim_buddyname(tvbuff_t *tvb, packet_info *pinfo _U_, int offset, "Buddy: %s", tvb_format_text(tvb, offset, buddyname_length)); buddy_tree = proto_item_add_subtree(ti, ett_aim_buddyname); - proto_tree_add_item(buddy_tree, hf_aim_buddyname_len, tvb, offset-1, 1, FALSE); - proto_tree_add_item(buddy_tree, hf_aim_buddyname, tvb, offset, buddyname_length, FALSE); + proto_tree_add_item(buddy_tree, hf_aim_buddyname_len, tvb, offset-1, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(buddy_tree, hf_aim_buddyname, tvb, offset, buddyname_length, ENC_ASCII|ENC_BIG_ENDIAN); } return offset+buddyname_length; @@ -1151,17 +1145,17 @@ dissect_aim_tlv_value_dcinfo(proto_item *ti, guint16 valueid _U_, tvbuff_t *tvb, proto_tree *dctree = proto_item_add_subtree(ti, ett_aim_dcinfo); - proto_tree_add_item(dctree, hf_aim_dcinfo_ip , tvb, offset, 4, FALSE); offset+=4; - proto_tree_add_item(dctree, hf_aim_dcinfo_tcpport, tvb, offset, 4, FALSE); offset+=4; - proto_tree_add_item(dctree, hf_aim_dcinfo_type, tvb, offset, 1, FALSE); offset+=1; - proto_tree_add_item(dctree, hf_aim_dcinfo_proto_version, tvb, offset, 2, FALSE); offset+=2; - proto_tree_add_item(dctree, hf_aim_dcinfo_auth_cookie, tvb, offset, 4, FALSE); offset+=2; - proto_tree_add_item(dctree, hf_aim_dcinfo_webport, tvb, offset, 4, FALSE); offset+=4; - proto_tree_add_item(dctree, hf_aim_dcinfo_client_future, tvb, offset, 4, FALSE); offset+=4; - proto_tree_add_item(dctree, hf_aim_dcinfo_last_info_update, tvb, offset, 4, FALSE); offset+=4; - proto_tree_add_item(dctree, hf_aim_dcinfo_last_ext_info_update, tvb, offset, 4, FALSE); offset+=4; - proto_tree_add_item(dctree, hf_aim_dcinfo_last_ext_status_update, tvb, offset, 4, FALSE); offset+=4; - proto_tree_add_item(dctree, hf_aim_dcinfo_unknown, tvb, offset, 2, FALSE); offset+=2; + proto_tree_add_item(dctree, hf_aim_dcinfo_ip , tvb, offset, 4, ENC_BIG_ENDIAN); offset+=4; + proto_tree_add_item(dctree, hf_aim_dcinfo_tcpport, tvb, offset, 4, ENC_BIG_ENDIAN); offset+=4; + proto_tree_add_item(dctree, hf_aim_dcinfo_type, tvb, offset, 1, ENC_BIG_ENDIAN); offset+=1; + proto_tree_add_item(dctree, hf_aim_dcinfo_proto_version, tvb, offset, 2, ENC_BIG_ENDIAN); offset+=2; + proto_tree_add_item(dctree, hf_aim_dcinfo_auth_cookie, tvb, offset, 4, ENC_NA); offset+=2; + proto_tree_add_item(dctree, hf_aim_dcinfo_webport, tvb, offset, 4, ENC_BIG_ENDIAN); offset+=4; + proto_tree_add_item(dctree, hf_aim_dcinfo_client_future, tvb, offset, 4, ENC_BIG_ENDIAN); offset+=4; + proto_tree_add_item(dctree, hf_aim_dcinfo_last_info_update, tvb, offset, 4, ENC_BIG_ENDIAN); offset+=4; + proto_tree_add_item(dctree, hf_aim_dcinfo_last_ext_info_update, tvb, offset, 4, ENC_BIG_ENDIAN); offset+=4; + proto_tree_add_item(dctree, hf_aim_dcinfo_last_ext_status_update, tvb, offset, 4, ENC_BIG_ENDIAN); offset+=4; + proto_tree_add_item(dctree, hf_aim_dcinfo_unknown, tvb, offset, 2, ENC_BIG_ENDIAN); offset+=2; return offset; } @@ -1251,25 +1245,25 @@ dissect_aim_tlv_value_messageblock (proto_item *ti, guint16 valueid _U_, tvbuff_ /* Features descriptor */ proto_tree_add_item(entry, hf_aim_messageblock_featuresdes, tvb, offset, - 2, FALSE); + 2, ENC_BIG_ENDIAN); offset += 2; /* Features Length */ featurelen = tvb_get_ntohs(tvb, offset); proto_tree_add_item(entry, hf_aim_messageblock_featureslen, tvb, offset, - 2, FALSE); + 2, ENC_BIG_ENDIAN); offset += 2; /* Features (should be expanded further @@@@@@@ ) */ proto_tree_add_item(entry, hf_aim_messageblock_features, tvb, offset, - featurelen, FALSE); + featurelen, ENC_NA); offset += featurelen; /* There can be multiple messages in this message block */ while (tvb_length_remaining(tvb, offset) > 0) { /* Info field */ proto_tree_add_item(entry, hf_aim_messageblock_info, tvb, - offset, 2, FALSE); + offset, 2, ENC_BIG_ENDIAN); offset += 2; /* Block length (includes charset and charsubset) */ @@ -1281,17 +1275,17 @@ dissect_aim_tlv_value_messageblock (proto_item *ti, guint16 valueid _U_, tvbuff_ break; } proto_tree_add_item(entry, hf_aim_messageblock_len, tvb, offset, - 2, FALSE); + 2, ENC_BIG_ENDIAN); offset += 2; /* Character set */ proto_tree_add_item(entry, hf_aim_messageblock_charset, tvb, - offset, 2, FALSE); + offset, 2, ENC_BIG_ENDIAN); offset += 2; /* Character subset */ proto_tree_add_item(entry, hf_aim_messageblock_charsubset, tvb, - offset, 2, FALSE); + offset, 2, ENC_BIG_ENDIAN); offset += 2; /* The actual message */ @@ -1299,7 +1293,7 @@ dissect_aim_tlv_value_messageblock (proto_item *ti, guint16 valueid _U_, tvbuff_ proto_item_set_text(ti, "Message: %s", format_text(buf, blocklen - 4)); proto_tree_add_item(entry, hf_aim_messageblock_message, tvb, - offset, blocklen-4, FALSE); + offset, blocklen-4, ENC_ASCII|ENC_BIG_ENDIAN); offset += tvb_length_remaining(tvb, offset); } @@ -1397,7 +1391,7 @@ dissect_aim_tlv_list(tvbuff_t *tvb, packet_info *pinfo, int offset, { guint16 i, tlv_count = tvb_get_ntohs(tvb, offset); - proto_tree_add_item(tree, hf_aim_tlvcount, tvb, offset, 2, FALSE); + proto_tree_add_item(tree, hf_aim_tlvcount, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; for(i = 0; i < tlv_count; i++) { @@ -1454,10 +1448,10 @@ dissect_aim_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* In the interest of speed, if "tree" is NULL, don't do any work not necessary to generate protocol tree items. */ if (tree) { - ti = proto_tree_add_item(tree, proto_aim, tvb, 0, -1, FALSE); + ti = proto_tree_add_item(tree, proto_aim, tvb, 0, -1, ENC_NA); aim_tree = proto_item_add_subtree(ti, ett_aim); proto_tree_add_uint(aim_tree, hf_aim_cmd_start, tvb, 0, 1, '*'); - proto_tree_add_item(aim_tree, hf_aim_channel, tvb, 1, 1, FALSE); + proto_tree_add_item(aim_tree, hf_aim_channel, tvb, 1, 1, ENC_BIG_ENDIAN); proto_tree_add_uint(aim_tree, hf_aim_seqno, tvb, 2, 2, hdr_sequence_no); proto_tree_add_uint(aim_tree, hf_aim_data_len, tvb, 4, 2, hdr_data_field_length); diff --git a/epan/dissectors/packet-ajp13.c b/epan/dissectors/packet-ajp13.c index ce9e647736..8b3981d8e3 100644 --- a/epan/dissectors/packet-ajp13.c +++ b/epan/dissectors/packet-ajp13.c @@ -40,8 +40,9 @@ /* IMPORTANT IMPLEMENTATION NOTES * - * You need to be looking at: jk/doc/AJP13.html in the - * jakarta-tomcat-connectors repository. + * You need to be looking at: + * + * http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html * * If you're a wireshark dissector guru, then you can skip the rest of * this. I'm writing it all down because I've written 3 dissectors so @@ -157,17 +158,24 @@ static const value_string rsp_header_codes[] = { }; +#define MTYPE_FORWARD_REQUEST 2 +#define MTYPE_SEND_BODY_CHUNK 3 +#define MTYPE_SEND_HEADERS 4 +#define MTYPE_END_RESPONSE 5 +#define MTYPE_GET_BODY_CHUNK 6 +#define MTYPE_SHUTDOWN 7 +#define MTYPE_CPONG 9 +#define MTYPE_CPING 10 + static const value_string mtype_codes[] = { - { 0, "BAD" }, - { 1, "BAD" }, - { 2, "FORWARD REQUEST" }, - { 3, "SEND BODY CHUNK" }, - { 4, "SEND HEADERS" }, - { 5, "END RESPONSE" }, - { 6, "GET BODY CHUNK" }, - { 7, "SHUTDOWN" }, - { 9, "CPONG" }, - {10, "CPING" }, + { MTYPE_FORWARD_REQUEST, "FORWARD REQUEST" }, + { MTYPE_SEND_BODY_CHUNK, "SEND BODY CHUNK" }, + { MTYPE_SEND_HEADERS, "SEND HEADERS" }, + { MTYPE_END_RESPONSE, "END RESPONSE" }, + { MTYPE_GET_BODY_CHUNK, "GET BODY CHUNK" }, + { MTYPE_SHUTDOWN, "SHUTDOWN" }, + { MTYPE_CPONG, "CPONG" }, + { MTYPE_CPING, "CPING" }, { 0, NULL } }; @@ -233,7 +241,7 @@ typedef struct ajp13_frame_data { /* ajp13, in sort of a belt-and-suspenders move, encodes strings with * both a leading length field, and a trailing null. Mostly, see - * AJPv13.html. The returned length _includes_ the trailing null, if + * ajpv13a.html. The returned length _includes_ the trailing null, if * there is one. * * XXX - is there a tvbuff routine to handle this? @@ -258,42 +266,40 @@ ajp13_get_nstring(tvbuff_t *tvb, gint offset, guint16* ret_len) static void display_rsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ajp13_tree, ajp13_conv_data* cd) { - const gchar* msg_code = NULL; int pos = 0; guint8 mcode = 0; - char *mcode_buf; int i; /* MAGIC */ if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_magic, tvb, pos, 2, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_magic, tvb, pos, 2, ENC_NA); pos+=2; /* PDU LENGTH */ if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_len, tvb, pos, 2, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_len, tvb, pos, 2, ENC_BIG_ENDIAN); pos+=2; /* MESSAGE TYPE CODE */ mcode = tvb_get_guint8(tvb, pos); - msg_code = val_to_str(mcode, mtype_codes, "UNKNOWN"); - mcode_buf=ep_strdup_printf("(%d) %s", mcode, msg_code); + col_append_str(pinfo->cinfo, COL_INFO, val_to_str(mcode, mtype_codes, "Unknown message code %u")); if (ajp13_tree) - proto_tree_add_string(ajp13_tree, hf_ajp13_code, tvb, pos, 1, mcode_buf); + proto_tree_add_item(ajp13_tree, hf_ajp13_code, tvb, pos, 1, ENC_BIG_ENDIAN); pos+=1; - col_append_str(pinfo->cinfo, COL_INFO, msg_code); + switch (mcode) { - if (mcode == 5) { + case MTYPE_END_RESPONSE: if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_reusep, tvb, pos, 1, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_reusep, tvb, pos, 1, ENC_BIG_ENDIAN); pos+=1; + break; - } else if (mcode == 4) { - + case MTYPE_SEND_HEADERS: + { const gchar *rsmsg; guint16 rsmsg_len; guint16 nhdr; @@ -302,27 +308,25 @@ display_rsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ajp13_tree, ajp13_con /* HTTP RESPONSE STATUS CODE */ rcode_num = tvb_get_ntohs(tvb, pos); + col_append_fstr(pinfo->cinfo, COL_INFO, ":%d", rcode_num); if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_rstatus, tvb, pos, 2, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_rstatus, tvb, pos, 2, ENC_BIG_ENDIAN); pos+=2; - if(check_col(pinfo->cinfo, COL_INFO)) - col_append_fstr(pinfo->cinfo, COL_INFO, ":%d", rcode_num); /* HTTP RESPONSE STATUS MESSAGE */ rsmsg = ajp13_get_nstring(tvb, pos, &rsmsg_len); pos+=2; + col_append_fstr(pinfo->cinfo, COL_INFO, " %s", rsmsg); if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_rsmsg, tvb, pos, rsmsg_len, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_rsmsg, tvb, pos, rsmsg_len, ENC_UTF_8|ENC_BIG_ENDIAN); pos+=rsmsg_len; - if(check_col(pinfo->cinfo, COL_INFO)) - col_append_fstr(pinfo->cinfo, COL_INFO, " %s", rsmsg); /* NUMBER OF HEADERS */ nhdr = tvb_get_ntohs(tvb, pos); if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_nhdr, tvb, pos, 2, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_nhdr, tvb, pos, 2, ENC_BIG_ENDIAN); pos+=2; /* HEADERS @@ -372,22 +376,29 @@ display_rsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ajp13_tree, ajp13_con proto_tree_add_string_format(ajp13_tree, hf_ajp13_hval, tvb, orig_pos, dp, "%s : %s", hname, hval); } } + break; + } - } else if (mcode == 6) { + case MTYPE_GET_BODY_CHUNK: + { guint16 rlen; rlen = tvb_get_ntohs(tvb, pos); cd->content_length = rlen; if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_rlen, tvb, pos, 2, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_rlen, tvb, pos, 2, ENC_BIG_ENDIAN); pos+=2; + break; + } - } else if ( mcode == 9 ) { + case MTYPE_CPONG: + break; - } else { + default: /* MESSAGE DATA (COPOUT) */ if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_data, tvb, pos+2, -1, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_data, tvb, pos+2, -1, ENC_UTF_8|ENC_BIG_ENDIAN); + break; } } @@ -412,13 +423,13 @@ display_req_body(tvbuff_t *tvb, proto_tree *ajp13_tree, ajp13_conv_data* cd) /* MAGIC */ - proto_tree_add_item(ajp13_tree, hf_ajp13_magic, tvb, pos, 2, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_magic, tvb, pos, 2, ENC_NA); pos+=2; /* PACKET LENGTH */ packet_length = tvb_get_ntohs(tvb, pos); - proto_tree_add_item(ajp13_tree, hf_ajp13_len, tvb, pos, 2, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_len, tvb, pos, 2, ENC_BIG_ENDIAN); pos+=2; if (packet_length == 0) @@ -436,7 +447,7 @@ display_req_body(tvbuff_t *tvb, proto_tree *ajp13_tree, ajp13_conv_data* cd) */ content_length = tvb_get_ntohs( tvb, pos); cd->content_length -= content_length; - proto_tree_add_item(ajp13_tree, hf_ajp13_data, tvb, pos+2, content_length-1, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_data, tvb, pos+2, content_length-1, ENC_UTF_8|ENC_BIG_ENDIAN); } @@ -468,50 +479,38 @@ display_req_forward(tvbuff_t *tvb, packet_info *pinfo, guint i; if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_magic, tvb, pos, 2, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_magic, tvb, pos, 2, ENC_NA); pos+=2; if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_len, tvb, pos, 2, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_len, tvb, pos, 2, ENC_BIG_ENDIAN); pos+=2; /* PACKET CODE */ cod = tvb_get_guint8(tvb, 4); - if (ajp13_tree) { - const gchar* msg_code = NULL; - char *mcode_buf; - msg_code = val_to_str(cod, mtype_codes, "UNKNOWN"); - mcode_buf=ep_strdup_printf("(%d) %s", cod, msg_code); - proto_tree_add_string(ajp13_tree, hf_ajp13_code, tvb, pos, 1, mcode_buf); - } + if (ajp13_tree) + proto_tree_add_item(ajp13_tree, hf_ajp13_code, tvb, pos, 1, ENC_BIG_ENDIAN); pos+=1; - if ( cod == 10 ) { + if ( cod == MTYPE_CPING ) { col_append_str(pinfo->cinfo, COL_INFO, "CPING" ); return; } /* HTTP METHOD (ENCODED AS INTEGER) */ - { - const gchar* meth_code = NULL; - meth = tvb_get_guint8(tvb, pos); - meth_code = val_to_str(meth, http_method_codes, "UNKNOWN"); - if (ajp13_tree) { - char *mcode_buf; - mcode_buf=ep_strdup_printf("(%d) %s", meth, meth_code); - proto_tree_add_string(ajp13_tree, hf_ajp13_method, tvb, pos, 1, mcode_buf); - } - col_append_str(pinfo->cinfo, COL_INFO, meth_code); - pos+=1; - } + meth = tvb_get_guint8(tvb, pos); + col_append_str(pinfo->cinfo, COL_INFO, val_to_str(meth, http_method_codes, "Unknown method %u")); + if (ajp13_tree) + proto_tree_add_item(ajp13_tree, hf_ajp13_method, tvb, pos, 1, ENC_BIG_ENDIAN); + pos+=1; /* HTTP VERSION STRING */ ver = ajp13_get_nstring(tvb, pos, &ver_len); pos+=2; /* skip over size */ if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_ver, tvb, pos, ver_len, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_ver, tvb, pos, ver_len, ENC_UTF_8|ENC_BIG_ENDIAN); pos=pos+ver_len; /* skip over chars + trailing null */ /* URI @@ -519,7 +518,7 @@ display_req_forward(tvbuff_t *tvb, packet_info *pinfo, uri = ajp13_get_nstring(tvb, pos, &uri_len); pos+=2; /* skip over size */ if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_uri, tvb, pos, uri_len, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_uri, tvb, pos, uri_len, ENC_UTF_8|ENC_BIG_ENDIAN); pos=pos+uri_len; /* skip over chars + trailing null */ @@ -532,7 +531,7 @@ display_req_forward(tvbuff_t *tvb, packet_info *pinfo, ajp13_get_nstring(tvb, pos, &raddr_len); pos+=2; /* skip over size */ if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_raddr, tvb, pos, raddr_len, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_raddr, tvb, pos, raddr_len, ENC_UTF_8|ENC_BIG_ENDIAN); pos=pos+raddr_len; /* skip over chars + trailing null */ /* REMOTE HOST @@ -540,7 +539,7 @@ display_req_forward(tvbuff_t *tvb, packet_info *pinfo, ajp13_get_nstring(tvb, pos, &rhost_len); pos+=2; /* skip over size */ if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_rhost, tvb, pos, rhost_len, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_rhost, tvb, pos, rhost_len, ENC_UTF_8|ENC_BIG_ENDIAN); pos=pos+rhost_len; /* skip over chars + trailing null */ /* SERVER NAME @@ -548,19 +547,19 @@ display_req_forward(tvbuff_t *tvb, packet_info *pinfo, ajp13_get_nstring(tvb, pos, &srv_len); pos+=2; /* skip over size */ if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_srv, tvb, pos, srv_len, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_srv, tvb, pos, srv_len, ENC_UTF_8|ENC_BIG_ENDIAN); pos=pos+srv_len; /* skip over chars + trailing null */ /* SERVER PORT */ if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_port, tvb, pos, 2, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_port, tvb, pos, 2, ENC_BIG_ENDIAN); pos+=2; /* IS SSL? */ if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_sslp, tvb, pos, 1, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_sslp, tvb, pos, 1, ENC_NA); pos+=1; /* NUM HEADERS @@ -568,7 +567,7 @@ display_req_forward(tvbuff_t *tvb, packet_info *pinfo, nhdr = tvb_get_ntohs(tvb, pos); if (ajp13_tree) - proto_tree_add_item(ajp13_tree, hf_ajp13_nhdr, tvb, pos, 2, 0); + proto_tree_add_item(ajp13_tree, hf_ajp13_nhdr, tvb, pos, 2, ENC_BIG_ENDIAN); pos+=2; cd->content_length = 0; @@ -694,7 +693,7 @@ dissect_ajp13_tcp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) if (tree) { proto_item *ti; - ti = proto_tree_add_item(tree, proto_ajp13, tvb, 0, tvb_length(tvb), FALSE); + ti = proto_tree_add_item(tree, proto_ajp13, tvb, 0, -1, ENC_NA); ajp13_tree = proto_item_add_subtree(ti, ett_ajp13); } @@ -759,11 +758,11 @@ proto_register_ajp13(void) HFILL } }, { &hf_ajp13_code, - { "Code", "ajp13.code", FT_STRING, BASE_NONE, NULL, 0x0, "Type Code", + { "Code", "ajp13.code", FT_UINT32, BASE_DEC, VALS(mtype_codes), 0x0, "Type Code", HFILL } }, { &hf_ajp13_method, - { "Method", "ajp13.method", FT_STRING, BASE_NONE, NULL, 0x0, "HTTP Method", + { "Method", "ajp13.method", FT_UINT8, BASE_DEC, VALS(http_method_codes), 0x0, "HTTP Method", HFILL } }, { &hf_ajp13_ver, @@ -791,7 +790,7 @@ proto_register_ajp13(void) HFILL } }, { &hf_ajp13_sslp, - { "SSLP", "ajp13.sslp", FT_UINT8, BASE_DEC, NULL, 0x0, "Is SSL?", + { "SSLP", "ajp13.sslp", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "Is SSL?", HFILL } }, { &hf_ajp13_nhdr, |