diff --git a/html/includes/front/top_ports.inc.php b/html/includes/front/top_ports.inc.php
index ff59d3a5e..6f5d3cbc4 100644
--- a/html/includes/front/top_ports.inc.php
+++ b/html/includes/front/top_ports.inc.php
@@ -20,6 +20,8 @@ $query = "
FROM ports as p, devices as d
WHERE d.device_id = p.device_id
AND unix_timestamp() - p.poll_time < $seconds
+ AND ( p.ifInOctets_rate > 0
+ OR p.ifOutOctets_rate > 0 )
ORDER BY total desc
LIMIT $top
";
@@ -27,7 +29,7 @@ $query = "
echo("Top $top ports (last $minutes minutes)");
echo('
');
foreach (dbFetchRows($query) as $result) {
- echo('| '.$result['hostname'].' | '.$result['ifIndex'].' | '.$result['ifDescr'].' | '.$result['total'].' |
');
+ echo('| '.generate_device_link($result).' | '.generate_port_link($result).' | '.generate_port_link($result, generate_port_thumbnail($result)).' |
');
}
echo('
');
diff --git a/html/includes/functions.inc.php b/html/includes/functions.inc.php
index 24277c2ba..ab9541d6c 100644
--- a/html/includes/functions.inc.php
+++ b/html/includes/functions.inc.php
@@ -81,7 +81,7 @@ function generate_url($vars, $new_vars = array())
function escape_quotes($text)
{
- return str_replace('"', "\'", $text);
+ return str_replace('"', "\'", str_replace("'", "\'", $text));
}
function generate_overlib_content($graph_array, $text)
@@ -164,13 +164,13 @@ function generate_device_link($device, $text=NULL, $vars=array(), $start=0, $end
$graphhead = $entry['text'];
$contents .= '';
$contents .= ''.$graphhead.'
';
- $contents .= escape_quotes(generate_minigraph_image($device, $start, $end, $graph));
- $contents .= escape_quotes(generate_minigraph_image($device, $config['time']['week'], $end, $graph));
+ $contents .= generate_minigraph_image($device, $start, $end, $graph);
+ $contents .= generate_minigraph_image($device, $config['time']['week'], $end, $graph);
$contents .= '
';
}
$text = htmlentities($text);
- $link = overlib_link($url, $text, $contents, $class);
+ $link = overlib_link($url, $text, escape_quotes($contents), $class);
if (device_permitted($device['device_id']))
{
@@ -452,11 +452,26 @@ function generate_port_url($port, $vars=array())
return generate_url(array('page' => 'device', 'device' => $port['device_id'], 'tab' => 'port', 'port' => $port['port_id']), $vars);
}
-function print_port_thumbnail($args)
+function generate_port_image($args)
{
if (!$args['bg']) { $args['bg'] = "FFFFFF"; }
- $args['content'] = "
";
- echo(generate_port_link($args, $args['content']));
+ return "
";
+}
+
+function generate_port_thumbnail($port)
+{
+ global $config;
+ $port['graph_type'] = 'port_bits';
+ $port['from'] = $config['time']['day'];
+ $port['to'] = $config['time']['now'];
+ $port['width'] = 150;
+ $port['height'] = 19;
+ return generate_port_image($port);
+}
+
+function print_port_thumbnail($args)
+{
+ echo(generate_port_link($args, generate_port_image($args)));
}
function print_optionbar_start ($height = 0, $width = 0, $marginbottom = 5)