Commit Graph

1543 Commits

Author SHA1 Message Date
Matthias Schiffer
073e559dc5
gluon-mesh-babel: do not allow disabling VXLAN (#2376)
With Babel, wired meshing cannot run on the same logical interface as
non-mesh traffic, so using VXLAN is mandatory.
2022-02-23 19:10:13 +01:00
David Bauer
428b8afb92
Merge pull request #2186 from freifunk-gluon/fastd-l2tp
fastd: add L2TP offload support
2022-02-23 19:03:19 +01:00
Matthias Schiffer
26b26395d1
Merge pull request #2399 from MyIgel/remove-xhtml
treewide: Replace xhtml content type with html, remove xhtml workaround, replace self closing tags
2022-02-22 21:46:29 +01:00
Matthias Schiffer
eea49a2834
gluon-config-mode-core: discard gluon-reconfigure output (#2395)
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.
2022-02-22 18:51:45 +01:00
Igor Scheller
f033fcfc0d treewide: Replace /> self closing html tags with > 2022-02-22 18:48:09 +01:00
Igor Scheller
d728f17b8f treewide: Replace xhtml content type with html, remove xhtml workaround 2022-02-20 12:45:43 +01:00
Igor Scheller
bbc00017a9
gluon-web-osm: Fix " rendering in attribution with CDATA tag (#2398) 2022-02-20 11:51:58 +01:00
Matthias Schiffer
62b24ed7ce
gluon-web-osm: update OpenLayers default URL to 5.3.0
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
2022-02-13 22:07:36 +01:00
Matthias Schiffer
7c6befc7c3
gluon-mesh-vpn-fastd: add L2TP offload support 2022-02-08 21:09:15 +01:00
Matthias Schiffer
15eeb86f42
gluon-{,web-}mesh-vpn-fastd: add support for null@l2tp method
THe "null" and "null@l2tp" methods are considered equivalent and always
added and removed together when the method list is "configurable".
"null@l2tp" is added before "null", so it is preferred when the peer
supports both.
2022-02-08 21:01:42 +01:00
Matthias Schiffer
487d312d25
fastd: update and add L2TP variant
This also drops the GMAC-based methods from gluon-mesh-vpn-fastd's
check_site.lua, as they are not supported anymore.
2022-02-08 21:01:42 +01:00
Matthias Schiffer
68e8d32570
Merge pull request #2383 from freifunk-gluon/web-fixes
gluon-web: prohibit cross-origin POST requests
2022-02-03 16:49:22 +01:00
Matthias Schiffer
1041014cf3
Merge pull request #2382 from freifunk-gluon/cleanup
Removal of more obsolete migrations, minor cleanup and improvements to lsupgrade.sh
2022-02-01 23:31:41 +01:00
Matthias Schiffer
a83466be6e gluon-web: prohibit cross-origin POST
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.
2022-02-01 23:27:38 +01:00
Matthias Schiffer
f3960eeb47 gluon-web: improve error handling of parse_message_body()
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.
2022-02-01 23:27:38 +01:00
Matthias Schiffer
de43b306d4 gluon-web: add CRLF to text/plain Internal Server Error output
Having a trailing newline is nice when viewing the returned data in a
terminal.
2022-02-01 23:27:38 +01:00
Matthias Schiffer
94519cfc56
gluon-web-*: remove unused "token" form value
This was a remnant of LuCI that was never used in gluon-web.
2022-02-01 23:22:08 +01:00
Matthias Schiffer
3ea770db73
ath79-generic: swap interfaces on TP-Link WBS210 v2 (#2385)
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
2022-01-28 19:45:34 +01:00
Matthias Schiffer
578daf5f87
gluon-core: remove obsolete config file 2022-01-23 14:44:07 +01:00
Matthias Schiffer
12127813c5
gluon-core: move preserve_channels setting to /etc/config/gluon
/etc/config/gluon-core is used for nothing else.

As /etc/config/gluon uses a named wireless section, also change the
get_first() to get().
2022-01-23 14:44:06 +01:00
Matthias Schiffer
b68a07e930
gluon-mesh-vpn-fastd: merge secret generation setup into main upgrade script
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.
2022-01-23 14:44:06 +01:00
Matthias Schiffer
d8f6ed2406
gluon-node-info: remove obsolete migration/fixup 2022-01-23 14:44:06 +01:00
Matthias Schiffer
225e8692bd
gluon-radvd: remove obsolete migration 2022-01-23 14:44:06 +01:00
Matthias Schiffer
c530070e96
gluon-mesh-vpn-tunneldigger: remove obsolete migration 2022-01-23 14:44:06 +01:00
Matthias Schiffer
84f4c164f4
gluon-setup-mode: remove obsolete migration 2022-01-23 14:44:06 +01:00
Luflosi
55e95dd49b
ath79-generic: add support for TP-Link Archer A7 v5 (#2374) 2022-01-14 23:20:22 +01:00
Maciej Krüger
a8d6a99f5b
gluon-mesh-vpn-wireguard: fix empty string key
Co-Authored-By: Matthias Schiffer <mschiffer@universe-factory.net>
2022-01-14 04:53:28 +01:00
Maciej Krüger
78ca654c5c
gluon-mesh-vpn-fastd: fix empty string key
Co-Authored-By: Matthias Schiffer <mschiffer@universe-factory.net>
2022-01-14 04:53:28 +01:00
Maciej Krüger
08a8ef0bcd
gluon-web-admin: remove pubkey empty string workarround
Co-Authored-By: Matthias Schiffer <mschiffer@universe-factory.net>
2022-01-14 04:53:25 +01:00
Maciej Krüger
816d2796be
gluon-core: add gluon info binary
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>
2022-01-14 04:53:19 +01:00
J. Burfeind
7427ba2280
gluon-status-page: split bwlimit into two lines (#2371)
Fixes: 1cb0fc84fc ("gluon-status-page: swap bandwidth limits (#2304)")
Resolves #2370
2022-01-07 21:35:15 +01:00
David Bauer
b95b857aa8
Merge pull request #2339 from freifunk-gluon/status-page-iwinfo
gluon-status-page: use UCI + iwinfo to get channel information
2022-01-02 19:18:53 +01:00
Matthias Schiffer
eaac48e20d
gluon-mesh-vpn-fastd: remove obsolete migration 2022-01-01 01:46:19 +01:00
Matthias Schiffer
97ef7889c6
gluon-core: remove more obsolete migrations 2022-01-01 01:45:52 +01:00
Matthias Schiffer
9712912904
gluon-l3roamd: remove obsolete migration code 2021-12-31 23:22:14 +01:00
Matthias Schiffer
5b40265ff2
gluon-mesh-batman-adv: remove obsolete migration code 2021-12-31 23:16:15 +01:00
Matthias Schiffer
bae14abca4
gluon-core: remove obsolete proto 'batadv' -> 'gluon_mesh' migration
More migration code from 2016.
2021-12-31 22:51:29 +01:00
Matthias Schiffer
16bf5e3e5d
gluon-core: remove obsolete sysconfig.gluon_version handling
The file /lib/gluon/version/core hasn't existed since early 2014, so
this whole script is obsolete.
2021-12-31 22:51:29 +01:00
Matthias Schiffer
4019293e85
gluon-respondd: remove obsolete migration from upgrade script (#2350)
announced was renamed to respondd in 2016. Let's remove the obsolete
migration code.
2021-12-25 11:42:57 +01:00
David Bauer
fdc79c5721
gluon-ebtables-limit-arp: declare clock as extern (#2343)
Declare the clock variable as extern in the header file.

Fixes compilation of gluon-ebtables-limit-arp with OpenWrt master:

multiple definition of `clock'; /gluon/openwrt/tmp/ccuynR0G.o:(.bss+0x230): first defined here

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-12-20 17:37:51 +01:00
Matthias Schiffer
17e1aa4ffd
gluon-core: migrate wireless configuration from hwmode to band
The migration is done very early, as other upgrade scripts depend on the
band setting through platform.device_uses_11a().
2021-12-19 16:43:19 +01:00
David Bauer
c52089fcda
treewide: use radio band option to determine frequency band
The 'hwmode' setting has been replaced with 'band' in OpenWrt to add
support for newer bands outside of 2.4G and 5G. Adjust Gluon accordingly.

[Matthias Schiffer: rebased, extended commit message]
2021-12-19 16:43:12 +01:00
Matthias Schiffer
b40b1c82e0
Merge pull request #2312 from freifunk-gluon/gluon-web-wifi-cleanup
Hide WLAN config on devices without WLAN + related cleanup
2021-12-16 20:03:27 +01:00
Matthias Schiffer
1013dcb148
gluon-ebtables-filter-ra-dhcp: disable DHCPv4 filter when gw_mode == 'server' (#2324)
In meshes without VPN or supernodes, it may be desirable to connect a
router providing IPv4 addresses directly to a regular Gluon node. For
this to work, it was necessary to remove the gluon-ebtables-filter-ra-dhcp
package from the node, so the autoupdater also needed to be disabled.

To avoid this, make gluon-ebtables-filter-ra-dhcp disable the DHCPv4
filter rules when gw_mode is set to 'server'.

No solution is provided for RA/DHCPv6, but this seems less pressing for
local meshes, as nodes can already provide working IPv6 connectivity
by themselves through gluon-radvd.
2021-12-16 20:01:57 +01:00
Matthias Schiffer
201e1597b1
gluon-status-page: use UCI + iwinfo to get channel information
The network.wireless status ubus call only returns the configured
channel from UCI, breaking the status page in outdoor mode, where the
configuration contains 'auto' instead of a number.

Fixes: 0d3fa6b59b ("gluon-status-page: use ubus to get radio channels")
Closes #2336
2021-12-15 22:48:13 +01:00
aiyion.prime
1944ea0e01 gluon-status-page: fix lastImage in Signal() 2021-11-12 12:23:37 +01:00
aiyion.prime
8c85be2125 gluon-status-page: fix address_to_groups()
In js `return` does behave like `continue` in a forEach() iteration.
The fixed function was intended to return nothing on error and does so
now, instead of a shorter (useless) array like before.
2021-11-12 12:19:47 +01:00
Matthias Schiffer
51a1708453
gluon-neighbour-info: avoid recv() with NULL buffer (#2323)
Calling functions like recv() with a NULL buffer is not explicitly
allowed by the POSIX standard, so it must be avoided to be portable
across different libc implementations. Allocate an initial buffer before
handling requests, and also pass this buffer to the peek recv() call.

Fixes: 531937cf6f ("gluon-neighbour-info: fix broken output with large results")
2021-10-16 14:01:34 +02:00
Matthias Schiffer
f419db58a2 Set PKG_VERSION in gluon.mk
This removes PKG_VERSION and PKG_RELEASE from most Makefiles, as the
value was never useful for Gluon packages; instead, PKG_VERSION is set
to 1 in gluon.mk.

It also removes two other weird definitions:

- gluon-iptables-clamp-mss-to-pmtu replicating the old PKG_VERSION logic
  from gluon-core, but without the fixed PKG_BUILD_DIR to prevent
  unnessary rebuilds
- gluon-hoodselector set GLUON_VERSION=3
2021-10-07 23:42:38 +02:00
Matthias Schiffer
a6187cce70
gluon-core, gluon-site: get version numbers from .config
Calling git describe directly breaks isolation between the build system
and packages. Replace this with proper .config variables, like we
already do for GLUON_RELEASE.

Also replace the PKG_VERSION hack with a static '1', as we do for other
packages - while having those version numbers in opkg was cute, it was
also entirely useless. Having a fixed PKG_VERSION allows us to remove
the PKG_BUILD_DIR override as well.
2021-10-05 21:48:07 +02:00