From bdf954cde309df2fd0a311fa8a1fd04c6af78417 Mon Sep 17 00:00:00 2001 From: Adam Amstrong Date: Fri, 1 Jan 2010 14:14:09 +0000 Subject: [PATCH] fixes git-svn-id: http://www.observium.org/svn/observer/trunk@584 61d68cd4-352d-0410-923a-c4978735b2b8 --- includes/discovery/ipv6-addresses.php | 34 ------------------------- includes/functions.php | 36 +++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 34 deletions(-) diff --git a/includes/discovery/ipv6-addresses.php b/includes/discovery/ipv6-addresses.php index 302835572a..2568c261d1 100644 --- a/includes/discovery/ipv6-addresses.php +++ b/includes/discovery/ipv6-addresses.php @@ -1,39 +1,5 @@ '0' && $ipv6_prefixlen < '129' && $ipv6_compressed != '::1') { - $i_query = "SELECT interface_id FROM `interfaces` WHERE device_id = '".$device['device_id']."' AND `ifIndex` = '$ifIndex'"; - $interface_id = mysql_result(mysql_query($i_query), 0); - if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv6_networks` WHERE `ipv6_network` = '$ipv6_network'"), 0) < '1') { - mysql_query("INSERT INTO `ipv6_networks` (`ipv6_network`) VALUES ('$ipv6_network')"); - echo("N"); - } - - if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv6_networks` WHERE `ipv6_network` = '$ipv6_network'"), 0) < '1') { - mysql_query("INSERT INTO `ipv6_networks` (`ipv6_network`) VALUES ('$ipv6_network')"); - echo("N"); - } - - $ipv6_network_id = @mysql_result(mysql_query("SELECT `ipv6_network_id` from `ipv6_networks` WHERE `ipv6_network` = '$ipv6_network'"), 0); - - if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv6_addresses` WHERE `ipv6_address` = '$ipv6_address' AND `ipv6_prefixlen` = '$ipv6_prefixlen' AND `interface_id` = '$interface_id'"), 0) == '0') { - mysql_query("INSERT INTO `ipv6_addresses` (`ipv6_address`, `ipv6_compressed`, `ipv6_prefixlen`, `ipv6_origin`, `ipv6_network_id`, `interface_id`) - VALUES ('$ipv6_address', '$ipv6_compressed', '$ipv6_prefixlen', '$ipv6_origin', '$ipv6_network_id', '$interface_id')"); - echo("+"); - } else { echo("."); } - $full_address = "$ipv6_address/$ipv6_prefixlen"; - $valid = $full_address . "-" . $interface_id; - $valid_v6[$valid] = 1; - } -} - echo("IPv6 Addresses : "); $cmd = $config['snmpwalk']." -m IP-MIB -".$device['snmpver']." -Ln -c ".$device['community']." ".$device['hostname'].":".$device['port']; diff --git a/includes/functions.php b/includes/functions.php index 34173cddeb..11270f08e3 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -690,4 +690,40 @@ function ipv62snmp($ipv6) return implode($ipv6_split,'.'); } + +function discover_process_ipv6($ifIndex,$ipv6_address,$ipv6_prefixlen,$ipv6_origin) +{ + global $valid_v6,$device,$config; + + $ipv6_network = trim(shell_exec($config['sipcalc']." $ipv6_address/$ipv6_prefixlen | grep Subnet | cut -f 2 -d '-'")); + $ipv6_compressed = trim(shell_exec($config['sipcalc']." $ipv6_address/$ipv6_prefixlen | grep Compressed | cut -f 2 -d '-'")); + + if (mysql_result(mysql_query("SELECT count(*) FROM `interfaces` + WHERE device_id = '".$device['device_id']."' AND `ifIndex` = '$ifIndex'"), 0) != '0' && $ipv6_prefixlen > '0' && $ipv6_prefixlen < '129' && $ipv6_compressed != '::1') { + $i_query = "SELECT interface_id FROM `interfaces` WHERE device_id = '".$device['device_id']."' AND `ifIndex` = '$ifIndex'"; + $interface_id = mysql_result(mysql_query($i_query), 0); + if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv6_networks` WHERE `ipv6_network` = '$ipv6_network'"), 0) < '1') { + mysql_query("INSERT INTO `ipv6_networks` (`ipv6_network`) VALUES ('$ipv6_network')"); + echo("N"); + } + + if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv6_networks` WHERE `ipv6_network` = '$ipv6_network'"), 0) < '1') { + mysql_query("INSERT INTO `ipv6_networks` (`ipv6_network`) VALUES ('$ipv6_network')"); + echo("N"); + } + + $ipv6_network_id = @mysql_result(mysql_query("SELECT `ipv6_network_id` from `ipv6_networks` WHERE `ipv6_network` = '$ipv6_network'"), 0); + + if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv6_addresses` WHERE `ipv6_address` = '$ipv6_address' AND `ipv6_prefixlen` = '$ipv6_prefixlen' AND `interface_id` = '$interface_id'"), 0) == '0') { + mysql_query("INSERT INTO `ipv6_addresses` (`ipv6_address`, `ipv6_compressed`, `ipv6_prefixlen`, `ipv6_origin`, `ipv6_network_id`, `interface_id`) + VALUES ('$ipv6_address', '$ipv6_compressed', '$ipv6_prefixlen', '$ipv6_origin', '$ipv6_network_id', '$interface_id')"); + echo("+"); + } else { echo("."); } + $full_address = "$ipv6_address/$ipv6_prefixlen"; + $valid = $full_address . "-" . $interface_id; + $valid_v6[$valid] = 1; + } +} + + ?>