</li>
<li>
- <a href="modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="modules/luci.http.date.html">luci.http.date</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>
+ <a href="modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</tr>
<tr>
- <td class="name"><a href="modules/luci.http.protocol.html">luci.http.protocol</a></td>
- <td class="summary"></td>
- </tr>
-
- <tr>
- <td class="name"><a href="modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a></td>
+ <td class="name"><a href="modules/luci.http.conditionals.html">luci.http.conditionals</a></td>
<td class="summary"></td>
</tr>
<tr>
- <td class="name"><a href="modules/luci.http.protocol.date.html">luci.http.protocol.date</a></td>
+ <td class="name"><a href="modules/luci.http.date.html">luci.http.date</a></td>
<td class="summary"></td>
</tr>
<tr>
- <td class="name"><a href="modules/luci.http.protocol.mime.html">luci.http.protocol.mime</a></td>
+ <td class="name"><a href="modules/luci.http.mime.html">luci.http.mime</a></td>
<td class="summary"></td>
</tr>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
<td class="summary">
Fetch or create a dispatching node without setting the target module or
-
enabling the node.</td>
</tr>
Dispatch an HTTP request.</td>
</tr>
+ <tr>
+ <td class="name" nowrap><a href="#lookup">lookup</a> (...)</td>
+ <td class="summary">
+
+Lookup node in dispatching tree.</td>
+ </tr>
+
<tr>
<td class="name" nowrap><a href="#modifier">modifier</a> (func, order)</td>
<td class="summary">
Fetch or create a dispatching node without setting the target module or
-
-enabling the node.
+enabling the node.
+
<h3>Parameters</h3>
+</dd>
+
+
+
+
+<dt><a name="lookup"></a><strong>lookup</strong> (...)</dt>
+<dd>
+
+
+Lookup node in dispatching tree.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ ...: Virtual path
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Node object, canonical url or nil if the path was not found.
+
+
+
</dd>
<li><strong>luci.http</strong></li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
<td class="summary">
Get the value of a certain HTTP environment variable
-
or the environment table itself.</td>
</tr>
Send a HTTP-Header.</td>
</tr>
+ <tr>
+ <td class="name" nowrap><a href="#mimedecode_message_body">mimedecode_message_body</a> (src, msg, filecb)</td>
+ <td class="summary">
+
+Decode a mime encoded http message body with multipart/form-data Content-Type.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#parse_message_body">parse_message_body</a> (src, msg, filecb)</td>
+ <td class="summary">
+
+Try to extract and decode a http message body from the given ltn12 source.</td>
+ </tr>
+
<tr>
<td class="name" nowrap><a href="#prepare_content">prepare_content</a> (mime)</td>
<td class="summary">
Set the HTTP status code and status message.</td>
</tr>
+ <tr>
+ <td class="name" nowrap><a href="#urldecode">urldecode</a> (str, no_plus)</td>
+ <td class="summary">
+
+Return the URL-decoded equivalent of a string.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#urldecode_message_body">urldecode_message_body</a> (src, msg)</td>
+ <td class="summary">
+
+Decode an urlencoded http message body with application/x-www-urlencoded
+Content-Type.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#urldecode_params">urldecode_params</a> (url, tbl)</td>
+ <td class="summary">
+
+Extract and split urlencoded data pairs, separated bei either "&" or ";"
+from given url or string.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#urlencode">urlencode</a> (str)</td>
+ <td class="summary">
+
+Return the URL-encoded equivalent of a string.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#urlencode_params">urlencode_params</a> (tbl)</td>
+ <td class="summary">
+
+Encode each key-value-pair in given table to x-www-urlencoded format,
+separated by "&".</td>
+ </tr>
+
<tr>
<td class="name" nowrap><a href="#write">write</a> (content, src_err)</td>
<td class="summary">
Close the HTTP-Connection.
-
Get the value of a certain HTTP environment variable
-
-or the environment table itself.
+or the environment table itself.
+
<h3>Parameters</h3>
+</dd>
+
+
+
+
+<dt><a name="mimedecode_message_body"></a><strong>mimedecode_message_body</strong> (src, msg, filecb)</dt>
+<dd>
+
+
+Decode a mime encoded http message body with multipart/form-data Content-Type.
+
+Stores all extracted data associated with its parameter name
+in the params table within the given message object. Multiple parameter
+values are stored as tables, ordinary ones as strings.
+
+If an optional file callback function is given then it is feeded with the
+file contents chunk by chunk and only the extracted file name is stored
+within the params table. The callback function will be called subsequently
+with three arguments:
+ o Table containing decoded (name, file) and raw (headers) mime header data
+ o String value containing a chunk of the file data
+ o Boolean which indicates wheather the current chunk is the last one (eof)
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ src: Ltn12 source function
+ </li>
+
+ <li>
+ msg: HTTP message object
+ </li>
+
+ <li>
+ filecb: File callback function (optional)
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+
+ <li>Value indicating successful operation (not nil means "ok")
+
+ <li>String containing the error if unsuccessful
+
+</ol>
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="">
+ parse_message_header
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="parse_message_body"></a><strong>parse_message_body</strong> (src, msg, filecb)</dt>
+<dd>
+
+
+Try to extract and decode a http message body from the given ltn12 source.
+This function will examine the Content-Type within the given message object
+to select the appropriate content decoder.
+
+Currently the application/x-www-urlencoded and application/form-data
+mime types are supported. If the encountered content encoding can't be
+handled then the whole message body will be stored unaltered as "content"
+property within the given message object.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ src: Ltn12 source function
+ </li>
+
+ <li>
+ msg: HTTP message object
+ </li>
+
+ <li>
+ filecb: File data callback (optional, see mimedecode_message_body())
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+
+ <li>Value indicating successful operation (not nil means "ok")
+
+ <li>String containing the error if unsuccessful
+
+</ol>
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="">
+ parse_message_header
+ </a>
+
+</ul>
+
</dd>
+</dd>
+
+
+
+
+<dt><a name="urldecode"></a><strong>urldecode</strong> (str, no_plus)</dt>
+<dd>
+
+
+Return the URL-decoded equivalent of a string.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ str: URL-encoded string
+ </li>
+
+ <li>
+ no_plus: Don't decode + to " "
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+URL-decoded string
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#urlencode">
+ urlencode
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="urldecode_message_body"></a><strong>urldecode_message_body</strong> (src, msg)</dt>
+<dd>
+
+
+Decode an urlencoded http message body with application/x-www-urlencoded
+Content-Type.
+
+Stores all extracted data associated with its parameter name in the params
+table within the given message object. Multiple parameter values are stored
+as tables, ordinary ones as strings.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ src: Ltn12 source function
+ </li>
+
+ <li>
+ msg: HTTP message object
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+
+ <li>Value indicating successful operation (not nil means "ok")
+
+ <li>String containing the error if unsuccessful
+
+</ol>
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="">
+ parse_message_header
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="urldecode_params"></a><strong>urldecode_params</strong> (url, tbl)</dt>
+<dd>
+
+
+Extract and split urlencoded data pairs, separated bei either "&" or ";"
+from given url or string. Returns a table with urldecoded values.
+
+Simple parameters are stored as string values associated with the parameter
+name within the table. Parameters with multiple values are stored as array
+containing the corresponding values.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ url: The url or string which contains x-www-urlencoded form data
+ </li>
+
+ <li>
+ tbl: Use the given table for storing values (optional)
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Table containing the urldecoded parameters
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#urlencode_params">
+ urlencode_params
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="urlencode"></a><strong>urlencode</strong> (str)</dt>
+<dd>
+
+
+Return the URL-encoded equivalent of a string.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ str: Source string
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+URL-encoded string
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#urldecode">
+ urldecode
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="urlencode_params"></a><strong>urlencode_params</strong> (tbl)</dt>
+<dd>
+
+
+Encode each key-value-pair in given table to x-www-urlencoded format,
+separated by "&".
+
+Tables are encoded as parameters with multiple values by repeating the
+parameter name with each value.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ tbl: Table with the values
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing encoded values
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#urldecode_params">
+ urldecode_params
+ </a>
+
+</ul>
+
</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.
+If the content chunk is nil this function will automatically invoke close.
+
<h3>Parameters</h3>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li><strong>luci.i18n</strong></li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
Get the directory for uncomitted changes.</td>
</tr>
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.get_session_id">Cursor:get_session_id</a> ()</td>
+ <td class="summary">
+
+Get the effective session ID.</td>
+ </tr>
+
<tr>
<td class="name" nowrap><a href="#Cursor.load">Cursor:load</a> (config)</td>
<td class="summary">
Set the directory for uncommited changes.</td>
</tr>
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.set_session_id">Cursor:set_session_id</a> (id)</td>
+ <td class="summary">
+
+Set the effective session ID.</td>
+ </tr>
+
<tr>
<td class="name" nowrap><a href="#Cursor.substate">Cursor:substate</a> ()</td>
<td class="summary">
</li>
<li>
- comparator: Function that will be called for each section and
-returns a boolean whether to delete the current section (optional)
+ comparator: Function that will be called for each section and returns
+ a boolean whether to delete the current section (optional)
</li>
</ul>
<h3>Return value:</h3>
-table. If the option was not found, you will simply get
- an empty table.
+table. If the option was not found, you will simply get an empty
+ table.
+<dt><a name="Cursor.get_session_id"></a><strong>Cursor:get_session_id</strong> ()</dt>
+<dd>
+
+
+Get the effective session ID.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the session ID
+
+
+
+</dd>
+
+
+
+
<dt><a name="Cursor.load"></a><strong>Cursor:load</strong> (config)</dt>
<dd>
</li>
<li>
- value: value or table. Raw values will become a single item table.
+ value: Value or table. Non-table values will be set as single
+ item UCI list.
</li>
</ul>
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.set_session_id"></a><strong>Cursor:set_session_id</strong> (id)</dt>
+<dd>
+
+
+Set the effective session ID.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ id: String containing the session ID to set
+ </li>
+
+</ul>
+
+
+
+
+
+
<h3>Return value:</h3>
Boolean whether operation succeeded
<dd>
-Create a sub-state of this cursor. The sub-state is tied to the parent
+Create a sub-state of this cursor.
-curser, means it the parent unloads or loads configs, the sub state will
-do so as well.
+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.
+
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</td>
</tr>
- <tr>
- <td class="name" nowrap><a href="#dtable">dtable</a> ()</td>
- <td class="summary">
-
-Create a dynamic table which automatically creates subtables.</td>
- </tr>
-
<tr>
<td class="name" nowrap><a href="#dumptable">dumptable</a> (t, maxdepth)</td>
<td class="summary">
<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>
<td class="summary">
Recursively serialize given data to lua code, suitable for restoring
-
with loadstring().</td>
</tr>
</td>
</tr>
+ <tr>
+ <td class="name" nowrap><a href="#shellquote">shellquote</a> (value)</td>
+ <td class="summary">
+
+Safely quote value for use in shell commands.</td>
+ </tr>
+
<tr>
<td class="name" nowrap><a href="#spairs">spairs</a> (t, f)</td>
<td class="summary">
Return a key, value iterator which returns the values sorted according to
-
the provided callback function.</td>
</tr>
<td class="summary">
Splits given string on a defined separator sequence and return a table
-
containing the resulting substrings.</td>
</tr>
<td class="summary">
Create a new or get an already existing thread local store associated with
-
the current active coroutine.</td>
</tr>
Update values in given table with the values from the second given table.</td>
</tr>
+ <tr>
+ <td class="name" nowrap><a href="#urldecode">urldecode</a> (str, decode_plus)</td>
+ <td class="summary">
+
+Decode an URL-encoded string - optionally decoding the "+" sign to space.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#urlencode">urlencode</a> (str)</td>
+ <td class="summary">
+
+URL-encode given string.</td>
+ </tr>
+
<tr>
<td class="name" nowrap><a href="#vspairs">vspairs</a> (t)</td>
<td class="summary">
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.
+with other objects of this class. Any return values will be ignored.
+
<h3>Parameters</h3>
<h3>Return value:</h3>
-number indicating the first index at which the given value occurs
- within table or false.
+Number indicating the first index at which the given value occurs
+ within table or false.
<h3>Return value:</h3>
A boolean whether the function call succeeded and the returns
- values of the function or the error object
+ values of the function or the error object
<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> ()</dt>
-<dd>
-
-
-Create a dynamic table which automatically creates subtables.
-
-
-
-
-
-
-
-
-<h3>Return value:</h3>
-Dynamic Table
+ values of either the function or the error handler
Return the current runtime bytecode of the given data. The byte code
-
-will be stripped before it is returned.
+will be stripped before it is returned.
+
<h3>Parameters</h3>
<dd>
-Return a matching iterator for the given value. The iterator will return
+Return a matching iterator for the given value.
-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.
+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>
Return a key, value iterator for the given table.
-The table pairs are sorted by key.
+The table pairs are sorted by key.
+
<h3>Parameters</h3>
Parse certain units from the given string and return the canonical integer
+value or 0 if the unit is unknown.
-value or 0 if the unit is unknown. Upper- or lower case is irrelevant.
+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 "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)
+ o "gib" - one si gigabyte (1000*1000*1000)
+
<h3>Parameters</h3>
Recursively serialize given data to lua code, suitable for restoring
-
-with loadstring().
+with loadstring().
+
<h3>Parameters</h3>
+<dt><a name="shellquote"></a><strong>shellquote</strong> (value)</dt>
+<dd>
+
+
+Safely quote value for use in shell commands.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ value: String containing the value to quote
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Single-quote enclosed string with embedded quotes escaped
+
+
+
+</dd>
+
+
+
+
<dt><a name="spairs"></a><strong>spairs</strong> (t, f)</dt>
<dd>
Return a key, value iterator which returns the values sorted according to
-
-the provided callback function.
+the provided callback function.
+
<h3>Parameters</h3>
Splits given string on a defined separator sequence and return a table
+containing the resulting substrings.
-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.
+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
+nterpreted as regular expression.
+
<h3>Parameters</h3>
<dd>
-Strips unnescessary lua bytecode from given string. Information like line
+Strips unnescessary lua bytecode from given string.
-numbers and debugging numbers will be discarded. Original version by
-Peter Cawley (http://lua-users.org/lists/lua-l/2008-02/msg01158.html)
+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>
Create a new or get an already existing thread local store associated with
+the current active coroutine.
-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.
+A thread local store is private a table object
+whose values can't be accessed from outside of the running coroutine.
+
Update values in given table with the values from the second given table.
-Both table are - in fact - merged together.
+Both table are - in fact - merged together.
+
<h3>Parameters</h3>
+<dt><a name="urldecode"></a><strong>urldecode</strong> (str, decode_plus)</dt>
+<dd>
+
+
+Decode an URL-encoded string - optionally decoding the "+" sign to space.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ str: Input string in x-www-urlencoded format
+ </li>
+
+ <li>
+ decode_plus: Decode "+" signs to spaces if true (optional)
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+The decoded string
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#urlencode">
+ urlencode
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
+<dt><a name="urlencode"></a><strong>urlencode</strong> (str)</dt>
+<dd>
+
+
+URL-encode given string.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ str: String to encode
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+String containing the encoded data
+
+
+
+<h3>See also:</h3>
+<ul>
+
+ <li><a href="#urldecode">
+ urldecode
+ </a>
+
+</ul>
+
+</dd>
+
+
+
+
<dt><a name="vspairs"></a><strong>vspairs</strong> (t)</dt>
<dd>
Return a key, value iterator for the given table.
-The table pairs are sorted by value.
+The table pairs are sorted by value.
+
<h3>Parameters</h3>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>
</li>
<li>
- <a href="../modules/luci.http.protocol.html">luci.http.protocol</a>
+ <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
</li>
<li>
- <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
+ <a href="../modules/luci.http.date.html">luci.http.date</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>
+ <a href="../modules/luci.http.mime.html">luci.http.mime</a>
</li>
<li>