From 084e7f10bdcd701c4d2643e5ed286c3d824ba975 Mon Sep 17 00:00:00 2001 From: Stig Thormodsrud Date: Fri, 6 Mar 2009 20:16:59 -0800 Subject: Remove prefix mask on vip if present since it can't be using in arping. --- scripts/keepalived/vyatta-show-vrrp.pl | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/keepalived/vyatta-show-vrrp.pl b/scripts/keepalived/vyatta-show-vrrp.pl index 25e71bb4..3015bc92 100755 --- a/scripts/keepalived/vyatta-show-vrrp.pl +++ b/scripts/keepalived/vyatta-show-vrrp.pl @@ -110,6 +110,11 @@ sub parse_arping { sub get_master_info { my ($intf, $group, $vip) = @_; + # remove mask if vip has one + if ($vip =~ /([\d.]+)\/\d+/) { + $vip = $1; + } + # Calling snoop_for_master() is an expensive operation, so we # normally only do it on vrrp state transitions by calling the # vyatta-vrrp-state.pl script. However if there are more than @@ -123,7 +128,10 @@ sub get_master_info { my $arp_file = "$master_file.arp"; my $source_ip = (vrrp_get_config($intf, $group))[0]; - # arping doesn't seem to work for vlans, maybe we should skip it if vlan? + # arping doesn't seem to work for vlans + if ($intf =~ /(eth\d+).\d+/) { + $intf = $1; + } system("/usr/bin/arping -c1 -f -I $intf -s $source_ip $vip > $arp_file"); my $arp_mac = parse_arping($arp_file); -- cgit v1.2.3