neon
neon is an HTTP and WebDAV client library, with a C
interface. Features:
- High-level wrappers for common HTTP and WebDAV operations (GET,
MOVE, DELETE, etc)
Low-level interface to the HTTP request/response engine, allowing
the use of arbitrary HTTP methods, headers, etc.
- Authentication support including Basic and Digest support, along
with GSSAPI-based Negotiate on Unix, and SSPI-based Negotiate/NTLM on
Win32
- SSL/TLS support using OpenSSL or GnuTLS; exposing an abstraction
layer for verifying server certificates, handling client
certificates, and examining certificate properties.
- Abstract interface to parsing XML using libxml2 or expat, and
wrappers for simplifying handling XML HTTP response bodies
- WebDAV metadata support; wrappers for PROPFIND and PROPPATCH to
simplify property manipulation.
neon is
free software,
distributed under the
GNU Library GPL.
Patches, feature requests, bug reports,
questions etc. can be
sent to
the neon mailing list (for
which a web
archive is also available). The projects-commits
list receives commit messages from the Subversion repository.
NOTE: The mailing list and archive are currently down due to
hardware failure. Please
contact Joe Orton with
patches, bug reports etc, for the time being.
Many thanks to Greg Stein
for hosting the mailing list and this web site. Also hosted here is
the litmus WebDAV server compliance test
suite, developed using neon.
Current Release
Please note: The neon API is subject to
backwards-incompatible change over minor versions (0.24.x -> 0.25.x)
but is stable across patch releases (0.24.0 -> 0.24.x).
- Support "Proxy-Connection: Keep-Alive" for compatibility with HTTP/1.0
proxies which require persistent connections for NTLM authentication
- Fix an fd leak in ne_ssl_{,cli}cert_read (GnuTLS only)
- Enable fast initialization in GnuTLS.
- Fix Win32 build
- Fix build on SCO OpenServer 5.0.x (thanks to Nico Kadel-Garcia)
- Fix handling of Digest domain parameter values without a trailing slash
- Fix build against apr-util's bundled libexpat.la in Subversion
- Add --without-pakchois to configure (Arfrever Frehtes Taifersar Arahesis)
- zh message catalog renamed to zh_CN, translation updated (Dongsheng Song)
- Interface changes:
- none, API and ABI backwards-compatible with 0.27.x
- New interfaces:
- ne_pkcs11.h: added basic PKCS#11 support (requires GnuTLS and pakchois)
- ne_auth.h: added NE_AUTH_ALL and NE_AUTH_DEFAULT constants
- ne_socket.h: added ne_sock_peer(), ne_sock_prebind(), ne_sock_cipher()
- ne_session.h: NE_SESSFLAG_TLSSNI flag added; TLS SNI support is enabled
by default, where supported; ne_set_localaddr() added
- ne_request.h: added close_conn hooks (Robert J. van der Boon)
- ne_basic.h: added ne_options2()
- Other changes:
- add Polish (pl) translation (Arfrever Frehtes Taifersar Arahesis)
- add support for the 'domain' parameter in Digest authentication
- fix fd leak in ne_sock_connect() error path (Andrew Teirney)
- the FD_CLOEXEC flag is set on socket fds
- fix timezone handling in ne_dates for more platforms (Alessandro Vesely)
- fix ne_simple_propfind() to print XML namespaces in flat property values
- fix ne_get_range() for unspecified end-range case (Henrik Holst)
- fix ne_strclean() to be locale-independent and avoid possible Win32 crash
- fix ne_get_error() to not "clean" localized error strings
- fix ne_ssl_clicert_read() to fail for client certs missing cert or key
- Win32: fix build with VS 2008 (Stefan Kueng)
- Win32: fix neon.mak to not double-quote $(MAKE) (Henrik Holst)
- improve strength of Digest cnonces in GnuTLS builds
- Fix crash in GSSAPI Negotiate response header verification (regression
since 0.26.x)
Release history
The release history is now archived.