summaryrefslogtreecommitdiffstats
path: root/etc/inc
diff options
context:
space:
mode:
Diffstat (limited to 'etc/inc')
-rw-r--r--etc/inc/captiveportal.inc16
-rw-r--r--etc/inc/easyrule.inc5
-rw-r--r--etc/inc/filter.inc29
-rw-r--r--etc/inc/pkg-utils.inc1
4 files changed, 30 insertions, 21 deletions
diff --git a/etc/inc/captiveportal.inc b/etc/inc/captiveportal.inc
index 1191c7f..0363f78 100644
--- a/etc/inc/captiveportal.inc
+++ b/etc/inc/captiveportal.inc
@@ -837,7 +837,8 @@ function captiveportal_prune_old() {
}
/* write database */
- captiveportal_write_db($cpdb, false, $unsetindexes);
+ if (!empty($unsetindexes))
+ captiveportal_write_db($cpdb, false, $unsetindexes);
}
/* remove a single client according to the DB entry */
@@ -1285,16 +1286,19 @@ function captiveportal_read_db($locked = false) {
}
/* write captive portal DB */
-function captiveportal_write_db($cpdb, $locked = false, $remove = array()) {
+function captiveportal_write_db($cpdb, $locked = false, $remove = false) {
global $g;
if ($locked == false)
$cpdblck = lock('captiveportaldb', LOCK_EX);
- if (!empty($remove)) {
- $cpdb = captiveportal_read_db(true);
- foreach ($remove as $key)
- unset($cpdb[$key]);
+ if (is_array($remove)) {
+ if (!empty($remove)) {
+ $cpdb = captiveportal_read_db(true);
+ foreach ($remove as $key)
+ unset($cpdb[$key]);
+ } else
+ return; //This makes sure no record removal calls
}
$fd = @fopen("{$g['vardb_path']}/captiveportal.db", "w");
if ($fd) {
diff --git a/etc/inc/easyrule.inc b/etc/inc/easyrule.inc
index 45d3f74..63be652 100644
--- a/etc/inc/easyrule.inc
+++ b/etc/inc/easyrule.inc
@@ -79,11 +79,12 @@ function easyrule_block_rule_exists($int = 'wan') {
}
/* Search through the rules for one referencing our alias */
- foreach ($config['filter']['rule'] as $rule)
+ foreach ($config['filter']['rule'] as $rule) {
if (!is_array($rule) || !is_array($rule['source']))
continue;
if ($rule['source']['address'] == $blockaliasname . strtoupper($int) && ($rule['interface'] == $int))
return true;
+ }
return false;
}
@@ -114,7 +115,7 @@ function easyrule_block_rule_create($int = 'wan') {
$filterent['destination']['any'] = '';
$filterent['descr'] = "Easy Rule: Blocked from Firewall Log View";
- $a_filter[] = $filterent;
+ array_splice($a_filter, 0, 0, array($filterent));
return true;
}
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc
index 7f5775a..77e27b4 100644
--- a/etc/inc/filter.inc
+++ b/etc/inc/filter.inc
@@ -1571,6 +1571,16 @@ function filter_nat_rules_generate() {
else
sigkillbypid("/var/run/inetd.pid", "HUP");
}
+
+ if (isset($config['pptpd']['mode']) && ($config['pptpd']['mode'] != "off")) {
+ if ($config['pptpd']['mode'] == "redir") {
+ $pptpdtarget = $config['pptpd']['redir'];
+ $natrules .= "# PPTP\n";
+ $natrules .= "rdr on \${$FilterIflist['wan']['descr']} proto gre from any to any -> {$pptpdtarget}\n";
+ $natrules .= "rdr on \${$FilterIflist['wan']['descr']} proto tcp from any to any port 1723 -> {$pptpdtarget}\n";
+ }
+ }
+
$natrules .= discover_pkg_rules("nat");
$natrules .= filter_process_carp_nat_rules();
@@ -2525,7 +2535,7 @@ anchor "miniupnpd"
EOD;
- $upnp_interfaces = explode(",", $config['installedpackages']['miniupnpd']['config']['iface_array']);
+ $upnp_interfaces = explode(",", $config['installedpackages']['miniupnpd'][0]['config']['iface_array']);
foreach($upnp_interfaces as $upnp_if) {
if(is_array($FilterIflist[$upnp_if])) {
$oc = $FilterIflist[$upnp_if];
@@ -2537,7 +2547,7 @@ EOD;
if($sa) {
$ipfrules .= <<<EOD
-pass in quick on \${$oc['descr']} proto tcp from {$sa}/{$sn} to 239.255.255.250/32 port 1900 flags any keep state label "pass multicast traffic to miniupnpd"
+pass in on \${$oc['descr']} proto tcp from {$sa}/{$sn} to 239.255.255.250/32 port 1900 keep state label "pass multicast traffic to miniupnpd"
EOD;
}
@@ -2784,16 +2794,11 @@ function filter_setup_logging_interfaces() {
echo "filter_setup_logging_interfaces() being called $mt\n";
}
$rules = "";
- foreach ($FilterIflist as $ifdescr => $ifcfg) {
- /*
- * XXX: This should be cleared out after a discussion
- * between pf(4) devs is cleared out. This breaks
- * compatibility with OpenBSD.
- */
- if(isset($ifcfg['virtual']))
- continue;
- $rules .= "set loginterface {$ifcfg['if']}\n";
- }
+ if (isset($FilterIflist['lan']))
+ $rules .= "set loginterface {$FilterIflist['lan']['if']}\n";
+ else if (isset($FilterIflist['wan']))
+ $rules .= "set loginterface {$FilterIflist['wan']['if']}\n";
+
return $rules;
}
diff --git a/etc/inc/pkg-utils.inc b/etc/inc/pkg-utils.inc
index 9af1c43..5c21428 100644
--- a/etc/inc/pkg-utils.inc
+++ b/etc/inc/pkg-utils.inc
@@ -592,7 +592,6 @@ function install_package($package, $pkg_info = "") {
write_config($changedesc);
$static_output .= "done.\n";
update_output_window($static_output);
- $static_output .= "Starting service.\n";
update_output_window($static_output);
if($pkg_info['after_install_info'])
update_output_window($pkg_info['after_install_info']);
OpenPOWER on IntegriCloud