aboutsummaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorColin Smith <colin@pfsense.org>2005-03-12 19:46:05 +0000
committerColin Smith <colin@pfsense.org>2005-03-12 19:46:05 +0000
commit0c9ec08d7962d8e3bfa0dac25fed630cd79d8774 (patch)
tree215b492ac8224b827f46de7c947a9ca618d6bc8e /packages
parent73d0459fbbd42b78c343b2ddeba66b5abbfd6318 (diff)
downloadpfsense-packages-0c9ec08d7962d8e3bfa0dac25fed630cd79d8774.tar.gz
pfsense-packages-0c9ec08d7962d8e3bfa0dac25fed630cd79d8774.tar.bz2
pfsense-packages-0c9ec08d7962d8e3bfa0dac25fed630cd79d8774.zip
* Add per-user bandwidth restrictions to freeradius.
Diffstat (limited to 'packages')
-rw-r--r--packages/freeradius.xml47
1 files changed, 43 insertions, 4 deletions
diff --git a/packages/freeradius.xml b/packages/freeradius.xml
index cf87a370..ac8604a9 100644
--- a/packages/freeradius.xml
+++ b/packages/freeradius.xml
@@ -42,6 +42,16 @@
<fielddescr>Description</fielddescr>
<fieldname>description</fieldname>
</columnitem>
+ <columnitem>
+ <fielddescr>Upload bandwidth</fielddescr>
+ <fieldname>uploadbw</fieldname>
+ <suffix> Kbit/s</suffix>
+ </columnitem>
+ <columnitem>
+ <fielddescr>Download bandwidth</fielddescr>
+ <fieldname>downloadbw</fieldname>
+ <suffix> Kbit/s</suffix>
+ </columnitem>
</adddeleteeditpagefields>
<fields>
<field>
@@ -62,6 +72,24 @@
<description>Enter the description of the user here</description>
<type>input</type>
</field>
+ <field>
+ <fielddescr>Enable bandwidth restriction</fielddescr>
+ <fieldname>bwrestriction</fieldname>
+ <description>If this option is set, the captive portal will restrict this user to the bandwidth defined below.</description>
+ <type>checkbox</type>
+ </field>
+ <field>
+ <fielddescr>Upload bandwidth</fielddescr>
+ <fieldname>uploadbw</fieldname>
+ <description>Enter the desired upload bandwidth cap for this user in Kbit/s.</description>
+ <type>input</type>
+ </field>
+ <field>
+ <fielddescr>Download bandwidth</fielddescr>
+ <fieldname>downloadbw</fieldname>
+ <description>Enter the desired download bandwidth cap for this user in Kbit/s.</description>
+ <type>input</type>
+ </field>
</fields>
<custom_php_install_command>
global $config;
@@ -79,8 +107,7 @@
mwexec("/usr/local/etc/rc.d/radiusd.sh");
</custom_php_install_command>
<custom_php_command_before_form>
- function sync_package_freeradius()
- {
+ function sync_package_freeradius() {
conf_mount_rw();
config_lock();
global $config;
@@ -88,7 +115,17 @@
fwrite($fout, "# This file was automatically generated by the pfSense\n# package management system.\n\n");
if($config['installedpackages']['freeradius']['config'] != "") {
foreach($config['installedpackages']['freeradius']['config'] as $rowhelper) {
- fwrite($fout, $rowhelper['username'] . " User-Password == \"" . $rowhelper['password'] . "\"\n");
+ fwrite($fout, $rowhelper['username'] . "\tUser-Password == \"" . $rowhelper['password'] . "\"\n");
+ if ($rowhelper['bwrestriction'] == "on") {
+ if (($rowhelper['uploadbw'] != "") and ($rowhelper['downloadbw'] != "")) {
+ fwrite($fout, "\tNomadix-Bw-Up = " . $rowhelper['uploadbw'] . ",\n");
+ fwrite($fout, "\tNomadix-Bw-Down = " . $rowhelper['downloadbw'] . "\n\n");
+ } elseif ($rowhelper['uploadbw'] != "") {
+ fwrite($fout, "\tNomadix-Bw-Up = " . $rowhelper['uploadbw'] . "\n\n");
+ } elseif ($rowhelper['downloadbw'] != "") {
+ fwrite($fout, "\tNomadix-Bw-Down = " . $rowhelper['downloadbw'] . "\n\n");
+ }
+ }
}
}
fclose($fout);
@@ -97,8 +134,10 @@
system("/usr/bin/killall -HUP radiusd");
}
</custom_php_command_before_form>
+ <custom_php_resync_config_command>
+ sync_package_freeradius();
+ </custom_php_resync_config_command>
<custom_add_php_command>
sync_package_freeradius();
</custom_add_php_command>
</packagegui>
-