project/luci.git
3 years agoluci-mod-network: make device selector dependent on protocol (again)
Jo-Philipp Wich [Mon, 31 May 2021 12:00:51 +0000 (14:00 +0200)]
luci-mod-network: make device selector dependent on protocol (again)

This commit effectively reverts the change made with
907b4222f7 ("luci-mod-network: don't hide "Device" on protocol change").

Floating tunnel protocols such as 6in4, plain PPP over modem device,
VPNC etc. do not have any layer 2 device at all, for such protocols the
device selector should be hidden.

Also swap back the incorrect option order introduced with commit
b7f3cf66ca ("luci-mod-network: drop support for *adding* legacy bridges").

Since device depends on proto, it should come after the protocol selection,
not before.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit fc12933670ba9efd87a24b6823cf57a666b54c1a)

3 years agoluci-mod-network: fix device dependencies in add interface dialog
Jo-Philipp Wich [Mon, 31 May 2021 09:50:56 +0000 (11:50 +0200)]
luci-mod-network: fix device dependencies in add interface dialog

Commit b7f3cf66ca "luci-mod-network: drop support for *adding* legacy bridges"
dropped the protocol dependcies of the ifname/device selector in the add new
interface dialog.

Re-add the required dependencies and swap the order of the protocol and
device inputs while we're at it since latter depends on the former.

Fixes: b7f3cf66ca ("luci-mod-network: drop support for *adding* legacy bridges")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 147188f6ee7067119746ffc2a505ef8f4eb8943a)

3 years agoluci-app-statistics: fix read of hostname
Anderson McKinley [Wed, 26 May 2021 06:41:49 +0000 (06:41 +0000)]
luci-app-statistics: fix read of hostname

Existing javascript did not read a non-default statistics hostname due to
incorrect config ids.

Signed-off-by: Anderson McKinley <coyoso@tuta.io>
(cherry picked from commit 97424d57af1d0e02ea914012c47987541d7ee6a6)

3 years agoluci-theme-openwrt-2020: use SVG-file for favicon and logo
Sven Roederer [Sat, 22 May 2021 23:43:44 +0000 (01:43 +0200)]
luci-theme-openwrt-2020: use SVG-file for favicon and logo

Using the scalable graphic in place of the static png file saves some
ressources in flash and network. It also aligns the filetype to the type
announced to the browser.

fixes GitHub-issue #5051

Signed-off-by: Sven Roederer <freifunk@it-solutions.geroedel.de>
(cherry picked from commit 184e93df5f0365d403d4d7a6243286cbe5b914de)

3 years agoluci-theme-openwrt-2020: remove submenu margin-bottom when submenu not visible
Jan Breuer [Tue, 13 Apr 2021 14:38:03 +0000 (16:38 +0200)]
luci-theme-openwrt-2020: remove submenu margin-bottom when submenu not visible

Signed-off-by: Jan Breuer <jan.breuer@jaybee.cz>
(cherry picked from commit 2b5f78e8936b90029478bff0f70ec8333f352b7a)

3 years agoluci-base: uci.js: merge changes when retrieving entire sections
Jo-Philipp Wich [Mon, 29 Mar 2021 20:29:36 +0000 (22:29 +0200)]
luci-base: uci.js: merge changes when retrieving entire sections

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit ba4e214160619e27b88a3929c76a1a01c9c1b1e2)

3 years agoprotocols: fix interface.ipv6 vs. device.ipv6 option conflict
Jo-Philipp Wich [Mon, 29 Mar 2021 18:34:43 +0000 (20:34 +0200)]
protocols: fix interface.ipv6 vs. device.ipv6 option conflict

Ref: https://forum.openwrt.org/t/pppoe-disable-ipv6/92548
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 7d49508480446febe4ed0de929f83ea923c98324)

3 years agorpcd-mod-luci: expose devtype and iflink properties in getNetworkDevices
Jo-Philipp Wich [Wed, 17 Mar 2021 18:29:01 +0000 (19:29 +0100)]
rpcd-mod-luci: expose devtype and iflink properties in getNetworkDevices

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 71feaa52857abb7408d657521c114319c1f0a113)

3 years agoluci-app-firewall: simplify some form actions
Jo-Philipp Wich [Thu, 6 Aug 2020 19:22:18 +0000 (21:22 +0200)]
luci-app-firewall: simplify some form actions

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit bbf1a5343f1d930096cd5ff6b98f3e1f2f0d3c9a)

3 years agoluci-base: remove references to removed functions from documentation
Jo-Philipp Wich [Mon, 1 Mar 2021 08:16:21 +0000 (09:16 +0100)]
luci-base: remove references to removed functions from documentation

Fixes: #4778
Fixes: 366707a68 ("luci-base: drop unused functions in luci.sys")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit a9da1dc5a5d33cd321d83f42fb16bc6bf9d77b5c)

3 years agoluci-base: add new member 'hidden' to DummyValue
Nicholas Smith [Sat, 6 Feb 2021 01:12:36 +0000 (11:12 +1000)]
luci-base: add new member 'hidden' to DummyValue

Signed-off-by: Nicholas Smith <nicholas@nbembedded.com>
(cherry picked from commit 936dde742256c6f81c335e5847524e2771913775)

3 years agoluci-app-frpc: correct prop name 'subdomain'
Huang-Huang Bao [Tue, 28 Jul 2020 14:56:50 +0000 (22:56 +0800)]
luci-app-frpc: correct prop name 'subdomain'

Signed-off-by: Huang-Huang Bao <eh5@sokka.cn>
(cherry picked from commit de9f21cb8c8c056566d3390c93bd72aef9efde7a)

3 years agoMerge pull request #5115 from stangri/21.02-luci-app-vpn-policy-routing
Stan Grishin [Thu, 10 Jun 2021 05:49:22 +0000 (22:49 -0700)]
Merge pull request #5115 from stangri/21.02-luci-app-vpn-policy-routing

[21.02] luci-app-vpn-policy-routing: support for 21.02.0-rc2

3 years agoluci-app-vpn-policy-routing: support for 21.02.0-rc2 5115/head
Stan Grishin [Thu, 10 Jun 2021 05:47:50 +0000 (05:47 +0000)]
luci-app-vpn-policy-routing: support for 21.02.0-rc2

Signed-off-by: Stan Grishin <stangri@melmac.net>
3 years agothemes: Call striptags() on hostname to prevent XSS
Hauke Mehrtens [Tue, 8 Jun 2021 23:28:44 +0000 (01:28 +0200)]
themes: Call striptags() on hostname to prevent XSS

This calls striptags() on the hostname to prevent any XSS over the
hostname. This should fix CVE-2021-33425 as far as I understood it.

If someone adds some Javascript into system.@system[0].hostname it would
have been directly added to the page, this prevents the problem.

This can only be exploited by someone being able to modify the uci
configuration, normally a user with such privileges could also just
modify the webpage.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 5cbd79d7e31c0f0feaea2770bf102bbae7831e3c)

3 years agotreewide: i18n - Backport translations
Hannu Nyman [Tue, 8 Jun 2021 17:07:21 +0000 (20:07 +0300)]
treewide: i18n - Backport translations

Backport translations from master.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
3 years agoluci.mk: make SUBMENU package define customizable and optional
Sven Roederer [Thu, 22 Apr 2021 20:35:58 +0000 (22:35 +0200)]
luci.mk: make SUBMENU package define customizable and optional

When including luci.mk in external repos it's sometimes usefull to not use
the default LuCI-submenu hierarchy.
This change defines the LUCI_SUBMENU_FORCED variable which completely overrides
the default submenu of the LuCI config-section. When LUCI_SUBMENU_FORCED is not
defined, the default submenu derrived from LUCI_TYPE or "Application" fallback
is used.
Defining LUCI_SUBMENU_FORCED in the package Makefile will just use this value.
Setting it to "none" will not define a submenu at all.
Together with LUCI_SECTION and LUCI_CATEGORY menu items can now created at any
place in the menu structure.

Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
(cherry picked from commit 2b11ec6fd02be060443cf4afc9d89058aadcfab3)

3 years agoluci.mk: add PKG_PROVIDES make-macro to set package/provides option
Sven Roederer [Sat, 17 Apr 2021 20:38:24 +0000 (22:38 +0200)]
luci.mk: add PKG_PROVIDES make-macro to set package/provides option

Add PKG_PROVIDES macro to be passed down to buildpackage defines as  PROVIDES variable.

Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
(cherry picked from commit 209141d49153b999c42b0410010366789b36e86d)

3 years agoluci.mk: add URL and MAINTAINER fields to package-definitions
Sven Roederer [Sat, 17 Apr 2021 15:37:08 +0000 (17:37 +0200)]
luci.mk: add URL and MAINTAINER fields to package-definitions

Add the LUCI_URL and LUCI_MAINTAINER variables to pass them to the buildpackage
defines. Give them some sane defaults and allow overwritting by the individual
package.

Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
(cherry picked from commit ae0795deb0c908515550236254b04334be8f90bf)

3 years agotreewide: i18n - backport translations from master
Hannu Nyman [Tue, 1 Jun 2021 05:22:44 +0000 (08:22 +0300)]
treewide: i18n - backport translations from master

Backport translations from master.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
3 years agoluci-mod-network: migrate macaddr during bridge migration
Rafał Miłecki [Mon, 31 May 2021 06:35:09 +0000 (08:35 +0200)]
luci-mod-network: migrate macaddr during bridge migration

Link: https://forum.openwrt.org/t/network-migration-21-02-0-rc2/97934
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 49be69316bfea092e90c2f5a821ded961069f518)

3 years agoluci-mod-network: allow netifd version query to fail
Jo-Philipp Wich [Mon, 31 May 2021 17:00:15 +0000 (19:00 +0200)]
luci-mod-network: allow netifd version query to fail

Fixes: 17af33ee48 ("luci-mod-network: migrate network config depending on netifd version")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 34dc351303bad74c8f753c37788814796888129a)

3 years agoluci-base: fix `network` data type validation
Jo-Philipp Wich [Mon, 31 May 2021 09:39:15 +0000 (11:39 +0200)]
luci-base: fix `network` data type validation

Fixes: #5085
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit dece9b063c16790df731a08f8e73978c51b6c90d)

3 years agoluci-app-samba4: prevent calling split() on array or null values
Jo-Philipp Wich [Mon, 31 May 2021 09:25:54 +0000 (11:25 +0200)]
luci-app-samba4: prevent calling split() on array or null values

Since `uci.get()` may return null or array values, we cannot blindly call
split() on the result. Use the safe `L.toArray()` helper which is intended
to deal with such situations.

Also clean up whitespace while we're at.

Fixes: #5080
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit c4cdfcbe5121d5959dac1e18ed11b8611a86fb9e)

3 years agoluci-mod-network: split config migration into 2 steps
Rafał Miłecki [Sat, 29 May 2021 15:19:02 +0000 (17:19 +0200)]
luci-mod-network: split config migration into 2 steps

Problem with handling all migrations in 1 step is that uci.sections()
doesn't include changes queued using uci.callAdd() and uci.callSet().
That could result in unexpected behaviour and generating invalid
configs.

For the sake of simplicity and reliability use 2 steps migration. The
downside is that users may get prompted twice to migrate.

Reported-by: Hauke Mehrtens <hauke@hauke-m.de>
Fixes: 74be304e541f ("treewide: use "device" option in UCI "interface" sections")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Tested-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit e7c9c63c657963daa1a0d57dcb0848d88e909c25)

3 years agotreewide: drop MAC and MTU from interfaces (protocols)
Rafał Miłecki [Fri, 28 May 2021 07:58:12 +0000 (09:58 +0200)]
treewide: drop MAC and MTU from interfaces (protocols)

Those are L2 options that are not part of interfaces (L3), should not be
set there and don't work. Setting MAC and MTU should be done at device
layer (config device) and is supported for basic types already.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 79947af064122438c803f3b7bc580ede093a26e4)

3 years agotreewide: remove rendundant proto handler options
Jo-Philipp Wich [Thu, 6 Aug 2020 18:58:35 +0000 (20:58 +0200)]
treewide: remove rendundant proto handler options

The introduction of network device configuration support also implemented
all common, protocol-independent interface options directly in the
interface config view, so drop the redundant option definitions.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 171ef77e8985ffd90eb66b8a0a3cd74beb37ccdc)

3 years agoluci-mod-network: allow setting bridge device MTU and MAC
Rafał Miłecki [Thu, 27 May 2021 19:01:41 +0000 (21:01 +0200)]
luci-mod-network: allow setting bridge device MTU and MAC

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit bbb3c4c4a59bc01e2f18d98596af1af354568fdd)

3 years agoluci-mod-network: bump min netifd version for migration
Rafał Miłecki [Thu, 27 May 2021 09:05:42 +0000 (11:05 +0200)]
luci-mod-network: bump min netifd version for migration

Using "device" option requires netifd from 2021-05-26 or newer.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit bc81e09781de229e85ad74afd785afdd454b4892)

3 years agotreewide: use "device" option in UCI "interface" sections
Rafał Miłecki [Mon, 24 May 2021 16:17:41 +0000 (18:17 +0200)]
treewide: use "device" option in UCI "interface" sections

netifd has been recently patched to use "device" option instead of
"ifname" as more clear & accurate.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 74be304e541f5c03dacbdb05c543dfa6f79205a6)

3 years agoluci-mod-network: migrate network config depending on netifd version
Rafał Miłecki [Wed, 26 May 2021 11:25:24 +0000 (13:25 +0200)]
luci-mod-network: migrate network config depending on netifd version

Checking netifd version is important for users of the most recent LuCI
that didn't update netifd (e.g. OpenWrt package).

Suggested-by: Jo-Philipp Wich <jo@mein.io>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 17af33ee48bb709aec31d09b90cfbd4cbece6d0d)

3 years agoluci-mod-network: migrate config to use "ports" option
Rafał Miłecki [Thu, 20 May 2021 13:03:43 +0000 (15:03 +0200)]
luci-mod-network: migrate config to use "ports" option

LuCI supports only the newer method of specifying bridge ports using the
"ports" option. Offer users migration so they can configure their
network.

Example:

1. Before
config device
        option name 'br-lan'
        option type 'bridge'
        list ifname 'lan1'
        list ifname 'lan2'
        list ifname 'lan3'
        list ifname 'lan4'

2. After
config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit b8acde7f480a18343ee1f9624b790595065613ae)

3 years agoluci-mod-network: drop 2 unused variables
Rafał Miłecki [Thu, 20 May 2021 12:03:18 +0000 (14:03 +0200)]
luci-mod-network: drop 2 unused variables

Fixes: faad7464a8ed ("luci-mod-network: add support for network.device sections")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 398932f39b3a86ea4f7d25e18d1683acc8e76ea3)

3 years agoluci-mod-network: don't hide "Device" on protocol change
Rafał Miłecki [Thu, 20 May 2021 12:00:36 +0000 (14:00 +0200)]
luci-mod-network: don't hide "Device" on protocol change

Device ("ifname" UCI option) doesn't depend on protocol so there is no
need to hide / reset it on protocol change.

While at it drop names of two removed inputs (dead code).

Fixes: ec020cee0c44 ("luci-mod-network: drop support for *editing* legacy bridges")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 907b4222f70b3351d590d8a2e35c21a4ae07db8d)

3 years agoluci-mod-network: add bridge interface migration
Rafał Miłecki [Tue, 18 May 2021 18:09:58 +0000 (20:09 +0200)]
luci-mod-network: add bridge interface migration

LuCI now supports the updated UCI syntax for bridges that requires:
1. device section for L2
2. interface section for L3

Check for legacy syntax usage and offser user a migration to allow
changing network config.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit bca76a767316a689d59dfd4974dcb7bfb04db1e8)

3 years agoluci-mod-network: use "ports" option for setting bridge ports
Rafał Miłecki [Mon, 17 May 2021 12:01:24 +0000 (14:01 +0200)]
luci-mod-network: use "ports" option for setting bridge ports

netifd has been recently patched to use more accurate "ports" option
instead of "ifname"

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit a90115cd82372eaaa0ed531800b568387e200c97)

3 years agoluci-mod-network: drop support for *editing* legacy bridges
Rafał Miłecki [Mon, 17 May 2021 08:53:57 +0000 (10:53 +0200)]
luci-mod-network: drop support for *editing* legacy bridges

The old way of defining bridge (L2) as part of interface (L3) is
deprecated. All such configs should be migrated to define bridge as L3
UCI section type "device".

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit ec020cee0c44793f8ce1b346675c6a36e63b0154)

3 years agoluci-mod-network: drop support for *adding* legacy bridges
Rafał Miłecki [Sun, 16 May 2021 15:33:39 +0000 (17:33 +0200)]
luci-mod-network: drop support for *adding* legacy bridges

The old way of defining bridge (L2) as part of interface (L3) is
deprecated. Don't support *adding* interfaces like that.

Support for *editing* legacy bridges is kept for now for compatibility
with existing legacy setups.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit b7f3cf66cadf6753153bc9d1feac1eca0c7e37f0)

3 years agoluci-mod-network: fix device section cleanup
Jo-Philipp Wich [Mon, 29 Mar 2021 20:33:35 +0000 (22:33 +0200)]
luci-mod-network: fix device section cleanup

Ensure that device sections are only automatically removed after all
related options have been parsed, to avoid prematurely deleting sections.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 2072c66c5a4b755a6ed16bb6486afb956a475be9)

3 years agoluci-mod-network: allow disabling interface->device option migration
Jo-Philipp Wich [Mon, 29 Mar 2021 18:08:48 +0000 (20:08 +0200)]
luci-mod-network: allow disabling interface->device option migration

Introduce a `migrate` properties which selectively allows disabling the
`config interface` to `config device` migration logic for single options.

Use the new flag to disable migration of the "ipv6" option which has
different semantics in interface and device sections.

Ref: https://forum.openwrt.org/t/pppoe-disable-ipv6/92548
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 935e9a3c3430db5fad1004926ddfa2e35a950be5)

3 years agoluci-mod-network: fix changing ifname in disabled legacy bridge mode
Jo-Philipp Wich [Mon, 29 Mar 2021 14:33:07 +0000 (16:33 +0200)]
luci-mod-network: fix changing ifname in disabled legacy bridge mode

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 7dde01be3cc197f79bc6812a2c912c1889dbf1ee)

3 years agoluci-mod-network: make condition for disabling legacy bridging more specific
Jo-Philipp Wich [Mon, 29 Mar 2021 14:30:32 +0000 (16:30 +0200)]
luci-mod-network: make condition for disabling legacy bridging more specific

Only disable legacy bridging if an existing network.device section with type
bridge is found, ignore non-type sections since those do not declare a
bridge but set attributes on top of an existing one.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit f48f9f11e7f6e3d74e2fd4b6b2478e5673f2f459)

3 years agoluci-mod-network: fix unsetting network.device options
Jo-Philipp Wich [Mon, 29 Mar 2021 14:27:47 +0000 (16:27 +0200)]
luci-mod-network: fix unsetting network.device options

The existing logic only handled removing the last remaining device section
option (which results in the deletion of the entire section) but failed to
actually unset single options.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit b9fad85f2e3fc988528fd326db715719288604ea)

3 years agoluci-mod-network: don't implicitly move bridge opts into device sections
Jo-Philipp Wich [Mon, 29 Mar 2021 14:00:10 +0000 (16:00 +0200)]
luci-mod-network: don't implicitly move bridge opts into device sections

When setting bridge and device specific options such 'stp' or
'igmp_snooping', LuCI so far transparently created or reused a
`config device` section and set the corresponding option there.

In the case of bridges, this triggers multiple problems:

 - When implicitely creating a `config device` section referring to the
   bridge device, the legacy bridge configuration of the corresponding
   interface is disabled, causing a broken configuration on subsequent
   save operations

 - Netifd does not appear to properly merge bridge settings from config
   device and config interface sections, leading to an incoherent
   configuration state

In order to avoid that issue, do not automatically migrate bridge specific
options.

Fixes: #4948
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit a9a223b973c7f5f057d19a7fc09e7364087fec79)

3 years agoluci-mod-network: fix handling of peerdns/dns/dns_search options
Jo-Philipp Wich [Sat, 20 Mar 2021 23:50:27 +0000 (00:50 +0100)]
luci-mod-network: fix handling of peerdns/dns/dns_search options

The previous change didn't take dynamic dependency mangling into account.

Fixes: 2bfd4908a9 ("luci-mod-network: restore DNS option semantics for proto static")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 9a92f9c7615f710a7934cccc8ac23902247c154b)

3 years agoluci-mod-network: restore DNS option semantics for proto static
Jo-Philipp Wich [Sat, 20 Mar 2021 23:36:24 +0000 (00:36 +0100)]
luci-mod-network: restore DNS option semantics for proto static

The peerdns settings makes little practical sense for proto:static
interfaces, so revert to allow setting the DNS server list directly.

Fixes: faad7464a8 ("luci-mod-network: add support for network.device sections")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 2bfd4908a9cfeac74c7abc31d8cef0bf1e58af52)

3 years agoluci-mod-network: fix legacy bridge configuration
Jo-Philipp Wich [Sat, 20 Mar 2021 23:18:20 +0000 (00:18 +0100)]
luci-mod-network: fix legacy bridge configuration

Ref: https://github.com/openwrt/luci/pull/4307#issuecomment-803432603
Fixes: faad7464a8 ("luci-mod-network: add support for network.device sections")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit edf640af583de122b020d215aadd141028c9458f)

3 years agoluci-mod-network: fix invalid variable access when creating interfaces
Jo-Philipp Wich [Sat, 20 Mar 2021 23:17:35 +0000 (00:17 +0100)]
luci-mod-network: fix invalid variable access when creating interfaces

Fixes: eeef38d534 ("luci-mod-network: add support for bridge vlan filtering")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 1c4284150dff9d37503f6f901d047c0caa9a3af0)

3 years agoluci-mod-network: fix opacity for device icon tooltips
Jo-Philipp Wich [Thu, 18 Mar 2021 16:24:09 +0000 (17:24 +0100)]
luci-mod-network: fix opacity for device icon tooltips

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit bea7b8dc7cd7231d7ec6ab82fcc80dfaec699326)

3 years agoluci-mod-network: tools.network: handle bridge config and vlan corner cases
Jo-Philipp Wich [Thu, 18 Mar 2021 16:19:42 +0000 (17:19 +0100)]
luci-mod-network: tools.network: handle bridge config and vlan corner cases

 - Disable interface-level bridging if a corresponding br-$name bridge
   already exists as device declaration

 - Exempt wireless interfaces from bridge port configuration, they can only
   be attached indirectly through "option network"

 - Consider bridge ports from both "option ifname" in interface/device
   sections and from "option ports" in bridge-vlan ones

 - Small fixes for rendering quirks

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 14fdce0fcdfe39ff4143b294a1f1f65d7c783ce7)

3 years agoluci-mod-network: allow wifi bridging with bridge or bridge vlan ifaces
Jo-Philipp Wich [Wed, 17 Mar 2021 09:45:04 +0000 (10:45 +0100)]
luci-mod-network: allow wifi bridging with bridge or bridge vlan ifaces

Recent netifd automatically adds wireless devices as bridge ports if the
layer 2 device referenced by the "config interface" target network is a
Linux network bridge or a VLAN interface on top of a network bridge.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 3b4c161e01e2bd19105c123fbec463bc069d637b)

3 years agoluci-base: network.js: recognize DSA ports and bridge VLANs
Jo-Philipp Wich [Thu, 18 Mar 2021 16:09:07 +0000 (17:09 +0100)]
luci-base: network.js: recognize DSA ports and bridge VLANs

Use the newly introduced devtype attribute for more robust network device
type detection. This also allows us to easily recognize DSA ports.

Furthermore, synthesize VLAN devices declared by uci bridge-vlan sections,
similar to how it is done for legacy swconfig switch_vlan ones.

Finally implement a new Network.Device.getParent() method to use the newly
available "parent" attribute to resolve the base device of DSA ports or
VLAN devices.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit d1bf56d7f178f1b7582d7b3600ee70e65128ccfa)

3 years agoluci-mod-network: add support for bridge vlan filtering
Jo-Philipp Wich [Tue, 28 Jul 2020 18:51:10 +0000 (20:51 +0200)]
luci-mod-network: add support for bridge vlan filtering

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit eeef38d53412a78f185f0bb53153ecb3fe9e8838)

3 years agoluci-mod-network: add support for network.device sections
Jo-Philipp Wich [Mon, 27 Jul 2020 15:12:54 +0000 (17:12 +0200)]
luci-mod-network: add support for network.device sections

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit faad7464a8ed88a251c621dc92e8cbfb146bcd7f)

3 years agoluci-mod-network: interfaces.js: simplify some code using new ui helpers
Jo-Philipp Wich [Thu, 6 Aug 2020 15:37:34 +0000 (17:37 +0200)]
luci-mod-network: interfaces.js: simplify some code using new ui helpers

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 069a97e55c9a44c366db2003944d40238dfc2620)

3 years agoluci-mod-network: issue with breakdown of dnsmasq after duplication of static IP...
Oleksandr Pastushkov [Sun, 3 Jan 2021 22:58:56 +0000 (00:58 +0200)]
luci-mod-network: issue with breakdown of dnsmasq after duplication of static IP was fixed

Before this commit, assigning the same static IP address to two
different hosts disabled dnsmasq.

Logic of adding a new static lease was modified. If user try to assign a
new MAC address to already reserved IP, old lease will be modified (list
of MAC addresses will be extended by new MAC) instead of creation a new lease with the same IP.

Signed-off-by: Oleksandr Pastushkov <oleks.pastushkov@gmail.com>
(cherry picked from commit 463e910119813aaea0755ff5c16c91ce412a8cbb)

3 years agoluci-mod-network: drop duplicated "Master" option
Rafał Miłecki [Thu, 27 May 2021 06:39:35 +0000 (08:39 +0200)]
luci-mod-network: drop duplicated "Master" option

It got accidentally added while cherry picking RA and NDP params
support.

Fixes: 3a9ebc537f63 ("luci-mod-network: Introduce new RA and NDP params with help-text.")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agotreewide: backport i18n translations from master
Hannu Nyman [Wed, 26 May 2021 16:10:51 +0000 (19:10 +0300)]
treewide: backport i18n translations from master

Backport translations.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
3 years agoluci-theme-material: fix wrong active state on common prefix node
Liangbin Lian [Wed, 21 Apr 2021 10:00:48 +0000 (18:00 +0800)]
luci-theme-material: fix wrong active state on common prefix node

Before fixed, if we have two nodes: 'services/ddns' and 'services/ddnsto',
click any one of they, will show they all actived.

Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
(cherry picked from commit 97d50d2c6b80805cd7e513eeafc8b62fef4ab1b6)

3 years agoluci-app-samba4: support listen on multiple interfaces
Liangbin Lian [Tue, 25 May 2021 02:34:05 +0000 (10:34 +0800)]
luci-app-samba4: support listen on multiple interfaces

/etc/init.d/samba4 already support that

Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
(cherry picked from commit 169ab9979eee780758256c2859f7c2ee86a0b0ae)

3 years agotreewide: i18n - Backport translations
Hannu Nyman [Sun, 16 May 2021 17:52:12 +0000 (20:52 +0300)]
treewide: i18n - Backport translations

Backport translations from master and sync.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
3 years agoluci-mod-status: fix potential XSS via specially crafted DNS names
Jo-Philipp Wich [Wed, 12 May 2021 09:49:31 +0000 (11:49 +0200)]
luci-mod-status: fix potential XSS via specially crafted DNS names

When an upstream NS returns PTR domain names containing HTML, it is
added verbatim to the connection status table.

Prevent this issue by HTML escaping any values in the source and
destination columns.

Fixes: CVE-2021-32019
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 3c66c5b1651aa25afbff09bee45047da9a0ba43d)

3 years agotreewide: backport translations i18n
Hannu Nyman [Sat, 8 May 2021 14:05:54 +0000 (17:05 +0300)]
treewide: backport translations i18n

Backport translations.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
3 years agoluci-mod-status: iptables: always make tab pane visible
Jo-Philipp Wich [Fri, 7 May 2021 17:04:38 +0000 (19:04 +0200)]
luci-mod-status: iptables: always make tab pane visible

When ip6tables is not present, the tab group was not initialized,
causing the iptables status display to be empty with certain themes.

Manually mark the pane active in this case to avoid the problem.

Fixes: #5040
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit d24e3295f004c87722ad59927738f208a2a84ac5)

3 years agoluci-app-attendedsysupgrade: fix branch detection
Paul Spooren [Wed, 5 May 2021 16:09:08 +0000 (18:09 +0200)]
luci-app-attendedsysupgrade: fix branch detection

The running branch determines which upgrades are suggested. A jump to a
newer branch (e.g. 19.07.8 to 21.02.1) is only suggested if the advanced
mode is enable, since it may break the router.

OpenWrt versions end in either `-SNAPSHOT`, `.X-rcY` or `.x`. All these
suffixes are removed, resulting in the branch name.

Previously the `-SNAPSHOT` suffix wasn't removed resulting in wrong
branch names.

Also clean up some log spam.

Signed-off-by: Paul Spooren <mail@aparcar.org>
(cherry picked from commit 85e9ee31239c4e912613005f4c222f13c34e9a36)

3 years agoluci-app-attendedsysupgrade: hide branch update
Paul Spooren [Thu, 29 Apr 2021 20:53:09 +0000 (22:53 +0200)]
luci-app-attendedsysupgrade: hide branch update

Branch updates (e.g. 19.07 to 21.02) are risky and shouldn't be
suggested by default. Hide those unless the advanced mode is enabled.

Signed-off-by: Paul Spooren <mail@aparcar.org>
(cherry picked from commit 9184721fab65934fe016c132a8f11a2308742f92)

3 years agoluci-app-mwan3: i18n sync translations
Florian Eckert [Thu, 6 May 2021 10:27:00 +0000 (12:27 +0200)]
luci-app-mwan3: i18n sync translations

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
3 years agoluci-app-mwan3: fix css status with
Florian Eckert [Thu, 6 May 2021 09:44:57 +0000 (11:44 +0200)]
luci-app-mwan3: fix css status with

This commit fixes the width of the mwan3 status page for the
openwrt-2020 theme.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 6fa40fffcaa6015633e1e7426ff1f0bae61597c9)

3 years agoluci-app-mwan3: add i18n to status page
Florian Eckert [Thu, 6 May 2021 09:22:02 +0000 (11:22 +0200)]
luci-app-mwan3: add i18n to status page

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 2b0fbcb0c88fb073745ec99974c12f363b771ac2)

3 years agoluci-app-mwan3: update status page for no tracked interfaces
Florian Eckert [Mon, 3 May 2021 08:55:38 +0000 (10:55 +0200)]
luci-app-mwan3: update status page for no tracked interfaces

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 4fee871630dec3b6bfbfb6dadc1580f0e3edf830)

3 years agoluci-base: i18n sync translations
Florian Eckert [Tue, 4 May 2021 07:17:11 +0000 (09:17 +0200)]
luci-base: i18n sync translations

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
3 years agoluci-base: change button-text from Dismiss to Close in UCI changes overview
Sven Roederer [Fri, 30 Apr 2021 23:12:02 +0000 (01:12 +0200)]
luci-base: change button-text from Dismiss to Close in UCI changes overview

Change the left button of the UCI Apply-changes overview to the more correct
function close. This also avoids confusion between Dismiss and Revert, which
translate to the same in german.

Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
(cherry picked from commit b56912d9fcf6acb0ba3008de3df15188318376f2)

3 years agotreewide: i18n sync translations
Florian Eckert [Tue, 4 May 2021 07:16:04 +0000 (09:16 +0200)]
treewide: i18n sync translations

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
3 years agoluci-app-banip: switch IP query provider
Dirk Brenken [Sun, 2 May 2021 20:11:25 +0000 (22:11 +0200)]
luci-app-banip: switch IP query provider

* switch to IPWHOIS.IO for IP report queries, the IP geolocation API is
  more accurate & faster

Signed-off-by: Dirk Brenken <dev@brenken.org>
3 years agoluci-app-travelmate: typo fix
Dirk Brenken [Sat, 1 May 2021 09:11:32 +0000 (11:11 +0200)]
luci-app-travelmate: typo fix

* typo fix & sync translations

Signed-off-by: Dirk Brenken <dev@brenken.org>
3 years agoluci-app-attendedsysupgrade: add target in reuqest
Paul Spooren [Sat, 24 Apr 2021 13:45:36 +0000 (03:45 -1000)]
luci-app-attendedsysupgrade: add target in reuqest

The updated ASU api requires `target` within reuqests since the
`profile` or `board_name` is never truely unique. This is especially a
problem for x86 devices which mostly use `generic` as profile name.

Signed-off-by: Paul Spooren <mail@aparcar.org>
(cherry picked from commit c6b4d4ab5a2c57889bcf14fafac17e73d22205c6)

3 years agotreewide: i18n - backport translations from master
Hannu Nyman [Tue, 27 Apr 2021 20:31:27 +0000 (23:31 +0300)]
treewide: i18n - backport translations from master

Backport translations from master.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
3 years agoluci-app-statistics: treat APC UPS "host" setting as single value option
Jo-Philipp Wich [Tue, 27 Apr 2021 08:09:05 +0000 (10:09 +0200)]
luci-app-statistics: treat APC UPS "host" setting as single value option

Existing Lua code incorrectly stated that the "Host" option takes a space
sparated list of hostnames which is not the case since the collect plugin
does not handle multiple hosts.

This change reverts the configuration to a simple value as proposed by
the original PR and adjusts the config summary accordingly, while retaining
the translation string.

Ref: https://github.com/openwrt/luci/pull/5010#issuecomment-827285319
Fixes: dd5d96afd ("luci-app-statistics: fix APC UPS host configuration")
Fixes: e7d22dce5 ("luci-app-statistics: convert collectd configuration to client side views")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 8816c8fff7e8e30f19e85c0f1c7f70b6914be701)

3 years agoluci-app-statistics: fix APC UPS host configuration
Jo-Philipp Wich [Mon, 26 Apr 2021 15:38:48 +0000 (17:38 +0200)]
luci-app-statistics: fix APC UPS host configuration

Ensure that list of hosts is stored as space separated list, like it was
done in the previous Lua implementation.

Fixes: #5010
Fixes: e7d22dce5 ("luci-app-statistics: convert collectd configuration to client side views")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit dd5d96afdba698e11d12880f4adf28e24a140305)

3 years agoluci-app-banip: sync with banIP 0.7.7
Dirk Brenken [Thu, 22 Apr 2021 04:04:22 +0000 (06:04 +0200)]
luci-app-banip: sync with banIP 0.7.7

* support the new 'Whitelist Only' mode
* sync translations

Signed-off-by: Dirk Brenken <dev@brenken.org>
3 years agoluci-app-dockerman: Carelessness fixed during branch rebasing
Florian Eckert [Wed, 21 Apr 2021 20:56:50 +0000 (22:56 +0200)]
luci-app-dockerman: Carelessness fixed during branch rebasing

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit c4f3ac05288ba148fcd5c0222f34f393dbec57a2)

3 years agoluci-mod-network: fix handling of optional RA/NDP options
Hannu Nyman [Tue, 20 Apr 2021 18:06:42 +0000 (21:06 +0300)]
luci-mod-network: fix handling of optional RA/NDP options

Fix the handling of optional IPv6 RA and NDP options
that were exposed to LuCI with 504bdb23f

Commit 504bdb23f defined them optional but provided default values.
Those values might get unnecessarily written to /etc/config dhcp when
the the user modifies some other values. Remove the default values,
but provide placeholder for some of them.

Add the missing optional definition to 'ndproxy_routing'.
(It is a flag, so optional default values do not get written to
the config file.)

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
(cherry picked from commit b7dd10da0fcdc9c69857d848ce1d47243998a22c)

3 years agoluci-app-dockerman: update I18n
Florian Eckert [Mon, 19 Apr 2021 14:27:34 +0000 (16:27 +0200)]
luci-app-dockerman: update I18n

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
3 years agoluci-app-dockerman: revised the information for the individual page
Florian Eckert [Thu, 8 Apr 2021 15:13:59 +0000 (17:13 +0200)]
luci-app-dockerman: revised the information for the individual page

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit ad05a0187bb9b03ba5ac9df27159f54521e15e18)

3 years agoluci-app-dockerman: move docker uci configuration to own page
Florian Eckert [Thu, 8 Apr 2021 14:11:07 +0000 (16:11 +0200)]
luci-app-dockerman: move docker uci configuration to own page

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit a9b196edafe4c751dbdb45937c76ad7a3a7abe38)

3 years agoluci-app-dockerman: if remote_endpoint is selected a port must be set
Florian Eckert [Thu, 8 Apr 2021 13:55:26 +0000 (15:55 +0200)]
luci-app-dockerman: if remote_endpoint is selected a port must be set

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 483f1005b1f635fd6ccf92b6fc0c1df5755280de)

3 years agoluci-app-dockerman: if remote_endpoint is selected a host must be set
Florian Eckert [Thu, 8 Apr 2021 13:54:17 +0000 (15:54 +0200)]
luci-app-dockerman: if remote_endpoint is selected a host must be set

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 2ffdf1988ee972933bd59ef975a374ec22f481bd)

3 years agoluci-app-dockerman: add datatype and detail info for remote_host option
Florian Eckert [Thu, 8 Apr 2021 13:21:17 +0000 (15:21 +0200)]
luci-app-dockerman: add datatype and detail info for remote_host option

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit f406004c9c6c547918a099241d2f4e56f8180e8e)

3 years agoluci-app-dockerman: add log_level i18n translation
Florian Eckert [Thu, 8 Apr 2021 13:06:51 +0000 (15:06 +0200)]
luci-app-dockerman: add log_level i18n translation

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 0e29a0ecc686c0c19e9a1964e60b687844fd517b)

3 years agoluci-app-dockerman: do not set log_level for dockerd default setting
Florian Eckert [Thu, 8 Apr 2021 13:03:46 +0000 (15:03 +0200)]
luci-app-dockerman: do not set log_level for dockerd default setting

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 36869ffd2b9cf98066ce57e3cc98608b9e2ec9a0)

3 years agoluci-app-dockerman: do not preset value selection
Florian Eckert [Thu, 8 Apr 2021 12:59:02 +0000 (14:59 +0200)]
luci-app-dockerman: do not preset value selection

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 9fd127869896ccf8e8e587c0eb43222fe71c9cfa)

3 years agoluci-app-dockerman: set examle registry url as placeholder
Florian Eckert [Thu, 8 Apr 2021 12:54:51 +0000 (14:54 +0200)]
luci-app-dockerman: set examle registry url as placeholder

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit ec564ddf6b0858a04699716eb68a8f91dba27f67)

3 years agoluci-app-dockerman: remove setting default bip option
Florian Eckert [Thu, 8 Apr 2021 12:43:22 +0000 (14:43 +0200)]
luci-app-dockerman: remove setting default bip option

If no bip option is set, then the default configuration of dockerd should
be used. The option does not need to be set explicitly.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit a9fe74d8fb7d599a00cf5dd64c736721f0698bf7)

3 years agoluci-app-dockerman: removal of the option socket_path
Florian Eckert [Thu, 8 Apr 2021 12:39:22 +0000 (14:39 +0200)]
luci-app-dockerman: removal of the option socket_path

This option is for debug purposes only. It makes no sense to offer this
option to the user. Especially as it is not used for a remote
connection.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 63c5cb56142d09c650dfabc873db55b598f09caa)

3 years agoluci-app-adblock: sync with adblock 4.1.1
Dirk Brenken [Sun, 18 Apr 2021 19:07:37 +0000 (21:07 +0200)]
luci-app-adblock: sync with adblock 4.1.1

* support new RPZ-Trigger 'RPZ-CLIENT-IP' (currently bind only)
* Reporting tweaks/mailing
* cosmetics
* sync translations

Signed-off-by: Dirk Brenken <dev@brenken.org>
3 years agotreewide: Backport translations - i18n
Hannu Nyman [Sat, 17 Apr 2021 16:21:32 +0000 (19:21 +0300)]
treewide: Backport translations - i18n

Backport translations from master.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
3 years agoluci-mod-network: fix xhtml markup
Dirk Brenken [Sat, 17 Apr 2021 16:15:57 +0000 (19:15 +0300)]
luci-mod-network: fix xhtml markup

* fix markup in interfaces.js (#4980)

Signed-off-by: Dirk Brenken <dev@brenken.org>
(Adapted from commit 2617fcdc631d0b504abdb27bb17d44f26c230cda
 by taking only the .js part.)
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
3 years agoluci-mod-network: Introduce new RA and NDP params with help-text.
Paul Dee [Thu, 1 Apr 2021 17:02:36 +0000 (19:02 +0200)]
luci-mod-network: Introduce new RA and NDP params with help-text.

New: Router Advertisement parameters and accompanying help-text.
New: 3 additional NDP options and accompanying help-text.

Until now, some of the IPv6 settings are mysterious. They are now
clarified. The information is accessible to IPv6 beginners.

Signed-off-by: Paul Dee <itsascambutmailmeanyway@gmail.com>
(cherry picked from commit 504bdb23fbaff28cc31cc1dd2408a9f1cd5eddde)

3 years agoluci-mod-network: Add help text for many existing odhcpd IPv6 parameters
Paul Dee [Thu, 1 Apr 2021 19:52:55 +0000 (21:52 +0200)]
luci-mod-network: Add help text for many existing odhcpd IPv6 parameters
and Global network options ULA.

Relocated the "DHCPv6 Mode" to below RA-Service: DHCPv6-Mode is actually
ra_management in disguise. Better grouping.

Until now, some of the IPv6 settings are mysterious. They are now
clarified. The information is accessible to IPv6 beginners.

Signed-off-by: Paul Dee <itsascambutmailmeanyway@gmail.com>
(cherry picked from commit 988c98bdc6b30a1d9fb17e1ba4444d0beb236b8a)

3 years agoluci-base: form.js: fix AbstractValue.textvalue() for uci list options
Jo-Philipp Wich [Fri, 16 Apr 2021 15:29:32 +0000 (17:29 +0200)]
luci-base: form.js: fix AbstractValue.textvalue() for uci list options

Serialize the uci list value into a space separated string before passing
it to String.format() for HTML escaping. Without that change, empty strings
were returned whenever the underlying uci get operation yieled an array.

Fixes: #4993
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 5c792aefc744d1417fc9e24cfb92cd61cf8a651f)