Merge pull request #241 from bohdan-s/ipv6

Add IPv6 only host support
This commit is contained in:
Paul Gear
2014-06-24 10:38:23 +10:00
2 changed files with 17 additions and 9 deletions
+14 -6
View File
@@ -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";
</div>
<div class="form-group">
<label for="snmpver" class="col-sm-2 control-label">SNMP Version</label>
<div class="col-sm-3">
<div class="col-sm-2">
<select name="snmpver" id="snmpver" class="form-control input-sm">
<option value="v1">v1</option>
<option value="v2c" selected>v2c</option>
@@ -85,6 +85,14 @@ $pagetitle[] = "Add host";
<div class="col-sm-2">
<input type="text" name="port" placeholder="port" class="form-control input-sm">
</div>
<div class="col-sm-1">
<select name="transport" id="transport" class="form-control input-sm">
<option value="tcp">tcp</option>
<option value="udp" selected>udp</option>
<option value="tcp6">tcp6</option>
<option value="udp6">udp6</option>
</select>
</div>
<div class="col-sm-5">
</div>
</div>
+3 -3
View File
@@ -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");