|
@@ -1,11 +1,11 @@
|
|
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>neon</title><link rel="stylesheet" type="text/css" href="manual.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="ref.html" title="neon API reference"><link rel="next" href="refconfig.html" title="neon-config"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">neon</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refconfig.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refneon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>neon — HTTP and WebDAV client library</p></div><div class="refsect1"><a name="id1676"></a><h2>Description</h2><p>neon is an HTTP and WebDAV client library. The major
|
|
|
|
|
|
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>neon</title><link rel="stylesheet" type="text/css" href="manual.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="ref.html" title="neon API reference"><link rel="next" href="refconfig.html" title="neon-config"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">neon</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refconfig.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refneon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>neon — HTTP and WebDAV client library</p></div><div class="refsect1"><a name="id1682"></a><h2>Description</h2><p>neon is an HTTP and WebDAV client library. The major
|
|
abstractions exposed are the HTTP <span class="emphasis"><em>session</em></span>,
|
|
abstractions exposed are the HTTP <span class="emphasis"><em>session</em></span>,
|
|
created by <a class="xref" href="refsess.html#ne_session_create">ne_session_create</a>; and the HTTP
|
|
created by <a class="xref" href="refsess.html#ne_session_create">ne_session_create</a>; and the HTTP
|
|
<span class="emphasis"><em>request</em></span>, created by <a class="xref" href="refreq.html#ne_request_create">ne_request_create</a>. HTTP authentication is handled
|
|
<span class="emphasis"><em>request</em></span>, created by <a class="xref" href="refreq.html#ne_request_create">ne_request_create</a>. HTTP authentication is handled
|
|
transparently for server and proxy servers, see <a class="xref" href="refauth.html#ne_set_server_auth">ne_set_server_auth</a>; complete SSL/TLS support is also
|
|
transparently for server and proxy servers, see <a class="xref" href="refauth.html#ne_set_server_auth">ne_set_server_auth</a>; complete SSL/TLS support is also
|
|
- included, see <a class="xref" href="refsslvfy.html#ne_ssl_set_verify">ne_ssl_set_verify</a>.</p></div><div class="refsect1"><a name="id1685"></a><h2>Conventions</h2><p>Some conventions are used throughout the neon API, to
|
|
|
|
|
|
+ included, see <a class="xref" href="refsslvfy.html#ne_ssl_set_verify">ne_ssl_set_verify</a>.</p></div><div class="refsect1"><a name="id1691"></a><h2>Conventions</h2><p>Some conventions are used throughout the neon API, to
|
|
provide a consistent and simple interface; these are documented
|
|
provide a consistent and simple interface; these are documented
|
|
- below.</p><div class="refsect2"><a name="id1688"></a><h3>Thread-safeness and global initialization</h3><p>neon itself is implemented to be thread-safe (avoiding any
|
|
|
|
|
|
+ below.</p><div class="refsect2"><a name="id1694"></a><h3>Thread-safeness and global initialization</h3><p>neon itself is implemented to be thread-safe (avoiding any
|
|
use of global state), but relies on the operating system providing
|
|
use of global state), but relies on the operating system providing
|
|
a thread-safe resolver interface. Modern operating systems offer
|
|
a thread-safe resolver interface. Modern operating systems offer
|
|
the thread-safe <code class="function">getaddrinfo</code> interface, which
|
|
the thread-safe <code class="function">getaddrinfo</code> interface, which
|
|
@@ -35,11 +35,11 @@
|
|
(and <a class="xref" href="refsockinit.html#ne_sock_exit">ne_sock_exit</a>); neon neither checks whether
|
|
(and <a class="xref" href="refsockinit.html#ne_sock_exit">ne_sock_exit</a>); neon neither checks whether
|
|
these functions are called nor calls them itself.</p><p>For some applications and configurations it may be necessary
|
|
these functions are called nor calls them itself.</p><p>For some applications and configurations it may be necessary
|
|
to call <a class="xref" href="refi18n.html#ne_i18n_init">ne_i18n_init</a> to initialize the support
|
|
to call <a class="xref" href="refi18n.html#ne_i18n_init">ne_i18n_init</a> to initialize the support
|
|
- for internationalization in neon.</p></div><div class="refsect2"><a name="id1711"></a><h3>Asynchronous signal safety</h3><p>No function in neon is defined to be <span class="quote">“<span class="quote">async-signal safe</span>”</span> -
|
|
|
|
|
|
+ for internationalization in neon.</p></div><div class="refsect2"><a name="id1717"></a><h3>Asynchronous signal safety</h3><p>No function in neon is defined to be <span class="quote">“<span class="quote">async-signal safe</span>”</span> -
|
|
that is, no function is safe to call from a signal handler. Any
|
|
that is, no function is safe to call from a signal handler. Any
|
|
call into the neon library from a signal handler will have
|
|
call into the neon library from a signal handler will have
|
|
undefined behaviour - in other words, it may crash the
|
|
undefined behaviour - in other words, it may crash the
|
|
- process.</p></div><div class="refsect2"><a name="id1715"></a><h3>Functions using global state</h3><p>Any function in neon may modify the
|
|
|
|
|
|
+ process.</p></div><div class="refsect2"><a name="id1721"></a><h3>Functions using global state</h3><p>Any function in neon may modify the
|
|
<code class="literal">errno</code> global variable as a side-effect. Except
|
|
<code class="literal">errno</code> global variable as a side-effect. Except
|
|
where explicitly documented, the value of <code class="literal">errno</code>
|
|
where explicitly documented, the value of <code class="literal">errno</code>
|
|
is unspecified after any neon function call.</p><p>Other than in the use of <code class="literal">errno</code>, the only
|
|
is unspecified after any neon function call.</p><p>Other than in the use of <code class="literal">errno</code>, the only
|
|
@@ -51,7 +51,7 @@
|
|
<code class="function">ne_debug</code>, if enabled at compile time; for
|
|
<code class="function">ne_debug</code>, if enabled at compile time; for
|
|
debugging output</li><li class="listitem"><a class="xref" href="refalloc.html#ne_oom_callback">ne_oom_callback</a> for
|
|
debugging output</li><li class="listitem"><a class="xref" href="refalloc.html#ne_oom_callback">ne_oom_callback</a> for
|
|
installing a process-global callback to be invoked on
|
|
installing a process-global callback to be invoked on
|
|
- <code class="function">malloc</code> failure</li></ul></div></div><div class="refsect2"><a name="id1736"></a><h3>Namespaces</h3><p>To avoid possible collisions between names used for symbols
|
|
|
|
|
|
+ <code class="function">malloc</code> failure</li></ul></div></div><div class="refsect2"><a name="id1742"></a><h3>Namespaces</h3><p>To avoid possible collisions between names used for symbols
|
|
and preprocessor macros by an application and the libraries it
|
|
and preprocessor macros by an application and the libraries it
|
|
uses, it is good practice for each library to reserve a particular
|
|
uses, it is good practice for each library to reserve a particular
|
|
<span class="emphasis"><em>namespace prefix</em></span>. An application which
|
|
<span class="emphasis"><em>namespace prefix</em></span>. An application which
|
|
@@ -80,28 +80,28 @@
|
|
library and dependencies thereof; a number of symbols lie
|
|
library and dependencies thereof; a number of symbols lie
|
|
outside these prefixes.</td></tr><tr><td><p><span class="term">pakchois_</span></p></td><td>Namespace used by the pakchois
|
|
outside these prefixes.</td></tr><tr><td><p><span class="term">pakchois_</span></p></td><td>Namespace used by the pakchois
|
|
library.</td></tr><tr><td><p><span class="term">px_</span></p></td><td>Namespace used by the libproxy
|
|
library.</td></tr><tr><td><p><span class="term">px_</span></p></td><td>Namespace used by the libproxy
|
|
- library.</td></tr></tbody></table></div></div><div class="refsect2"><a name="id1776"></a><h3>Argument validation</h3><p>neon does not attempt to validate that the parameters
|
|
|
|
|
|
+ library.</td></tr></tbody></table></div></div><div class="refsect2"><a name="id1782"></a><h3>Argument validation</h3><p>neon does not attempt to validate that the parameters
|
|
passed to functions conform to the API (for instance, checking
|
|
passed to functions conform to the API (for instance, checking
|
|
that pointer arguments are not <code class="literal">NULL</code>). Any use of the neon API
|
|
that pointer arguments are not <code class="literal">NULL</code>). Any use of the neon API
|
|
which is not documented to produce a certain behaviour results is
|
|
which is not documented to produce a certain behaviour results is
|
|
said to produce <span class="emphasis"><em>undefined behaviour</em></span>; it is
|
|
said to produce <span class="emphasis"><em>undefined behaviour</em></span>; it is
|
|
- likely that neon will segfault under these conditions.</p></div><div class="refsect2"><a name="id1781"></a><h3>URI paths, WebDAV metadata</h3><p>The path strings passed to any function must be
|
|
|
|
|
|
+ likely that neon will segfault under these conditions.</p></div><div class="refsect2"><a name="id1787"></a><h3>URI paths, WebDAV metadata</h3><p>The path strings passed to any function must be
|
|
<span class="emphasis"><em>URI-encoded</em></span> by the application; neon never
|
|
<span class="emphasis"><em>URI-encoded</em></span> by the application; neon never
|
|
performs any URI encoding or decoding internally. WebDAV property
|
|
performs any URI encoding or decoding internally. WebDAV property
|
|
names and values must be valid UTF-8 encoded Unicode
|
|
names and values must be valid UTF-8 encoded Unicode
|
|
- strings.</p></div><div class="refsect2"><a name="id1785"></a><h3>User interaction</h3><p>As a pure library interface, neon will never produce
|
|
|
|
|
|
+ strings.</p></div><div class="refsect2"><a name="id1791"></a><h3>User interaction</h3><p>As a pure library interface, neon will never produce
|
|
output on <code class="constant">stdout</code> or
|
|
output on <code class="constant">stdout</code> or
|
|
<code class="constant">stderr</code>; all user interaction is the
|
|
<code class="constant">stderr</code>; all user interaction is the
|
|
- responsibility of the application.</p></div><div class="refsect2"><a name="id1790"></a><h3>Memory handling</h3><p>neon does not attempt to cope gracefully with an
|
|
|
|
|
|
+ responsibility of the application.</p></div><div class="refsect2"><a name="id1796"></a><h3>Memory handling</h3><p>neon does not attempt to cope gracefully with an
|
|
out-of-memory situation; instead, by default, the
|
|
out-of-memory situation; instead, by default, the
|
|
<code class="function">abort</code> function is called to immediately
|
|
<code class="function">abort</code> function is called to immediately
|
|
terminate the process. An application may register a custom
|
|
terminate the process. An application may register a custom
|
|
function which will be called before <code class="function">abort</code> in
|
|
function which will be called before <code class="function">abort</code> in
|
|
- such a situation; see <a class="xref" href="refalloc.html#ne_oom_callback">ne_oom_callback</a>.</p></div><div class="refsect2"><a name="id1796"></a><h3>Callbacks and userdata</h3><p>Whenever a callback is registered, a
|
|
|
|
|
|
+ such a situation; see <a class="xref" href="refalloc.html#ne_oom_callback">ne_oom_callback</a>.</p></div><div class="refsect2"><a name="id1802"></a><h3>Callbacks and userdata</h3><p>Whenever a callback is registered, a
|
|
<code class="literal">userdata</code> pointer is also used to allow the
|
|
<code class="literal">userdata</code> pointer is also used to allow the
|
|
application to associate a context with the callback. The
|
|
application to associate a context with the callback. The
|
|
userdata is of type <em class="type">void *</em>, allowing any pointer to
|
|
userdata is of type <em class="type">void *</em>, allowing any pointer to
|
|
- be used.</p></div><div class="refsect2"><a name="id1801"></a><h3>Large File Support</h3><p>Since version 0.27.0, neon transparently uses the "LFS
|
|
|
|
|
|
+ be used.</p></div><div class="refsect2"><a name="id1807"></a><h3>Large File Support</h3><p>Since version 0.27.0, neon transparently uses the "LFS
|
|
transitional" interfaces in functions which use file descriptors.
|
|
transitional" interfaces in functions which use file descriptors.
|
|
This allows use of files larger than 2GiB on platforms with a
|
|
This allows use of files larger than 2GiB on platforms with a
|
|
native 32-bit <code class="literal">off_t</code> type, where LFS support is
|
|
native 32-bit <code class="literal">off_t</code> type, where LFS support is
|
|
@@ -109,5 +109,5 @@
|
|
type, which is defined to be either <code class="literal">off_t</code> or
|
|
type, which is defined to be either <code class="literal">off_t</code> or
|
|
<code class="literal">off64_t</code> according to whether LFS support is
|
|
<code class="literal">off64_t</code> according to whether LFS support is
|
|
detected at build time. neon does not use or require the
|
|
detected at build time. neon does not use or require the
|
|
- <code class="literal">-D_FILE_OFFSET_BITS=64</code> macro definition.</p></div></div><div class="refsect1"><a name="id1810"></a><h2>See also</h2><p><a class="xref" href="refsess.html" title="ne_session_create"><span class="refentrytitle">ne_session_create</span></a>, <a class="xref" href="refalloc.html#ne_oom_callback">ne_oom_callback</a>,
|
|
|
|
|
|
+ <code class="literal">-D_FILE_OFFSET_BITS=64</code> macro definition.</p></div></div><div class="refsect1"><a name="id1816"></a><h2>See also</h2><p><a class="xref" href="refsess.html" title="ne_session_create"><span class="refentrytitle">ne_session_create</span></a>, <a class="xref" href="refalloc.html#ne_oom_callback">ne_oom_callback</a>,
|
|
<a class="ulink" href="https://notroj.github.io/neon/" target="_top">https://notroj.github.io/neon/</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ref.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refconfig.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">neon API reference </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> neon-config</td></tr></table></div></body></html>
|
|
<a class="ulink" href="https://notroj.github.io/neon/" target="_top">https://notroj.github.io/neon/</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ref.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refconfig.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">neon API reference </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> neon-config</td></tr></table></div></body></html>
|