diff --git a/html/map.php b/html/map.php
index ebe243a56..438f99bab 100755
--- a/html/map.php
+++ b/html/map.php
@@ -53,6 +53,7 @@ if (isset($_GET['format']) && preg_match("/^[a-z]*$/", $_GET['format']))
else
{
$loc_count = 1;
+
foreach (dbFetch("SELECT * from devices ".$where) as $device)
{
if ($device)
@@ -60,94 +61,92 @@ if (isset($_GET['format']) && preg_match("/^[a-z]*$/", $_GET['format']))
$links = dbFetch("SELECT * from ports AS I, links AS L WHERE I.device_id = ? AND L.local_interface_id = I.interface_id ORDER BY L.remote_hostname", array($device['device_id']));
if (count($links))
{
-
if(!isset($locations[$device['location']])) { $locations[$device['location']] = $loc_count; $loc_count++; }
$loc_id = $locations[$device['location']];
$map .= "\"".$device['hostname']."\" [fontsize=20, fillcolor=\"lightblue\", group=".$loc_id." URL=\"{$config['base_url']}/device/device=".$device['device_id']."/tab=map/\" shape=box3d]\n";
}
-
-
foreach ($links as $link)
{
- $local_interface_id = $link['local_interface_id'];
- $remote_interface_id = $link['remote_interface_id'];
+ $local_interface_id = $link['local_interface_id'];
+ $remote_interface_id = $link['remote_interface_id'];
- $i = 0; $done = 0;
- if ($linkdone[$remote_interface_id][$local_interface_id]) { $done = 1; }
+ $i = 0; $done = 0;
+ if ($linkdone[$remote_interface_id][$local_interface_id]) { $done = 1; }
- if (!$done)
- {
- $linkdone[$local_interface_id][$remote_interface_id] = TRUE;
-
- $links++;
-
- if ($link['ifSpeed'] >= "10000000000")
+ if (!$done)
{
- $info = "color=red3 style=\"setlinewidth(6)\"";
- } elseif ($link['ifSpeed'] >= "1000000000") {
- $info = "color=lightblue style=\"setlinewidth(4)\"";
- } elseif ($link['ifSpeed'] >= "100000000") {
- $info = "color=lightgrey style=\"setlinewidth(2)\"";
- } elseif ($link['ifSpeed'] >= "10000000") {
- $info = "style=\"setlinewidth(1)\"";
- } else {
- $info = "style=\"setlinewidth(1)\"";
- }
+ $linkdone[$local_interface_id][$remote_interface_id] = TRUE;
- $src = $device['hostname'];
- if ($remote_interface_id)
- {
- $dst = dbFetchCell("SELECT `hostname` FROM `devices` AS D, `ports` AS I WHERE I.interface_id = ? AND D.device_id = I.device_id", array($remote_interface_id));
- $dst_host = dbFetchCell("SELECT D.device_id FROM `devices` AS D, `ports` AS I WHERE I.interface_id = ? AND D.device_id = I.device_id", array($remote_interface_id));
- } else {
- unset($dst_host);
- $dst = $link['remote_hostname'];
- }
+ $links++;
- $sif = ifNameDescr(dbFetchRow("SELECT * FROM ports WHERE `interface_id` = ?", array($link['local_interface_id'])),$device);
- if ($remote_interface_id)
- {
- $dif = ifNameDescr(dbFetchRow("SELECT * FROM ports WHERE `interface_id` = ?", array($link['remote_interface_id'])), $device);
- } else {
- $dif['label'] = $link['remote_port'];
- $dif['interface_id'] = $link['remote_hostname'] . $link['remote_port'];
- }
- if($where == "") {
-
- $map .= "\"$src\" -> \"" . $dst . "\" [weight=500000, arrowsize=0, len=0];\n";
- $ifdone[$src][$sif['interface_id']] = 1;
-
- } else {
- $map .= "\"" . $sif['interface_id'] . "\" [label=\"" . $sif['label'] . "\", fontsize=12, fillcolor=lightblue, URL=\"{$config['base_url']}/device/device=".$device['device_id']."/port/$local_interface_id/\"]\n";
- if (!$ifdone[$src][$sif['interface_id']])
+ if ($link['ifSpeed'] >= "10000000000")
{
- $map .= "\"$src\" -> \"" . $sif['interface_id'] . "\" [weight=500000, arrowsize=0, len=0];\n";
- $ifdone[$src][$sif['interface_id']] = 1;
- }
-
- if ($dst_host) {
- $map .= "\"$dst\" [URL=\"{$config['base_url']}/device/device=$dst_host/tab=map/\", fontsize=20, shape=box3d]\n";
+ $info = "color=red3 style=\"setlinewidth(6)\"";
+ } elseif ($link['ifSpeed'] >= "1000000000") {
+ $info = "color=lightblue style=\"setlinewidth(4)\"";
+ } elseif ($link['ifSpeed'] >= "100000000") {
+ $info = "color=lightgrey style=\"setlinewidth(2)\"";
+ } elseif ($link['ifSpeed'] >= "10000000") {
+ $info = "style=\"setlinewidth(1)\"";
} else {
- $map .= "\"$dst\" [ fontsize=20 shape=box3d]\n";
+ $info = "style=\"setlinewidth(1)\"";
}
- if ($dst_host == $device['device_id'] || $where == '')
+ $src = $device['hostname'];
+ if ($remote_interface_id)
{
- $map .= "\"" . $dif['interface_id'] . "\" [label=\"" . $dif['label'] . "\", fontsize=12, fillcolor=lightblue, URL=\"{$config['base_url']}/device/device=$dst_host/tab=port/port=$remote_interface_id/\"]\n";
+ $dst = dbFetchCell("SELECT `hostname` FROM `devices` AS D, `ports` AS I WHERE I.interface_id = ? AND D.device_id = I.device_id", array($remote_interface_id));
+ $dst_host = dbFetchCell("SELECT D.device_id FROM `devices` AS D, `ports` AS I WHERE I.interface_id = ? AND D.device_id = I.device_id", array($remote_interface_id));
} else {
- $map .= "\"" . $dif['interface_id'] . "\" [label=\"" . $dif['label'] . " \", fontsize=12, fillcolor=lightgray, URL=\"{$config['base_url']}/device/device=$dst_host/tab=port/port=$remote_interface_id/\"]\n";
+ unset($dst_host);
+ $dst = $link['remote_hostname'];
}
- if (!$ifdone[$dst][$dif['interface_id']])
+ $sif = ifNameDescr(dbFetchRow("SELECT * FROM ports WHERE `interface_id` = ?", array($link['local_interface_id'])),$device);
+ if ($remote_interface_id)
{
- $map .= "\"" . $dif['interface_id'] . "\" -> \"$dst\" [weight=500000, arrowsize=0, len=0];\n";
- $ifdone[$dst][$dif['interface_id']] = 1;
+ $dif = ifNameDescr(dbFetchRow("SELECT * FROM ports WHERE `interface_id` = ?", array($link['remote_interface_id'])));
+ } else {
+ $dif['label'] = $link['remote_port'];
+ $dif['interface_id'] = $link['remote_hostname'] . $link['remote_port'];
+ }
+
+ if($where == "")
+ {
+ $map .= "\"$src\" -> \"" . $dst . "\" [weight=500000, arrowsize=0, len=0];\n";
+ $ifdone[$src][$sif['interface_id']] = 1;
+ } else {
+ $map .= "\"" . $sif['interface_id'] . "\" [label=\"" . $sif['label'] . "\", fontsize=12, fillcolor=lightblue, URL=\"{$config['base_url']}/device/device=".$device['device_id']."/port/$local_interface_id/\"]\n";
+ if (!$ifdone[$src][$sif['interface_id']])
+ {
+ $map .= "\"$src\" -> \"" . $sif['interface_id'] . "\" [weight=500000, arrowsize=0, len=0];\n";
+ $ifdone[$src][$sif['interface_id']] = 1;
+ }
+
+ if ($dst_host)
+ {
+ $map .= "\"$dst\" [URL=\"{$config['base_url']}/device/device=$dst_host/tab=map/\", fontsize=20, shape=box3d]\n";
+ } else {
+ $map .= "\"$dst\" [ fontsize=20 shape=box3d]\n";
+ }
+
+ if ($dst_host == $device['device_id'] || $where == '')
+ {
+ $map .= "\"" . $dif['interface_id'] . "\" [label=\"" . $dif['label'] . "\", fontsize=12, fillcolor=lightblue, URL=\"{$config['base_url']}/device/device=$dst_host/tab=port/port=$remote_interface_id/\"]\n";
+ } else {
+ $map .= "\"" . $dif['interface_id'] . "\" [label=\"" . $dif['label'] . " \", fontsize=12, fillcolor=lightgray, URL=\"{$config['base_url']}/device/device=$dst_host/tab=port/port=$remote_interface_id/\"]\n";
+ }
+
+ if (!$ifdone[$dst][$dif['interface_id']])
+ {
+ $map .= "\"" . $dif['interface_id'] . "\" -> \"$dst\" [weight=500000, arrowsize=0, len=0];\n";
+ $ifdone[$dst][$dif['interface_id']] = 1;
+ }
+ $map .= "\"" . $sif['interface_id'] . "\" -> \"" . $dif['interface_id'] . "\" [weight=1, arrowhead=normal, arrowtail=normal, len=2, $info] \n";
}
- $map .= "\"" . $sif['interface_id'] . "\" -> \"" . $dif['interface_id'] . "\" [weight=1, arrowhead=normal, arrowtail=normal, len=2, $info] \n";
}
- }
}
$done = 0;
}
@@ -187,7 +186,7 @@ if (isset($_GET['format']) && preg_match("/^[a-z]*$/", $_GET['format']))
# $maptool = $config['unflatten'] . ' -f -l 5 | ' . $config['sfdp'] . ' -Gpack -Goverlap=prism -Gcharset=latin1 | dot';
# $maptool = $config['sfdp'] . ' -Gpack -Goverlap=prism -Gcharset=latin1 -Gsize=20,20';
$maptool = $config['neato'];
-}
+ }
$descriptorspec = array(0 => array("pipe", "r"),1 => array("pipe", "w") );
@@ -195,7 +194,8 @@ if (isset($_GET['format']) && preg_match("/^[a-z]*$/", $_GET['format']))
$process = proc_open($maptool.' -T'.$_GET['format'],$descriptorspec,$pipes);
- if (is_resource($process)) {
+ if (is_resource($process))
+ {
fwrite($pipes[0], "$map");
fclose($pipes[0]);
while (! feof($pipes[1])) {$img .= fgets($pipes[1]);}