From c7ea65c25a32406296d60c9e20b355abe2cb6101 Mon Sep 17 00:00:00 2001 From: Chris Buechler Date: Thu, 30 Jul 2015 00:37:48 -0500 Subject: Fix killing of individual states for IPv6. Ticket #4906 --- usr/local/www/diag_dump_states.php | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) (limited to 'usr/local/www') diff --git a/usr/local/www/diag_dump_states.php b/usr/local/www/diag_dump_states.php index 6cb3513..ebb3b06 100755 --- a/usr/local/www/diag_dump_states.php +++ b/usr/local/www/diag_dump_states.php @@ -197,19 +197,35 @@ while ($line = chop(fgets($fd))) { /* break up info and extract $srcip and $dstip */ $ends = preg_split("/\?/", $info); - $parts = explode(":", $ends[0]); - if (strstr($info, "->")) { - $srcip = trim($parts[0]); - } else { - $dstip = trim($parts[0]); - } - $parts = explode(":", $ends[count($ends) - 1]); - if (strstr($info, "->")) { - $dstip = trim($parts[0]); + if (strstr($info, "[")) { + // IPv6 + $parts = explode("[", $ends[0]); + if (strstr($info, "->")) { + $srcip = trim($parts[0]); + } else { + $dstip = trim($parts[0]); + } + $parts = explode("[", $ends[count($ends) - 1]); + if (strstr($info, "->")) { + $dstip = trim($parts[0]); + } else { + $srcip = trim($parts[0]); + } } else { - $srcip = trim($parts[0]); + // IPv4 + $parts = explode(":", $ends[0]); + if (strstr($info, "->")) { + $srcip = trim($parts[0]); + } else { + $dstip = trim($parts[0]); + } + $parts = explode(":", $ends[count($ends) - 1]); + if (strstr($info, "->")) { + $dstip = trim($parts[0]); + } else { + $srcip = trim($parts[0]); + } } - ?> -- cgit v1.1