summaryrefslogtreecommitdiffhomepage
path: root/docs/api/modules/luci.model.uci.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/api/modules/luci.model.uci.html')
-rw-r--r--docs/api/modules/luci.model.uci.html1631
1 files changed, 1631 insertions, 0 deletions
diff --git a/docs/api/modules/luci.model.uci.html b/docs/api/modules/luci.model.uci.html
new file mode 100644
index 0000000000..c1eaf5f813
--- /dev/null
+++ b/docs/api/modules/luci.model.uci.html
@@ -0,0 +1,1631 @@
+<!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.conditionals.html">luci.http.conditionals</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.date.html">luci.http.date</a>
+ </li>
+
+ <li>
+ <a href="../modules/luci.http.mime.html">luci.http.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;(rollback)</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.confirm">Cursor:confirm</a>&nbsp;()</td>
+ <td class="summary">
+
+Confirms UCI apply process.</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.get_session_id">Cursor:get_session_id</a>&nbsp;()</td>
+ <td class="summary">
+
+Get the effective session ID.</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.rollback">Cursor:rollback</a>&nbsp;()</td>
+ <td class="summary">
+
+Cancels UCI apply process.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.rollback_pending">Cursor:rollback_pending</a>&nbsp;()</td>
+ <td class="summary">
+
+Checks whether a pending rollback is scheduled.</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 uncommitted changes.</td>
+ </tr>
+
+ <tr>
+ <td class="name" nowrap><a href="#Cursor.set_session_id">Cursor:set_session_id</a>&nbsp;(id)</td>
+ <td class="summary">
+
+Set the effective session ID.</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;(rollback)</dt>
+<dd>
+
+
+Applies UCI configuration changes.
+
+If the rollback parameter is set to true, the apply function will invoke the
+rollback mechanism which causes the configuration to be automatically reverted
+if no confirm() call occurs within a certain timeout.
+
+The current default timeout is 30s and can be increased using the
+"luci.apply.timeout" uci configuration key.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ rollback: Enable rollback mechanism
+ </li>
+
+</ul>
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</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.confirm"></a><strong>Cursor:confirm</strong>&nbsp;()</dt>
+<dd>
+
+
+Confirms UCI apply process.
+
+If a previous UCI apply with rollback has been invoked using apply(true),
+this function confirms the process and cancels the pending rollback timer.
+
+If no apply with rollback session is active, the function has no effect and
+returns with a "No data" error.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</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>
+table. If the option was not found, you will simply get an empty
+ table.
+
+
+
+</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.get_session_id"></a><strong>Cursor:get_session_id</strong>&nbsp;()</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>&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.rollback"></a><strong>Cursor:rollback</strong>&nbsp;()</dt>
+<dd>
+
+
+Cancels UCI apply process.
+
+If a previous UCI apply with rollback has been invoked using apply(true),
+this function cancels the process and rolls back the configuration to the
+pre-apply state.
+
+If no apply with rollback session is active, the function has no effect and
+returns with a "No data" error.
+
+
+
+
+
+
+
+
+<h3>Return value:</h3>
+Boolean whether operation succeeded
+
+
+
+</dd>
+
+
+
+
+<dt><a name="Cursor.rollback_pending"></a><strong>Cursor:rollback_pending</strong>&nbsp;()</dt>
+<dd>
+
+
+Checks whether a pending rollback is scheduled.
+
+If a previous UCI apply with rollback has been invoked using apply(true),
+and has not been confirmed or rolled back yet, this function returns true
+and the remaining time until rollback in seconds. If no rollback is pending,
+the function returns false. On error, the function returns false and an
+additional string describing the error.
+
+
+
+
+
+
+
+
+<h3>Return values:</h3>
+<ol>
+
+ <li>Boolean whether rollback is pending
+
+ <li>Remaining time in seconds
+
+</ol>
+
+
+
+</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.
+
+When invoked with three arguments <code>config</code>, <code>sectionname</code>, <code>sectiontype</code>,
+then a named section of the given type is created.
+
+When invoked with four arguments <code>config</code>, <code>sectionname</code>, <code>optionname</code> and
+<code>optionvalue</code> then the value of the specified option is set to the given value.
+
+
+
+<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 nothing 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. Setting a list option to an empty list
+has the same effect as deleting the option.
+
+
+
+<h3>Parameters</h3>
+<ul>
+
+ <li>
+ config: UCI config
+ </li>
+
+ <li>
+ section: UCI section name
+ </li>
+
+ <li>
+ option: UCI option
+ </li>
+
+ <li>
+ 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_savedir"></a><strong>Cursor:set_savedir</strong>&nbsp;(directory)</dt>
+<dd>
+
+
+Set the directory for uncommitted 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.set_session_id"></a><strong>Cursor:set_session_id</strong>&nbsp;(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>
+
+
+
+
+<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 cursor, 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>