Use a more compact flex layout instead of the tabular display.
Also rename "WAN status" to "Upstream" to avoid future confusion about
wan interfaces vs. defaultroute interfaces.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This fix the strange redirect link, a bug with uwsgi where the controller
is empty and a bug with the revert page showing the apply content empty.
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
[drop unrelated revert.html template change]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Referring to this, #1698 , we add architecture info and we show Unknown instead of ?. This is usefull if someone needs to install opkg packages manually.
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Mostly convert HTML tables to div based markup to allow for easier styling
in the future. Also change JS accessor code accordingly.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
http.getenv("SCRIPT_NAME") fail if it's not provided. This can happen in the login screen when we don't have any script to load.
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Do override the iface section id upon commit to avoid clobbering the resulting
configuration. The manual config sync is not needed anymore after switching
to uncached ubus uci operations.
Fixes#1770.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
On certain environments, mainly with the embedded uhttpd interpreter, the
luci.config class cannot be loaded due to a circular dependency with the
luci.model.uci class.
Break up the dependency by deferring the loading of luci.config in
luci.model.uci until it is actually needed.
Fixes#1803, FS#1553.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
A simple scan of the code indicates that currently no code in the repo
is accessing the sysauth= cookie
Closesopenwrt/luci#1555
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
The check "supports_reset" only covers /proc/mtd partitions. If we have
this the commands checks for names like ubi or rootfs_data. If this is
found the system is possible for a factory reset. But on x86 the
situation is different. We have no /proc/mtd partitions because this
system do not use a bare metall flash.
To solve this issue check if we have an overlay and if so we could do a
factory reset. This could be applied for system which uses bare metal
flash and system which uses FTL or harddisks.
Jffs2reset is the current command used for factory reset. It will try
to find volume "rootfs_data" and if it's mounted will delete all files
under directory /overlay
luci-mod-admin-mini also has check for reset available, but we leave it
alone for now as it uses "mtd -r erase rootfs_data"
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
If log configuration get changed in uci system no new values are applied
until reboot. Add /etc/init.d/log reload to exec option will solve this
issue.
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Ship an /etc/init.d/ucitrack for spawning a virtual service with the sole
purpose to track the configurations and dependencies formerly handled by
luci-reload.
Once all LuCI supported services ship with procd compatible init scripts,
the uci track support can be dropped.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
- localize variables
- get rid of redirects breaking apply workflow
- auto-adjust unusable channels when switching country
- use apply/rollback workflow when enabling/disabling networks
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Switch to rpcd based uci apply/rollback workflow which helps to avoid soft-
bricking devices by requiring an explicit confirmation call after config
apply.
When a user now clicks "Save & Apply", LuCI first issues a call to uci apply
which commits and reloads configuration, then goes into a polling countdown
mode where it repeatedly attempts to call uci confirm.
If the committed configuration is sane, the confirm call will go through and
cancel rpcd's pending rollback timer.
If the configuration change leads to a loss of connectivity (e.g. due to bad
firewall rules or similar), the rollback mechanism will kick in after the
timeout and revert configuration files and pending changes to the pre-apply
state.
In order to cover such rare cases where a lost of connectivity is expected
and desired, the user is offered an "unchecked" apply option after timing
out, which allows committing and applying the changes anyway, without the
extra safety checks.
As a consequence of this change, the luci-reload mechanism is now completely
unsused since rpcd uses ubus config reload signals to reload affected
services, which means that only procd-enabled services will receive proper
reload treatment with the new workflow.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The previous attempt to fix authentication broke login functionality so
rework the code once again, this time with referencing helper functions
directly via the controller scope.
Furthermore, properly expose luci.sys.wifi.getiwinfo() and luci.ip.
For getiwinfo(), the RPC wrapped function accepts one further optional
parameter specifying the operation to invoke on the iwinfo instance.
If no operation is specified, a summary object containing all info
without country and scan list is returned.
Example to obtain iwinfo summary object:
curl --cookie sysauth=... \
--data '{"method": "wifi.getiwinfo", "params": ["wlan0"]}' \
"http://192.168.1.1/cgi-bin/luci/rpc/sys"
Example to obtain iwinfo scan list:
curl --cookie sysauth=... \
--data '{"method": "wifi.getiwinfo", "params": ["wlan0", "scanlist"]}' \
"http://192.168.1.1/cgi-bin/luci/rpc/sys"
The exposed luci.ip class uses a similar approach to allow invoking
instance methods on cidr objects. The new(), IPv4(), IPv6() and MAC()
constructors accept two further optional arguments, with the first
specifying the instance method to invoke and the second the value to
pass to the instance method.
Example to get list of IPv4 neighbours (ARP entries):
curl --cookie sysauth=... \
--data '{"method": "neighbors", "params": [{"family": 4}]}' \
"http://192.168.1.1/cgi-bin/luci/rpc/ip"
Example to add 100 hosts to a network address:
curl --cookie sysauth=... \
--data '{"method": "IPv4", "params": ["192.168.0.1", "255.255.255.0", "add", 1000]}' \
"http://192.168.1.1/cgi-bin/luci/rpc/ip"
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Internet Explorer 11 requires the timeout to be applied after the open()
call, otherwise an invlaid state exception will be raised
Fixes aa6c97154 ("luci-base: extend xhr.js")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Show the correct wifi chip identification in case iwinfo
recognises the chip.
So far the wifidev.get_i18n function has practically always
returned just "Generic", but use iwinfo.hardware_name to
fetch the name.
In case iwinfo returns the default "Generic MAC80211", there
is a double 80211 in the final string, which is a cosmetic bug.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Localize the `authenticatior()` and `session_retrieve()` functions into the
`index()` function scope so that they're retained when extracting the
function into the dispatcher bytecode cache.
Also allow access to the global scope since upvalues do not work reliably
due to the out-of-context byte code caching of index functions.
Fixes https://github.com/openwrt/luci/issues/1300#issuecomment-381352765
Fixes feefc600e ("luci-mod-rpc: rework authentication and session handling")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
When reading the configured mac address of the static lease, filter it
through luci.ip.checkmac() to canonicalize and uppercase the value for
mapping it against the combo box host hints.
Fixes#1772.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Support a new boolean property `cors` which - if set to true - causes the
dispatcher to positively answer CORS OPTIONS requests after authentication
without actually running the dispatching target.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Decode the HTTP message bodies of any request carrying a Content-Length
header, not just those in POST requests.
This allows handling parameters in other methods, OPTIONS in particular.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Ensure that the (table) length of a file upload value has nonzero length
by initializing the first table index with the file name.
This fixes tests in the form
x = luci.http.formvalue(...)
if x and #x > 0 then ... end
Fixes#1763.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Ship an ACL definition for granting full read/write access to uci
configuration files via ubus rpc. This is a precondition for enabling
uci session isolation later on.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Restore the old luci.http behaviour of converting repeated POST params into
single tables holding all values instead of letting each repeated parameter
overwrite the value of the preceeding one.
Fixes, among other things, the handling of CBI dynamic list values.
Fixes#1752
Fixes 59dea0230 ("luci-base: switch to lucihttp based POST data processing")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Introduce luci.model.uci.set_session_id() and luci.model.uci.get_session_id()
to set and get the effective session ID respectively.
When a session ID is set, it is sent as `ubus_rpc_session` attribute to rpcd,
causing it to use per-session change directories, isolating LuCI changes from
the global system uci state.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
LuCI itself now uses ubus calls to interact with uci configuration while
the remaining direct libuci-lua users have been updated to either depend
on the binding library or to use luci.model.uci.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Also adjust the dependencies of components depending on these classes and
flatten the namespace from luci.http.protocol.* to luci.http.*
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
With only the decoder routines remaining in luci.http.protocol, it makes no
sense to keep the low level protocol class around, so fold the remaining code
into the central luci.http class.
Also adjust the few direct users of luci.http.protocol accordingly.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
- Rewrite getcookie() to use liblucihttp header value parsing
- Rewrite setfilehandler() to use local variables and have cleaner code
- Fix build_querystring() to actually *en*code the given params
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This reverts commit ad7dc4a492.
Since we're using liblucihttp now, that library is the appropriate place to
add such decoding helper functions.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Use the liblucihttp provided multipart and x-www-urlencoded body parsers
and drop the old Lua parsing code.
The C based data parsers are way faster than their old Lua counterparts
while producing less string garbage and more correct results.
While refactoring the luci.http.protocol code, also drop unused functions
and dead code, heavily reducing the module size.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This 404 error template rendering has been broken for a long time due to bad
function environment level in luci.template when invoking the rendering from
the toplevel dispatcher context.
Fix this issue by adding a local function indirection, essentially adding an
additional stack frame.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Instead of attempting to access the request environment directly (which does
not work anyway using the CGI SGI), use the already sanitized
dispatcher.context.request property to print out the not found url.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
It is possible to inject unescaped markup using a double encoded null byte
via PATH_INFO on certain leaf nodes.
Since there is no legitimate reason to handle null bytes in any part of the
requested url, simply skip over such bytes when parsing the PATH_INFO value.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The C implementations of urlencode and urldecode are considerably faster
than their current Lua counterparts.
On an AMD Geode system, the C variant is up to ten times faster when
decoding strings and up to four times faster when encoding them.
The functions are also designed to only allocate new strings when any
actual changes are required, otherwise they reuse the existing input
strings, reducing the overal memory usage somewhat.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The value of cachesize is hardcoded to 10000 in
dnsmasq-2.79/src/option.c to 10000 max
case 'c': /* --cache-size */
{
int size;
if (!atoi_check(arg, &size))
ret_err(gen_err);
else
{
/* zero is OK, and means no caching. */
if (size < 0)
size = 0;
else if (size > 10000)
size = 10000;
daemon->cachesize = size;
}
break;
}
Tested on Netgear R7800
Signed-off-by: Marc Benoit <marcb62185@gmail.com>
In the case of more powerful routers the default
cachesize value == 150 is too small and can easily
be extended to 1,000's and 10,000's of entries.
It makes sense to make it easy configurable.
Tested on Netgear R7800
Signed-off-by: Marc Benoit <marcb62185@gmail.com>
Fix whitespace, edit the proposed help text.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
The cbi class will react on an empty "cbi.submit" parameter as well so we
must intercept GET requests using that too.
Fixes 186e690c0 ("luci-base: dispatcher: reject non-POST requests with any cbi.submit value")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
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>
Adds support for 802.11r fast transition to luci.
Corrects the deletion on nasid in issue #844
The R0KH & R1KH options are not perfect as it would be better
to separate out each option and do some sanity checking on
the values, but that is beyond my capabilities.
Signed-off-by: Warren Linton warren@linton.id.au
(squashed from three original commits in #994. commit message reworded)
The same wifi option 'nasid' is used for two purposes,
RADIUS NAS ID and 802.11r NAS ID / R0KH-ID.
In LuCI the 'nasid' option has depended on WPA-EAP/WPA2-EAP, which
can lead to accidental deletion of the option, if the user modifies
any wifi settings while he has WPA(2)-PSK & 802.11r mode.
802.11r can also be with WPA(2)-PSK, so add them to the dependency
list of allowed encryptions.
(Note: after this fix the 'nasid' field is shown unnecessarily
to "normal" WPA(2)-PSK users. It might later be set to depend on
802.11r being used, after 802.11r has been added to LuCI.)
Reference to bugs:
https://github.com/openwrt/luci/issues/844https://dev.openwrt.org/ticket/20764https://bugs.lede-project.org/index.php?do=details&task_id=274
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
The previous commit erroneously used "ports" instead of "port" as name for the
option widget, causing wrong uci values to be written.
Also work around some cbi idiosyncrasies regarding MultiValue widgets which
prevented rendering the correct initial selection state.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The Overview page and Network>Interfaces page currently do not give much information about IPv6, particularly with Prefix Delegated setups. In these setups, ISP will delegate a prefix to the router. Currently LuCI doesn't display this Prefix Delegation from the ISP anywhere. A number of changes was added to this commit:
1) self:_ubus("ipv6-prefix") was extracted and put into protocol.ip6prefix.
2) Network>Interfaces page, if a .ip6prefix is present, show it under Status. (IPv6-PD).
3) On the Overview page, "Type" and "Prefix Delegated" has been added to the IPv6 Network Overview Status:
- Type will display the .proto, similar to the IPv4 case. If a .ip6prefix is present, it'll display a "-pd" at the end of the Type: i.e. dhcpv6-pd vs. dhcpv6.
- If no .ip6prefix is present, it'll do what it does currently, and just show Address, or :: if no address is present.
- If .ip6prefix is present, it'll show the "Prefix Delegated", it'll also hide "Address" if no address is present, else it'll show ifc6.ip6addr as well.
Signed-off-by: Cody R. Brown <dev@codybrown.ca>
Move the password setting into the .parse() callback to ensure that it is
updated regardless of whether "Save" or "Save & Apply" has been pressed.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Reloading the page ensures that the allowed tx power values and channel select
lists are properly populated with the new effective values.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The missing parens lead to a wrong expression precedence, causing a runtime
error when attempting to compare nil with a number.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The expiry time in a dnsmasq lease file line may be 0 (i.e.
expiry date = 01/01/1970 00:00:00 GMT) to denote an infinite
lease time, so adjust the code to properly support that.
The expiry attribute of the lease object will be set to "false"
in case of an infinite lease. This is to mimic the odhcp code below.
If the expiry date is not equal to 0, then just do exactly what was
done before (return the os.diff of current time and ts).
Signed-off-by: Cody R. Brown <dev@codybrown.ca>
This should result in the MAC address display being the same
using odhcpd for v4 DHCP as when using DNSMasq for v4 DHCP.
Signed-off-by: Daniel Dickinson <lede@cshore.thecshore.com>
Recently a string to be translated were added to Lua source, so
I synchronized po templates and po file of each language with Lua
source.
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Fixed some display problems where the UUID label of the drop down
list does not exist and the positions of other labels are misplaced
in mount settings page.
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Default behaviour of changes to fstab (Mount Points) was
to use /etc/init.d/fstab restart, however this unmounts
filesystems via block umount which can cause the device
to fail, so replace the initscript call with an exec
of 'block mount'.
Signed-off-by: Daniel Dickinson <lede@cshore.thecshore.com>
Fixed an issue where the network name is displayed as "%q" on wlan
connection destination network settings page.
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
When converting interface names to UCI network names
webadmin fails if there is no UCI network name because
webadmin failed to ensure uciname has a value before
attempting to take a substring.
Signed-off-by: Daniel Dickinson <lede@cshore.thecshore.com>
Do not assume that the "raw" table is present on any system, instead check
/proc/net/ip{,6}_tables_names to determine which iptables tables are available.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Adds Korean language supported for Luci of OpenWRT. Most of msgs which
shown at UI are translated but still not completed for non-popular
features.
Signed-off-by: Weongyo Jeong <weongyo@gmail.com>
Commit 39ff053890 accidentally removed the conffiles definitions
from luci-base, statistics, splash and diag-devinfo apps.
That has caused existing config files to get overwritten if the
package has been reinstalled via opkg. Additionally, the splash
text files have not been saved in sysupgrade or backup as they
are located outside /etc/config
This commit adds back the conffiles definitions to the respective
packages.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Changes:
Saratov, Russia switches from +03 to +04 on 2016-12-04 at 02:00.
This hives off a new zone Europe/Saratov from Europe/Volgograd.
The new zone Asia/Atyrau for Atyraū Region, Kazakhstan, is like
Asia/Aqtau except it switched from +04/+05 to +05/+06 in spring
1999, not fall 1994.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
When a lease objects expires property is set to "false", its expiry time is
unlimited, so adjust the templates to properly display that state.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
The expiry time in an odhcpd lease file line may be -1 to denote an infinite
lease time, so adjust the code to properly support that.
The expiry attribute of the lease object will be set to "false" in case of an
infinite lease.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
We're currently just setting system time, but we don't set battery
backed RTC. Time in the RTC is only set on the graceful shutdown, which
is quite hard to achieve on embedded devices.
In other words, on systems with battery backed RTC we currently don't
handle following use case properly:
1. Set system time from web UI (sets only system time, but not RTC)
2. Unplug the device from power
Then after the reboot, we've wrong system time again, because time set
in [1] is not saved to battery backed RTC.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Note that several of the time zones now use a numeric name
that is quoted with < > (e.g. "<+03>-3")
musl 1.1.15 and earlier have a bug with < > quoted time zone names.
Fix for the bug
* has already been patched in musl upstream with
http://git.musl-libc.org/cgit/musl/commit/?id=8ca27ac4bfe73bff785d0c26c1de0da92b55e5c6
* has been committed in LEDE with
671cb35880
* has been submitted to Openwrt as pull request
https://github.com/openwrt/openwrt/pull/163
Key changes in 2016d-2016i:
---------------------------
2016d:
America/Caracas switches from -0430 to -04 on 2016-05-01.
Asia/Magadan switches from +10 to +11 on 2016-04-24.
New zone Asia/Tomsk, split off from Asia/Novosibirsk.
2016f:
Asia/Novosibirsk switches from +06 to +07 on 2016-07-24.
Asia/Novokuznetsk and Asia/Novosibirsk now use numeric time zone
abbreviations instead of invented ones.
2016g:
Turkey switched from EET/EEST (+02/+03) to permanent +03,
effective 2016-09-07. Use "+03" rather than an invented
abbreviation for the new time.
Several zones in Antarctica and the former Soviet Union, along
with zones intended for ships at sea that cannot use POSIX TZ
strings, now use numeric time zone abbreviations instead of
invented or obsolete alphanumeric abbreviations.
2016h:
Asia/Gaza and Asia/Hebron end DST on 2016-10-29, not
2016-10-21. Predict that future fall transitions will
be on the last Saturday of October.
Asia/Colombo now uses numeric time zone abbreviations like "+0530"
instead of alphabetic ones like "IST" and "LKT".
2016i:
Pacific/Tongatapu begins DST on 2016-11-06, ending on
2017-01-15. Assume future observances in Tonga will be
from the first Sunday in November through the third Sunday in
January, like Fiji. Switch to numeric time zone abbreviations
for this zone.
Northern Cyprus is now +03 year round, causing a split in Cyprus
time zones starting 2016-10-30 at 04:00. This creates a zone
Asia/Famagusta.
Antarctica/Casey switched from +08 to +11 on 2016-10-22.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
This reverts commit d4c3372020.
PATH inconsistencies and Host/Install arguments have been fixed in both
LEDE and OpenWrt, so we can revert the revert.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Specify reasonable sizes for metric and MTU fields to
prevent the table from being too wide.
Signed-off-by: Andrew Shadura <andrew.shadura@collabora.co.uk>
Now that luci-mod-admin-full figures out the proper diagnostics host
during postinstall we can remove the UCI section from the default
configuration file.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Attempt to infer the default diagnostics host for nslookup / ping / traceroute
from the various URLs in /etc/os-release. Fall back to "openwrt.org" if no
host is found to preserve backwards compatibility.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
OpenWrt doesn't provide an argument to Host/Install like LEDE does; use
HOST_BUILD_PREFIX instead, which is available on both.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Also, don't make any assumptions about the staging dir lua and LuaSrcDiet
were installed to.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Instead of defaulting to replace, even on hardware that supports multi
SSID, make the default to add. This reduces the chance of locking
oneself out when adding a second network. If you intended to replace,
ending up with two networks then deleting one is easier than recovering
when the old network configuration is gone.
Signed-off-by: Karl Palsson <karlp@etactica.com>
After clicking the "join" button on the scan list, the SSID is no longer
visible, though it's kept in the form to pass to the server.
Show the chosen SSID on the top of the page, to help people confirm that
they're joining the right network.
Signed-off-by: Karl Palsson <karlp@etactica.com>
Simplify the sysupgrade image checksum strings in order to
avoid translating "Checksum xxx" items both for MD5 and SHA256.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Show also the sha256 checksum in addition to MD5 checksum to enable
image verification also for builds with only sha256 checksums.
If the 'sha256sum' command is not present in the system, the value
remains empty.
Note: The easiest way to get the 'sha256sum' command is to compile it
into busybox.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Fix incomplete port status display on vlan setup page when ports in the middle
are not used, e.g. some Lantiq boards use ports 0, 1, 2 and 4 for LAN ports so
JS code should not attempt to reference an undefined status element for port 3.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Use a generic default topology if we cannot infer switch information from
board.json and display an error message in this case. Should fix#779 and
similar issues.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Fix the JavaScript String.format() to not trigger an exception if the argument
for an escaped format like %h or %q is undefined.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Wireless monitor interfaces usually have no SSID set in their config and
various network model utility functions did not handle this case properly,
mainly while trying to incorperate the SSID string into various description
labels.
Fall back to the internal network id (radioX.networkY) in cases where neither
the SSID nor the BSSID are available.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
In mod metamethod, execute string format under pcall() and rethrow error in
caller context to report caller of function in errors and not the meta
method itself.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Gracefully handle a missing diag section in /etc/config/luci when rendering
the network diagnostics tool page.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
When a wireless network is disabled it can't be removed. From
wifi_overview.htm the delete call is generated as wlan0, wlan1 or
whatever. This wlan is not working because it is disabled, then LuCI
deletes the virtual radio which really is named as wlan0.
This PR fixes an Internal Server Error when requesting the Wireless Informations in luci-mod-freifunk.
It checks an unindexed value "net.iwdata".
```
/usr/lib/lua/luci/dispatcher.lua:460: Failed to execute template dispatcher target for entry '/freifunk/status'. The called action terminated with an exception: /usr/lib/lua/luci/template.lua:97: Failed to execute template 'freifunk/public_status'.
A runtime error occured: [string "/usr/lib/lua/luci/view/freifunk/public_stat..."]:116: attempt to index field 'iwdata' (a nil value) 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...
```
signed-off.by: Guido Lipke <lipkegu@gmail.com>
Replace the menu item "Wifi" by "Wireless",
which is already used for page and section headings
This closes#695
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
An lua interpreter is required on the building host to run the
luasrcdiet lua script. Due to a build change, the interpreter was not
being installed to the correct location.
Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
Cleanup /etc/config/ucitrack by removing '6relayd' item,
as the whole 6relayd package was removed in 2014.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
This pull request adds a condition, which checks whether the file "/etc/config/fstab" exists before it allows access to "mount points".
Signed-off-by: Guido Lipke <lipkegu@gmail.com>
Otherwize the distrevision may be displayed twice if it contains some special matching patterns.(For example I am using "git-$hash" in my own OpenWrt branch.)
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
Add support for dnsmasq uci options 'quietdhcp' and 'sequential_ip'
(disable logging, allocate ip addresses sequentially)
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
restore the lookup of the freifunk community-name stored in
uci "freifunk.community.name".
In 9780ee382e
the value changed to the complete path of the community-profile, e.g.
"/etc/config/profile_berlin". This causes lookup problems on other
pages, like "mod-freifunk -> overview -> index" (view/freifunk/index.htm line37, line 54).
And as the option suggests it's the community-name not the community-profile path.
Signed-off-by: Sven Roederer devel-sven@geroedel.de
Fix the underlying _iface_ignore() function to not ignore virtual interfaces,
in order to let ignore_interface() return true for PPP and similar devices.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This patch fixes the wrong visualization of Noise Margin (SNR) and Signal Attenuation (SATN) stats
Signed-off-by: Luca Debernardi <luca.debernardi@gmail.com>
Check the location of the odhcpd leasefile from /etc/config/dhcp
via uci. Fallback to the default location.
This fixes#702
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Using tristate is counter-intuitive and probably doesn't provide a lot
of benefit so we use a boolean and treat "don't know" as false (because
it is safer than showing options that are not actually available).
Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>
Fix display of WAN status when WAN is provided by using WWAN device or similar with other similar similar methods.
Explanation:
Before this, protocol was fetched from /etc/config/network for interface which often is wan_4 - but protocol is configured in file as wan, and therefore protocol is always none, since configuration is made for wan and then setup as wan_4 and possibly wan_6 if ipv6 is being used. This commit uses ubus to get used active protocol. For example, in case of qmi, it displays protocol as dhcp since even if I configured wan to use qmi, dhcp was used as a protocol for getting IP address.
Update timezone data to 2016c.
2016b: http://mm.icann.org/pipermail/tz-announce/2016-March/000036.html
Changes affecting future time stamps
New zones Europe/Astrakhan and Europe/Ulyanovsk for Astrakhan and
Ulyanovsk Oblasts, Russia, both of which will switch from +03 to +04
on 2016-03-27 at 02:00 local time. They need distinct zones since
their post-1970 histories disagree. New zone Asia/Barnaul for Altai
Krai and Altai Republic, Russia, which will switch from +06 to +07
on the same date and local time. Also, Asia/Sakhalin moves from +10
to +11 on 2016-03-27 at 02:00.
As a trial of a new system that needs less information to be made up,
the new zones use numeric time zone abbreviations like "+04"
instead of invented abbreviations like "ASTT".
Haiti will not observe DST in 2016.
Palestine's spring-forward transition on 2016-03-26 is at 01:00,
not 00:00. Guess future transitions will be March's last Saturday
at 01:00, not March's last Friday at 24:00.
2016c: http://mm.icann.org/pipermail/tz-announce/2016-March/000037.html
Changes affecting future time stamps
Azerbaijan no longer observes DST.
Chile reverts from permanent to seasonal DST.
Guess that future transitions are August's and May's second
Saturdays at 24:00 mainland time. Also, call the period from
2014-09-07 through 2016-05-14 daylight saving time instead of
standard time, as that seems more appropriate now.
Note for Openwrt usage:
Either musl or busybox does not like the new timezone format.
Although the rule looks ok in /etc/TZ, timezone is interpreted wrongly
by date, uptime etc. "Old timezones" are handle correctly, but these
new "<+04>-4" style zones do not work. Example below:
Europe/Helsinki
root@OpenWrt:~# cat /etc/TZ
EET-2EEST,M3.5.0/3,M10.5.0/4
root@OpenWrt:~# uptime
11:00:52 up 18:17, load average: 0.43, 0.13, 0.11
root@OpenWrt:~# date
Wed Mar 30 11:00:55 EEST 2016
Europe/Astrakhan
( Time is showed as GMT instead of the correct zone and
zone name is parsed wrongly )
root@OpenWrt:~# cat /etc/TZ
<+04>-4
root@OpenWrt:~# uptime
08:02:52 up 18:19, load average: 0.17, 0.18, 0.13
root@OpenWrt:~# date
Wed Mar 30 08:02:59 +04>-4 2016
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Some packages have different variants that have different
capabilities depending on which libraries against which
they are linked. Add a function to check which library a
binary links against in order to determine available
functionality.
Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>
Fix a bug introduced by #561
Function 'shellsqescape' calls 'gsub' with the empty result string 'res'
instead of the actual parameter 'value'. This leads into error:
.../util.lua:160: bad argument #1 to 'gsub' (string expected, got nil)
Fix error by passing the correct parameter to the function.
After the fix, the unmount button introduced by #561 finally works.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Fix dhcpv6 ra_management option's handling of "stateless" value.
Default value for the option is 1, so trying to store ""
instead of "0" for stateless is not working.
This fixes#676
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
- Under some conditions the system will shutdown
uhttpd before the page will be delivered to
the client. Waiting one second should eleminate
this behaviour.
Signed-off-by: Florian Eckert <Eckert.Florian@googlemail.com>
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
When kmod-nf-nat6 and kmod-ipt-nat6 are installed, the firewall has also
the 'nat' table for ipv6, and packages like 'adblock' utilize that table.
Currently that table is not shown on the Luci firewall status page,
although it is visible by 'ip6tables -L -v -t nat' from console.
Detect 'nat' table's presence from /proc/net/ip6_tables_names
Show 'nat' table in Status->Firewall->IPv6 if that table is present.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
The version string displayed in the footer and the overview page contains
both LuCI and Openwrt versions. But due to differences in the contents
of /etc/openwrt_release the exact Openwrt revision r..... may be missing:
* In trunk that revision is included in the DISTRIB_DESCRIPTION field that
is displayed in Luci as the Openwrt version.
* In release branches, that field contains the release number like 15.05.
Revision number is always present in DISTRIB_REVISION field, so add the
revision from that field in case the revision is not already present
in the string.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Adjust luci.mk and luci-base to find out correctly if Luci is built
from master or from a branch. Display that value in the footer and
the overview page.
* Evaluate the git branch in luci.mk and pass that to LuCI submodules
as a make variable. Use branch name, ignore tags.
* Deprecate svn detection in luci-base's mkversion.sh that generates
version.lua. Simply use the value passed by make.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
This adds a lot of new status information about the dsl line.
It now looks like this on a Telekom line:
Status: UP
Line State: showtime_tc_sync [0x801]
Line Mode: G.993.2 (VDSL2)
Annex: B
Profile: 17a
Data Rate: 51.391 Mb/s / 10.046 Mb/s
Max. Attainable Data Rate (ATTNDR): 63.817 Mb/s / 23.908 Mb/s
Latency: 4.0 ms / 8.0 ms
Line Attenuation (LATN): 10.5 dB / 9.9 dB
Signal Attenuation (SATN): 8.2 dB / 14.4 dB
Noise Margin (SNR): 10.5 dB / 9.7 dB
Aggregate Transmit Power(ACTATP): -14 dB / 12.4 dB
Forward Error Correction Seconds (FECS): 1 / 1723485
Errored seconds (ES): 0 / 2477
Severely Errored Seconds (SES): 0 / 50
Loss of Signal Seconds (LOSS): 0 / 0
Unavailable Seconds (UAS): 31 / 31
Header Error Code Errors (HEC): 0 / 0
Non Pre-emtive CRC errors (CRC_P): 0 / 0
Pre-emtive CRC errors (CRCP_P): 0 / 0
Line Uptime: 2m 3s
ATU-C System Vendor ID: Broadcom 176.15
Power Management Mode: L0 - Synchronized
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add an empty, normally invisible label after checkboxes and radio buttons
with cbi-input-{checkbox,radio} classes to allow CSS styling them as
suggested on http://www.paulund.co.uk/style-checkboxes-with-css
Signed-off-by: Nils Schneider <nils@nilsschneider.net>
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Fall back to default language if "auto" is configured, but none provided by
the browser matches.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Enable setting a host-specific lease time for static hosts.
Format is similar as for the default lease time: e.g. 2m, 12h, 3d, infinite
Default lease time is used for all hosts without host-specific definition.
Support for the option was added to Openwrt trunk by r48801:
https://dev.openwrt.org/changeset/48801
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
* Fix left and right justify/padding in formats
* Do not emit decimal numbers for small values in %m format
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Eliminate more inline scripts in favor to global initialization, use a global
object for sharing fixed strings instead of passing them to each invocation.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
* fixed tabbed map when using NamedSection of same sectiontype
* add error message on which tab(s) the invalid/required fields are located
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Update timezone data to 2016a.
http://mm.icann.org/pipermail/tz-announce/2016-January/000035.html
Changes affecting future time stamps
America/Cayman will not observe daylight saving this year after all.
Revert our guess that it would. (Thanks to Matt Johnson.)
Asia/Chita switches from +0800 to +0900 on 2016-03-27 at 02:00.
(Thanks to Alexander Krivenyshev.)
Asia/Tehran now has DST predictions for the year 2038 and later,
to be March 21 00:00 to September 21 00:00. This is likely better
than predicting no DST, albeit off by a day every now and then.
Changes affecting past and future time stamps
America/Metlakatla switched from PST all year to AKST/AKDT on
2015-11-01 at 02:00. (Thanks to Steffen Thorsen.)
America/Santa_Isabel has been removed, and replaced with a
backward compatibility link to America/Tijuana. Its contents were
apparently based on a misreading of Mexican legislation.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Fix links to point into Github repo instead of luci.subsignal.org
- the hint to file a bug in dispatcher
- footers of Bootstrap and Firefunk themes
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Map DUIDs to their corresponding MAC addresses in order to correlate them with
IPv4 information. This is useful to e.g. identify IPv6 hosts which do not send
a name.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
* add more WPA-EAP phase2 authentication methods.
* client cert, client key and key password are only relevant for
WPA EAP-TLS, change dependency accordingly.
* add support for certificates and key for EAP-TLS phase2 auth.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
When fields got removed and readded due to unsatisfied dependencies, they
got inserted in reverse order into the dom.
Fix this issue by properly passing the element index.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Instead of relying on the connect-before-setuid hack, ship a proper
acl definition file whitelisting the procedures that LuCI requires
on its non-root pages.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Copy the changes made by f8d0ba00b2
also to the interface details pages in order to clarify display of
multiple addresses.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Some applications only support ipv4 so add ipv4only option
to host and hostport datatypes so that for thos applications
that when an IP address is specified only and ipv4 ip address
gets accepted.
The previous versiono of ipaddrport validator only worked for ipv4
due to disallowing colons (:) in ip address which obvious fails for
ipv6. We now instead allow either ipv4 address or an ipv6 address of
the form [<ipv6address>]:port
Some files and pointers to files are not safe to remove without a replacement
file and config pointing to the file. For instance for uhttpd application in
the works, removing the certificate or key config or files without having the
replacements in places renders the WeUI inaccessible.
The only other place where FileUpload is currently used is for wifi certificates
for which the 'safe' handling is also preferred. Therefore make the default for
the FileUpload widget the safe handling and add a property self.unsafeupload that
allows for the old unsafe handling should it prove useful in some case.
Also allow to specify a file already on router instead of uploading a file.
Signed-off By: Daniel Dickinson <openwrt@daniel.thecshore.com>
The call to http.formvalue in order to read the csrf token causes
_parse_input to be triggered *before* controllers and cbi maps have
been built. This results in the failure of file uploads because
the file handler is not yet in place when _parse_input gets called,
and it is in _parse_input that POST data is parsed (including files).
To fix this we add the ability to write file fields to temporary
files (using mkstemp and unlink in nixio.file) and use this to
store file data until the filehandler is registered, with a
fallback to reading the file data into memory.
Once the filehandler callback gets registered we iterate
though all previously parsed (saved) files and copy the
data to the file handler, and then close the temporary
file (which finally removes because we unlinked after
creating the file, but didn't close the file so unlink
was deferred).
Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>
Some applications only support ipv4 so add ipv4only option
to host and hostport datatypes so that for thos applications
that when an IP address is specified only and ipv4 ip address
gets accepted.
The previous versiono of ipaddrport validator only worked for ipv4
due to disallowing colons (:) in ip address which obvious fails for
ipv6. We now instead allow either ipv4 address or an ipv6 address of
the form [<ipv6address>]:port
Some files and pointers to files are not safe to remove without a replacement
file and config pointing to the file. For instance for uhttpd application in
the works, removing the certificate or key config or files without having the
replacements in places renders the WeUI inaccessible.
The only other place where FileUpload is currently used is for wifi certificates
for which the 'safe' handling is also preferred. Therefore make the default for
the FileUpload widget the safe handling and add a property self.unsafeupload that
allows for the old unsafe handling should it prove useful in some case.
Also allow to specify a file already on router instead of uploading a file.
Signed-off By: Daniel Dickinson <openwrt@daniel.thecshore.com>
/lib/uci/upload is a rather odd place for configuration files
Also the files were not saved across sysupgrade, which is somewhat
counter-productive for configuration files.
Signed-off By: Daniel Dickinson <openwrt@daniel.thecshore.com>
The new function is twice as fast as the old implementation and properly
summarizes outgoing and incoming byte and packet counters.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
For better view of 'Interface Overview' IPv4/IPv6 addresses for
interfaces should be displayed as lists, but not as comma separated
strings.
Signed-off-by: Alexander Logger <intagger@gmail.com>
Add two new types 'hostport' and 'ipaddrport' to validate strings in the form
'sub.example.org:1234' and '0.0.0.0:80'. The 'hostport' accepts hostnames or
IP addresses followed by a colon and a port number while the 'ipaddrport' type
accepts numeric IP addresses only, followed by a colon and a port.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
When using os.execute or luci.sys.call the shell is called with the
command line which means that standard shell interpretation of strings
occurs. To allow to use these commands more easily we add functions
for properly escaping single-quoted strings used on the command line
Previously the global configuration options were missing the the LuCI configuration,
however these options are useful, so make them available to the UI.
Limit the name of a new interface to 15 characters.
Add a note about the maximum length and the automatic protocol/bridge
prefixes (br-, 6in4-, pppoe- etc.).
Reference to:
https://dev.openwrt.org/ticket/20380https://github.com/openwrt/luci/issues/507
There is a 15 character limit to the "real" interface name,
enforced both in the firewall and dnsmasq. The real interface name
includes the possible prefix "br-", "6in4-" etc. Example of an error:
interface name `br-lan_protected' must be shorter than IFNAMSIZ (15)
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
* Prevents an empty Location header
* Useful in environments where build_url() could return an empty string (such as http server rewrites requests to /cgi-bin/luci)
Signed-off-by: Joel Pedraza <github@saik0.net>
Two new arguments url, defpath were added to cbi_dynlist_init() for
initializing the brower button.
An example of usage
identity = section:taboption("general", DynamicList, "identity",
translate("List of SSH key files for auth"))
identity.datatype = "file"
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
As per http://tools.ietf.org/html/rfc3986#section-2.3
Characters that are allowed in a URI but do not have a reserved
purpose are called unreserved. These include uppercase and lowercase
letters, decimal digits, hyphen, period, underscore, and tilde.
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
cbi.lua
- Implement Flag.validate function to be overwritable
- rewritten if clause for easier reading ;-)
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Rewrite `luci.sys.wifi.getiwinfo()` to use the ubus wireless state instead of
depreacated uci state vars in order to map abstract network notation to
wireless ifnames.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Do not use standard post security checking for actions that require file upload
since reading the token value will trigger parsing of the http message body
before the file upload handler has been set, which causes LuCI to buffer the
entire request body in memory.
In order to simplify the code and logic flow, split action_flashops() into
separate handlers for reset, backup, restore and sysupgrade.
Let the backup restore and sysupgrade handlers use the new test_post_security()
method in luci.dispatcher to perform token checking *after* setting the upload
handler.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Now that we don't have an url token anymore, '/cgi-bin/luci' becomes a valid
url while cookies are restricted to only '/cgi-bin/luci/' and below.
In order to ensure that the first request after login refers to a path
covered by the authentication cookie, change build_url() to always append
a trailing slash if we're referring to the base url.
This should fix the login problems mentioned in #516.
While we're touching the dispatcher, also remove remaining url token code.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Now that sensitive urls require post requests and only accept them if a valid
security token is sent along the request, we can drop the global random url
token to improve LuCI usability.
The main improvement is the ability to use multiple tabs with the same login
session, but also deep linking to specific urls without the need for another
login becomes feasible, e.g. for documentation purposes.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
* Use post_on() target to require csrf token verification for modifying actions
* Ensure that package and flash operation handlers guard modifying operations
with parameter check
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
* Add a generic helper function to check need for post / csrf token validation
* Remove custom token verification in cbi targets
* Support requiring post security depending on specific submit parameters,
usable through post_on() action
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Sync translations to the current strings.
Changes in luci-app-ddns, luci-app-mjpg-streamer, luci-app-qos,
luci-app-shadowsocks-libev, luci-app-statistics and luci-base
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Changes in 2015g:
http://mm.icann.org/pipermail/tz-announce/2015-October/000034.html
Norfolk moves from +1130 to +1100 on 2015-10-04 at 02:00 local time.
Fiji's 2016 fall-back transition is scheduled for January 17, not 24.
Fort Nelson, British Columbia will not fall back on 2015-11-01. It has
effectively been on MST (-0700) since it advanced its clocks on 2015-03-08.
New zone America/Fort_Nelson.
Note: the Turkey-related one-time rule change is not apparently catched by
the zoneinfo2lua script, so that change is not included in this commit.
(Turkey's 2015 fall-back transition is scheduled for Nov. 8, not Oct. 25.)
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Only process submitted data if the "cbi.submit" parameter is present as the
dispatcher will verify the integrity of the CSRF token in this case.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Add the dispatcher infrastructure to restrict certain routes to POST
requests only in conjunction with verification of CSRF tokens.
This is the first step to get rid of the CSRF token in the url in favor
to tokens embedded in forms.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Only attempt to call "dsl_func" if the dsl_control lucistat output could be
successfully evaluated.
Works around https://dev.openwrt.org/ticket/20607
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Change index.html that is visible for a second when entering Luci:
* Black text on white background (instead of white on black)
* Specify font as Arial/Helvetica
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
The mediaurlbase option in the default /etc/config/luci still points
to the old openwrt.org theme that is not installed by default.
The discrepancy was noted in the commit message for 55ab4e4ce2
After 55ab4e4ce2 the installed theme's uci-defaults script will correct
the setting at first boot, but we should not have a deprecated theme as
the default value. Set the default value to the default theme 'bootstrap'.
Related old discussion at #302
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Prevent word-wrap on the config input areas. Especially the feed
definition lines can be long, and automatic word-wrap can decrease
clarity.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Add package *.ipk size information to package listing in Luci,
as opkg was today extended to support listing also the size information.
Visible fields are now: name, version, size, description
That will help users considering installation of a certain package
to assess its size impact on flash.
Note: Opkg data includes the size of the .ipk file, not the expanded size.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
opkg config was recently changed by https://dev.openwrt.org/changeset/46491/
Existing /etc/opkg.conf was split to three:
/etc/opkg.conf -> base opkg configuration
/etc/opkg/distfeeds.conf -> default Openwrt package feeds
/etc/opkg/customfeeds.conf -> custom package feeds
Since then, the actual feed definitions have not been visible/configurable,
as only /etc/opkg.conf has been visible in Luci.
This patch restores the capability to see and edit package feed definitions.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Previously, get_list("fake", "non-existent", "notreal") would still
return a table, just empty. This is nice, as you can always iterate the
returned table, without having to check it first.
However, if you happened to pass a nil for any of the parameters, you
would actually get a nil in return. This was inconsistent.
The documentation is updated to clarify the behaviour of this function.
Signed-off-by: Karl Palsson <karlp@remake.is>
Allows lists fetched with get_list to be modified and simply passed back
to set_list. Explicitly calling set_list() with an empty list is clearly
requesting that there be zero list items, ie, deletion of the option
altogether.
Signed-off-by: Karl Palsson <karlp@remake.is>
Many packages currently include a git commit hash in version string.
That makes versions string very long and the version column takes much space
when listing available/installed packages in Luci.
Longest version string is 58 characters (micropython).
85 packages have at least 50 chars and 150 packages at least 40 chars.
Adjust Luci to display max. 26 characters (= luci's own version string).
Longer version strings are cut to: "first 21c" + ".." + "last 3c"
The last 3 chars are used to preserve the possible PKG_REVISION string.
E.g. 'opkg' has only hash+PKG_REVISION, so using only start of the string
might not be optimal.
Examples:
1.3.10-20150302-f2a889564b3a215902622b040a1247af38cb8203-1
1.3.10-20150302-f2a88..3-1
0.1-20150302-654c7d288603f7dae09eb09b57fb67b38c7ac6c3-1
0.1-20150302-654c7d28..3-1
9c97d5ecd795709c8584e972bfdf3aee3a5b846d-7
9c97d5ecd795709c8584e..d-7
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
The setfilehandler() functions used for mime and url encoded message
bodies all operate with a signature of fh(meta, chunk, eof), but for
unhandled encodings, the callback was directly assigned to the sink
function, which has a signature of snk(chunk). Insert a wrapper to
properly generate the EOF flag, and include a stub "meta" block
providing a virtual "name" and also the original client provided
Content-Type header, to possibly help with taking alternative actions in
the file handler.
The sink function created for raw content decoding also used the wrong
signature for the sink function.
Signed-off-by: Karl Palsson <karlp@remake.is>
Changes in 2015e and 2015f:
http://mm.icann.org/pipermail/tz-announce/2015-June/000032.htmlhttp://mm.icann.org/pipermail/tz-announce/2015-August/000033.html
Morocco will suspend DST from 2015-06-14 03:00 through 2015-07-19 02:00,
not 06-13 and 07-18 as we had guessed.
Assume Cayman Islands will observe DST starting next year, using US rules.
Although it isn't guaranteed, it is the most likely.
North Korea switches to +0830 on 2015-08-15.
The abbreviation remains "KST".
Uruguay no longer observes DST.
Moldova starts and ends DST at 00:00 UTC, not at 01:00 UTC.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
* minor fix function _list() set to local
* new function compare_version() lua version of opkg compare-version
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
I used build/zoneinfo2lua.pl to pull data from my Ubuntu 15.04.
Changes in 2015d are rather small:
http://mm.icann.org/pipermail/tz-announce/2015-April/000031.html
Changes affecting future time stamps
Egypt will not observe DST in 2015 and will consider canceling it
permanently. For now, assume no DST indefinitely.
Change affecting time zone abbreviations
The abbreviations for Hawaii-Aleutian standard and daylight times
have been changed from HAST/HADT to HST/HDT, as per US Government
Printing Office style. This affects only America/Adak since 1983,
as America/Honolulu was already using the new style.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Timezone information is updated to 2015c, released on 14 Apr 2015.
I used build/zoneinfo2lua.pl to pull data from my Ubuntu 14.10.
Changes in 2015b and 2015c are rather small:
http://mm.icann.org/pipermail/tz-announce/2015-March/000029.htmlhttp://mm.icann.org/pipermail/tz-announce/2015-April/000030.html
Mongolia will start observing DST again this year, from the last
Saturday in March at 02:00 to the last Saturday in September at 00:00.
Palestine will start DST on March 28, not March 27. Also,
correct the fall 2014 transition from September 26 to October 24.
Adjust future predictions accordingly.
Egypt's spring-forward transition is at 24:00 on April's last Thursday,
not 00:00 on April's last Friday. 2015's transition will therefore be on
Thursday, April 30 at 24:00, not Friday, April 24 at 00:00. Similar fixes
apply to 2026, 2037, 2043, etc.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Simplify fstab setup by offering hints for uuid/label and device node options.
Fix rootfs handling logic by removing obsolete references to the "is_rootfs"
option and offering "/" and "/overlay" choices for the mountpoint instead.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Timezone information is updated to 2015a, released on 30 Jan 15.
I used build/zoneinfo2lua.pl to pull data from my Ubuntu 14.10.
Changes are rather small:
http://mm.icann.org/pipermail/tz-announce/2015-January/000028.html
The Mexican state of Quintana Roo, represented by America/Cancun,
will shift from Central Time with DST to Eastern Time without DST.
Chile will not change clocks in April or thereafter; its new
standard time will be its old daylight saving time.
This affects America/Santiago, Pacific/Easter, and Antarctica/Palmer.
Ps. I manually edited headers to have the shorter new copyright,
instead of the long one generated buy the script.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Redirect to the canonical url after login and redirect to an url without
security token if the session expired. Also make sure that the login page
is served with status code 403, not 200 to give ajax calls a chance to
detect expired sessions.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
UCI network already permit dialnumber option for 3g interfaces.
This adds dialnumber to luci protocol 3g. Also it introduces a
new translation string "Dial number", added to template and updated
on each language (all empty but pt-br).
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Fetch the required information via ubus instead of relying on the
to-be-removed luci.sys.sysinfo() and luci.sys.loadavg() functions.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Previously the template engine did not interpolate translation macros if no
translation catalogue could be loaded due to a missing i18n directory.
Change the offending code to return the original string in any error case.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
* Rename subdirectories to their repective OpenWrt package names
* Make each LuCI module its own standalone package
* Deploy a shared luci.mk which is used by each module Makefile
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
The ltn12.pump.step() loop in parse_message_body was incorrectly testing
for EOF, and returning after the first chunk, even if further chunks
were available. The loop in parse_message_header made the correct
check, and test code making raw ajax json posts now succeeds for posts
>= 2048 bytes.
Signed-off-by: Karl Palsson <karlp@remake.is>
The read method of nixio's file and socket objects both return an empty string
when they reach EOF, not nil, causing the consumer to loop endlessly as
source.file() never terminates.
As there is no other situation in which an empty chunk is read, just change it
to nil to terminate the consumer's loop.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Timezone information embedded in Luci is updated to 2014i.
Afaik, the old data was from version 2011n.
I used build/zoneinfo2lua.pl to pull data from my Ubuntu 14.10 buildhost
that contains 2014i version of the timezone data.
2014j has been released this week, but is not yet embedded in Ubuntu and
Turks&Caicos is the only affected country/zone.
2014i: http://mm.icann.org/pipermail/tz-announce/2014-October/000026.html
2014j: http://mm.icann.org/pipermail/tz-announce/2014-November/000027.html
This update should fix Openwrt bugs #11445 and #18323.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Many complex widgets do not reset properly with traditional form reset,
therfore simply reload the page.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
The latest netifd updates changed the ubus wireless status reporting in a
way that breaks the current LuCI integration. Work around the changed
format by translating the extended UCI section syntax back to the plain one.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
This adds N modes support for proprietary Broadcom WiFi driver and adds a/b/g modes detection.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This adds the LuCI support for setting a mirror port on AR8327 switches.
Patch provided by Colin Leitner <colin.leitner@gmail.com>
Ref: https://dev.openwrt.org/attachment/ticket/10202
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
The patch checks the existence of the needed files for the WPS support and if they are present, shows the option to toggle WPS pushbutton settings.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Besides several AP networks, I have configured two STA networks on my
openwrt box - both on the same radio and thus on the same channel.
This was done via LuCI.
However after both STA networks were set up, I am unable to edit the
channel on neither network. When editing the one STA network, LuCI
tells me that the channel is locked by the other STA network. Same for
the other STA network.
Looks like a bug to me, so I made a patch.
Signed-off-by: Stephan Günther <steph.guenther@googlemail.com>
While working with 802.11ac (ath10k) I've noticed the web interface
configuration missing basic support for 11ac devices - unable to set VHT
(htmode) and 11ac (hwmode).
This patch adds initial support for luci admin-full page and 802.11ac
MAC80211 devices.
v2:
* replace obsolete 11nac mode with 11a + vhtmode (jow in ticket: #17323)
Signed-off-by: Bartosz Markowski <bartosz.markowski@tieto.com>
[jow: fix typo in get_i18n()]
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
filehandler was always set, so the default handler was never being
called. This led to calls to http.content() always returning nil.
Signed-off-by: Karl Palsson <karlp@remake.is>
Hello,
I opened an issue in trac but it doesn't let me attach the patch (it
complains about cookies not enabled, which isn't true), and I cannot see
it to try again since it's awaiting moderation (moderated submission
#34250) so here's the patch (against 0.11, but I see that trunk has the
same problem).
Bye
--
Luca
A textarea has a readonly property which is currently not supported by the TextValue template ( tvalue.htm )
Here the patch to add it to tvalue.htm
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
Merges libs/core, libs/ipkg, libs/web, libs/sys, libs/sgi-cgi, libs/sgi-uhttpd,
modules/admin-core, themes/base and protcols/core into modules/base and renames
luci-lib-core to luci-base.
Drop 11b support since its not properly supported by mac80211 anyway.
Rename 'hwmode' option to 'Band' and remove dependencies from 'htmode' field.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
LuCI is not only used on routers. When running on a NAS or you-name-it
non-router hardware, refering to "Router Name" and "Router Model" in the
system information page was confusing to some users.
OpenWrt contains a patch for hostapd which allows to override the channel-bandwidth decission
to always use 40MHz regardless of overlapping networks.
Though it does not conform with IEEE 802.11n-2009, this became the de-facto standard behaviour
of most off-the-shelf wifi routers.
Adding this option to LuCI makes it more accessible to users, which probably not everybody will
agree with to be a good idea. However, I didn't yet come across a single commercial product which
actually complies with 802.11n-2009 in that regard.
Signed-off-by: Daniel Golle <dgolle@allnet.de>
The failsafe module adds a minimal web-interface which is intended to
run on a very compact initramfs-based image intended only for flashing
firmware onto a device. This can be used as part of an installation method
or reside in a small partition on the device flash which can be booted
in case the checksum-test of the main kernel or rootfs fails.
Signed-off-by: Daniel Golle <dgolle@allnet.de>
The validity of authentication tokens was determined by the
mtime of respective authentication tokens on filesystem
stored in $sessionpath.
Talking about hardware without RTC or without a prior
connection to a time server, date/time usually around 1970 -
so is the mtime of the authentication token file in
$sessionpath.
When now configuring an internet connection via LuCI, the
system might fetch the current date/time (e.g. via ntp)
which invalidates the token, returns "403 Forbidden" and
kicks the user out of the interface.
This patch changes the authentication system to use time values
based on the uptime of the machine - rather than values based upon
gettimeofday() and {a|m}time values - and save them inside the token.
That way can always determine the difference between login
(last interaction respectively) and the current time, in-
dependant of the system clock jumping backwards/forwards.
Warning: This patch removes the clean() function and respective calls.
This means, invalid tokens will NOT be determined and removed from
filesystem automatically anymore.
Before, every HTTP-call caused a scan for invalid tokens,
which is quite expensive. Instead consider using a cron job
deleting all stalled files periodically.
Contributed by T-Labs, Deutsche Telekom Innovation Laboratories
Signed-off-by: Mirko Vogt <mirko@openwrt.org>
Some mac80211 drivers (rt2x00) probably won't support limiting TX-power to a
user-defined value in the near future under certain conditions, so it makes
sense to not expose that option in order not to confuse the user.
See http://patchwork.openwrt.org/patch/2187/
to understand the situation.
Signed-off-by: Daniel Golle <dgolle@allnet.de>
This allows to use translated version of the 'Net connected' string in
the Status/Overview/Network section.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
This patch allows the luci-flash script to continue with the upgrade if
openwrt is already running on a ramfs. This allows the use of luci-flash
as an _installer_ when running from an iso image. A user could boot the
system from a bootable cd and write an image to the hard disk or CF from
the Flash Firmware page.
Signed-off-by: Vasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
- translate i18n fallbacks to english in status controller
- bump copyright year in iptables and interfaces templates
- remove redundant fieldsets from iptables page and nuke a left-over code
Rename "MSS correction" to the correct term "MSS Clamping" in Firewall
Automatically set "defaultroute" and "peerdns" when PPP is selected in
Essentials
libs/sys: implement defaultroute6(), change return values of routes() and routes6()
modules/admin-full: adept route config page to new api
modules/freifunk: adept overview page to new routes api
* luci/moules/admin-mini: reload global config namespace when change theme or language (for persistent environments)
* luci/moules/admin-full: reload global config namespace when change theme or language (for persistent environments)
- only check option dependencies if option has a value
- remove option required for atheros mode in wireless scheme - breaks broadcom
* luci/model/admin-full:
- override section validation if we create a new network on demand
libs/json: Implemented own JSON-Decoder (Encoder will follow)
modules/rpc: Preliminary implemented RPC-Exports for luci.fs, luci.sys and luci.model.uci