diff options
author | jim-p <jimp@pfsense.org> | 2010-12-14 17:09:47 -0500 |
---|---|---|
committer | jim-p <jimp@pfsense.org> | 2010-12-14 17:10:42 -0500 |
commit | 0d89a2fcac3deea06bdc4a481bbdfae4f18b1ff8 (patch) | |
tree | 579cb2887d12d0e01519096aade9b8f5307b7f1e | |
parent | 95ceb35b9124e34ab1d607e2cca489b4fdd6b3a7 (diff) | |
download | pfsense-0d89a2fcac3deea06bdc4a481bbdfae4f18b1ff8.zip pfsense-0d89a2fcac3deea06bdc4a481bbdfae4f18b1ff8.tar.gz |
Add voucher backup, configurable from Diagnostics > NanoBSD. Fixes #1087
-rw-r--r-- | etc/inc/captiveportal.inc | 15 | ||||
-rw-r--r-- | etc/rc.backup_vouchers.sh | 8 | ||||
-rwxr-xr-x | etc/rc.shutdown | 1 | ||||
-rwxr-xr-x | usr/local/www/diag_nanobsd.php | 21 |
4 files changed, 44 insertions, 1 deletions
diff --git a/etc/inc/captiveportal.inc b/etc/inc/captiveportal.inc index e36a626..bc17f95 100644 --- a/etc/inc/captiveportal.inc +++ b/etc/inc/captiveportal.inc @@ -210,8 +210,21 @@ function captiveportal_configure() { if (isset($config['captiveportal']['enable'])) { - if ($g['booting']) + if ($g['booting']) { echo "Starting captive portal... "; + if ($g['platform'] != "pfSense") { + /* restore the vouchers, if we have them */ + if (file_exists("{$g['cf_conf_path']}/vouchers.tgz")) { + $voucherrestore = ""; + $voucherreturn = ""; + exec("cd /;LANG=C /usr/bin/tar -xzf {$g['cf_conf_path']}/vouchers.tgz 2>&1", $voucherrestore, $voucherreturn); + $voucherrestore = implode(" ", $voucherrestore); + if($voucherreturn <> 0) { + log_error("Voucher restore failed exited with $voucherreturn, the error is: $voucherrestore\n"); + } + } + } + } /* kill any running mini_httpd */ killbypid("{$g['varrun_path']}/lighty-CaptivePortal.pid"); diff --git a/etc/rc.backup_vouchers.sh b/etc/rc.backup_vouchers.sh new file mode 100644 index 0000000..1fe7da5 --- /dev/null +++ b/etc/rc.backup_vouchers.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +# Save the voucher databases to the config path. +if [ -d "/var/db/" ]; then + /etc/rc.conf_mount_rw + cd / && tar -czf /cf/conf/vouchers.tgz -C / var/db/voucher_*.db + /etc/rc.conf_mount_ro +fi diff --git a/etc/rc.shutdown b/etc/rc.shutdown index 257a577..904c52e 100755 --- a/etc/rc.shutdown +++ b/etc/rc.shutdown @@ -32,4 +32,5 @@ if [ "$PLATFORM" = "pfSense" ]; then else /etc/rc.backup_rrd.sh /etc/rc.backup_dhcpleases.sh + /etc/rc.backup_vouchers.sh fi diff --git a/usr/local/www/diag_nanobsd.php b/usr/local/www/diag_nanobsd.php index af4efd6..56fab04 100755 --- a/usr/local/www/diag_nanobsd.php +++ b/usr/local/www/diag_nanobsd.php @@ -108,6 +108,10 @@ if (isset($_POST['dhcpbackup'])) { $config['system']['dhcpbackup'] = $_POST['dhcpbackup']; install_cron_job("/etc/rc.backup_dhcpleases.sh", ($config['system']['dhcpbackup'] > 0), $minute="0", "*/{$config['system']['dhcpbackup']}"); } +if (isset($_POST['voucherbackup'])) { + $config['system']['voucherbackup'] = $_POST['voucherbackup']; + install_cron_job("/etc/rc.backup_voucherleases.sh", ($config['system']['voucherbackup'] > 0), $minute="0", "*/{$config['system']['voucherbackup']}"); +} if ($savemsg) @@ -216,6 +220,23 @@ if ($savemsg) </td> </tr> <tr> + <td width="22%" valign="top" class="vncell"><?=gettext("Voucher Backup");?></td> + <td width="78%" class="vtable"> + <form action="diag_nanobsd.php" method="post" name="iform"> + <?=gettext("Frequency:");?> + <select name='voucherbackup'> + <option value='0' <? if (!isset($config['system']['voucherbackup']) || ($config['system']['voucherbackup'] == 0)) echo "selected"; ?>><?=gettext("Disable"); ?></option> + <? for ($x=1; $x<=24; $x++) { ?> + <option value='<?= $x ?>' <? if ($config['system']['voucherbackup'] == $x) echo "selected"; ?>><?= $x ?> <?=gettext("hour"); ?><? if ($x>1) echo "s"; ?></option> + <? } ?> + </select> + <br/> + <?=gettext("This will peridoically backup the Captive Portal Voucher Database so it can be restored automatically on the next boot. Keep in mind that the more frequent the backup, the more writes will happen to your media.");?> + <br/> + <br/> + </td> + </tr> + <tr> <td valign="top" class=""> </td><td><br/><input type='submit' value='<?=gettext("Save"); ?>'></form></td> </tr> <?php if(file_exists("/conf/upgrade_log.txt")): ?> |