/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