Update timezone data to 2018d
http://mm.icann.org/pipermail/tz-announce/2018-March/000049.html
In 2018, Palestine starts DST on March 24, not March 31.
Adjust future predictions accordingly.
Casey Station in Antarctica changed from +11 to +08
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Properly propagate the config parameter to the foreach iterator in order
to fix get_first() lookups.
Fixes#1734.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Prevent various XSS vectors by not interpolating field and path values
verbatim into script and html contexts.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Introduce a get_state() function which can be used to access legacy
uci state variables. This is usually not needed anymore but some
packages (mainly mwan3) still rely on this.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Make the hint message more explicit to tell users that the prefix size needs
to be specified as well.
Fixes#1559.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
- Use the ubus session.login procedure to authenticate credentials
- Fix testing of allowed usernames
- Support authentication via sysauth cookie
Fixes#1300, #1700, #1711
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Instead of passing the full LuCI request url, pass the relative resolved
request path instead and filter the received value through the lookup()
dispatcher function to only allow paths to actual internal pages.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The lookup function takes multiple, possibly malformed path fragments,
splits them on slashes, constructs a temporary path and looks up the
result in the dispatch tree.
If a matching node has been found, the function will return both the
node reference and the canonical url to it.
If no corresponding node is found, the function returns nil.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Introduce a new function luci.util.shellquote() which encloses the given
string argument in single quotes and escapes any embedded single quote
characters.
This function is intended to be used when interpolating untrusted input
into shell commands.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Due to the fact that luci.model.cbi reacts on any "cbi.submit" value while
the dispatcher only required POST for cbi.submit == 1, the CSRF token
protection could be bypassed.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Introduce a new template property FULL_REQUEST_URI which returns the full
canonicalized request URL built from SCRIPT_NAME, PATH_INFO and QUERY_STRING.
This new property is safer to use compared to using the raw REQUEST_URI CGI
environment variable directly as this value is essentially untrusted user
input which may contain embedded escaped slashes, double forward slashes and
other oddities allowing XSS exploitation or request redirection.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Some applications, e.g. dnsmasq, do not allow hostnames starting with an
underscore, therefor extend the existing hostname datatype validator with
a `strict` which disallows a leading underscore.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Switch luci.model.uci to use ubus uci calls instead of driving libuci-lua
directly.
This prepares support for more advanced features such as per-session change
isolation and configuration rollback on errors.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* enhance the checklib function in util.lua to check the 'fullpathexe'
as well, e.g. this fixes runtime errors on the dhcp/dns template in
environments without dnsmasq
Signed-off-by: Dirk Brenken <dev@brenken.org>
Use the new luci.ip MAC address facilities to parse and verify MAC addresses
in a common way, instead of relying on various ad-hoc solutions.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The /etc/ethers file may contain any number of white space characters
between the mac address and the IP/hostname field, so extend the pattern
to allow for that.
Man ethers(5) also states that the IP field may be a symbolic hostname,
so test whether the name is an IP address or hostname before adding it
to the hints structure.
Fixes#1674.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
If IPv6 prefix assignment is disabled, the "local-address" structure
might exist, but be empty which causes the adress formatting in the
network model class to bail out.
Verify the completeness of the "local-address" structure before using
it in order to avoid runtime errors.
Fixes#1657.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Keep the ifname and bridge state backup variables in /etc/config/luci to not
pollute /etc/config/network.
Fixes#1655.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
OpenWrt/LEDE introduced the "local-address" field a while back to expose the
effective local host address of the delegated prefix, so use that information
instead of assuming `[prefix]:1`.
Fixes#1484.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
A valid host ID as accepted by netifd must meet the following criteria:
- Is either one of the two special "random" or "eui64" strings
- Or is a valid IPv6 address according to inet_pton(AF_INET6)
- Has the first 64 bit set to zero
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
If no DSL SNR offset is set for the dsl line the first entry from the
dropdown list is pre-selected by default, which would apply a -10 db
offset by default.
Pre-select the 0 db option if nothing else is specified in the uci config
files.
Signed-off-by: Mathias Kresin <dev@kresin.me>
The length of DUID-LL is 80 bits (16 bit DUID type, 16 bit hardware type, 48 bit mac)
which corresponds to 20 nibbles. Also lower the minimum required length of DUID to
20 nibbles in order to allow entering a DUID-LL.
Signed-off-by: Arjen de Korte <build+github@de-korte.org>
this was added to LEDE with ed62d91f4b5296a4aa883ce975d76f590ef4e910 and defaults to enable.
Signed-off-by: Sven Roederer <freifunk@it-solutions.geroedel.de>
* make it only visible for 802.11s mesh-networks
* have it enabled by default
Signed-off-by: Sven Roederer <freifunk@it-solutions.geroedel.de>
[add empty line before meshfwd assignment]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Remove the unused admin_system/buttons cbi model. It has been broken,
was not exposed in the controller and the corresponding support code
which only ever was available for the ath25 target has been dropped in
with https://git.lede-project.org/0a3d721in June 2016.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Signed-off-by: Vladimir <picfun@ya.ru>
[renamed swedish advanced-reboot.po as well, fixed a syntax error,
filtered updated files through ./build/i18n-sync.sh]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The _wifi_sid_by_ifname() function depends on _wifi_state_by_ifname()
so reorder the private helper functions accordingly to avoid nil value
call attempts.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
- fix mapping of ubus wireless state to uci declared vifs
- fix leaking foreign vif info into per-phy iwinfo stats
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Fixes [FS#1118](https://bugs.lede-project.org/index.php?do=details&task_id=1118)
Luci chokes on devices that do not have _iptables_ installed with:
/usr/lib/lua/luci/dispatcher.lua:460: Failed to execute function dispatcher target for entry '/'.
The called action terminated with an exception:
/usr/lib/lua/luci/dispatcher.lua:460: Failed to execute firstchild dispatcher target for entry '/admin'.
The called action terminated with an exception:
/usr/lib/lua/luci/dispatcher.lua:460: Failed to execute function dispatcher target for entry '/admin/status'.
The called action terminated with an exception:
/usr/lib/lua/luci/dispatcher.lua:460: Failed to execute template dispatcher target for entry '/admin/status/overview'.
The called action terminated with an exception:
/usr/lib/lua/luci/template.lua:97: Failed to execute template 'admin_status/index'.
A runtime error occured: [string "/usr/lib/lua/luci/view/admin_status/index.h..."]:34: bad argument #1 to 'tonumber' (string expected, got nil)
stack traceback:
[C]: in function 'assert'
/usr/lib/lua/luci/dispatcher.lua:460: in function 'dispatch'
/usr/lib/lua/luci/dispatcher.lua:141: in function </usr/lib/lua/luci/dispatcher.lua:140>
The code should be more defensive.
In case the DUID can be mapped to the MAC-Address of an already known
host, show the already know hostname next to the DHCPv6 supplied one in
case they differ.
Signed-off-by: Mathias Kresin <dev@kresin.me>
Don't show a DHCPv6 supplied hostname if none was send. It happens in
case the DUID can be mapped to the MAC-Address of an existing host and
the existing host has a name set.
Signed-off-by: Mathias Kresin <dev@kresin.me>
Don't replace the DHCPv6 supplied hostname if the DUID can be mapped to
the MAC-Address of an already known host.
It hides the issue of a missing DHCPv6 hostname and could lead to the
conclution that the already known host has an IPv6 address.
Signed-off-by: Mathias Kresin <dev@kresin.me>
Update timezone data to 2017c
http://mm.icann.org/pipermail/tz-announce/2017-October/000047.html
Briefly:
Northern Cyprus switches from +03 to +02/+03 on 2017-10-29.
Fiji ends DST 2018-01-14, not 2018-01-21.
Namibia switches from +01/+02 to +02 on 2018-04-01.
Sudan switches from +03 to +02 on 2017-11-01.
Tonga likely switches from +13/+14 to +13 on 2017-11-05.
Turks & Caicos switches from -04 to -05/-04 on 2018-11-04.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Allow user to chose if use FT over DS protocol or
FT over the Air protocol for Fast BSS Transition
Signed-off-by: Lorenzo Santina <lorenzo.santina@edu.unito.it>
Add local generation of PMK when using a PSK.
So 802.11r is easier to configure and no inter AP
communication is needed any more.
Signed-off-by: Lorenzo Santina <lorenzo.santina@edu.unito.it>
Properly deal with client accept languages containing a culture identifier
such as "zh-CN" or "pt-BR".
Fixes#1226.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
- Properly handle logic for evaluating inverted dependencies means
when depending on another field *not* having a given value
- Perform datatype validation *after* populating combobox choices to
avoid triggering a false-positive when validating an .rmempty = false
combobox during form instantiation
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The previous implementation of the function only returned ethernet
interfaces because it relied on the AF_PACKET family entries returned
by getifaddrs().
Change the function to simply collect all interface names it sees in
order to avoid missing tunnel interfaces.
Fixes FS#917.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
cbi_init() needs to be called at the end of the page to initialize
cbi_strings with "[data-strings]" while cbi_browser_init() happened
before that.
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
Some controller actions like the ones in "servicectl" require authentication
but are not meant to provide an authenticator because they're only invoked
by scripts.
Rework the dispatcher logic to handle this situation and only bail out if
an authenticator name other than "htmlauth" is set.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Drop the individual calls to nixio.getnameinfo() in luci.sys.net and rely
on the "network.rrdns.lookup" ubus call instead to fetch domain information
within a guaranteed timeout.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Drop a number of redundant functions from luci.sys to shrink the code a bit:
* luci.sys.net.arptable() - replaced by luci.ip.neighbors()
* luci.sys.net.routes() - replaced by luci.ip.routes()
* luci.sys.net.routes6() - replaced by luci.ip.routes6()
* luci.sys.net.deviceinfo() - replaced by nixio.getaddrinfo()
* luci.sys.net.pingtest() - no known user
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The luci-mod-admin-mini network controller is the only remaining user of the
deviceinfo() call so inline the required code there so that the function can
be dropped from base LuCI in a later commit.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The result of the luci.sys.net.deviceinfo() call was never actually used
anywhere in the following code, so simply drop the invocation.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Drop the custom credentials checking in favor to perform proper session
logins via rpcd. This is needed to properly setup ACLs when spawning
rpcd sessions in order to support direct client side ubus access in the
future.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Line 3021:
msgid "Switch protocol"
sould be:
msgstr "切换协议"
This "Switch protocol" means "Change one protocol to another protocol", Not "protocol of switch deivce"
Currently there are only 2 encryption options visible for adhoc
mode. But in netifd, others are also supported and working as
expected. So adding WPA-PSK, WPA2-PSK and WPA-PSK/WPA2-PSK Mixed
mode as encryption options.
Signed-off-by: Kishan Gondaliya <kishanpgondaliya@gmail.com>
Most users likely want the hostname of a static DHCP lease to be resolveable,
even if the corresponding host is currently offline.
Adjust the form logic to automatically set 'option dns 1' whenever a name is
specified in the static lease entry.
FIxes LEDE FS#815.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This change extends the switch VLAN configuration page to automatically
adjust interface ifname options when altering VLAN settings.
For example "eth0" is changed to "eth0.1" when a previously untagged LAN
VLAN is switched to tagged on the CPU port and vice versa.
Notifications are displayed in the page header if an auto migration was
performed.
This change should make the switch configuration more user friendly and
less prone to soft bricking.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Add support for 'ip6ifaceid' option for proto_static in LuCI.
Information about the option:
The option is optional and defaults to '::1'.
Allowed values: 'eui64', 'random', fixed value like '::1' or '::1:2'
When IPv6 prefix (like 'a🅱️c:d::') is received from a delegating
server, the ip6ifaceid suffix (like '::1') is used to form
the IPv6 address ('a🅱️c:d::1') for the interface.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Cron init script starts the service only if a crontab file
exists. If there is no crontab file at boot and the user
later creates one, he needs to manually restart the service.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
In some cases it is useful to be able to override the template used for the
sysauth login dialog.
Add a new property "sysauth_template" which allows overriding the template
name from controller files.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Prevents deletion of the UCI dns boguspriv keyword and explicitly sets it to
either 0 or removes it as the LEDE/Openwrt dnsmasq.conf default is 1 - not 0.
This allows boguspriv to be turned off from the GUI.
Signed-off-by: Warren Linton <warren@linton.id.au>
[Jo-Philipp Wich: squashed commits, updated commit message]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
As suggested by PR #1114, use `/proc/sys/net/netfilter/nf_conntrack_count`
instead of counting the lines in `/proc/net/nf_conntrack` but use a slightly
more efficient approach which avoids spawning an extra `cat` command.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Use the new hostapd functionality (in LEDE) to detect 802.11r and 802.11w
more properly. Leave the old logic in place for Openwrt.
Adjust 802.11w default value from "0" to "" in order to avoid unnecessary
"option ieee80211w 0" lines in /etc/config/wireless
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Adds support for the fwmark option.
FwMark is a 32-bit fwmark for outgoing packets.
If set to 0 or "off", this option is disabled.
Signed-off-by: Dan Luedtke <mail@danrl.com>
If hostname get changed in "/etc/config/system" dnsmasq should reloaded
his config to be reached again under the URL [HOSTNAME].lan
Signed-off-by: Florian Eckert <Eckert.Florian@googlemail.com>
Openwrt theme apparently accepsts slightly different html than
Bootstrap or Material. Cahnge code to <br /> to make it compatible.
This fixes#1011
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
The default hostapd/wpad mini version does not support ieee80211w
and the option's visibility in LuCI may lead it to be placed in user's
/etc/config/wireless preventing wifi from starting.
Check for hostapd/wpad full before exposing the option.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
luci ignores only 127.0.0.1 in real time connections.
The dnsmasq.init script sets up resolv.conf(s) as such.
With alternate DNS servers configured 'localhost' will
resolve to '127.0.0.1' or '::1'. The connections graph
will spam itself. openwrt/luci#996
Signed-off-by: Eric Luehrsen <ericluehrsen@hotmail.com>
Add support for IEEE802.11w Management Frame Protection options.
Mention in the help text that the full version of wpad/hostapd is
needed.
Currently supported by ath9k and ath10k, and in LEDE also by
mwlwifi and mt76.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Add datatype 'hexstring' for input validaiton datatypes.
It will accept any hexadecimal string.
(no length validation, as rangelength can be used for that.)
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
* Add WPA/WPA2-PSK mixed mode to the list of allowed modes
* Add datatype validation to some fields
* Add help texts
* Reformat longest lines
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>