Commit graph

9653 commits

Author SHA1 Message Date
INAGAKI Hiroshi
b55b8775a0 luci-app-dnscrypt-proxy: update Japanese translation
Updated Japanese translations.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2018-04-25 23:13:28 +09:00
Jo-Philipp Wich
11f4a50b3f luci-base: additionally return error code strings in luci.util.ubus()
Add a 3rd return value to luci.util.ubus() containing the string value
of the error return value.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-24 19:22:55 +02:00
Jo-Philipp Wich
914c661b58 luci-base: ensure that file upload values have length
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>
2018-04-24 13:44:40 +02:00
Hannu Nyman
0c30ee07ce
Merge pull request #1759 from pmelange/feature_remove_nameserver_213_73_91_35
Removed retired nameserver 213.73.91.35 from the Freifunk profiles
2018-04-23 17:42:05 +03:00
pmelange
c2d3fe8a97 Removed retired nameserver 213.73.91.35 from the Freifunk profiles
See issue openwrt/luci#1757

Signed-off-by: Perry Melange <isprotejesvalkata@gmail.com>
2018-04-23 16:27:08 +02:00
Jo-Philipp Wich
82abf9add9 luci-base: decode plus signs in x-www-form-urlencoded POST data
Depends on 5ef51b2ab ("lucihttp: update to latest HEAD").
Fixes #1755.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-22 12:03:23 +02:00
Jo-Philipp Wich
5ef51b2abe lucihttp: update to latest HEAD
ccc685e lua: expose LH_URLDECODE_PLUS flag in Lua library

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-22 11:59:47 +02:00
Jo-Philipp Wich
628048772d luci-base: ship rpcd uci access ACL
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>
2018-04-21 14:59:41 +02:00
Jo-Philipp Wich
77aa96c52a luci-app-lxc: fix syntax error in previous commit
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-21 14:37:08 +02:00
Admin Localnet
de0d16e4ac luci-app-lxc: various changes
1) Modify dependencies

Add dependencies required for to be able use containers created from
"images.linuxcontainers.org". Several of them require "lxc-attach" for set
password so to be able login. None of them has SSH preinstalled so
"lxc-console" is required to be able login and install SSH, for example.

Remove dependency "xz", it seems incompatible with LXC_BUSYBOX_OPTIONS when
both are enabled happens a build crash.

2) Change container image repository

The repository "virtualwrt.org/containers/" seems to not work, I have change
it by the official LXC container image repository.

3) Translate the arch

Translate the local uname architecture to a valid "images.linuxcontainers.org"
arch. Only tested with the platform "mvebu" (armv7l -> armhf).

4) Other minor fixes

Use same server to list images and download the image.
Disable GPG check when listing images.

Reported-by: "Admin Localnet <localnet@users.noreply.github.com>"

[Squashed commits, cleaned up whitespace, refactor arch mapping, escape url
 setting, use system wide ubus helper, use uci model library]

Closes: #1422
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-21 14:35:26 +02:00
Jo-Philipp Wich
efcca75678 lucihttp: update to latest HEAD
c7c9c66 src: extend multipart parser test program
5071efb testcases: add multipart parsing edge cases
689e3d0 lib: multipart-parser: fix various edge cases

Fixes #1754.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-20 11:30:09 +02:00
Jo-Philipp Wich
172155eb46 luci-base: properly handle repeated POST parameters
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>
2018-04-19 12:00:13 +02:00
Jo-Philipp Wich
9b22c9c1e1 luci-base: implement session handling in luci.model.uci
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>
2018-04-19 11:42:12 +02:00
Jo-Philipp Wich
fc8f825e2f luci-base: drop dependency on libuci-lua
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>
2018-04-18 16:54:53 +02:00
Jo-Philipp Wich
6abc488db3 freifunk-common: explicitely depend on libuci-lua
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-18 16:54:16 +02:00
Jo-Philipp Wich
06b85427f5 lucihttp: update to latest HEAD
8617997 lib: cast size_t values in printf() to prevent compielr warnings

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-18 16:38:49 +02:00
Jo-Philipp Wich
b4040aacb0 libs: move http.protocol.{date,mime,conditionals} to luci-lib-httpprotoutils
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>
2018-04-18 16:21:27 +02:00
Jo-Philipp Wich
eb4571c6dc luci-base: fold luci.http.protocol into luci.http
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>
2018-04-18 16:21:27 +02:00
Jo-Philipp Wich
8f66de12c1 luci-base: refactor luci.http
- 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>
2018-04-18 16:21:27 +02:00
Jo-Philipp Wich
db0d5b33d0 luci-base: drop luci.util.dtable()
The dtable() function has no user in the entire LuCI repo, so drop it.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-18 16:21:27 +02:00
Jo-Philipp Wich
1d5a3123ed Revert "luci-base: add urldecode() and urlencode() C implementations"
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>
2018-04-18 16:21:27 +02:00
Jo-Philipp Wich
59dea0230c luci-base: switch to lucihttp based POST data processing
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>
2018-04-18 16:21:27 +02:00
Jo-Philipp Wich
f52c8d0b7f luci-base: switch to lucihttp.urldecode() and lucihttp.urlencode()
Drop the Lua implementation in luci.http.protocol and use the optimized C
variants of liblucihttp instead.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-18 16:21:27 +02:00
Jo-Philipp Wich
3f0abd936d lucihttp: update to latest HEAD
b7470d1 lua: back out early when instantiating parser with bad boundary
e1b1b1f testcases: remove stray .swp file
b46a6ca utils: introduce new LH_URLDECODE_PLUS flag

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-18 16:21:27 +02:00
Hannu Nyman
7d55be315d
Merge pull request #1750 from sotux/i18n_zh_cn
luci-base: zh_CN: update Simplified Chinese translation
2018-04-18 08:04:23 +03:00
Qian Zheng
8e087a3d53 luci-base: zh_CN: update Simplified Chinese translation
Signed-off-by: Zheng Qian <sotux82@gmail.com>
2018-04-18 09:22:07 +08:00
Jo-Philipp Wich
084499a4c0 contrib: package liblucihttp
Package liblucihttp, a utility library providing HTTP parsing and data
decoding helpers.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-17 11:31:37 +02:00
Jo-Philipp Wich
9f327a3d02 luci-app-openvpn: properly parse low PIDs
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-13 14:45:28 +02:00
Hannu Nyman
d4886818ce
Merge pull request #1744 from dibdot/mwan-fix
luci-app-mwan3: bugfix
2018-04-11 08:53:16 +03:00
Dirk Brenken
f3a10bb59b luci-app-mwan3: bugfix
* two more luci.model.uci fixes for #1743

Signed-off-by: Dirk Brenken <dev@brenken.org>
2018-04-10 21:38:07 +02:00
Hannu Nyman
b2eceb0bcc i18n: sync translations, cleanup
* sync translations
* clean-up old strings from adblock

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2018-04-10 18:27:07 +03:00
Hannu Nyman
d42ce28e20
Merge pull request #1742 from fantom-x/dhcp_cachesize_max
luci-mod-admin-full: limit dns cachesize to 10000
2018-04-10 17:36:29 +03:00
Jo-Philipp Wich
2b516423a0 luci-base: fix rendering of 404 HTML error template
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>
2018-04-10 12:03:15 +02:00
Jo-Philipp Wich
48a5864f06 luci-base: error404: do not access request env directly
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>
2018-04-10 12:01:43 +02:00
Jo-Philipp Wich
b194b8882e luci-base: don't propagate null bytes in path information
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>
2018-04-10 11:41:32 +02:00
Jo-Philipp Wich
ad7dc4a492 luci-base: add urldecode() and urlencode() C implementations
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>
2018-04-10 11:41:32 +02:00
Marc Benoit
fbeea4ee33 luci-mod-admin-full: limit dns cachesize to 10000
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>
2018-04-09 20:51:14 -04:00
Hannu Nyman
edd1fab34e
Merge pull request #1741 from dibdot/mwan-fix
luci-app-mwan3: bugfix
2018-04-09 17:33:21 +03:00
Marc Benoit
28d10632a1 luci-mod-admin-full: allow setting dns cachesize
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>
2018-04-09 17:17:02 +03:00
Dirk Brenken
f7f5395f1c luci-app-mwan3: bugfix
* make use of luci.model.uci to fix #1740

Signed-off-by: Dirk Brenken <dev@brenken.org>
2018-04-09 15:50:21 +02:00
Jo-Philipp Wich
b1b5723516 luci-base: consider empty parameters as well when testing POST requirement
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>
2018-04-09 07:19:28 +02:00
Hannu Nyman
0ab0303527 i18n: sync translations
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2018-04-08 20:38:30 +03:00
Hannu Nyman
c7369830b6 timezone data: update to 2018d
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>
2018-04-07 23:26:29 +03:00
Jo-Philipp Wich
1104b837cd luci-app-advanced-reboot: remove explicit libuci requirement
Rewrite affected code to use luci.model.uci in order to avoid the need for
using libuci-lua directly.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-07 14:42:51 +02:00
Jo-Philipp Wich
75ac400168 luci-app-vpnbypass: remove explicit libuci requirement
There is no direct user of the libuci-lua api, just some commented out code.
Rewrite the commented code to use the Map's uci cursor and remove the
explicit require.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-07 14:40:44 +02:00
Jo-Philipp Wich
8c636c87ee luci-base: fix luci.model.uci.get_first()
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>
2018-04-07 14:09:18 +02:00
Hannu Nyman
646545da56
Merge pull request #1733 from stangri/master
luci-app-advanced-reboot & luci-app-vpnbypass: fix uci require for ma…
2018-04-07 14:25:07 +03:00
Stan Grishin
7d87297e17 luci-app-advanced-reboot & luci-app-vpnbypass: fix uci require for master
Signed-off-by: Stan Grishin <stangri@melmac.net>
2018-04-07 04:14:58 -07:00
Jo-Philipp Wich
5c31937a0f luci-base: escape path strings and field parameter
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>
2018-04-07 11:43:44 +02:00
Jo-Philipp Wich
83a59dc0f7 luci-app-openvpn: quote grep expression in getPID()
Fixes c0d9c4f3c ("treewide: filter shell arguments through shellquote() where applicable")

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-06 23:38:38 +02:00