From caa976333a50a669e1506124afaeda3e5b14d36e Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 26 Oct 2014 19:50:50 +0000 Subject: [PATCH] polypath-interface-monitor-linux: Skip "tentative" IPv6 local addrs Signed-off-by: Ian Jackson --- polypath-interface-monitor-linux | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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; -- 2.11.0