diff --git a/html/pages/addhost.inc.php b/html/pages/addhost.inc.php index b2bb5e792..2e3202b8e 100644 --- a/html/pages/addhost.inc.php +++ b/html/pages/addhost.inc.php @@ -13,7 +13,10 @@ if ($_POST['hostname']) { if ($_SESSION['userlevel'] > '5') { + // Settings common to SNMPv2 & v3 $hostname = mres($_POST['hostname']); + if ($_POST['port']) { $port = mres($_POST['port']); } else { $port = $config['snmp']['port']; } + if ($_POST['transport']) { $transport = mres($_POST['transport']); } else { $transport = "udp"; } if ($_POST['snmpver'] === "v2c" or $_POST['snmpver'] === "v1") { @@ -23,8 +26,7 @@ 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"); + 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") { @@ -40,15 +42,13 @@ if ($_POST['hostname']) array_push($config['snmp']['v3'], $v3); $snmpver = "v3"; - - if ($_POST['port']) { $port = mres($_POST['port']); } else { $port = $config['snmp']['port']; } print_message("Adding SNMPv3 host $hostname port $port"); } else { 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 +75,7 @@ $pagetitle[] = "Add host";
-
+
+
+ +
diff --git a/includes/functions.php b/includes/functions.php index c6eefb8de..4ab9d9d83 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -260,8 +260,8 @@ function addHost($host, $snmpver, $port = '161', $transport = 'udp') // Test Database Exists if (dbFetchCell("SELECT COUNT(*) FROM `devices` WHERE `hostname` = ?", array($host)) == '0') { - // Test DNS lookup - if (gethostbyname($host) != $host) + // Test if IP or Hostname + if (!(inet_pton($host))) { // Test reachability if (isPingable($host)) @@ -350,7 +350,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");