summaryrefslogtreecommitdiffstats
path: root/etc/inc/upgrade_config.inc
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2012-06-01 19:51:18 +0000
committerErmal <eri@pfsense.org>2012-06-01 19:51:18 +0000
commit85a236e9dd5db87197ed6855995da609bf310bff (patch)
tree7ef1016f01b61c6a76c4d47f6bd28c1acc1bc964 /etc/inc/upgrade_config.inc
parent730b614846c740a1f8d501ca48bcc20198aeff84 (diff)
downloadpfsense-85a236e9dd5db87197ed6855995da609bf310bff.zip
pfsense-85a236e9dd5db87197ed6855995da609bf310bff.tar.gz
Fixes #2428. Reference limiters in rules by name to avoid issues. Also put upgrade code for existing configs. The same fix is necessary for 2.0.x though not sure how this should be committed there.
Diffstat (limited to 'etc/inc/upgrade_config.inc')
-rw-r--r--etc/inc/upgrade_config.inc40
1 files changed, 40 insertions, 0 deletions
diff --git a/etc/inc/upgrade_config.inc b/etc/inc/upgrade_config.inc
index b42b837..45d6330 100644
--- a/etc/inc/upgrade_config.inc
+++ b/etc/inc/upgrade_config.inc
@@ -2818,4 +2818,44 @@ function upgrade_085_to_086() {
}
}
+function upgrade_086_to_087() {
+ global $config, $dummynet_pipe_list;
+
+ if (!is_array($config['filter']) || !is_array($config['filter']['rule']))
+ return;
+ if (!is_array($config['dnshaper']) || !is_array($config['dnshaper']['queue']))
+ return;
+
+ $dnqueue_number = 1;
+ $dnpipe_number = 1;
+
+ foreach ($config['dnshaper']['queue'] as $idx => $dnpipe) {
+ $config['dnshaper']['queue'][$idx]['number'] = $dnpipe_number;
+ $dnpipe_number++;
+ if (is_array($dnpipe['queue'])) {
+ foreach ($dnpipe['queue'] as $qidx => $dnqueue) {
+ $config['dnshaper']['queue'][$idx]['queue'][$qidx]['number'] = $dnqueue_number;
+ $dnqueue_number++;
+ }
+ }
+ }
+
+ unset($dnqueue_number, $dnpipe_number, $qidx, $idx, $dnpipe, $dnqueue);
+
+ require_once("shaper.inc");
+ read_dummynet_config();
+
+ $dummynet_pipe_list = array_flip($dummynet_pipe_list);
+ foreach ($config['filter']['rule'] as $idx => $rule) {
+ if (!empty($rule['dnpipe'])) {
+ if (!empty($dummynet_pipe_list[$rule['dnpipe']]))
+ $config['filter']['rule'][$idx]['dnpipe'] = $dummynet_pipe_list[$rule['dnpipe']];
+ }
+ if (!empty($rule['pdnpipe'])) {
+ if (!empty($dummynet_pipe_list[$rule['pdnpipe']]))
+ $config['filter']['rule'][$idx]['pdnpipe'] = $dummynet_pipe_list[$rule['pdnpipe']];
+ }
+ }
+}
+
?>
OpenPOWER on IntegriCloud