aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/type/Base.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'type/Base.class.php')
-rw-r--r--type/Base.class.php12
1 files changed, 9 insertions, 3 deletions
diff --git a/type/Base.class.php b/type/Base.class.php
index 90056cf..c47aba2 100644
--- a/type/Base.class.php
+++ b/type/Base.class.php
@@ -6,6 +6,7 @@ class Type_Base {
6 var $datadir; 6 var $datadir;
7 var $rrdtool; 7 var $rrdtool;
8 var $rrdtool_opts = array(); 8 var $rrdtool_opts = array();
9 var $rrd_url;
9 var $cache; 10 var $cache;
10 var $args; 11 var $args;
11 var $seconds; 12 var $seconds;
@@ -44,6 +45,7 @@ class Type_Base {
44 $config['rrdtool_opts']); 45 $config['rrdtool_opts']);
45 } 46 }
46 } 47 }
48 $this->rrd_url = $config['rrd_url'];
47 $this->cache = $config['cache']; 49 $this->cache = $config['cache'];
48 $this->parse_get($_get); 50 $this->parse_get($_get);
49 $this->rrd_title = sprintf( 51 $this->rrd_title = sprintf(
@@ -137,6 +139,9 @@ class Type_Base {
137 } 139 }
138 140
139 function rrd_escape($value) { 141 function rrd_escape($value) {
142 # In case people have really bizarre URLs in $CONFIG['rrd_url'],
143 # it should not be dropped.
144 return str_replace('\\', '\\\\', $value);
140 # http://oss.oetiker.ch/rrdtool/doc/rrdgraph_graph.en.html#IEscaping_the_colon 145 # http://oss.oetiker.ch/rrdtool/doc/rrdgraph_graph.en.html#IEscaping_the_colon
141 return str_replace(':', '\:', $value); 146 return str_replace(':', '\:', $value);
142 } 147 }
@@ -144,10 +149,11 @@ class Type_Base {
144 function parse_filename($file) { 149 function parse_filename($file) {
145 if ($this->graph_type == 'canvas') { 150 if ($this->graph_type == 'canvas') {
146 $file = str_replace($this->datadir . '/', '', $file); 151 $file = str_replace($this->datadir . '/', '', $file);
147 # rawurlencode all but / 152 $rrd_url = str_replace('{file}', $file, $this->rrd_url);
148 $file = 'rrd.php?' . str_replace('%2F', '/', rawurlencode($file)); 153 $rrd_url = str_replace('{file_escaped}',
154 urlencode($file), $rrd_url);
149 } 155 }
150 return $this->rrd_escape($file); 156 return $this->rrd_escape($rrd_url);
151 } 157 }
152 158
153 function rrd_files() { 159 function rrd_files() {