From Paul Stath:

Dissector fails for OIDs with MacAddress in index.

svn path=/trunk/; revision=26746
This commit is contained in:
Anders Broman 2008-11-10 20:25:38 +00:00
parent d943c93a0b
commit 1b0b2bb4b6
4 changed files with 14 additions and 5 deletions

View File

@ -615,6 +615,7 @@ show_oid_index:
break;
case OID_KEY_TYPE_IMPLIED_STRING:
case OID_KEY_TYPE_IMPLIED_BYTES:
case OID_KEY_TYPE_ETHER:
suboid = &(subids[key_start]);
buf_len = key_len;
break;
@ -652,6 +653,9 @@ show_oid_index:
case OID_KEY_TYPE_IMPLIED_BYTES:
proto_tree_add_bytes(pt_name,k->hfid,tvb,name_offset,buf_len, buf);
break;
case OID_KEY_TYPE_ETHER:
proto_tree_add_ether(pt_name,k->hfid,tvb,name_offset,buf_len, buf);
break;
case OID_KEY_TYPE_IPADDR: {
guint32* ipv4_p = (void*)buf;
proto_tree_add_ipv4(pt_name,k->hfid,tvb,name_offset,buf_len, *ipv4_p);

View File

@ -717,6 +717,7 @@ show_oid_index:
break;
case OID_KEY_TYPE_IMPLIED_STRING:
case OID_KEY_TYPE_IMPLIED_BYTES:
case OID_KEY_TYPE_ETHER:
suboid = &(subids[key_start]);
buf_len = key_len;
break;
@ -754,6 +755,9 @@ show_oid_index:
case OID_KEY_TYPE_IMPLIED_BYTES:
proto_tree_add_bytes(pt_name,k->hfid,tvb,name_offset,buf_len, buf);
break;
case OID_KEY_TYPE_ETHER:
proto_tree_add_ether(pt_name,k->hfid,tvb,name_offset,buf_len, buf);
break;
case OID_KEY_TYPE_IPADDR: {
guint32* ipv4_p = (void*)buf;
proto_tree_add_ipv4(pt_name,k->hfid,tvb,name_offset,buf_len, *ipv4_p);
@ -2592,7 +2596,7 @@ static void dissect_SMUX_PDUs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pro
/*--- End of included file: packet-snmp-fn.c ---*/
#line 1403 "packet-snmp-template.c"
#line 1407 "packet-snmp-template.c"
guint
@ -3369,7 +3373,7 @@ void proto_register_snmp(void) {
"snmp.T_operation", HFILL }},
/*--- End of included file: packet-snmp-hfarr.c ---*/
#line 1915 "packet-snmp-template.c"
#line 1919 "packet-snmp-template.c"
};
/* List of subtrees */
@ -3409,7 +3413,7 @@ void proto_register_snmp(void) {
&ett_snmp_RReqPDU_U,
/*--- End of included file: packet-snmp-ettarr.c ---*/
#line 1931 "packet-snmp-template.c"
#line 1935 "packet-snmp-template.c"
};
module_t *snmp_module;
static uat_field_t users_fields[] = {

View File

@ -70,7 +70,7 @@ static const oid_value_type_t counter64_type = { FT_UINT64, BASE_DEC, BER_CLAS
static const oid_value_type_t ipv6_type = { FT_IPv6, BASE_NONE, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, 16, 16, OID_KEY_TYPE_BYTES, 16};
static const oid_value_type_t float_type = { FT_FLOAT, BASE_DEC, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, 4, 4, OID_KEY_TYPE_WRONG, 0};
static const oid_value_type_t double_type = { FT_DOUBLE, BASE_DEC, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, 8, 8, OID_KEY_TYPE_WRONG, 0};
static const oid_value_type_t ether_type = { FT_ETHER, BASE_NONE, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, 6, 6, OID_KEY_TYPE_BYTES, 6};
static const oid_value_type_t ether_type = { FT_ETHER, BASE_NONE, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, 6, 6, OID_KEY_TYPE_ETHER, 6};
static const oid_value_type_t string_type = { FT_STRING, BASE_NONE, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, 0, -1, OID_KEY_TYPE_STRING, 0};
static const oid_value_type_t unknown_type = { FT_BYTES, BASE_NONE, BER_CLASS_ANY, BER_TAG_ANY, 0, -1, OID_KEY_TYPE_WRONG, 0};

View File

@ -50,7 +50,8 @@ typedef enum _oid_key_type_t {
OID_KEY_TYPE_IPADDR,
OID_KEY_TYPE_IMPLIED_OID,
OID_KEY_TYPE_IMPLIED_STRING,
OID_KEY_TYPE_IMPLIED_BYTES
OID_KEY_TYPE_IMPLIED_BYTES,
OID_KEY_TYPE_ETHER,
} oid_key_type_t;
typedef struct _oid_value_type_t {