summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjim-p <jimp@pfsense.org>2010-12-14 17:09:47 -0500
committerjim-p <jimp@pfsense.org>2010-12-14 17:10:42 -0500
commit0d89a2fcac3deea06bdc4a481bbdfae4f18b1ff8 (patch)
tree579cb2887d12d0e01519096aade9b8f5307b7f1e
parent95ceb35b9124e34ab1d607e2cca489b4fdd6b3a7 (diff)
downloadpfsense-0d89a2fcac3deea06bdc4a481bbdfae4f18b1ff8.zip
pfsense-0d89a2fcac3deea06bdc4a481bbdfae4f18b1ff8.tar.gz
Add voucher backup, configurable from Diagnostics > NanoBSD. Fixes #1087
-rw-r--r--etc/inc/captiveportal.inc15
-rw-r--r--etc/rc.backup_vouchers.sh8
-rwxr-xr-xetc/rc.shutdown1
-rwxr-xr-xusr/local/www/diag_nanobsd.php21
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="">&nbsp;</td><td><br/><input type='submit' value='<?=gettext("Save"); ?>'></form></td>
</tr>
<?php if(file_exists("/conf/upgrade_log.txt")): ?>
OpenPOWER on IntegriCloud