From cb41d5009471d274b9654b10927e39baacd9bebc Mon Sep 17 00:00:00 2001 From: bohdan-s Date: Sat, 21 Jun 2014 08:02:27 -0400 Subject: [PATCH] Add IPv6 only host support --- html/pages/addhost.inc.php | 15 ++++++++++++--- includes/functions.php | 5 +++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/html/pages/addhost.inc.php b/html/pages/addhost.inc.php index b2bb5e792f..f5a84f420b 100644 --- a/html/pages/addhost.inc.php +++ b/html/pages/addhost.inc.php @@ -24,7 +24,8 @@ if ($_POST['hostname']) $snmpver = mres($_POST['snmpver']); if ($_POST['port']) { $port = mres($_POST['port']); } else { $port = $config['snmp']['port']; } - print_message("Adding host $hostname communit" . (count($config['snmp']['community']) == 1 ? "y" : "ies") . " " . implode(', ',$config['snmp']['community']) . " port $port"); + $transport = mres($_POST['transport']); + print_message("Adding host $hostname communit" . (count($config['snmp']['community']) == 1 ? "y" : "ies") . " " . implode(', ',$config['snmp']['community']) . " port $port using $transport"); } elseif ($_POST['snmpver'] === "v3") { @@ -48,7 +49,7 @@ if ($_POST['hostname']) { print_error("Unsupported SNMP Version. There was a dropdown menu, how did you reach this error ?"); } - $result = addHost($hostname, $snmpver, $port); + $result = addHost($hostname, $snmpver, $port, $transport); if ($result) { print_message("Device added ($result)"); @@ -75,7 +76,7 @@ $pagetitle[] = "Add host";
-
+
+
+ +
diff --git a/includes/functions.php b/includes/functions.php index c6eefb8de8..38932d516e 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -261,7 +261,8 @@ function addHost($host, $snmpver, $port = '161', $transport = 'udp') if (dbFetchCell("SELECT COUNT(*) FROM `devices` WHERE `hostname` = ?", array($host)) == '0') { // Test DNS lookup - if (gethostbyname($host) != $host) + //if (gethostbyname($host) != $host) + if (!(inet_pton($host))) { // Test reachability if (isPingable($host)) @@ -350,7 +351,7 @@ function addHost($host, $snmpver, $port = '161', $transport = 'udp') print_error("Could not ping $host"); } } else { // Failed DNS lookup - print_error("Could not resolve $host"); } + print_error("$host looks like an IP address, please use FQDN"); } } else { // found in database print_error("Already got host $host");