Where the first stage primarily aims to keep the legacy handling of gateways intact, this stage does the conversion to MVC.
As part of the migration strategy, configured gateways will not be touched if the migration fails. This allows users to repair the gateways in the new situation.
This commit imports part of the changes from @swhite2 which will keep the legacy handling intact for the first stage of the migration. It should be backwards compatible with the previous (23.7.x) code.
Changes new in this commit which where not in the original PR:
1) dpinger_status() missed $gwitem which rendered gateways statusses down
2) Model version number set to 0.0.1 so we can use the migration later to step into 1.0.0
3) Gateways->gatewayIterator() do not yield MVC records ensuring we are still using legacy config data when being called.
The system wizard is IPv4 only but doesn't use the correct
function. It's debatable if we need to restrict DNS servers
but if all of this is only IPv4 we should stick to it in a
consistsent way.
Unfortunately, <name/> generates the name from a label
into the form name= and id= attributes, which can utterly
break if the name is changed when there is custom code.
Mostly prompted by the problem that mistyping the admin password
makes the form go boom. We cannot rely on the browser. While here
reformat and add copyright as various improvements have been made
here ever since 2015.
We are forcing a change through the installer, which is where
the majority starts from. We don't want to enforce a change
twice.
We can't really see if we installed or went through a factory
reset, so this is (was) the best of both worlds in conjunction
with the new installer feature.
While here, annotate that it is possible to leave it "empty".
This reverts commit 5eb2c986ca7233f0f94f372968433b145b4b3249.