neon — HTTP and WebDAV client library
neon is an HTTP and WebDAV client library. The major abstractions exposed are the HTTP session, created by ne_session_create; and the HTTP request, created by ne_request_create. HTTP authentication is handled transparently for server and proxy servers, see ne_set_server_auth; complete SSL/TLS support is also included, see ne_ssl_set_verify.
Some conventions are used throughout the neon API, to provide a consistent and simple interface; these are documented below.
neon itself is implemented to be thread-safe (avoiding any use of global state), but in some configurations makes use of other libraries which require global initialization. The ne_sock_init function should be called before any other use of the neon library interface.
The path strings passed to any function must be URI-encoded by the application: neon never performs any URI encoding or decoding automatically. WebDAV property names and values must be used un UTF-8.
neon does not attempt to cope gracefully with an out-of-memory situation; instead, by default, abort is called to terminate the application. Optionally an application-provided function be called before abort; see ne_oom_callback.
Whenever a callback is registered, a userdata variable is also used to allow the application to associate a context with the callback. The userdata is of type void *, allowing any pointer to be used.