From: Ian Jackson Date: Sun, 26 Oct 2014 19:50:50 +0000 (+0000) Subject: polypath-interface-monitor-linux: Skip "tentative" IPv6 local addrs X-Git-Tag: v0.4.0_beta2~19 X-Git-Url: https://git.distorted.org.uk/~mdw/secnet/commitdiff_plain/caa976333a50a669e1506124afaeda3e5b14d36e polypath-interface-monitor-linux: Skip "tentative" IPv6 local addrs Signed-off-by: Ian Jackson --- diff --git a/polypath-interface-monitor-linux b/polypath-interface-monitor-linux index bce8436..0393382 100755 --- a/polypath-interface-monitor-linux +++ b/polypath-interface-monitor-linux @@ -61,7 +61,19 @@ for (;;) { while (<$addrh>) { print DEBUG "#$_"; if (m{^\d+\:\s*(\S+)\s+$afstr\s+([0-9a-z.:]+)(?:/\d+)?\s}) { + my $rhs=$'; #'; my $outline = "$ip $1 $2"; + # "ip -o addr show" has a ridiculous output format. In + # particular, it mixes output keywords which introduce + # values with ones which don't, and there seems to be + # no way to tell without knowing all the possible + # keywords. We hope that before the \ there is nothing + # which contains arbitrary text (specifically, which + # might be `tentative' other than to specify IPv6 + # tentativeness). We have to do this for IPv6 only + # because in the IPv4 output, the interface name + # appears here! + next if $ip==6 && $rhs=~m{[^\\]* tentative\s}; $reported{$outline} .= "y"; } else { chomp;