Name

neon — HTTP and WebDAV client library

Description

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.

Conventions

Some conventions are used throughout the neon API, to provide a consistent and simple interface; these are documented below.

Thread-safeness and global initialization

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.

URI paths, WebDAV metadata

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.

Memory handling

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.

Callbacks and userdata

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.

See also

ne_session_create, ne_oom_callback