aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/type/Default.class.php
diff options
context:
space:
mode:
authorPim van den Berg2011-08-27 18:22:24 +0200
committerPim van den Berg2011-08-27 18:32:38 +0200
commit330c94f4f3437036a50a57f1b3f5ca7e991c2230 (patch)
tree29b916a3aa69f38adcd6ff96bbd4fa12c97e9258 /type/Default.class.php
parentplugin/apcups: collectd 5 compatibility (diff)
downloadapt-panopticon_cgp-330c94f4f3437036a50a57f1b3f5ca7e991c2230.zip
apt-panopticon_cgp-330c94f4f3437036a50a57f1b3f5ca7e991c2230.tar.gz
apt-panopticon_cgp-330c94f4f3437036a50a57f1b3f5ca7e991c2230.tar.bz2
apt-panopticon_cgp-330c94f4f3437036a50a57f1b3f5ca7e991c2230.tar.xz
type: escape colons in filenames used in rrd commandline
A colon ':' in a legend argument will mark the end of the legend: http://oss.oetiker.ch/rrdtool/doc/rrdgraph_graph.en.html#INOTES_on_legend_arguments Reported-by: Benjamin Dupuis <poil@quake.fr>
Diffstat (limited to '')
-rw-r--r--type/Default.class.php10
1 files changed, 7 insertions, 3 deletions
diff --git a/type/Default.class.php b/type/Default.class.php
index cc1818a..eaf2e8e 100644
--- a/type/Default.class.php
+++ b/type/Default.class.php
@@ -98,6 +98,10 @@ class Type_Default {
98 return $c['r'].$c['g'].$c['b']; 98 return $c['r'].$c['g'].$c['b'];
99 } 99 }
100 100
101 function rrd_escape($value) {
102 return str_replace(':', '\:', $value);
103 }
104
101 function rrd_files() { 105 function rrd_files() {
102 $files = $this->get_filenames(); 106 $files = $this->get_filenames();
103 107
@@ -234,9 +238,9 @@ class Type_Default {
234 $i=0; 238 $i=0;
235 foreach ($this->tinstances as $tinstance) { 239 foreach ($this->tinstances as $tinstance) {
236 foreach ($this->data_sources as $ds) { 240 foreach ($this->data_sources as $ds) {
237 $rrdgraph[] = sprintf('DEF:min_%s="%s":%s:MIN', crc32hex($sources[$i]), $this->files[$tinstance], $ds); 241 $rrdgraph[] = sprintf('DEF:min_%s="%s":%s:MIN', crc32hex($sources[$i]), $this->rrd_escape($this->files[$tinstance]), $ds);
238 $rrdgraph[] = sprintf('DEF:avg_%s="%s":%s:AVERAGE', crc32hex($sources[$i]), $this->files[$tinstance], $ds); 242 $rrdgraph[] = sprintf('DEF:avg_%s="%s":%s:AVERAGE', crc32hex($sources[$i]), $this->rrd_escape($this->files[$tinstance]), $ds);
239 $rrdgraph[] = sprintf('DEF:max_%s="%s":%s:MAX', crc32hex($sources[$i]), $this->files[$tinstance], $ds); 243 $rrdgraph[] = sprintf('DEF:max_%s="%s":%s:MAX', crc32hex($sources[$i]), $this->rrd_escape($this->files[$tinstance]), $ds);
240 $i++; 244 $i++;
241 } 245 }
242 } 246 }