summaryrefslogtreecommitdiffhomepage
path: root/documentation/api/modules
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/api/modules')
-rw-r--r--documentation/api/modules/luci.dispatcher.html32
-rw-r--r--documentation/api/modules/luci.http.html854
-rw-r--r--documentation/api/modules/luci.http.protocol.conditionals.html32
-rw-r--r--documentation/api/modules/luci.http.protocol.date.html32
-rw-r--r--documentation/api/modules/luci.http.protocol.html32
-rw-r--r--documentation/api/modules/luci.http.protocol.mime.html32
-rw-r--r--documentation/api/modules/luci.i18n.html32
-rw-r--r--documentation/api/modules/luci.ip.cidr.html32
-rw-r--r--documentation/api/modules/luci.ip.html32
-rw-r--r--documentation/api/modules/luci.json.html598
-rw-r--r--documentation/api/modules/luci.jsonc.html32
-rw-r--r--documentation/api/modules/luci.jsonc.parser.html32
-rw-r--r--documentation/api/modules/luci.model.ipkg.html734
-rw-r--r--documentation/api/modules/luci.model.uci.html1436
-rw-r--r--documentation/api/modules/luci.rpcc.html328
-rw-r--r--documentation/api/modules/luci.rpcc.ruci.html281
-rw-r--r--documentation/api/modules/luci.sys.html645
-rw-r--r--documentation/api/modules/luci.sys.init.html32
-rw-r--r--documentation/api/modules/luci.sys.iptparser.html32
-rw-r--r--documentation/api/modules/luci.sys.net.html435
-rw-r--r--documentation/api/modules/luci.sys.process.html32
-rw-r--r--documentation/api/modules/luci.sys.user.html32
-rw-r--r--documentation/api/modules/luci.sys.wifi.html32
-rw-r--r--documentation/api/modules/luci.util.html1717
-rw-r--r--documentation/api/modules/nixio.CHANGELOG.html32
-rw-r--r--documentation/api/modules/nixio.CryptoHash.html32
-rw-r--r--documentation/api/modules/nixio.File.html32
-rw-r--r--documentation/api/modules/nixio.README.html32
-rw-r--r--documentation/api/modules/nixio.Socket.html32
-rw-r--r--documentation/api/modules/nixio.TLSContext.html32
-rw-r--r--documentation/api/modules/nixio.TLSSocket.html32
-rw-r--r--documentation/api/modules/nixio.UnifiedIO.html32
-rw-r--r--documentation/api/modules/nixio.bin.html32
-rw-r--r--documentation/api/modules/nixio.bit.html32
-rw-r--r--documentation/api/modules/nixio.crypto.html32
-rw-r--r--documentation/api/modules/nixio.fs.html32
-rw-r--r--documentation/api/modules/nixio.html32
37 files changed, 7521 insertions, 403 deletions
diff --git a/documentation/api/modules/luci.dispatcher.html b/documentation/api/modules/luci.dispatcher.html
index 63abb97358..4ae88fe612 100644
--- a/documentation/api/modules/luci.dispatcher.html
+++ b/documentation/api/modules/luci.dispatcher.html
@@ -37,6 +37,10 @@
<li><strong>luci.dispatcher</strong></li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -65,6 +69,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -73,6 +81,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -97,6 +125,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/luci.http.html b/documentation/api/modules/luci.http.html
new file mode 100644
index 0000000000..ea04fc236e
--- /dev/null
+++ b/documentation/api/modules/luci.http.html
@@ -0,0 +1,854 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+ <title>Reference</title>
+ <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+ <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+ <div id="product_logo"></div>
+ <div id="product_name"><big><b></b></big></div>
+ <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+
+ <li><a href="../index.html">Index</a></li>
+
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+ <li>
+ <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+ </li>
+
+ <li><strong>luci.http</strong></li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.date.html">luci.http.protocol.date</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.mime.html">luci.http.protocol.mime</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.i18n.html">luci.i18n</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.html">luci.ip</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.html">nixio</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.File.html">nixio.File</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.README.html">nixio.README</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bin.html">nixio.bin</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bit.html">nixio.bit</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.fs.html">nixio.fs</a>
+ </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.http</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+ <tr>
+ <td class="name" nowrap><a href="#build_querystring">build_querystring</a>&nbsp;(table)</td>
+ <td class="summary">
+
+Create a querystring out of a table of key - value pairs.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#close">close</a>&nbsp;()</td>
+ <td class="summary">
+
+Close the HTTP-Connection.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#content">content</a>&nbsp;()</td>
+ <td class="summary">
+
+Return the request content if the request was of unknown type.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#formvalue">formvalue</a>&nbsp;(name, noparse)</td>
+ <td class="summary">
+
+Get a certain HTTP input value or a table of all input values.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#formvaluetable">formvaluetable</a>&nbsp;(prefix)</td>
+ <td class="summary">
+
+Get a table of all HTTP input values with a certain prefix.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#getcookie">getcookie</a>&nbsp;(name)</td>
+ <td class="summary">
+
+Get the value of a certain HTTP-Cookie.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#getenv">getenv</a>&nbsp;(name)</td>
+ <td class="summary">
+
+Get the value of a certain HTTP environment variable
+
+or the environment table itself.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#header">header</a>&nbsp;(key, value)</td>
+ <td class="summary">
+
+Send a HTTP-Header.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#prepare_content">prepare_content</a>&nbsp;(mime)</td>
+ <td class="summary">
+
+Set the mime type of following content data.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#redirect">redirect</a>&nbsp;(url)</td>
+ <td class="summary">
+
+Redirects the client to a new URL and closes the connection.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#setfilehandler">setfilehandler</a>&nbsp;(callback)</td>
+ <td class="summary">
+
+Set a handler function for incoming user file uploads.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#source">source</a>&nbsp;()</td>
+ <td class="summary">
+
+Get the RAW HTTP input source
+ </td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#splice">splice</a>&nbsp;(fp, size)</td>
+ <td class="summary">
+
+Splice data from a filedescriptor to the client.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#status">status</a>&nbsp;(code, message)</td>
+ <td class="summary">
+
+Set the HTTP status code and status message.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#write">write</a>&nbsp;(content, src_err)</td>
+ <td class="summary">
+
+Send a chunk of content data to the client.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#write_json">write_json</a>&nbsp;(data)</td>
+ <td class="summary">
+
+Send the given data as JSON encoded string.</td>
+ </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="build_querystring"></a><strong>build_querystring</strong>&nbsp;(table)</dt>
+<dd>
+
+
+Create a querystring out of a table of key - value pairs.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ table: Query string source table
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Encoded HTTP query string
+
+
+
+</dd>
+
+
+
+
+<dt><a name="close"></a><strong>close</strong>&nbsp;()</dt>
+<dd>
+
+
+Close the HTTP-Connection.
+
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="content"></a><strong>content</strong>&nbsp;()</dt>
+<dd>
+
+
+Return the request content if the request was of unknown type.
+
+
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+
+ <li>HTTP request body
+
+ <li>HTTP request body length
+
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="formvalue"></a><strong>formvalue</strong>&nbsp;(name, noparse)</dt>
+<dd>
+
+
+Get a certain HTTP input value or a table of all input values.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ name: Name of the GET or POST variable to fetch
+ </li>
+
+ <li>
+ noparse: Don't parse POST data before getting the value
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+HTTP input value or table of all input value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="formvaluetable"></a><strong>formvaluetable</strong>&nbsp;(prefix)</dt>
+<dd>
+
+
+Get a table of all HTTP input values with a certain prefix.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ prefix: Prefix
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table of all HTTP input values with given prefix
+
+
+
+</dd>
+
+
+
+
+<dt><a name="getcookie"></a><strong>getcookie</strong>&nbsp;(name)</dt>
+<dd>
+
+
+Get the value of a certain HTTP-Cookie.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ name: Cookie Name
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing cookie data
+
+
+
+</dd>
+
+
+
+
+<dt><a name="getenv"></a><strong>getenv</strong>&nbsp;(name)</dt>
+<dd>
+
+
+Get the value of a certain HTTP environment variable
+
+or the environment table itself.
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ name: Environment variable
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+HTTP environment value or environment table
+
+
+
+</dd>
+
+
+
+
+<dt><a name="header"></a><strong>header</strong>&nbsp;(key, value)</dt>
+<dd>
+
+
+Send a HTTP-Header.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ key: Header key
+ </li>
+
+ <li>
+ value: Header value
+ </li>
+
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="prepare_content"></a><strong>prepare_content</strong>&nbsp;(mime)</dt>
+<dd>
+
+
+Set the mime type of following content data.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ mime: Mimetype of following content
+ </li>
+
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="redirect"></a><strong>redirect</strong>&nbsp;(url)</dt>
+<dd>
+
+
+Redirects the client to a new URL and closes the connection.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ url: Target URL
+ </li>
+
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="setfilehandler"></a><strong>setfilehandler</strong>&nbsp;(callback)</dt>
+<dd>
+
+
+Set a handler function for incoming user file uploads.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ callback: Handler function
+ </li>
+
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="source"></a><strong>source</strong>&nbsp;()</dt>
+<dd>
+
+
+Get the RAW HTTP input source
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+HTTP LTN12 source
+
+
+
+</dd>
+
+
+
+
+<dt><a name="splice"></a><strong>splice</strong>&nbsp;(fp, size)</dt>
+<dd>
+
+
+Splice data from a filedescriptor to the client.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ fp: File descriptor
+ </li>
+
+ <li>
+ size: Bytes to splice (optional)
+ </li>
+
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="status"></a><strong>status</strong>&nbsp;(code, message)</dt>
+<dd>
+
+
+Set the HTTP status code and status message.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ code: Status code
+ </li>
+
+ <li>
+ message: Status message
+ </li>
+
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="write"></a><strong>write</strong>&nbsp;(content, src_err)</dt>
+<dd>
+
+
+Send a chunk of content data to the client.
+
+This function is as a valid LTN12 sink.
+If the content chunk is nil this function will automatically invoke close.
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ content: Content chunk
+ </li>
+
+ <li>
+ src_err: Error object from source (optional)
+ </li>
+
+</ul>
+
+
+
+
+
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#close">
+ close
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="write_json"></a><strong>write_json</strong>&nbsp;(data)</dt>
+<dd>
+
+
+Send the given data as JSON encoded string.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ data: Data to send
+ </li>
+
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+ <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/documentation/api/modules/luci.http.protocol.conditionals.html b/documentation/api/modules/luci.http.protocol.conditionals.html
index e216a47df2..9728815402 100644
--- a/documentation/api/modules/luci.http.protocol.conditionals.html
+++ b/documentation/api/modules/luci.http.protocol.conditionals.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -65,6 +69,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -73,6 +81,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -97,6 +125,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/luci.http.protocol.date.html b/documentation/api/modules/luci.http.protocol.date.html
index 57c7eede59..d89a72302e 100644
--- a/documentation/api/modules/luci.http.protocol.date.html
+++ b/documentation/api/modules/luci.http.protocol.date.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -65,6 +69,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -73,6 +81,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -97,6 +125,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/luci.http.protocol.html b/documentation/api/modules/luci.http.protocol.html
index b443ef58bf..1d45acede6 100644
--- a/documentation/api/modules/luci.http.protocol.html
+++ b/documentation/api/modules/luci.http.protocol.html
@@ -38,6 +38,10 @@
<a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
</li>
+ <li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
<li><strong>luci.http.protocol</strong></li>
<li>
@@ -65,6 +69,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -73,6 +81,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -97,6 +125,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/luci.http.protocol.mime.html b/documentation/api/modules/luci.http.protocol.mime.html
index 96b594d2d5..0b5ce0c0c5 100644
--- a/documentation/api/modules/luci.http.protocol.mime.html
+++ b/documentation/api/modules/luci.http.protocol.mime.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -65,6 +69,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -73,6 +81,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -97,6 +125,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/luci.i18n.html b/documentation/api/modules/luci.i18n.html
index 2db6e168f6..0111cb200f 100644
--- a/documentation/api/modules/luci.i18n.html
+++ b/documentation/api/modules/luci.i18n.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -65,6 +69,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -73,6 +81,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -97,6 +125,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/luci.ip.cidr.html b/documentation/api/modules/luci.ip.cidr.html
index 2bd3400b52..28fb21d02d 100644
--- a/documentation/api/modules/luci.ip.cidr.html
+++ b/documentation/api/modules/luci.ip.cidr.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -65,6 +69,10 @@
<li><strong>luci.ip.cidr</strong></li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -73,6 +81,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -97,6 +125,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/luci.ip.html b/documentation/api/modules/luci.ip.html
index 8a78da204c..4dece031ea 100644
--- a/documentation/api/modules/luci.ip.html
+++ b/documentation/api/modules/luci.ip.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -65,6 +69,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -73,6 +81,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -97,6 +125,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/luci.json.html b/documentation/api/modules/luci.json.html
new file mode 100644
index 0000000000..761bd6e7ea
--- /dev/null
+++ b/documentation/api/modules/luci.json.html
@@ -0,0 +1,598 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+ <title>Reference</title>
+ <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+ <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+ <div id="product_logo"></div>
+ <div id="product_name"><big><b></b></big></div>
+ <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+
+ <li><a href="../index.html">Index</a></li>
+
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+ <li>
+ <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.date.html">luci.http.protocol.date</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.mime.html">luci.http.protocol.mime</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.i18n.html">luci.i18n</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.html">luci.ip</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+ </li>
+
+ <li><strong>luci.json</strong></li>
+
+ <li>
+ <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.html">nixio</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.File.html">nixio.File</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.README.html">nixio.README</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bin.html">nixio.bin</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bit.html">nixio.bit</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.fs.html">nixio.fs</a>
+ </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>luci.json</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+ <tr>
+ <td class="name" nowrap><a href="#ActiveDecoder">ActiveDecoder</a>&nbsp;(customnull)</td>
+ <td class="summary">
+
+Create a new Active JSON-Decoder.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#ActiveDecoder.get">ActiveDecoder:get</a>&nbsp;()</td>
+ <td class="summary">
+
+Fetches one JSON-object from given source
+ </td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Decoder">Decoder</a>&nbsp;(customnull)</td>
+ <td class="summary">
+
+Create a new JSON-Decoder.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Decoder.get">Decoder:get</a>&nbsp;()</td>
+ <td class="summary">
+
+Get the decoded data packets after the rawdata has been sent to the sink.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Decoder.sink">Decoder:sink</a>&nbsp;()</td>
+ <td class="summary">
+
+Create an LTN12 sink from the decoder object which accepts the JSON-Data.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Encoder">Encoder</a>&nbsp;(data, buffersize, fastescape)</td>
+ <td class="summary">
+
+Create a new JSON-Encoder.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Encoder.source">Encoder:source</a>&nbsp;()</td>
+ <td class="summary">
+
+Create an LTN12 source providing the encoded JSON-Data.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#decode">decode</a>&nbsp;(json)</td>
+ <td class="summary">
+
+Directly decode a JSON string
+ </td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#encode">encode</a>&nbsp;(obj)</td>
+ <td class="summary">
+
+Direcly encode a Lua object into a JSON string.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#null">null</a>&nbsp;()</td>
+ <td class="summary">
+
+Null replacement function
+ </td>
+ </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="ActiveDecoder"></a><strong>ActiveDecoder</strong>&nbsp;(customnull)</dt>
+<dd>
+
+
+Create a new Active JSON-Decoder.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ customnull: Use luci.json.null instead of nil for decoding null
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Active JSON-Decoder
+
+
+
+</dd>
+
+
+
+
+<dt><a name="ActiveDecoder.get"></a><strong>ActiveDecoder:get</strong>&nbsp;()</dt>
+<dd>
+
+
+Fetches one JSON-object from given source
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Decoded object
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Decoder"></a><strong>Decoder</strong>&nbsp;(customnull)</dt>
+<dd>
+
+
+Create a new JSON-Decoder.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ customnull: Use luci.json.null instead of nil for decoding null
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+JSON-Decoder
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Decoder.get"></a><strong>Decoder:get</strong>&nbsp;()</dt>
+<dd>
+
+
+Get the decoded data packets after the rawdata has been sent to the sink.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Decoded data
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Decoder.sink"></a><strong>Decoder:sink</strong>&nbsp;()</dt>
+<dd>
+
+
+Create an LTN12 sink from the decoder object which accepts the JSON-Data.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+LTN12 sink
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Encoder"></a><strong>Encoder</strong>&nbsp;(data, buffersize, fastescape)</dt>
+<dd>
+
+
+Create a new JSON-Encoder.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ data: Lua-Object to be encoded.
+ </li>
+
+ <li>
+ buffersize: Blocksize of returned data source.
+ </li>
+
+ <li>
+ fastescape: Use non-standard escaping (don't escape control chars)
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+JSON-Encoder
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Encoder.source"></a><strong>Encoder:source</strong>&nbsp;()</dt>
+<dd>
+
+
+Create an LTN12 source providing the encoded JSON-Data.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+LTN12 source
+
+
+
+</dd>
+
+
+
+
+<dt><a name="decode"></a><strong>decode</strong>&nbsp;(json)</dt>
+<dd>
+
+
+Directly decode a JSON string
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ json: JSON-String
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Lua object
+
+
+
+</dd>
+
+
+
+
+<dt><a name="encode"></a><strong>encode</strong>&nbsp;(obj)</dt>
+<dd>
+
+
+Direcly encode a Lua object into a JSON string.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ obj: Lua Object
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+JSON string
+
+
+
+</dd>
+
+
+
+
+<dt><a name="null"></a><strong>null</strong>&nbsp;()</dt>
+<dd>
+
+
+Null replacement function
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+null
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+ <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/documentation/api/modules/luci.jsonc.html b/documentation/api/modules/luci.jsonc.html
index 3d0a9ad2bb..f82eb406c7 100644
--- a/documentation/api/modules/luci.jsonc.html
+++ b/documentation/api/modules/luci.jsonc.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -66,6 +70,10 @@
<a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
</li>
+ <li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
<li><strong>luci.jsonc</strong></li>
<li>
@@ -73,6 +81,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -97,6 +125,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/luci.jsonc.parser.html b/documentation/api/modules/luci.jsonc.parser.html
index 4c93a0f795..4c19cf0e59 100644
--- a/documentation/api/modules/luci.jsonc.parser.html
+++ b/documentation/api/modules/luci.jsonc.parser.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,12 +71,36 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
<li><strong>luci.jsonc.parser</strong></li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -97,6 +125,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/luci.model.ipkg.html b/documentation/api/modules/luci.model.ipkg.html
new file mode 100644
index 0000000000..921153c987
--- /dev/null
+++ b/documentation/api/modules/luci.model.ipkg.html
@@ -0,0 +1,734 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+ <title>Reference</title>
+ <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+ <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+ <div id="product_logo"></div>
+ <div id="product_name"><big><b></b></big></div>
+ <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+
+ <li><a href="../index.html">Index</a></li>
+
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+ <li>
+ <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.date.html">luci.http.protocol.date</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.mime.html">luci.http.protocol.mime</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.i18n.html">luci.i18n</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.html">luci.ip</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+ </li>
+
+ <li><strong>luci.model.ipkg</strong></li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.html">nixio</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.File.html">nixio.File</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.README.html">nixio.README</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bin.html">nixio.bin</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bit.html">nixio.bit</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.fs.html">nixio.fs</a>
+ </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.model.ipkg</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+ <tr>
+ <td class="name" nowrap><a href="#compare_versions">compare_versions</a>&nbsp;(ver1, ver2, comp)</td>
+ <td class="summary">
+
+lua version of opkg compare-versions
+ </td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#find">find</a>&nbsp;(pat, cb)</td>
+ <td class="summary">
+
+Find packages that match the given pattern.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#info">info</a>&nbsp;(pkg)</td>
+ <td class="summary">
+
+Return information about installed and available packages.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#install">install</a>&nbsp;(...)</td>
+ <td class="summary">
+
+Install one or more packages.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#installed">installed</a>&nbsp;(pkg)</td>
+ <td class="summary">
+
+Determine whether a given package is installed.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#list_all">list_all</a>&nbsp;(pat, cb)</td>
+ <td class="summary">
+
+List all packages known to opkg.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#list_installed">list_installed</a>&nbsp;(pat, cb)</td>
+ <td class="summary">
+
+List installed packages.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#overlay_root">overlay_root</a>&nbsp;()</td>
+ <td class="summary">
+
+Determines the overlay root used by opkg.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#remove">remove</a>&nbsp;(...)</td>
+ <td class="summary">
+
+Remove one or more packages.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#status">status</a>&nbsp;(pkg)</td>
+ <td class="summary">
+
+Return the package status of one or more packages.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#update">update</a>&nbsp;()</td>
+ <td class="summary">
+
+Update package lists.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#upgrade">upgrade</a>&nbsp;()</td>
+ <td class="summary">
+
+Upgrades all installed packages.</td>
+ </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="compare_versions"></a><strong>compare_versions</strong>&nbsp;(ver1, ver2, comp)</dt>
+<dd>
+
+
+lua version of opkg compare-versions
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ ver1: string version 1
+ </li>
+
+ <li>
+ ver2: string version 2
+ </li>
+
+ <li>
+ comp: string compare versions using
+ "<=" or "<" lower-equal
+ ">" or ">=" greater-equal
+ "=" equal
+ "<<" lower
+ ">>" greater
+ "~=" not equal
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating the status of the compare
+
+
+
+</dd>
+
+
+
+
+<dt><a name="find"></a><strong>find</strong>&nbsp;(pat, cb)</dt>
+<dd>
+
+
+Find packages that match the given pattern.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ pat: Find packages whose names or descriptions match this pattern, nil results in zero results
+ </li>
+
+ <li>
+ cb: Callback function invoked for each patckage, receives name, version and description as arguments
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+nothing
+
+
+
+</dd>
+
+
+
+
+<dt><a name="info"></a><strong>info</strong>&nbsp;(pkg)</dt>
+<dd>
+
+
+Return information about installed and available packages.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ pkg: Limit output to a (set of) packages
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing package information
+
+
+
+</dd>
+
+
+
+
+<dt><a name="install"></a><strong>install</strong>&nbsp;(...)</dt>
+<dd>
+
+
+Install one or more packages.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ ...: List of packages to install
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+
+ <li>Boolean indicating the status of the action
+
+ <li>OPKG return code, STDOUT and STDERR
+
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="installed"></a><strong>installed</strong>&nbsp;(pkg)</dt>
+<dd>
+
+
+Determine whether a given package is installed.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ pkg: Package
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean
+
+
+
+</dd>
+
+
+
+
+<dt><a name="list_all"></a><strong>list_all</strong>&nbsp;(pat, cb)</dt>
+<dd>
+
+
+List all packages known to opkg.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ pat: Only find packages matching this pattern, nil lists all packages
+ </li>
+
+ <li>
+ cb: Callback function invoked for each package, receives name, version and description as arguments
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+nothing
+
+
+
+</dd>
+
+
+
+
+<dt><a name="list_installed"></a><strong>list_installed</strong>&nbsp;(pat, cb)</dt>
+<dd>
+
+
+List installed packages.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ pat: Only find packages matching this pattern, nil lists all packages
+ </li>
+
+ <li>
+ cb: Callback function invoked for each package, receives name, version and description as arguments
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+nothing
+
+
+
+</dd>
+
+
+
+
+<dt><a name="overlay_root"></a><strong>overlay_root</strong>&nbsp;()</dt>
+<dd>
+
+
+Determines the overlay root used by opkg.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the directory path of the overlay root.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="remove"></a><strong>remove</strong>&nbsp;(...)</dt>
+<dd>
+
+
+Remove one or more packages.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ ...: List of packages to install
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+
+ <li>Boolean indicating the status of the action
+
+ <li>OPKG return code, STDOUT and STDERR
+
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="status"></a><strong>status</strong>&nbsp;(pkg)</dt>
+<dd>
+
+
+Return the package status of one or more packages.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ pkg: Limit output to a (set of) packages
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing package status information
+
+
+
+</dd>
+
+
+
+
+<dt><a name="update"></a><strong>update</strong>&nbsp;()</dt>
+<dd>
+
+
+Update package lists.
+
+
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+
+ <li>Boolean indicating the status of the action
+
+ <li>OPKG return code, STDOUT and STDERR
+
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="upgrade"></a><strong>upgrade</strong>&nbsp;()</dt>
+<dd>
+
+
+Upgrades all installed packages.
+
+
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+
+ <li>Boolean indicating the status of the action
+
+ <li>OPKG return code, STDOUT and STDERR
+
+</ol>
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+ <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/documentation/api/modules/luci.model.uci.html b/documentation/api/modules/luci.model.uci.html
new file mode 100644
index 0000000000..9e50d9900d
--- /dev/null
+++ b/documentation/api/modules/luci.model.uci.html
@@ -0,0 +1,1436 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+ <title>Reference</title>
+ <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+ <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+ <div id="product_logo"></div>
+ <div id="product_name"><big><b></b></big></div>
+ <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+
+ <li><a href="../index.html">Index</a></li>
+
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+ <li>
+ <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.date.html">luci.http.protocol.date</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.mime.html">luci.http.protocol.mime</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.i18n.html">luci.i18n</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.html">luci.ip</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li><strong>luci.model.uci</strong></li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.html">nixio</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.File.html">nixio.File</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.README.html">nixio.README</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bin.html">nixio.bin</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bit.html">nixio.bit</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.fs.html">nixio.fs</a>
+ </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>luci.model.uci</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.add">Cursor:add</a>&nbsp;(config, type)</td>
+ <td class="summary">
+
+Add an anonymous section.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.apply">Cursor:apply</a>&nbsp;(configlist, command)</td>
+ <td class="summary">
+
+Applies UCI configuration changes
+ </td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.changes">Cursor:changes</a>&nbsp;(config)</td>
+ <td class="summary">
+
+Get a table of saved but uncommitted changes.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.commit">Cursor:commit</a>&nbsp;(config)</td>
+ <td class="summary">
+
+Commit saved changes.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.delete">Cursor:delete</a>&nbsp;(config, section, option)</td>
+ <td class="summary">
+
+Deletes a section or an option.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.delete_all">Cursor:delete_all</a>&nbsp;(config, type, comparator)</td>
+ <td class="summary">
+
+Delete all sections of a given type that match certain criteria.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.foreach">Cursor:foreach</a>&nbsp;(config, type, callback)</td>
+ <td class="summary">
+
+Call a function for every section of a certain type.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.get">Cursor:get</a>&nbsp;(config, section, option)</td>
+ <td class="summary">
+
+Get a section type or an option
+ </td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.get_all">Cursor:get_all</a>&nbsp;(config, section)</td>
+ <td class="summary">
+
+Get all sections of a config or all values of a section.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.get_bool">Cursor:get_bool</a>&nbsp;(config, section, option)</td>
+ <td class="summary">
+
+Get a boolean option and return it's value as true or false.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.get_confdir">Cursor:get_confdir</a>&nbsp;()</td>
+ <td class="summary">
+
+Get the configuration directory.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.get_first">Cursor:get_first</a>&nbsp;(config, type, option, default)</td>
+ <td class="summary">
+
+Get the given option from the first section with the given type.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.get_list">Cursor:get_list</a>&nbsp;(config, section, option)</td>
+ <td class="summary">
+
+Get an option or list and return values as table.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.get_savedir">Cursor:get_savedir</a>&nbsp;()</td>
+ <td class="summary">
+
+Get the directory for uncomitted changes.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.load">Cursor:load</a>&nbsp;(config)</td>
+ <td class="summary">
+
+Manually load a config.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.revert">Cursor:revert</a>&nbsp;(config)</td>
+ <td class="summary">
+
+Revert saved but uncommitted changes.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.save">Cursor:save</a>&nbsp;(config)</td>
+ <td class="summary">
+
+Saves changes made to a config to make them committable.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.section">Cursor:section</a>&nbsp;(config, type, name, values)</td>
+ <td class="summary">
+
+Create a new section and initialize it with data.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.set">Cursor:set</a>&nbsp;(config, section, option, value)</td>
+ <td class="summary">
+
+Set a value or create a named section.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.set_confdir">Cursor:set_confdir</a>&nbsp;(directory)</td>
+ <td class="summary">
+
+Set the configuration directory.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.set_list">Cursor:set_list</a>&nbsp;(config, section, option, value)</td>
+ <td class="summary">
+
+Set given values as list.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.set_savedir">Cursor:set_savedir</a>&nbsp;(directory)</td>
+ <td class="summary">
+
+Set the directory for uncommited changes.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.substate">Cursor:substate</a>&nbsp;()</td>
+ <td class="summary">
+
+Create a sub-state of this cursor.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.tset">Cursor:tset</a>&nbsp;(config, section, values)</td>
+ <td class="summary">
+
+Updated the data of a section using data from a table.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.unload">Cursor:unload</a>&nbsp;(config)</td>
+ <td class="summary">
+
+Discard changes made to a config.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#cursor">cursor</a>&nbsp;()</td>
+ <td class="summary">
+
+Create a new UCI-Cursor.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#cursor_state">cursor_state</a>&nbsp;()</td>
+ <td class="summary">
+
+Create a new Cursor initialized to the state directory.</td>
+ </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="Cursor.add"></a><strong>Cursor:add</strong>&nbsp;(config, type)</dt>
+<dd>
+
+
+Add an anonymous section.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+ <li>
+ type: UCI section type
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Name of created section
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.apply"></a><strong>Cursor:apply</strong>&nbsp;(configlist, command)</dt>
+<dd>
+
+
+Applies UCI configuration changes
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ configlist: List of UCI configurations
+ </li>
+
+ <li>
+ command: Don't apply only return the command
+ </li>
+
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.changes"></a><strong>Cursor:changes</strong>&nbsp;(config)</dt>
+<dd>
+
+
+Get a table of saved but uncommitted changes.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table of changes
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#Cursor.save">
+ Cursor:save
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.commit"></a><strong>Cursor:commit</strong>&nbsp;(config)</dt>
+<dd>
+
+
+Commit saved changes.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#Cursor.revert">
+ Cursor:revert
+ </a>
+
+ <li><a href="#Cursor.save">
+ Cursor:save
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.delete"></a><strong>Cursor:delete</strong>&nbsp;(config, section, option)</dt>
+<dd>
+
+
+Deletes a section or an option.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+ <li>
+ section: UCI section name
+ </li>
+
+ <li>
+ option: UCI option (optional)
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.delete_all"></a><strong>Cursor:delete_all</strong>&nbsp;(config, type, comparator)</dt>
+<dd>
+
+
+Delete all sections of a given type that match certain criteria.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+ <li>
+ type: UCI section type
+ </li>
+
+ <li>
+ comparator: Function that will be called for each section and
+returns a boolean whether to delete the current section (optional)
+ </li>
+
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.foreach"></a><strong>Cursor:foreach</strong>&nbsp;(config, type, callback)</dt>
+<dd>
+
+
+Call a function for every section of a certain type.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+ <li>
+ type: UCI section type
+ </li>
+
+ <li>
+ callback: Function to be called
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.get"></a><strong>Cursor:get</strong>&nbsp;(config, section, option)</dt>
+<dd>
+
+
+Get a section type or an option
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+ <li>
+ section: UCI section name
+ </li>
+
+ <li>
+ option: UCI option (optional)
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+UCI value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.get_all"></a><strong>Cursor:get_all</strong>&nbsp;(config, section)</dt>
+<dd>
+
+
+Get all sections of a config or all values of a section.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+ <li>
+ section: UCI section name (optional)
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table of UCI sections or table of UCI values
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.get_bool"></a><strong>Cursor:get_bool</strong>&nbsp;(config, section, option)</dt>
+<dd>
+
+
+Get a boolean option and return it's value as true or false.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+ <li>
+ section: UCI section name
+ </li>
+
+ <li>
+ option: UCI option
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.get_confdir"></a><strong>Cursor:get_confdir</strong>&nbsp;()</dt>
+<dd>
+
+
+Get the configuration directory.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Configuration directory
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.get_first"></a><strong>Cursor:get_first</strong>&nbsp;(config, type, option, default)</dt>
+<dd>
+
+
+Get the given option from the first section with the given type.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+ <li>
+ type: UCI section type
+ </li>
+
+ <li>
+ option: UCI option (optional)
+ </li>
+
+ <li>
+ default: Default value (optional)
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+UCI value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.get_list"></a><strong>Cursor:get_list</strong>&nbsp;(config, section, option)</dt>
+<dd>
+
+
+Get an option or list and return values as table.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+ <li>
+ section: UCI section name
+ </li>
+
+ <li>
+ option: UCI option
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+UCI value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.get_savedir"></a><strong>Cursor:get_savedir</strong>&nbsp;()</dt>
+<dd>
+
+
+Get the directory for uncomitted changes.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Save directory
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.load"></a><strong>Cursor:load</strong>&nbsp;(config)</dt>
+<dd>
+
+
+Manually load a config.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#Cursor.save">
+ Cursor:save
+ </a>
+
+ <li><a href="#Cursor.unload">
+ Cursor:unload
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.revert"></a><strong>Cursor:revert</strong>&nbsp;(config)</dt>
+<dd>
+
+
+Revert saved but uncommitted changes.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#Cursor.commit">
+ Cursor:commit
+ </a>
+
+ <li><a href="#Cursor.save">
+ Cursor:save
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.save"></a><strong>Cursor:save</strong>&nbsp;(config)</dt>
+<dd>
+
+
+Saves changes made to a config to make them committable.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#Cursor.load">
+ Cursor:load
+ </a>
+
+ <li><a href="#Cursor.unload">
+ Cursor:unload
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.section"></a><strong>Cursor:section</strong>&nbsp;(config, type, name, values)</dt>
+<dd>
+
+
+Create a new section and initialize it with data.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+ <li>
+ type: UCI section type
+ </li>
+
+ <li>
+ name: UCI section name (optional)
+ </li>
+
+ <li>
+ values: Table of key - value pairs to initialize the section with
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Name of created section
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.set"></a><strong>Cursor:set</strong>&nbsp;(config, section, option, value)</dt>
+<dd>
+
+
+Set a value or create a named section.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+ <li>
+ section: UCI section name
+ </li>
+
+ <li>
+ option: UCI option or UCI section type
+ </li>
+
+ <li>
+ value: UCI value or nil if you want to create a section
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.set_confdir"></a><strong>Cursor:set_confdir</strong>&nbsp;(directory)</dt>
+<dd>
+
+
+Set the configuration directory.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ directory: UCI configuration directory
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.set_list"></a><strong>Cursor:set_list</strong>&nbsp;(config, section, option, value)</dt>
+<dd>
+
+
+Set given values as list.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+ <li>
+ section: UCI section name
+ </li>
+
+ <li>
+ option: UCI option
+ </li>
+
+ <li>
+ value: UCI value
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.set_savedir"></a><strong>Cursor:set_savedir</strong>&nbsp;(directory)</dt>
+<dd>
+
+
+Set the directory for uncommited changes.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ directory: UCI changes directory
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.substate"></a><strong>Cursor:substate</strong>&nbsp;()</dt>
+<dd>
+
+
+Create a sub-state of this cursor. The sub-state is tied to the parent
+
+curser, means it the parent unloads or loads configs, the sub state will
+do so as well.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+UCI state cursor tied to the parent cursor
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.tset"></a><strong>Cursor:tset</strong>&nbsp;(config, section, values)</dt>
+<dd>
+
+
+Updated the data of a section using data from a table.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+ <li>
+ section: UCI section name (optional)
+ </li>
+
+ <li>
+ values: Table of key - value pairs to update the section with
+ </li>
+
+</ul>
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.unload"></a><strong>Cursor:unload</strong>&nbsp;(config)</dt>
+<dd>
+
+
+Discard changes made to a config.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#Cursor.load">
+ Cursor:load
+ </a>
+
+ <li><a href="#Cursor.save">
+ Cursor:save
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="cursor"></a><strong>cursor</strong>&nbsp;()</dt>
+<dd>
+
+
+Create a new UCI-Cursor.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+UCI-Cursor
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cursor_state"></a><strong>cursor_state</strong>&nbsp;()</dt>
+<dd>
+
+
+Create a new Cursor initialized to the state directory.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+UCI cursor
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+ <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/documentation/api/modules/luci.rpcc.html b/documentation/api/modules/luci.rpcc.html
new file mode 100644
index 0000000000..f7cb020482
--- /dev/null
+++ b/documentation/api/modules/luci.rpcc.html
@@ -0,0 +1,328 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+ <title>Reference</title>
+ <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+ <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+ <div id="product_logo"></div>
+ <div id="product_name"><big><b></b></big></div>
+ <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+
+ <li><a href="../index.html">Index</a></li>
+
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+ <li>
+ <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.date.html">luci.http.protocol.date</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.mime.html">luci.http.protocol.mime</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.i18n.html">luci.i18n</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.html">luci.ip</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li><strong>luci.rpcc</strong></li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.html">nixio</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.File.html">nixio.File</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.README.html">nixio.README</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bin.html">nixio.bin</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bit.html">nixio.bit</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.fs.html">nixio.fs</a>
+ </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>luci.rpcc</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+ <tr>
+ <td class="name" nowrap><a href="#Client.proxy">Client:proxy</a>&nbsp;(prefix)</td>
+ <td class="summary">
+
+Create a transparent RPC proxy.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Client.request">Client:request</a>&nbsp;(method, params, notification)</td>
+ <td class="summary">
+
+Request an RP call and get the response.</td>
+ </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="Client.proxy"></a><strong>Client:proxy</strong>&nbsp;(prefix)</dt>
+<dd>
+
+
+Create a transparent RPC proxy.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ prefix: Method prefix
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+RPC Proxy object
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Client.request"></a><strong>Client:request</strong>&nbsp;(method, params, notification)</dt>
+<dd>
+
+
+Request an RP call and get the response.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ method: Remote method
+ </li>
+
+ <li>
+ params: Parameters
+ </li>
+
+ <li>
+ notification: Notification only?
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+response
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+ <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/documentation/api/modules/luci.rpcc.ruci.html b/documentation/api/modules/luci.rpcc.ruci.html
new file mode 100644
index 0000000000..203779ce7a
--- /dev/null
+++ b/documentation/api/modules/luci.rpcc.ruci.html
@@ -0,0 +1,281 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+ <title>Reference</title>
+ <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+ <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+ <div id="product_logo"></div>
+ <div id="product_name"><big><b></b></big></div>
+ <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+
+ <li><a href="../index.html">Index</a></li>
+
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+ <li>
+ <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.date.html">luci.http.protocol.date</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.mime.html">luci.http.protocol.mime</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.i18n.html">luci.i18n</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.html">luci.ip</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li><strong>luci.rpcc.ruci</strong></li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.html">nixio</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.File.html">nixio.File</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.README.html">nixio.README</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bin.html">nixio.bin</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bit.html">nixio.bit</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.fs.html">nixio.fs</a>
+ </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Object Instance <code>luci.rpcc.ruci</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+ <tr>
+ <td class="name" nowrap><a href="#factory">factory</a>&nbsp;(rpccl)</td>
+ <td class="summary">
+
+Create a new UCI over RPC proxy.</td>
+ </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="factory"></a><strong>factory</strong>&nbsp;(rpccl)</dt>
+<dd>
+
+
+Create a new UCI over RPC proxy.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ rpccl: RPC client
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Network transparent UCI module
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+ <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/documentation/api/modules/luci.sys.html b/documentation/api/modules/luci.sys.html
new file mode 100644
index 0000000000..860c5fba26
--- /dev/null
+++ b/documentation/api/modules/luci.sys.html
@@ -0,0 +1,645 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+ <title>Reference</title>
+ <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+ <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+ <div id="product_logo"></div>
+ <div id="product_name"><big><b></b></big></div>
+ <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+
+ <li><a href="../index.html">Index</a></li>
+
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+ <li>
+ <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.date.html">luci.http.protocol.date</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.mime.html">luci.http.protocol.mime</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.i18n.html">luci.i18n</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.html">luci.ip</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li><strong>luci.sys</strong></li>
+
+ <li>
+ <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.html">nixio</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.File.html">nixio.File</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.README.html">nixio.README</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bin.html">nixio.bin</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bit.html">nixio.bit</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.fs.html">nixio.fs</a>
+ </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.sys</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+ <tr>
+ <td class="name" nowrap><a href="#call">call</a>&nbsp;(...)</td>
+ <td class="summary">
+
+Execute a given shell command and return the error code
+ </td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#dmesg">dmesg</a>&nbsp;()</td>
+ <td class="summary">
+
+Retrieves the output of the "dmesg" command.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#exec">exec</a>&nbsp;(command)</td>
+ <td class="summary">
+
+Execute a given shell command and capture its standard output
+ </td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#getenv">getenv</a>&nbsp;(var)</td>
+ <td class="summary">
+
+Retrieve environment variables.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#hostname">hostname</a>&nbsp;(String)</td>
+ <td class="summary">
+
+Get or set the current hostname.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#httpget">httpget</a>&nbsp;(url, stream, target)</td>
+ <td class="summary">
+
+Returns the contents of a documented referred by an URL.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#mounts">mounts</a>&nbsp;()</td>
+ <td class="summary">
+
+Retrieve information about currently mounted file systems.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#reboot">reboot</a>&nbsp;()</td>
+ <td class="summary">
+
+Initiate a system reboot.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#syslog">syslog</a>&nbsp;()</td>
+ <td class="summary">
+
+Retrieves the output of the "logread" command.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#uniqueid">uniqueid</a>&nbsp;(bytes)</td>
+ <td class="summary">
+
+Generates a random id with specified length.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#uptime">uptime</a>&nbsp;()</td>
+ <td class="summary">
+
+Returns the current system uptime stats.</td>
+ </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="call"></a><strong>call</strong>&nbsp;(...)</dt>
+<dd>
+
+
+Execute a given shell command and return the error code
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ ...: Command to call
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Error code of the command
+
+
+
+</dd>
+
+
+
+
+<dt><a name="dmesg"></a><strong>dmesg</strong>&nbsp;()</dt>
+<dd>
+
+
+Retrieves the output of the "dmesg" command.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the current log buffer
+
+
+
+</dd>
+
+
+
+
+<dt><a name="exec"></a><strong>exec</strong>&nbsp;(command)</dt>
+<dd>
+
+
+Execute a given shell command and capture its standard output
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ command: Command to call
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containg the return the output of the command
+
+
+
+</dd>
+
+
+
+
+<dt><a name="getenv"></a><strong>getenv</strong>&nbsp;(var)</dt>
+<dd>
+
+
+Retrieve environment variables. If no variable is given then a table
+
+containing the whole environment is returned otherwise this function returns
+the corresponding string value for the given name or nil if no such variable
+exists.
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ var: Name of the environment variable to retrieve (optional)
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+
+ <li>String containg the value of the specified variable
+
+ <li>Table containing all variables if no variable name is given
+
+</ol>
+
+
+
+</dd>
+
+
+
+
+<dt><a name="hostname"></a><strong>hostname</strong>&nbsp;(String)</dt>
+<dd>
+
+
+Get or set the current hostname.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ String: containing a new hostname to set (optional)
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the system hostname
+
+
+
+</dd>
+
+
+
+
+<dt><a name="httpget"></a><strong>httpget</strong>&nbsp;(url, stream, target)</dt>
+<dd>
+
+
+Returns the contents of a documented referred by an URL.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ url: The URL to retrieve
+ </li>
+
+ <li>
+ stream: Return a stream instead of a buffer
+ </li>
+
+ <li>
+ target: Directly write to target file name
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the contents of given the URL
+
+
+
+</dd>
+
+
+
+
+<dt><a name="mounts"></a><strong>mounts</strong>&nbsp;()</dt>
+<dd>
+
+
+Retrieve information about currently mounted file systems.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing mount information
+
+
+
+</dd>
+
+
+
+
+<dt><a name="reboot"></a><strong>reboot</strong>&nbsp;()</dt>
+<dd>
+
+
+Initiate a system reboot.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Return value of os.execute()
+
+
+
+</dd>
+
+
+
+
+<dt><a name="syslog"></a><strong>syslog</strong>&nbsp;()</dt>
+<dd>
+
+
+Retrieves the output of the "logread" command.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the current log buffer
+
+
+
+</dd>
+
+
+
+
+<dt><a name="uniqueid"></a><strong>uniqueid</strong>&nbsp;(bytes)</dt>
+<dd>
+
+
+Generates a random id with specified length.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ bytes: Number of bytes for the unique id
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing hex encoded id
+
+
+
+</dd>
+
+
+
+
+<dt><a name="uptime"></a><strong>uptime</strong>&nbsp;()</dt>
+<dd>
+
+
+Returns the current system uptime stats.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing total uptime in seconds
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+ <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/documentation/api/modules/luci.sys.init.html b/documentation/api/modules/luci.sys.init.html
index 3e311ed8e3..596fb7cd1e 100644
--- a/documentation/api/modules/luci.sys.init.html
+++ b/documentation/api/modules/luci.sys.init.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -74,6 +82,26 @@
<a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
</li>
+ <li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
<li><strong>luci.sys.init</strong></li>
<li>
@@ -97,6 +125,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/luci.sys.iptparser.html b/documentation/api/modules/luci.sys.iptparser.html
index 8055d46523..122afcc2a9 100644
--- a/documentation/api/modules/luci.sys.iptparser.html
+++ b/documentation/api/modules/luci.sys.iptparser.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -97,6 +125,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/luci.sys.net.html b/documentation/api/modules/luci.sys.net.html
index 82fcea474f..4a049e2307 100644
--- a/documentation/api/modules/luci.sys.net.html
+++ b/documentation/api/modules/luci.sys.net.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -97,6 +125,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
@@ -181,57 +213,6 @@ LuCI system utilities / network related functions.
<table class="function_list">
<tr>
- <td class="name" nowrap><a href="#call">call</a>&nbsp;(...)</td>
- <td class="summary">
-
-Execute a given shell command and return the error code
- </td>
- </tr>
-
- <tr>
- <td class="name" nowrap><a href="#dmesg">dmesg</a>&nbsp;()</td>
- <td class="summary">
-
-Retrieves the output of the "dmesg" command.</td>
- </tr>
-
- <tr>
- <td class="name" nowrap><a href="#exec">exec</a>&nbsp;(command)</td>
- <td class="summary">
-
-Execute a given shell command and capture its standard output
- </td>
- </tr>
-
- <tr>
- <td class="name" nowrap><a href="#getenv">getenv</a>&nbsp;(var)</td>
- <td class="summary">
-
-Retrieve environment variables.</td>
- </tr>
-
- <tr>
- <td class="name" nowrap><a href="#hostname">hostname</a>&nbsp;(String)</td>
- <td class="summary">
-
-Get or set the current hostname.</td>
- </tr>
-
- <tr>
- <td class="name" nowrap><a href="#httpget">httpget</a>&nbsp;(url, stream, target)</td>
- <td class="summary">
-
-Returns the contents of a documented referred by an URL.</td>
- </tr>
-
- <tr>
- <td class="name" nowrap><a href="#mounts">mounts</a>&nbsp;()</td>
- <td class="summary">
-
-Retrieve information about currently mounted file systems.</td>
- </tr>
-
- <tr>
<td class="name" nowrap><a href="#net.arptable">arptable</a>&nbsp;()</td>
<td class="summary">
@@ -302,34 +283,6 @@ Returns the current kernel routing table entries.</td>
Returns the current ipv6 kernel routing table entries.</td>
</tr>
- <tr>
- <td class="name" nowrap><a href="#reboot">reboot</a>&nbsp;()</td>
- <td class="summary">
-
-Initiate a system reboot.</td>
- </tr>
-
- <tr>
- <td class="name" nowrap><a href="#syslog">syslog</a>&nbsp;()</td>
- <td class="summary">
-
-Retrieves the output of the "logread" command.</td>
- </tr>
-
- <tr>
- <td class="name" nowrap><a href="#uniqueid">uniqueid</a>&nbsp;(bytes)</td>
- <td class="summary">
-
-Generates a random id with specified length.</td>
- </tr>
-
- <tr>
- <td class="name" nowrap><a href="#uptime">uptime</a>&nbsp;()</td>
- <td class="summary">
-
-Returns the current system uptime stats.</td>
- </tr>
-
</table>
@@ -346,229 +299,6 @@ Returns the current system uptime stats.</td>
-<dt><a name="call"></a><strong>call</strong>&nbsp;(...)</dt>
-<dd>
-
-
-Execute a given shell command and return the error code
-
-
-
-<h3>Parameters</h3>
-<ul>
-
- <li>
- ...: Command to call
- </li>
-
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-Error code of the command
-
-
-
-</dd>
-
-
-
-
-<dt><a name="dmesg"></a><strong>dmesg</strong>&nbsp;()</dt>
-<dd>
-
-
-Retrieves the output of the "dmesg" command.
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the current log buffer
-
-
-
-</dd>
-
-
-
-
-<dt><a name="exec"></a><strong>exec</strong>&nbsp;(command)</dt>
-<dd>
-
-
-Execute a given shell command and capture its standard output
-
-
-
-<h3>Parameters</h3>
-<ul>
-
- <li>
- command: Command to call
- </li>
-
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containg the return the output of the command
-
-
-
-</dd>
-
-
-
-
-<dt><a name="getenv"></a><strong>getenv</strong>&nbsp;(var)</dt>
-<dd>
-
-
-Retrieve environment variables. If no variable is given then a table
-
-containing the whole environment is returned otherwise this function returns
-the corresponding string value for the given name or nil if no such variable
-exists.
-
-
-<h3>Parameters</h3>
-<ul>
-
- <li>
- var: Name of the environment variable to retrieve (optional)
- </li>
-
-</ul>
-
-
-
-
-
-
-<h3>Return values:</h3>
-<ol>
-
- <li>String containg the value of the specified variable
-
- <li>Table containing all variables if no variable name is given
-
-</ol>
-
-
-
-</dd>
-
-
-
-
-<dt><a name="hostname"></a><strong>hostname</strong>&nbsp;(String)</dt>
-<dd>
-
-
-Get or set the current hostname.
-
-
-
-<h3>Parameters</h3>
-<ul>
-
- <li>
- String: containing a new hostname to set (optional)
- </li>
-
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the system hostname
-
-
-
-</dd>
-
-
-
-
-<dt><a name="httpget"></a><strong>httpget</strong>&nbsp;(url, stream, target)</dt>
-<dd>
-
-
-Returns the contents of a documented referred by an URL.
-
-
-
-<h3>Parameters</h3>
-<ul>
-
- <li>
- url: The URL to retrieve
- </li>
-
- <li>
- stream: Return a stream instead of a buffer
- </li>
-
- <li>
- target: Directly write to target file name
- </li>
-
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the contents of given the URL
-
-
-
-</dd>
-
-
-
-
-<dt><a name="mounts"></a><strong>mounts</strong>&nbsp;()</dt>
-<dd>
-
-
-Retrieve information about currently mounted file systems.
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Table containing mount information
-
-
-
-</dd>
-
-
-
-
<dt><a name="net.arptable"></a><strong>arptable</strong>&nbsp;()</dt>
<dd>
@@ -820,107 +550,6 @@ Table of tables with properties of the corresponding routes.
</dd>
-
-
-<dt><a name="reboot"></a><strong>reboot</strong>&nbsp;()</dt>
-<dd>
-
-
-Initiate a system reboot.
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Return value of os.execute()
-
-
-
-</dd>
-
-
-
-
-<dt><a name="syslog"></a><strong>syslog</strong>&nbsp;()</dt>
-<dd>
-
-
-Retrieves the output of the "logread" command.
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing the current log buffer
-
-
-
-</dd>
-
-
-
-
-<dt><a name="uniqueid"></a><strong>uniqueid</strong>&nbsp;(bytes)</dt>
-<dd>
-
-
-Generates a random id with specified length.
-
-
-
-<h3>Parameters</h3>
-<ul>
-
- <li>
- bytes: Number of bytes for the unique id
- </li>
-
-</ul>
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing hex encoded id
-
-
-
-</dd>
-
-
-
-
-<dt><a name="uptime"></a><strong>uptime</strong>&nbsp;()</dt>
-<dd>
-
-
-Returns the current system uptime stats.
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-String containing total uptime in seconds
-
-
-
-</dd>
-
-
</dl>
diff --git a/documentation/api/modules/luci.sys.process.html b/documentation/api/modules/luci.sys.process.html
index d664bca1db..9c4f0a5401 100644
--- a/documentation/api/modules/luci.sys.process.html
+++ b/documentation/api/modules/luci.sys.process.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -97,6 +125,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/luci.sys.user.html b/documentation/api/modules/luci.sys.user.html
index 976dac6124..37126dd924 100644
--- a/documentation/api/modules/luci.sys.user.html
+++ b/documentation/api/modules/luci.sys.user.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -97,6 +125,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/luci.sys.wifi.html b/documentation/api/modules/luci.sys.wifi.html
index 1a3a997a3e..eb1f6b31d7 100644
--- a/documentation/api/modules/luci.sys.wifi.html
+++ b/documentation/api/modules/luci.sys.wifi.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -97,6 +125,10 @@
<li><strong>luci.sys.wifi</strong></li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/luci.util.html b/documentation/api/modules/luci.util.html
new file mode 100644
index 0000000000..301cffff68
--- /dev/null
+++ b/documentation/api/modules/luci.util.html
@@ -0,0 +1,1717 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+ <title>Reference</title>
+ <link rel="stylesheet" href="../luadoc.css" type="text/css" />
+ <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
+</head>
+
+<body>
+<div id="container">
+
+<div id="product">
+ <div id="product_logo"></div>
+ <div id="product_name"><big><b></b></big></div>
+ <div id="product_description"></div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+
+
+<h1>LuaDoc</h1>
+<ul>
+
+ <li><a href="../index.html">Index</a></li>
+
+</ul>
+
+
+<!-- Module list -->
+
+<h1>Modules</h1>
+<ul>
+
+ <li>
+ <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.date.html">luci.http.protocol.date</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.protocol.mime.html">luci.http.protocol.mime</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.i18n.html">luci.i18n</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.html">luci.ip</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.jsonc.html">luci.jsonc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.init.html">luci.sys.init</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.net.html">luci.sys.net</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.process.html">luci.sys.process</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.user.html">luci.sys.user</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
+ </li>
+
+ <li><strong>luci.util</strong></li>
+
+ <li>
+ <a href="../modules/nixio.html">nixio</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.File.html">nixio.File</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.README.html">nixio.README</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.Socket.html">nixio.Socket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bin.html">nixio.bin</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.bit.html">nixio.bit</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.crypto.html">nixio.crypto</a>
+ </li>
+
+ <li>
+ <a href="../modules/nixio.fs.html">nixio.fs</a>
+ </li>
+
+</ul>
+
+
+
+<!-- File list -->
+
+
+
+
+
+
+
+</div><!-- id="navigation" -->
+
+<div id="content">
+
+<h1>Class <code>luci.util</code></h1>
+
+<p></p>
+
+
+
+
+
+
+
+<h2>Functions</h2>
+<table class="function_list">
+
+ <tr>
+ <td class="name" nowrap><a href="#append">append</a>&nbsp;(src, ...)</td>
+ <td class="summary">
+
+Appends numerically indexed tables or single objects to a given table.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#bigendian">bigendian</a>&nbsp;()</td>
+ <td class="summary">
+
+Test whether the current system is operating in big endian mode.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#class">class</a>&nbsp;(base)</td>
+ <td class="summary">
+
+Create a Class object (Python-style object model).</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#clone">clone</a>&nbsp;(object, deep)</td>
+ <td class="summary">
+
+Clones the given object and return it's copy.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#cmatch">cmatch</a>&nbsp;(str, pattern)</td>
+ <td class="summary">
+
+Count the occurences of given substring in given string.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#combine">combine</a>&nbsp;(tbl1, tbl2, ...)</td>
+ <td class="summary">
+
+Combines two or more numerically indexed tables and single objects into one table.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#contains">contains</a>&nbsp;(table, value)</td>
+ <td class="summary">
+
+Checks whether the given table contains the given value.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#copcall">copcall</a>&nbsp;(f, ...)</td>
+ <td class="summary">
+
+This is a coroutine-safe drop-in replacement for Lua's "pcall"-function
+ </td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#coxpcall">coxpcall</a>&nbsp;(f, err, ...)</td>
+ <td class="summary">
+
+This is a coroutine-safe drop-in replacement for Lua's "xpcall"-function
+ </td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#dtable">dtable</a>&nbsp;()</td>
+ <td class="summary">
+
+Create a dynamic table which automatically creates subtables.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#dumptable">dumptable</a>&nbsp;(t, maxdepth)</td>
+ <td class="summary">
+
+Recursively dumps a table to stdout, useful for testing and debugging.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#exec">exec</a>&nbsp;(command)</td>
+ <td class="summary">
+
+Execute given commandline and gather stdout.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#execi">execi</a>&nbsp;(command)</td>
+ <td class="summary">
+
+Return a line-buffered iterator over the output of given command.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#get_bytecode">get_bytecode</a>&nbsp;(val)</td>
+ <td class="summary">
+
+Return the current runtime bytecode of the given data.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#imatch">imatch</a>&nbsp;(val)</td>
+ <td class="summary">
+
+Return a matching iterator for the given value.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#instanceof">instanceof</a>&nbsp;(object, class)</td>
+ <td class="summary">
+
+Test whether the given object is an instance of the given class.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#keys">keys</a>&nbsp;(t)</td>
+ <td class="summary">
+
+Retrieve all keys of given associative table.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#kspairs">kspairs</a>&nbsp;(t)</td>
+ <td class="summary">
+
+Return a key, value iterator for the given table.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#libpath">libpath</a>&nbsp;()</td>
+ <td class="summary">
+
+Returns the absolute path to LuCI base directory.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#parse_units">parse_units</a>&nbsp;(ustr)</td>
+ <td class="summary">
+
+Parse certain units from the given string and return the canonical integer
+
+value or 0 if the unit is unknown.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#pcdata">pcdata</a>&nbsp;(value)</td>
+ <td class="summary">
+
+Create valid XML PCDATA from given string.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#perror">perror</a>&nbsp;(obj)</td>
+ <td class="summary">
+
+Write given object to stderr.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#restore_data">restore_data</a>&nbsp;(str)</td>
+ <td class="summary">
+
+Restore data previously serialized with serialize_data().</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#serialize_data">serialize_data</a>&nbsp;(val)</td>
+ <td class="summary">
+
+Recursively serialize given data to lua code, suitable for restoring
+
+with loadstring().</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#serialize_json">serialize_json</a>&nbsp;(data, writer)</td>
+ <td class="summary">
+
+Convert data structure to JSON
+ </td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#spairs">spairs</a>&nbsp;(t, f)</td>
+ <td class="summary">
+
+Return a key, value iterator which returns the values sorted according to
+
+the provided callback function.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#split">split</a>&nbsp;(str, pat, max, regex)</td>
+ <td class="summary">
+
+Splits given string on a defined separator sequence and return a table
+
+containing the resulting substrings.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#strip_bytecode">strip_bytecode</a>&nbsp;(code)</td>
+ <td class="summary">
+
+Strips unnescessary lua bytecode from given string.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#striptags">striptags</a>&nbsp;(value)</td>
+ <td class="summary">
+
+Strip HTML tags from given string.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#threadlocal">threadlocal</a>&nbsp;()</td>
+ <td class="summary">
+
+Create a new or get an already existing thread local store associated with
+
+the current active coroutine.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#trim">trim</a>&nbsp;(str)</td>
+ <td class="summary">
+
+Remove leading and trailing whitespace from given string value.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#ubus">ubus</a>&nbsp;(object, method, values)</td>
+ <td class="summary">
+
+Issue an ubus call.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#update">update</a>&nbsp;(t, updates)</td>
+ <td class="summary">
+
+Update values in given table with the values from the second given table.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#vspairs">vspairs</a>&nbsp;(t)</td>
+ <td class="summary">
+
+Return a key, value iterator for the given table.</td>
+ </tr>
+
+</table>
+
+
+
+
+
+
+<br/>
+<br/>
+
+
+<h2><a name="functions"></a>Functions</h2>
+<dl class="function">
+
+
+
+<dt><a name="append"></a><strong>append</strong>&nbsp;(src, ...)</dt>
+<dd>
+
+
+Appends numerically indexed tables or single objects to a given table.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ src: Target table
+ </li>
+
+ <li>
+ ...: Objects to insert
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Target table
+
+
+
+</dd>
+
+
+
+
+<dt><a name="bigendian"></a><strong>bigendian</strong>&nbsp;()</dt>
+<dd>
+
+
+Test whether the current system is operating in big endian mode.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean value indicating whether system is big endian
+
+
+
+</dd>
+
+
+
+
+<dt><a name="class"></a><strong>class</strong>&nbsp;(base)</dt>
+<dd>
+
+
+Create a Class object (Python-style object model).
+
+The class object can be instantiated by calling itself.
+Any class functions or shared parameters can be attached to this object.
+Attaching a table to the class object makes this table shared between
+all instances of this class. For object parameters use the __init__ function.
+Classes can inherit member functions and values from a base class.
+Class can be instantiated by calling them. All parameters will be passed
+to the __init__ function of this class - if such a function exists.
+The __init__ function must be used to set any object parameters that are not shared
+with other objects of this class. Any return values will be ignored.
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ base: The base class to inherit from (optional)
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+A class object
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#instanceof">
+ instanceof
+ </a>
+
+ <li><a href="#clone">
+ clone
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="clone"></a><strong>clone</strong>&nbsp;(object, deep)</dt>
+<dd>
+
+
+Clones the given object and return it's copy.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ object: Table value to clone
+ </li>
+
+ <li>
+ deep: Boolean indicating whether to do recursive cloning
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Cloned table value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="cmatch"></a><strong>cmatch</strong>&nbsp;(str, pattern)</dt>
+<dd>
+
+
+Count the occurences of given substring in given string.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ str: String to search in
+ </li>
+
+ <li>
+ pattern: String containing pattern to find
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Number of found occurences
+
+
+
+</dd>
+
+
+
+
+<dt><a name="combine"></a><strong>combine</strong>&nbsp;(tbl1, tbl2, ...)</dt>
+<dd>
+
+
+Combines two or more numerically indexed tables and single objects into one table.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ tbl1: Table value to combine
+ </li>
+
+ <li>
+ tbl2: Table value to combine
+ </li>
+
+ <li>
+ ...: More tables to combine
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table value containing all values of given tables
+
+
+
+</dd>
+
+
+
+
+<dt><a name="contains"></a><strong>contains</strong>&nbsp;(table, value)</dt>
+<dd>
+
+
+Checks whether the given table contains the given value.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ table: Table value
+ </li>
+
+ <li>
+ value: Value to search within the given table
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+number indicating the first index at which the given value occurs
+ within table or false.
+
+
+
+</dd>
+
+
+
+
+<dt><a name="copcall"></a><strong>copcall</strong>&nbsp;(f, ...)</dt>
+<dd>
+
+
+This is a coroutine-safe drop-in replacement for Lua's "pcall"-function
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ f: Lua function to be called protected
+ </li>
+
+ <li>
+ ...: Parameters passed to the function
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+A boolean whether the function call succeeded and the returns
+ values of the function or the error object
+
+
+
+</dd>
+
+
+
+
+<dt><a name="coxpcall"></a><strong>coxpcall</strong>&nbsp;(f, err, ...)</dt>
+<dd>
+
+
+This is a coroutine-safe drop-in replacement for Lua's "xpcall"-function
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ f: Lua function to be called protected
+ </li>
+
+ <li>
+ err: Custom error handler
+ </li>
+
+ <li>
+ ...: Parameters passed to the function
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+A boolean whether the function call succeeded and the return
+ values of either the function or the error handler
+
+
+
+</dd>
+
+
+
+
+<dt><a name="dtable"></a><strong>dtable</strong>&nbsp;()</dt>
+<dd>
+
+
+Create a dynamic table which automatically creates subtables.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Dynamic Table
+
+
+
+</dd>
+
+
+
+
+<dt><a name="dumptable"></a><strong>dumptable</strong>&nbsp;(t, maxdepth)</dt>
+<dd>
+
+
+Recursively dumps a table to stdout, useful for testing and debugging.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ t: Table value to dump
+ </li>
+
+ <li>
+ maxdepth: Maximum depth
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Always nil
+
+
+
+</dd>
+
+
+
+
+<dt><a name="exec"></a><strong>exec</strong>&nbsp;(command)</dt>
+<dd>
+
+
+Execute given commandline and gather stdout.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ command: String containing command to execute
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the command's stdout
+
+
+
+</dd>
+
+
+
+
+<dt><a name="execi"></a><strong>execi</strong>&nbsp;(command)</dt>
+<dd>
+
+
+Return a line-buffered iterator over the output of given command.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ command: String containing the command to execute
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Iterator
+
+
+
+</dd>
+
+
+
+
+<dt><a name="get_bytecode"></a><strong>get_bytecode</strong>&nbsp;(val)</dt>
+<dd>
+
+
+Return the current runtime bytecode of the given data. The byte code
+
+will be stripped before it is returned.
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ val: Value to return as bytecode
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String value containing the bytecode of the given data
+
+
+
+</dd>
+
+
+
+
+<dt><a name="imatch"></a><strong>imatch</strong>&nbsp;(val)</dt>
+<dd>
+
+
+Return a matching iterator for the given value. The iterator will return
+
+one token per invocation, the tokens are separated by whitespace. If the
+input value is a table, it is transformed into a string first. A nil value
+will result in a valid interator which aborts with the first invocation.
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ val: The value to scan (table, string or nil)
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Iterator which returns one token per call
+
+
+
+</dd>
+
+
+
+
+<dt><a name="instanceof"></a><strong>instanceof</strong>&nbsp;(object, class)</dt>
+<dd>
+
+
+Test whether the given object is an instance of the given class.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ object: Object instance
+ </li>
+
+ <li>
+ class: Class object to test against
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating whether the object is an instance
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#class">
+ class
+ </a>
+
+ <li><a href="#clone">
+ clone
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="keys"></a><strong>keys</strong>&nbsp;(t)</dt>
+<dd>
+
+
+Retrieve all keys of given associative table.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ t: Table to extract keys from
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Sorted table containing the keys
+
+
+
+</dd>
+
+
+
+
+<dt><a name="kspairs"></a><strong>kspairs</strong>&nbsp;(t)</dt>
+<dd>
+
+
+Return a key, value iterator for the given table.
+
+The table pairs are sorted by key.
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ t: The table to iterate
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Function value containing the corresponding iterator
+
+
+
+</dd>
+
+
+
+
+<dt><a name="libpath"></a><strong>libpath</strong>&nbsp;()</dt>
+<dd>
+
+
+Returns the absolute path to LuCI base directory.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the directory path
+
+
+
+</dd>
+
+
+
+
+<dt><a name="parse_units"></a><strong>parse_units</strong>&nbsp;(ustr)</dt>
+<dd>
+
+
+Parse certain units from the given string and return the canonical integer
+
+value or 0 if the unit is unknown. Upper- or lower case is irrelevant.
+Recognized units are:
+ o "y" - one year (60*60*24*366)
+ o "m" - one month (60*60*24*31)
+ o "w" - one week (60*60*24*7)
+ o "d" - one day (60*60*24)
+ o "h" - one hour (60*60)
+ o "min" - one minute (60)
+ o "kb" - one kilobyte (1024)
+ o "mb" - one megabyte (1024*1024)
+ o "gb" - one gigabyte (1024*1024*1024)
+ o "kib" - one si kilobyte (1000)
+ o "mib" - one si megabyte (1000*1000)
+ o "gib" - one si gigabyte (1000*1000*1000)
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ ustr: String containing a numerical value with trailing unit
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Number containing the canonical value
+
+
+
+</dd>
+
+
+
+
+<dt><a name="pcdata"></a><strong>pcdata</strong>&nbsp;(value)</dt>
+<dd>
+
+
+Create valid XML PCDATA from given string.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ value: String value containing the data to escape
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String value containing the escaped data
+
+
+
+</dd>
+
+
+
+
+<dt><a name="perror"></a><strong>perror</strong>&nbsp;(obj)</dt>
+<dd>
+
+
+Write given object to stderr.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ obj: Value to write to stderr
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean indicating whether the write operation was successful
+
+
+
+</dd>
+
+
+
+
+<dt><a name="restore_data"></a><strong>restore_data</strong>&nbsp;(str)</dt>
+<dd>
+
+
+Restore data previously serialized with serialize_data().
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ str: String containing the data to restore
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Value containing the restored data structure
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#serialize_data">
+ serialize_data
+ </a>
+
+ <li><a href="#get_bytecode">
+ get_bytecode
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="serialize_data"></a><strong>serialize_data</strong>&nbsp;(val)</dt>
+<dd>
+
+
+Recursively serialize given data to lua code, suitable for restoring
+
+with loadstring().
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ val: Value containing the data to serialize
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String value containing the serialized code
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#restore_data">
+ restore_data
+ </a>
+
+ <li><a href="#get_bytecode">
+ get_bytecode
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="serialize_json"></a><strong>serialize_json</strong>&nbsp;(data, writer)</dt>
+<dd>
+
+
+Convert data structure to JSON
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ data: The data to serialize
+ </li>
+
+ <li>
+ writer: A function to write a chunk of JSON data (optional)
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the JSON if called without write callback
+
+
+
+</dd>
+
+
+
+
+<dt><a name="spairs"></a><strong>spairs</strong>&nbsp;(t, f)</dt>
+<dd>
+
+
+Return a key, value iterator which returns the values sorted according to
+
+the provided callback function.
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ t: The table to iterate
+ </li>
+
+ <li>
+ f: A callback function to decide the order of elements
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Function value containing the corresponding iterator
+
+
+
+</dd>
+
+
+
+
+<dt><a name="split"></a><strong>split</strong>&nbsp;(str, pat, max, regex)</dt>
+<dd>
+
+
+Splits given string on a defined separator sequence and return a table
+
+containing the resulting substrings. The optional max parameter specifies
+the number of bytes to process, regardless of the actual length of the given
+string. The optional last parameter, regex, specifies whether the separator
+sequence is interpreted as regular expression.
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ str: String value containing the data to split up
+ </li>
+
+ <li>
+ pat: String with separator pattern (optional, defaults to "\n")
+ </li>
+
+ <li>
+ max: Maximum times to split (optional)
+ </li>
+
+ <li>
+ regex: Boolean indicating whether to interpret the separator
+ pattern as regular expression (optional, default is false)
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing the resulting substrings
+
+
+
+</dd>
+
+
+
+
+<dt><a name="strip_bytecode"></a><strong>strip_bytecode</strong>&nbsp;(code)</dt>
+<dd>
+
+
+Strips unnescessary lua bytecode from given string. Information like line
+
+numbers and debugging numbers will be discarded. Original version by
+Peter Cawley (http://lua-users.org/lists/lua-l/2008-02/msg01158.html)
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ code: String value containing the original lua byte code
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String value containing the stripped lua byte code
+
+
+
+</dd>
+
+
+
+
+<dt><a name="striptags"></a><strong>striptags</strong>&nbsp;(value)</dt>
+<dd>
+
+
+Strip HTML tags from given string.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ value: String containing the HTML text
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String with HTML tags stripped of
+
+
+
+</dd>
+
+
+
+
+<dt><a name="threadlocal"></a><strong>threadlocal</strong>&nbsp;()</dt>
+<dd>
+
+
+Create a new or get an already existing thread local store associated with
+
+the current active coroutine. A thread local store is private a table object
+whose values can't be accessed from outside of the running coroutine.
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table value representing the corresponding thread local store
+
+
+
+</dd>
+
+
+
+
+<dt><a name="trim"></a><strong>trim</strong>&nbsp;(str)</dt>
+<dd>
+
+
+Remove leading and trailing whitespace from given string value.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ str: String value containing whitespace padded data
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String value with leading and trailing space removed
+
+
+
+</dd>
+
+
+
+
+<dt><a name="ubus"></a><strong>ubus</strong>&nbsp;(object, method, values)</dt>
+<dd>
+
+
+Issue an ubus call.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ object: String containing the ubus object to call
+ </li>
+
+ <li>
+ method: String containing the ubus method to call
+ </li>
+
+ <li>
+ values: Table containing the values to pass
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containin the ubus result
+
+
+
+</dd>
+
+
+
+
+<dt><a name="update"></a><strong>update</strong>&nbsp;(t, updates)</dt>
+<dd>
+
+
+Update values in given table with the values from the second given table.
+
+Both table are - in fact - merged together.
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ t: Table which should be updated
+ </li>
+
+ <li>
+ updates: Table containing the values to update
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Always nil
+
+
+
+</dd>
+
+
+
+
+<dt><a name="vspairs"></a><strong>vspairs</strong>&nbsp;(t)</dt>
+<dd>
+
+
+Return a key, value iterator for the given table.
+
+The table pairs are sorted by value.
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ t: The table to iterate
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Function value containing the corresponding iterator
+
+
+
+</dd>
+
+
+</dl>
+
+
+
+
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+ <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+</body>
+</html>
diff --git a/documentation/api/modules/nixio.CHANGELOG.html b/documentation/api/modules/nixio.CHANGELOG.html
index a9e0dcc071..48bedc80af 100644
--- a/documentation/api/modules/nixio.CHANGELOG.html
+++ b/documentation/api/modules/nixio.CHANGELOG.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -99,6 +127,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/nixio.CryptoHash.html b/documentation/api/modules/nixio.CryptoHash.html
index e7f28bb5d5..6158a77b60 100644
--- a/documentation/api/modules/nixio.CryptoHash.html
+++ b/documentation/api/modules/nixio.CryptoHash.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -99,6 +127,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/nixio.File.html b/documentation/api/modules/nixio.File.html
index c4f9ab8666..d9e67ea5b3 100644
--- a/documentation/api/modules/nixio.File.html
+++ b/documentation/api/modules/nixio.File.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -99,6 +127,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/nixio.README.html b/documentation/api/modules/nixio.README.html
index 94182a0ee5..a8da0f36da 100644
--- a/documentation/api/modules/nixio.README.html
+++ b/documentation/api/modules/nixio.README.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -99,6 +127,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/nixio.Socket.html b/documentation/api/modules/nixio.Socket.html
index ccb10250a4..105682ced2 100644
--- a/documentation/api/modules/nixio.Socket.html
+++ b/documentation/api/modules/nixio.Socket.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -99,6 +127,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/nixio.TLSContext.html b/documentation/api/modules/nixio.TLSContext.html
index a0f630974f..a91b1eec4d 100644
--- a/documentation/api/modules/nixio.TLSContext.html
+++ b/documentation/api/modules/nixio.TLSContext.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -99,6 +127,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/nixio.TLSSocket.html b/documentation/api/modules/nixio.TLSSocket.html
index 36b31f3445..3d99a6482f 100644
--- a/documentation/api/modules/nixio.TLSSocket.html
+++ b/documentation/api/modules/nixio.TLSSocket.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -99,6 +127,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/nixio.UnifiedIO.html b/documentation/api/modules/nixio.UnifiedIO.html
index 576c23feda..22e6e91658 100644
--- a/documentation/api/modules/nixio.UnifiedIO.html
+++ b/documentation/api/modules/nixio.UnifiedIO.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -99,6 +127,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/nixio.bin.html b/documentation/api/modules/nixio.bin.html
index 33421b743b..fd82879129 100644
--- a/documentation/api/modules/nixio.bin.html
+++ b/documentation/api/modules/nixio.bin.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -99,6 +127,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/nixio.bit.html b/documentation/api/modules/nixio.bit.html
index 80940afffe..b29c29d335 100644
--- a/documentation/api/modules/nixio.bit.html
+++ b/documentation/api/modules/nixio.bit.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -99,6 +127,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/nixio.crypto.html b/documentation/api/modules/nixio.crypto.html
index d74cf5c8ff..79a74584d4 100644
--- a/documentation/api/modules/nixio.crypto.html
+++ b/documentation/api/modules/nixio.crypto.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -99,6 +127,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/nixio.fs.html b/documentation/api/modules/nixio.fs.html
index 359f02395b..d4fda2c516 100644
--- a/documentation/api/modules/nixio.fs.html
+++ b/documentation/api/modules/nixio.fs.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -99,6 +127,10 @@
</li>
<li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
+ <li>
<a href="../modules/nixio.html">nixio</a>
</li>
diff --git a/documentation/api/modules/nixio.html b/documentation/api/modules/nixio.html
index 8b0f84b1af..f02fe3be58 100644
--- a/documentation/api/modules/nixio.html
+++ b/documentation/api/modules/nixio.html
@@ -39,6 +39,10 @@
</li>
<li>
+ <a href="../modules/luci.http.html">luci.http</a>
+ </li>
+
+ <li>
<a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
</li>
@@ -67,6 +71,10 @@
</li>
<li>
+ <a href="../modules/luci.json.html">luci.json</a>
+ </li>
+
+ <li>
<a href="../modules/luci.jsonc.html">luci.jsonc</a>
</li>
@@ -75,6 +83,26 @@
</li>
<li>
+ <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.model.uci.html">luci.model.uci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.html">luci.rpcc</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.sys.html">luci.sys</a>
+ </li>
+
+ <li>
<a href="../modules/luci.sys.init.html">luci.sys.init</a>
</li>
@@ -98,6 +126,10 @@
<a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
</li>
+ <li>
+ <a href="../modules/luci.util.html">luci.util</a>
+ </li>
+
<li><strong>nixio</strong></li>
<li>