Allow interface names to change on updates to handle hwconfig -> DSA and
similar migrations.
On devices with only a single interface, a sysconfig single_ifname is
created instead of wan_ifname or lan_ifname to allow separate
configuration in site.conf.
With the new role-based interface configuration, it would be better to
rename the wan/wan6 interfaces to uplink/uplink6, but that would cause
unnecessary churn for the firewall configuration, so it is left for a
later update.
As all interfaces with the 'uplink' role are in the br-wan bridge, it is
not possible to assign these to the 'mesh' role independently - instead,
br-wan is added as a mesh interface as soon as a single interface has
both the 'uplink' and 'mesh' roles. The UCI section for this
configuration is now called 'mesh_uplink' instead of 'mesh_wan'.
For all interfaces that have the 'mesh', but not the 'uplink' role a
second configuration 'mesh_other' is created. If there is more than one
such interface, all these interfaces are bridged as well (creating a
bridge 'br-mesh_other'). This replaces the 'mesh_lan' section with its
optional 'br-mesh_lan' bridge, but can also include interfaces that were
not considered "LAN" when interfaces roles are modified (via site.conf
or manually).
The new configuration generates sections iface_single/lan/wan in
/etc/config/gluon. These sections usually refer to a sysconfig-controlled
interface list, but adding custom sections with verbatim interfaces names
is also possible.
Each interface section contains a list of roles. The supported roles are
'client', 'uplink' and 'mesh'. Multiple roles can be configured on the
same interface (for example the old 'mesh_on_wan' setting would become
'uplink'+'mesh').
'client' is subsumed by any other role configured on the same interface
('client'+'mesh' is equivalent to 'mesh'). This property is important, as
it allows the Wired Mesh settings in gluon-web-network to simply add and
remove the mesh role without having to care what other roles are set -
so in the default setup, this would switch between 'client' and
'client'+'mesh' for the LAN interface.
By default, the WAN interface has role 'uplink' and the LAN interface
'client'; if only a single interface exists, the roles from the WAN
interface are used by default. The default for each of the three
interfaces (WAN/LAN/single) can be changed separated in site.conf,
superseding the old mesh_on_wan, mesh_on_lan and single_as_lan settings.
The stdout output of gluon-web scripts is directly sent to uhttpd,
becoming a part of the HTML output or even replacing HTTP status or
headers. The output of gluon-reconfigure is not supposed to end up
there.
While we're at it, also add an exec to avoid an unnecessary shell
process.
The OpenLayers JS/CSS download URL is dead. Update it to make the map
work again:
- Update from OpenLayers 5.2.0 to 5.3.0
- Switch from the obsolete rawgit.com URL to jsdelivr.net (rawgit.com
was only redirecting to jsdelivr.net for the last few years anyways)
- Set a fixed commit in the URL, so the URL doesn't become outdated again
As gluon-web uses standard multipart/form-data requests, browsers don't
enforce any cross-origin restrictions. To prevent malicious injection of
POST requests into the config mode, match the Origin header against the
Host header of the request.
Actually raise an error and turn it into an HTTP 400 return code when
something goes wrong, rather than ignoring the error.
We also improve the conditions under which errors are thrown before
pump() is called: We don't need to check for the multipart/form-data
content-type twice, and a POST without this content-type is now always
an error.
By applying a label `backport <branch>` the action will automatically
try to cherry-pick the change to the target branch after the pull
request was successfully merged.
Swap the interfaces so than the PoE input port LAN0 is used for WAN and
config mode, and LAN1 becomes LAN.
To this end, the code previously used for ar71xx and removed in
commit 9fdc57c175 ("treewide: drop ar71xx platform specific code") is
reintroduced.
Fixes#2384
There wasn't really a reason to have a separate script to set a single
value.
In addition, the old script was using the identifier 'c' instead of
'uci' for the UCI cursor. Following the convention of the other scripts
is helpful so it is easy to grep for all uses of a certain config file/
option.
Iterating over all the package directories in the OpenWrt feed takes a
while, even though it doesn't contain any upgrade scripts. Skip the
whole directory.
1472a8fa42 procd: update to git HEAD
015f170fe6 procd: update to git HEAD
cd5ba0cfbb ustream-ssl: variants conflict with each other
6eced97ce4 lantiq: flag FritzBox 7360 family buttons active-low
b59f3b08b4 firmware-utils: tplink-safeloader: fix Archer A7v5 factory flashing from vendor fw > v1.1.x
43d105ec2a kernel: bump 5.4 to 5.4.171
1db847488d ath79: rb912: fix pll init issues
6ced8cad8e kernel: backport workaround for Realtek RTL8672 and RTL9601C chips
77ee281a3e kernel: add kmod-ledtrig-pattern
aa2de44cdd kernel: fix AutoLoad parameter for uleds module
bc37a699e5 kernel: add kmod-leds-uleds
96b5962704 mvebu: remove patch that was applied into linux stable
5beaa75d94 openssl: bump to 1.1.1m
93842b20dc bcm4908: include ATF in bootfs images
18b10db2f1 arm-trusted-firmware-bcm63xx: add ATF for Broadcom devices
739e359241 kernel: backport support for multicolor & RGB LEDs to 5.4
608c7dccf2 bcm4908: sysupgrade: add pkgtb format support
b6ed2641df busybox: backport dd support for iflag=count_bytes
7e4485fd5b bcm4908: add uboot-envtools to default packages
4cd5d11fa3 bcm4908: add fdt-utils to default packages
1d4a28d5e1 dtc: support printing binary data with fdtget
ce5d0378bf dtc: import package for dtc & fdt from packages feed
6292d1e354 bcm4908: sysupgrade: refactor handling different firmware formats
a00854040d ipq40xx: specify FritzBox 7530 LAN port label numbers
27225e3538 kernel: ath10k: provide a build variant for small RAM devices
104774c3b0 mvebu: puzzle: wan LED and fix default network
47d82f0710 mvebu: enable Aquantia phy driver for Puzzle devices
164ed6069c mvebu: add id for AQR112 Ethernet phy variants
daf4301071 mvebu: import patch enabling AQR113 PHY
ee5750043c mvebu: import patch enabling AQR112 and AQR412 PHY
a03840a1a9 mvebu: puzzle-m901: add LEDs, fan and reset button
280bb7c10c mvebu: puzzle-m902: add GPIO reset button
1e5df4d550 mvebu: puzzle-mcu: improve led driver
99a1e88297 mvebu: puzzle-m902: add driver for MCU driving LEDs, fan and buzzer
3b14ddf8d2 build: fix opkg install step for large package selection
This copies the code from web-admin and uses it to create a neat
cli-accessible summary about a node
This could also be extended or possibly have all the data the status
page has
Co-Authored-By: Matthias Schiffer <mschiffer@universe-factory.net>
The following features are available in Busybox ash, so we don't need to
warn about them for runtime scripts:
- local keyword
- echo -n / -e
- String indexing
These warnings are new in shellcheck 0.7.2, which would otherwise fail
for various scripts.
0.7.1 complains about unescaped backslashes in double quotes (which are
intepreted by printf in the two affected places). While the warning was
retired with shellcheck 0.7.2, it seems like a good idea to fix it
anyways.