prevent global variable bleed and reduce size somewhat
-cbi
-network
-protocol/static
-rpc
-tools/widgets
-tools/views
-uci
protocols
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Previously, the render code attempted to add the class "hidden" to the button
row, the button row which can have a persistent visibility style applied via CSS
so the "hidden" class attribute was overridden. Set the style.display of the row
instead which now hides the button row.
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Clear, crisp, resolution independent vector graphics replace the trusty
microscopic PNG. Some minor CSS changes were needed to constrain images
in some locations to make sure they don't consume too much space.
Iconography taken from Mate desktop theme with minor adjustments:
https://github.com/mate-desktop/mate-icon-theme/
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Added the legacy peer name detection algorithm. If the new algorithm
fails to find a peer's name (e.g. when the IP address has been changed)
then the legacy value will be used.
Signed-off-by: Tom Haley <this_username_has_been_taken2@proton.me>
fwmark is used internally during firewall processing, and no mark
remains on egress. Yes, the fwmark is to identify egress encrypted
packets, but no egress packet itself contains this value, and
this metadata disappears once the packet leaves the firewall.
The current wording is ambiguous, since "for" does a lot of lifting.
"during" helps limit the scope of this definition.
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
shellquote method is introduced so an injected code cannot be executed by the popen command.
Signed-off-by: Tom Haley <this_username_has_been_taken2@proton.me>
This commit fixes incorrect peer detection when using IP v6 by deleting all the square the square brackets from the wgHost variable.
Signed-off-by: Tom Haley <this_username_has_been_taken2@proton.me>
Fixed bug with incorrect peer name detection on `Status -> WireGuard`
page when more than one peer with the same public key exist:
1. Peers are now tested not only by public key, but also by
enabled/disabled status, peer host (both IP and FQDN are supported)
and port.
2. Added required `resolveip` dependency.
Closes#7342
Signed-off-by: @this-username-has-been-taken
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
If for some reason luci-lib-uqr is absent, the GUI shows that the proto
handler needs installing (since it now has a dep which is missing).
Suitable action is to install the lib or remove/install wireguard again.
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Daniel F. Dickinson changed email address to <dfdpublic@wildtechgarden.ca>
luci-all-lxl has a maintainer Petar Koretic <petar.koretic@sartura.hr> but there is no corresponding GitHub account.
So Dirk Brenken was added as a second maintainer: he answered on an issue of the app.
When maintainer wasn't set the initial author was used, or most contributor or Jo-Philipp Wich as a default.
Signed-off-by: Sergey Ponomarev <stokito@gmail.com>
Remove the unnecessary PROVIDES statements from two protocols.
Wireguard was recently changed erroneously: the old compatibility
reference to luci-app-wireguard was replaced by self-reference.
But as the app and proto were combined already in 2022, the old
compatibility define should be unnecessary by now, so just remove it.
Yggdrasil has had a similar unnecessary setting (package
PROVIDES itself), so remove that at the same time.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
The config generation code was referencing a not existing `dns_servers`
input field.
Fixes: #6921
Fixes: 5b26887c52 ("Adding a DNS option to the wireguard peer config ...")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Some clients like iOS require this explicitly, and so this change
adds the appropriate config with some sensible defaults.
Closes#6351
Signed-off-by: Nicholaos Mouzourakis <nevumx@gmail.com>
Signed-off-by: Paul Donald <newtwen@gmail.com>
Tested-by: Paul Donald <newtwen@gmail.com>
(cherry picked from commit 990696d73f982de015df7c7d552daef1a03f50c5)
Quality of life improvements. Reduce click amounts.
LuCI batches all changes for user-review anyway.
Tested on 23.05.0
Signed-off-by: Paul Donald <newtwen@gmail.com>
Some clients like iOS require this explicitly, and so this change
adds the appropriate config with some sensible defaults.
Addresses issue #6050
Signed-off-by: Nicholaos Mouzourakis <nevumx@gmail.com>
The `domain` option of a DDNS service entry may contain non-hostname values,
use the `lookup_hostname` option instead.
Fixes: #6289
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Explicitly load `network` uci in wireguard rpcd backend as `ctx.foreach()`
does not implicitly load it.
Also remove leftover test setup information from the status page source.
Fixes: #6095
Fixes: 008fa18878 ("luci-proto-wireguard: rewrite rpcd handler in ucode")
Fixes: 6e6fce3eb4 ("luci-proto-wireguard: merge status page functionality")
Ref: https://github.com/jow-/ucode/pull/126
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Merge status page functionality from the separate `luci-app-wireguard`
package into the `luci-proto-wirguard` protocol backend.
Also rewrite the status page markup to be more compact while we're at it.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This corrects the option `AllowedIPs` in generated peer configurations,
and allows to customize it via a dropdown list.
Fixes: #5956
Signed-off-by: Julien Cassette <julien.cassette@gmail.com>
[correct fixes tag, slightly adjust option description]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
When importing a fully configuration, import all peer entries from it
instead of non-deterministically merging all peer keys into one.
When importing a remote configuration as peer, only use the setting from
the peer section matching our local interface pubkey.
Also relabel the `Import peer configuration` button to
`Import configuration as peer` in order to be more explicit.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
- Reword texts in import dialogs for better clarity, use different
descriptions for full import and peer import
- Allow importing configurations without [Peer] section
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The /etc/config/ddns in particular might not be present on the system,
don't fail if it is absent.
Fixes: #5838
Fixes: 9ba20645b0 ("luci-proto-wireguard: rewrite protocol handler")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit rewrites large chunks of the WireGuard protocol handler in order
to simplify the process of importing and exporting configuration. The major
changes are:
1) The wireguard interface configuration tab (General Settings) gained an
import assistant which allows dragging or pasting a native WireGuard
configuration file in order to import required settrings into uci
2) The peer configuration tab gained a similar import assistant which allows
importing the settings for a WireGuard peer from an existing native
WireGuard configuration file
3) The QR code export feature has been rewritten to make the resulting codes
actually useful for importing into a WireGuard client application.
Additionally the plaintext native WireGuard configuration is displayed
to allow copy-pasting it for use on a Linux or OS X system
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Turn the list of configured peers into a grid section in order to improve
the overview of the configuration form.
Fixes: #5489
Signed-off-by: Jo-Philipp Wich <jo@mein.io>