diff options
author | Jaap Keuter <jaap.keuter@xs4all.nl> | 2006-09-10 18:48:33 +0000 |
---|---|---|
committer | Jaap Keuter <jaap.keuter@xs4all.nl> | 2006-09-10 18:48:33 +0000 |
commit | f29dbe34d873aa99263879d0beda201a53ea1db2 (patch) | |
tree | 4e1e3c5a1127f19f74ea484a0c1f25e385ff7eb6 /epan/dissectors/packet-vrrp.c | |
parent | a1f8b7e0849a66bcd7b1e93a96da58a632248beb (diff) |
VRRPver3 support fixed: Count restored, Auth Type is reserved field.
svn path=/trunk/; revision=19188
Diffstat (limited to 'epan/dissectors/packet-vrrp.c')
-rw-r--r-- | epan/dissectors/packet-vrrp.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/epan/dissectors/packet-vrrp.c b/epan/dissectors/packet-vrrp.c index 21e346934d..ee63372955 100644 --- a/epan/dissectors/packet-vrrp.c +++ b/epan/dissectors/packet-vrrp.c @@ -1,6 +1,7 @@ /* packet-vrrp.c * Routines for the Virtual Router Redundancy Protocol (VRRP) * RFC2338 + * draft-ietf-vrrp-ipv6-spec-07.txt * * Heikki Vatiainen <hessu@cs.tut.fi> * @@ -105,7 +106,7 @@ dissect_vrrp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) if (tree) { proto_item *ti, *tv; proto_tree *vrrp_tree, *ver_type_tree; - guint8 priority, ip_count = 0, auth_type; + guint8 priority, ip_count = 0, auth_type = VRRP_AUTH_TYPE_NONE; guint16 cksum, computed_cksum; guint8 auth_buf[VRRP_AUTH_DATA_LEN + 1]; @@ -133,6 +134,11 @@ dissect_vrrp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) val_to_str(priority, vrrp_prio_vals, "Non-default backup priority")); offset++; + ip_count = tvb_get_guint8(tvb, offset); + proto_tree_add_uint(vrrp_tree, hf_vrrp_count_ip, tvb, + offset, 1, ip_count); + offset++; + switch(hi_nibble(ver_type)) { case 3: /* Skip reserve field */ @@ -140,17 +146,12 @@ dissect_vrrp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) break; case 2: default: - ip_count = tvb_get_guint8(tvb, offset); - proto_tree_add_uint(vrrp_tree, hf_vrrp_count_ip, tvb, - offset, 1, ip_count); + auth_type = tvb_get_guint8(tvb, offset); + proto_tree_add_item(vrrp_tree, hf_vrrp_auth_type, tvb, offset, 1, FALSE); offset++; break; } - auth_type = tvb_get_guint8(tvb, offset); - proto_tree_add_item(vrrp_tree, hf_vrrp_auth_type, tvb, offset, 1, FALSE); - offset++; - proto_tree_add_item(vrrp_tree, hf_vrrp_adver_int, tvb, offset, 1, FALSE); offset++; |