Unbound doesn't do it either. Eventually we want to get rid of
it completely. For now Dnsmasq doesn't support reading DHCP
ranges to match the correct domain for dynamic leases.
This commit moves the output handling from the action to the Response object for stream types, which also ensures headers are being sent in the right order.
The BaseTableWidget now contains some more rudimentary options to update
existing rows and sort on a specific column index.
The firewall widget counts events live as they happen and populates a
table in a larger view, or a doughnut chart in a smaller view as
data comes in.
This removes most phalcon code currently being used on our end, except the Volt templates (which are re-wrapped) and a translation class we can easily replace later in a separate commit.
Consumers of our controller classes shouldn't notice a difference as the used objects and methods are named the same.
The most notable changes are the following ones:
* Exceptions about not being able to find a requested path now break down into different exceptions inheriting from DispatchException, which makes it easier from the entrypoint (api.php, index.php) to catch and handle accordingly.
* When not in development mode, raw exceptions are not being returned anymore, which increases security
* The Dispatcher class is reponsible for object construction and mapping validation (valid uri, but no object found)
* The Router class replaces previous Application class, it disects offered uri's into namespaces, classnames and methods to call.
In the long run there should be a seperate controller for controllers using volt templates or api calls, but as the existing ones don't distinct between this and the output handling is different now, we can park this for a later moment in time (the performance penalty should be rather low).
Some unused functionality has been removed, for example support for the X-HTTP-Method-Override header in Request->getMethod() (see 44243c0765/phalcon/Http/Request.zep (L599-L609)).
To some degree I think always trimming the data isn't the issue, but not being able to paste at cursor position is impractical. this commit re-wires the paste action after trimming the clipboard data (in stead of overwriting the target field).
The original intend was to be able to reuse the Csrf class, but as this requires direct access to the session object, it's likely not a good idea for the goals of https://github.com/opnsense/core/issues/6389
Since the legacy pages need a lock on session anyway, keeping it doesn't make a difference.
This might not work for all values as we would maybe like the have the
FreeBSD default itself to work its magic. For security relevant things
bootstrapping the value is useful, but for buffer sizes it might not be.