The reboot page should be delayed a little to give the browser time for
fetching assets (like the stylesheet). This adds a two second delay.
Unfortunately, I couldn't think of a sane way to do this within a luci
controller.
This patch forks the process. The parent will continue rendering the
page for the browser while the child will sleep and then reboot the
device. For this to work reliable the child needs to close stdout before
sleeping so the webserver closes the connection to the browser. This,
again, required a hack as lua does not allow closing std filehandles,
when prevented using luci.reboot() which was calling os.execute() and
that function will not work with stdout closed.
Due to my previous two commits configmode was broken when either meshvpn
or bandwidth limit was disabled. This fixes it but there may be a
cleaner solution provided by luci.
Now that haveged starts before the config mode, there is no need to explicity
depend on it; instead it is just used when specified in the site configuration.
It is now possible to specific multiple branches like this:
config branch stable
option url ...
list pubkey ...
...
config branch testing
...
and select one in autoupdater.settings:
config autoupdater settings
option branch "stable"