Several devices have multiple upstream interfaces, for example a fixed
and a mobile broadband connection. Currently, only one upstream
interface is shown per address family in Luci. So in my example, one of
the interfaces would not appear on the Status-page.
This PR introduces support for showing multiple upstream interfaces on
the Status-page. The code is not very complicated. get_status_by_route()
has been extended to return a list of all routes, and
get_wannet()/get_wan6net() now returns all upstream interfaces.
I could not find any other (active) users of these three functions than
calls triggered from the Status-page, so changing the default behavior
should be fine. get_wandev()/get_wan6dev() called get_status_by_route(),
but I could not find any place where those functions were called. I
removed the dev-functions instead of keeping the old
get_status_by_route().
On the status page, the wan/wan6-variables have been replaced with
arrays. When populating the html, we now iterate through these arrays
and create one element for each interface.
I have tested the code with different interface types, v4, v6, as well as
disconnecting and connecting interfaces. The status is updated and the
correct interfaces (or sometimes none at all) are shown.
Jo-Philipp Wich [Thu, 30 Aug 2018 13:28:19 +0000 (15:28 +0200)]
luci-proto-ppp: align keepalive defaults with current OpenWrt
Disabling LCP echos by *not* setting "option keepalive" was broken in
OpenWrt since https://dev.archive.openwrt.org/ticket/2373.html so setting
"0" in LuCI had the effect of reverting back to "5, 1" while the help
suggested otherwise.
Support for "keepalive 0" was fixed with https://git.openwrt.org/555c59230
so align LuCI now to emit "option keepalive 0" instead of removing the
option when entering "0" in the gui.
Ameer Dawood [Sun, 19 Aug 2018 08:42:49 +0000 (13:42 +0500)]
luci-app-unbound: Colons removed from input headers
Most OpenWrt applications do not have a colon in input headers.
This has been explained in #1566 as well.
This commit removes the said colons.
* allow 'forced' firmware upgrades, even if the image format check
fails. Useful where flashing back to the OEM versions or switching
between ar71xx and ath79 builds
* option is only visible after first/failed image check
* added warning info (see screenshots below)
Jo-Philipp Wich [Sat, 4 Aug 2018 20:09:49 +0000 (22:09 +0200)]
treewide: rework uci change display
- Use native rpcd uci changes format instead of incompletely converting
back and forth between the old and the new format
- Rework uci changelog template to print the equivalent uci commands
for the various changes
- Rework theme headers to properly count the uncomitted changes
- Rework theme CSS to properly style new changelog
Alan Swanson [Tue, 31 Jul 2018 21:37:47 +0000 (22:37 +0100)]
luci-mod-admin-full: Fix DSL Stats display of dB statistics
Line attenuation, signal attenuation, noise margin and aggregate transmit power really need to show
decimal digits. Fixes commit 88713f6 from issue #2003 due to excess changes from %s to %d.
during intense testing with different browsers (Chrome/Firefox/partly IE
in a VM) I found & fixed some more minor things:
* re-add accidently removed "apply_on_parse" attribute in overview cbi
* fixed a corner case where the "Restart" button not works correctly
* Removed leftovers from last commit
Eric Luehrsen [Thu, 26 Jul 2018 06:05:33 +0000 (02:05 -0400)]
luci-app-unbound: add LuCI for forward stub and auth zone clauses
With growing interest, DNS over TLS can be setup in Unbounds foward-zone:
clause. New section 'zone' is available for forward-, stub-, and auth-
zone cluses. This LuCI application will show the 'zone' section and
permit changing 'enabled' and 'fallback' options. Detailed changes to
'zone' secitons will need to use the Edit:UCI tab (text editor).
* Runtime Information, Logview and Station Overview are now dynamically
updated via XHR poll
* New runtime information for "Faulty Stations" (Travelmate backend will
no longer rename faulty uplinks)
* Add a new "Restart" button to reset "Faulty Stations" information and
trigger a Travelmate restart
* In Stations overview the currently used uplink is emphasized in blue,
faulty uplinks in red
* Numerous cleanups (e.g. space=>tab indentation) and other small fixes
luci-proto-relay: propagate up state, do not forward netifd errors
Due to historical reasons, the relayd daemon configuration resides in the
form of a fake "config interface" section in /etc/config/network without
actually registering a protocol handler.
This causes netifd to emit an "INVALID_PROTO" error for the interface
which is technically correct, but confusing for LuCI users.
This situation needs to be resolved upstream by either moving relayd
configuration out of the network config, or by converting the relayd
service into a proper protocol handler.
Until this happens, do not report any netifd errors since we're not
operating on an actual interface.
While we're at it, also propagate the protocol up state from the fake
virtual device to ensure that LuCI displays the relay bridge as "up"
when all relayed interfaces are up as well.
Rework the apply confirmation mechanism to be session agnostic in order to
circumvent cross domain restrictions which prevent the JS code from issuing
apply confirm requests in some cases, e.g. when changing the LAN IP.
Confirmation calls may now be done from unauthenticated pages, as long as a
matching confirmation token is sent along with the request.
The reasoning behind this is that there is little security impact in
confirming pending apply sessions, especially since those sessions can only
be initiated while being authenticated.
After this change, LuCI will now launch a confirmation process on every
rendered page when a rollback is pending. The confirmation will happen
regardless of whether the user is logged in or not, or if the current page
is a CBI form or static template.
A confirmation request now also requires a random one-time token which is
rendered along with the confirmation JavaScript code in order to succeed.
This token is not meant to provide security but to ensure that the confirm
was triggered from an interactive browser session and not some background
HTTP requests that happened to end up in the admin ui.
As a consequence, the different apply/confirm/rollback code paths in CBI
maps and the UCI change/revert pages have been consolidated into one common
implementation residing in the common global theme agnostic footer template.