mirror of
https://github.com/pfsense/pfsense.git
synced 2025-10-26 11:38:35 +00:00
Try to restore last working ruleset rather than staying without configuration at all
This commit is contained in:
parent
7a433db2f1
commit
bd53b624d4
@ -329,17 +329,22 @@ function filter_configure_sync($delete_states_if_needed = true) {
|
||||
if(is_array($line_split))
|
||||
$line_error = sprintf(gettext('The line in question reads [%1$d]: %2$s'), $line_number, $line_split[$line_number-1]);
|
||||
unset($line_split);
|
||||
if ($line_error and $line_number) {
|
||||
file_notice("filter_load", sprintf(gettext('There were error(s) loading the rules: %1$s - %2$s'), $rules_error[0], $line_error), "Filter Reload", "");
|
||||
update_filter_reload_status(sprintf(gettext('There were error(s) loading the rules: %1$s - %2$s'), $rules_error[0], $line_error));
|
||||
unlock($filterlck);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Brutal ugly hack but required -- PF is stuck, unwedge */
|
||||
if (strstr("$rules_error[0]", "busy")) {
|
||||
exec("/sbin/pfctl -d; /sbin/pfctl -e; /sbin/pfctl -f {$g['tmp_path']}/rules.debug");
|
||||
$error_msg = gettext("PF was wedged/busy and has been reset.");
|
||||
file_notice("pf_busy", $error_msg, "pf_busy", "");
|
||||
} else {
|
||||
$_grbg = exec("/sbin/pfctl -o basic -f {$g['tmp_path']}/rules.debug.old 2>&1", $rules_error, $rules_loading);
|
||||
}
|
||||
unset($rules_loading, $rules_error);
|
||||
|
||||
if ($line_error and $line_number) {
|
||||
file_notice("filter_load", sprintf(gettext('There were error(s) loading the rules: %1$s - %2$s'), $rules_error[0], $line_error), "Filter Reload", "");
|
||||
update_filter_reload_status(sprintf(gettext('There were error(s) loading the rules: %1$s - %2$s'), $rules_error[0], $line_error));
|
||||
unlock($filterlck);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user