From 20413b72bfd31282276c8ac2a116014f92914d4e Mon Sep 17 00:00:00 2001 From: Warren Baker Date: Fri, 28 Jan 2011 17:16:19 +0200 Subject: Added Captive Portal RRD graphs, there are two graphs one for the number of logged in users since last rrd poll, and concurrent number of users logged in. --- usr/local/bin/captiveportal_gather_stats.php | 106 +++++++++++++++++++++++++++ usr/local/www/status_rrd_graph.php | 16 ++++ usr/local/www/status_rrd_graph_img.php | 39 ++++++++++ usr/local/www/status_rrd_graph_settings.php | 10 ++- 4 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 usr/local/bin/captiveportal_gather_stats.php (limited to 'usr') diff --git a/usr/local/bin/captiveportal_gather_stats.php b/usr/local/bin/captiveportal_gather_stats.php new file mode 100644 index 0000000..5fe1c6b --- /dev/null +++ b/usr/local/bin/captiveportal_gather_stats.php @@ -0,0 +1,106 @@ +#!/usr/local/bin/php -q + $previous_user_timestamp) + $current_user_count = $current_user_count + 1; + } + + // Write out the latest timestamp + $fd = @fopen($tmpfile, "w"); + if ($fd) { + fwrite($fd, $timestamp); + } + @fclose($fd); + + /* If $timestamp is less than or equal to previous_user_timestamp return 0, + * as we only want the 'X' number of users logged in since last RRD poll. + */ + if($timestamp <= $previous_user_timestamp) + $result = 0; + else { + $result = $current_user_count; + } +} else + $result = $no_users; + + +echo "$result"; + +?> \ No newline at end of file diff --git a/usr/local/www/status_rrd_graph.php b/usr/local/www/status_rrd_graph.php index 28b1b4c..4505a02 100755 --- a/usr/local/www/status_rrd_graph.php +++ b/usr/local/www/status_rrd_graph.php @@ -122,6 +122,9 @@ if ($_GET['option']) { continue 2; } } + case "captiveportal": + $curoption = "allgraphs"; + break; default: $curoption = "wan"; break; @@ -173,6 +176,7 @@ $dbheader = array("allgraphs-traffic.rrd", "allgraphs-wireless.rrd", "allgraphs-cellular.rrd", "allgraphs-vpnusers.rrd", + "captiveportal-allgraphs.rrd", "allgraphs-packets.rrd", "system-allgraphs.rrd", "system-throughput.rrd", @@ -196,6 +200,9 @@ foreach($databases as $database) { if(stristr($database, "-vpnusers")) { $vpnusers = true; } + if(stristr($database, "captiveportal-") && isset($config['captiveportal']['enable'])) { + $captiveportal = true; + } } /* append the existing array to the header */ $ui_databases = array_merge($dbheader, $databases); @@ -344,6 +351,10 @@ function get_dates($curperiod, $graph) { if($curcat == "vpnusers") { $tabactive = True; } else { $tabactive = False; } $tab_array[] = array("VPN", $tabactive, "status_rrd_graph.php?cat=vpnusers"); } + if($captiveportal) { + if($curcat == "captiveportal") { $tabactive = True; } else { $tabactive = False; } + $tab_array[] = array("Captive Portal", $tabactive, "status_rrd_graph.php?cat=captiveportal"); + } if($curcat == "custom") { $tabactive = True; } else { $tabactive = False; } $tab_array[] = array(gettext("Custom"), $tabactive, "status_rrd_graph.php?cat=custom"); if($curcat == "settings") { $tabactive = True; } else { $tabactive = False; } @@ -387,6 +398,11 @@ function get_dates($curperiod, $graph) { $replace = array(" :: ", "", $friendly); switch($curcat) { + case "captiveportal": + $optionc = str_replace($search, $replace, $optionc[1]); + echo "