Traffic Shaper/Limiter settings not converted on update
-
I updated my 2.1 from an 11 May build to a 4 June build.
The following was reported on the console when it rebooted and tried to update the config:Welcome to pfSense 2.1-BETA0 ... Creating symlinks......done. External config loader 1.0 is now starting... ad0s3 Launching the init system... done. Initializing............................. done. Starting device manager (devd)...done. Loading configuration......done. Updating configuration.... Warning: array_flip(): Can only flip STRING and INTEGER values! in /etc/inc/upgrade_config.inc on line 2848 Warning: array_flip(): Can only flip STRING and INTEGER values! in /etc/inc/upgrade_config.inc on line 2848 Warning: array_flip(): Can only flip STRING and INTEGER values! in /etc/inc/upgrade_config.inc on line 2848 Warning: array_flip(): Can only flip STRING and INTEGER values! in /etc/inc/upgrade_config.inc on line 2848 Warning: array_flip(): Can only flip STRING and INTEGER values! in /etc/inc/upgrade_config.inc on line 2848 Warning: array_flip(): Can only flip STRING and INTEGER values! in /etc/inc/upgrade_config.inc on line 2848 ......done.
Line 2848 is:
$dummynet_pipe_list = array_flip($dummynet_pipe_list);
It effects updating some shaper settings on rules.
I found that the In/Out limiter settings on my rules had gone back to none/none. I have reselected the settings manually.
For more complex configs than mine, there might be other shaper settings that are not preserved.
shaper.inc/read_dummynet_config puts more complex structures/addresses into dummynet_pipe_list:$root =& new dnpipe_class(); $root->ReadConfig($conf); $dummynet_pipe_list[$root->GetQname()] = &$root;
These don't seem to take kindly to attempts to array_flip them.
I am not at all familiar with the intention of this code in upgrade_config.inc - maybe whoever is can have a look at it? That would help others who upgrade in future. -
Thanks for reporting should be fixed on latest snaps.