123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374 |
- <!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>
- <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/luci.xml.html">luci.xml</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><strong>nixio.README</strong></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>nixio.README</code></h1>
- <p>
- General Information.</p>
- <h2>Tables</h2>
- <table class="table_list">
- <tr>
- <td class="name" nowrap><a href="#Errorhandling">Errorhandling</a></td>
- <td class="summary">
- General error handling information.</td>
- </tr>
- <tr>
- <td class="name" nowrap><a href="#Functions">Functions</a></td>
- <td class="summary">
- Function conventions.</td>
- </tr>
- <tr>
- <td class="name" nowrap><a href="#Platforms">Platforms</a></td>
- <td class="summary">
- Platform information.</td>
- </tr>
- <tr>
- <td class="name" nowrap><a href="#TLS-Crypto">TLS-Crypto</a></td>
- <td class="summary">
- Cryptography and TLS libraries.</td>
- </tr>
- </table>
- <br/>
- <br/>
- <h2><a name="tables"></a>Tables</h2>
- <dl class="table">
- <dt><a name="Errorhandling"></a><strong>Errorhandling</strong></dt>
- <dd>
- General error handling information.
- <ul>
- <li> Most of the functions available in this library may fail. If any error
- occurs the function returns <strong>nil or false</strong>, an error code
- (usually errno) and an additional error message text (if avaialable).</li>
- <li>At the moment false is only returned when a non-blocking I/O function
- fails with EAGAIN, EWOULDBLOCK or WSAEWOULDBLOCK for any others nil is
- returned as first parameter. Therefore you can use false to write portable
- non-blocking I/O applications.</li>
- <li>Note that the function documentation does only mention the return values
- in case of a successful operation.</li>
- <li>You can find a table of common error numbers and other useful constants
- like signal numbers in <strong>nixio.const</strong> e.g. nixio.const.EINVAL,
- nixio.const.SIGTERM, etc. For portability there is a second error constant
- table <strong>nixio.const_sock</strong> for socket error codes. This might
- be important if you are dealing with Windows applications, on POSIX however
- const_sock is just an alias for const.</li>
- <li>With some exceptions - which are explicitly stated in the function
- documentation - all blocking functions are signal-protected and will not fail
- with EINTR.</li>
- <li>On POSIX the SIGPIPE signal will be set to ignore upon initialization.
- You should restore the default behaviour or set a custom signal handler
- in your program after loading nixio if you need this behaviour.</li>
- </ul>
- </dd>
- <dt><a name="Functions"></a><strong>Functions</strong></dt>
- <dd>
- Function conventions.
- <br />In general all functions are namend and behave like their POSIX API
- counterparts - where applicable - applying the following rules:
- <ul>
- <li>Functions should be named like the underlying POSIX API function omitting
- prefixes or suffixes - especially when placed in an object-context (
- lockf -> File:lock, fsync -> File:sync, dup2 -> dup, ...)</li>
- <li>If you are unclear about the behaviour of a function you should consult
- your OS API documentation (e.g. the manpages).</li>
- <li>If the name is significantly different from the POSIX-function, the
- underlying function(s) are stated in the documentation.</li>
- <li>Parameters should reflect those of the C-API, buffer length arguments and
- by-reference parameters should be omitted for practical purposes.</li>
- <li>If a C function accepts a bitfield as parameter, it should be translated
- into lower case string flags representing the flags if the bitfield is the
- last parameter and also omitting prefixes or suffixes. (e.g. waitpid
- (pid, &s, WNOHANG | WUNTRACED) -> waitpid(pid, "nohang", "untraced"),
- getsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) ->
- Socket:getopt("socket", "reuseaddr"), etc.) </li>
- <li>If it is not applicable to provide a string representation of the
- bitfield a bitfield generator helper is provided. It is named FUNCTION_flags.
- (open("/tmp/test", O_RDONLY | O_NONBLOCK) -> open("/tmp/test", open_flags(
- "rdonly", "nonblock")))</li>
- </ul>
- </dd>
- <dt><a name="Platforms"></a><strong>Platforms</strong></dt>
- <dd>
- Platform information.
- <ul>
- <li>The minimum platform requirements are a decent POSIX 2001 support.
- Builds are more or less tested on Linux, Solaris and FreeBSD. Builds for
- Windows XP SP1 and later can be compiled with MinGW either from Windows
- itself or using the MinGW cross-compiler. Earlier versions of Windows are not
- supported.</li>
- <li>In general all functions which don't have any remarks
- in their documentation are available on all platforms.</li>
- <li>Functions with a (POSIX), (Linux) or similar prefix are only available
- on these specific platforms. Same appplies to parameters of functions
- with a similar suffix.</li>
- <li>Some functions might have limitations on some platforms. This should
- be stated in the documentation. Please also consult your OS API
- documentation.</li>
- </ul>
- </dd>
- <dt><a name="TLS-Crypto"></a><strong>TLS-Crypto</strong></dt>
- <dd>
- Cryptography and TLS libraries.
- <ul>
- <li>Currently 3 underlying cryptography libraries are supported: openssl,
- cyassl and axTLS. The name of the library in use is written to
- <strong>nixio.tls_provider</strong></li>
- <li>You should whenever possible use openssl or cyassl as axTLS has only
- limited support. It does not provide support for non-blocking sockets and
- is probably less audited than the other ones.</li>
- <li>As the supported Windows versions are not suitable for embedded devices
- axTLS is at the moment not supported on Windows.</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>
|