mirror of
https://github.com/winscp/winscp.git
synced 2026-10-24 02:28:55 +03:00
Merge branch 'thirdparty_dev' into dev
Source commit: bcec7f20f40885d6c682e543a29257ee581ae8bb
This commit is contained in:
@@ -29,6 +29,7 @@ ALL_LINGUAS=`echo po/*.po | sed 's,po/,,g;s,\.po,,g'`
|
||||
tmp=`mktemp /tmp/neon-XXXXXX`
|
||||
sed -e 's,@SET_MAKE@,,;s,@SHELL@,/bin/sh,' \
|
||||
-e "s,@top_srcdir@,`pwd`," \
|
||||
-e "s,@srcdir@,`pwd`," \
|
||||
-e "s,@ALL_LINGUAS@,${ALL_LINGUAS}," \
|
||||
< Makefile.in > $tmp
|
||||
make -f $tmp docs compile-gmo
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.31.2
|
||||
0.32.1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
------------------------------------------------------------------------
|
||||
r1590 | joe.orton | 2020-06-20 08:09:24 +0100 (Sat, 20 Jun 2020) | 2 lines
|
||||
r1718 | joe.orton | 2021-09-20 20:17:44 +0100 (Mon, 20 Sep 2021) | 2 lines
|
||||
|
||||
Bump to 0.31.2.
|
||||
Bump for 0.32.1.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
@@ -77,7 +77,7 @@ cover: subdirs
|
||||
@cd test && $(MAKE) check
|
||||
@cd src && $(GCOV) -cb $(MODULE)
|
||||
|
||||
# as per 'cover' target; prints list of functions without 100% coverage
|
||||
# as per 'cover' target; prints list of functions without 100% coverage
|
||||
uncover: subdirs
|
||||
@rm -f src/*.*da test/common/*.*da test/*.*da
|
||||
@cd test && $(MAKE) check
|
||||
@@ -93,23 +93,23 @@ subdirs:
|
||||
docs: docs-man docs-html
|
||||
|
||||
docs-man:
|
||||
rm -rf doc/man; mkdir doc/man
|
||||
$(XMLTO) -o `pwd`/doc/man -x doc/man.xsl man doc/manual.xml
|
||||
rm -rf doc/man; mkdir -p doc/man
|
||||
$(XMLTO) -o `pwd`/doc/man -x $(srcdir)/doc/man.xsl man $(srcdir)/doc/manual.xml
|
||||
|
||||
docs-pdf:
|
||||
$(XMLTO) -o `pwd`/doc pdf doc/manual.xml
|
||||
$(XMLTO) -o `pwd`/doc pdf $(srcdir)/doc/manual.xml
|
||||
|
||||
docs-ps:
|
||||
$(XMLTO) -o `pwd`/doc ps doc/manual.xml
|
||||
$(XMLTO) -o `pwd`/doc ps $(srcdir)/doc/manual.xml
|
||||
|
||||
docs-html:
|
||||
test -d doc/html && rm -rf doc/html || true
|
||||
mkdir doc/html
|
||||
$(XMLTO) -o `pwd`/doc/html -x doc/html.xsl html doc/manual.xml
|
||||
mkdir -p doc/html
|
||||
$(XMLTO) -o `pwd`/doc/html -x $(srcdir)/doc/html.xsl html $(srcdir)/doc/manual.xml
|
||||
|
||||
# Validate the manual source
|
||||
docs-valid:
|
||||
xmllint --noout --valid doc/manual.xml
|
||||
xmllint --noout --valid $(srcdir)/doc/manual.xml
|
||||
|
||||
clean:
|
||||
@cd src && $(MAKE) clean
|
||||
@@ -128,18 +128,18 @@ neon-config: $(srcdir)/neon-config.in
|
||||
|
||||
install-docs: install-man install-html
|
||||
|
||||
install-html:
|
||||
install-html: docs-html
|
||||
$(INSTALL) -d $(DESTDIR)$(docdir)/html
|
||||
for d in $(srcdir)/doc/html/*.html; do \
|
||||
for d in doc/html/*.html; do \
|
||||
$(INSTALL_DATA) $$d $(DESTDIR)$(docdir)/html; \
|
||||
done
|
||||
|
||||
install-man:
|
||||
install-man: docs-man
|
||||
$(INSTALL) -d $(DESTDIR)$(man3dir)
|
||||
$(INSTALL) -d $(DESTDIR)$(man1dir)
|
||||
for m in $(srcdir)/doc/man/*.3; do \
|
||||
for m in doc/man/*.3; do \
|
||||
$(INSTALL_DATA) $$m $(DESTDIR)$(man3dir); done
|
||||
for m in $(srcdir)/doc/man/*.1; do \
|
||||
for m in doc/man/*.1; do \
|
||||
$(INSTALL_DATA) $$m $(DESTDIR)$(man1dir); done
|
||||
|
||||
install: install-@ALLOW_INSTALL@
|
||||
@@ -218,4 +218,3 @@ doc-status:
|
||||
@for f in `nm src/.libs/libneon.so | grep ' T ' | colrm 1 11`; do \
|
||||
test -f doc/man/$$f.3 || echo -n " $$f"; \
|
||||
done; echo
|
||||
|
||||
|
||||
@@ -1,3 +1,40 @@
|
||||
Changes in release 0.32.1:
|
||||
* Fix configure CFLAGS handling in Kerberos detection.
|
||||
* Various spelling fixes.
|
||||
|
||||
Changes in release 0.32.0:
|
||||
* Interface changes:
|
||||
- API and ABI backwards-compatible with 0.27.x and later
|
||||
- NE_AUTH_DIGEST now only enables RFC 2617/7616 auth by default;
|
||||
to enable weaker RFC 2069 Digest, use NE_AUTH_LEGACY_DIGEST
|
||||
(treated as a security enhancement, not an API/ABI break)
|
||||
* Interface clarifications:
|
||||
- ne_auth.h: use of non-ASCII usernames with the ne_auth_creds
|
||||
callback type is now rejected for Digest auth since the
|
||||
encoding is not specified. ne_add_auth() can be used instead.
|
||||
- ne_request.h: the ne_create_request_fn callback is passed the
|
||||
request-target using RFC 7230 terminology
|
||||
* New interfaces and features:
|
||||
- ne_string.h: added ne_strhash(), ne_vstrhash(), ne_strparam()
|
||||
- ne_auth.h: added RFC 7616 (Digest authentication) support,
|
||||
including userhash=, username*= and SHA-2 algorithms
|
||||
(SHA-2 requires GnuTLS/OpenSSL). added NE_AUTH_LEGACY_DIGEST
|
||||
- ne_auth.h: added ne_add_auth() unified auth callback interface,
|
||||
accepts (only) UTF-8 usernames, uses a larger password buffer,
|
||||
and has different/improved attempt counter semantics.
|
||||
- RFC 7617 scoping rules are now applied for Basic authentication.
|
||||
- ne_ssl.h: added ne_ssl_cert_hdigest()
|
||||
- ne_socket.h: added ne_sock_shutdown()
|
||||
- sendmsg()/send() are used with the MSG_NOSIGNAL flag to write to
|
||||
sockets on Unix, rather than write()/writev(), avoiding SIGPIPE
|
||||
- explicit_bzero() is used where available to clear credentials
|
||||
* Bug fixes:
|
||||
- fixed TLS connection shutdown handling for OpenSSL 3
|
||||
- fix various Coverity and cppcheck warnings (Sebastian Reschke)
|
||||
- Kerberos library detection uses pkg-config where possible.
|
||||
- fix some configure checks on Win32 (Christopher Degawa)
|
||||
- fix some configure errors on MacOS (Ryan Schmidt)
|
||||
|
||||
Changes in release 0.31.2:
|
||||
* Fix ne_md5_read_ctx() with OpenSSL on big-endian architectures.
|
||||
* Fix GCC 10 warning in PKCS#11 build.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
|
||||
[](https://travis-ci.org/notroj/neon)
|
||||
[](https://travis-ci.com/github/notroj/neon)
|
||||
[](https://github.com/notroj/neon/actions/workflows/ci.yml)
|
||||
|
||||
# neon
|
||||
|
||||
@@ -16,17 +17,18 @@ Features:
|
||||
- Low-level interface to HTTP request handling, to allow implementing
|
||||
new methods easily.
|
||||
- Persistent connection support (HTTP/1.1 and HTTP/1.0 aware)
|
||||
- Basic and digest authentication (RFC2617) (including auth-int, md5-sess)
|
||||
- Proxy support (including basic/digest authentication)
|
||||
- SSL/TLS support using OpenSSL (including client certificate support)
|
||||
- Basic and Digest authentication (RFC 7616/7617, including SHA-2, userhash)
|
||||
- Kerberos (Negotiate) and SSPI/NTLM authentication (Unix and Windows)
|
||||
- HTTP and SOCKS (v4/5) proxy support (including authentication)
|
||||
- SSL/TLS support using OpenSSL or GnuTLS (client certs via files or PKCS#11)
|
||||
- Generic WebDAV 207 XML response handling mechanism
|
||||
- XML parsing using expat or libxml (1.x or 2.x) parser
|
||||
- XML parsing using expat or libxml2
|
||||
- Easy generation of error messages from 207 error responses
|
||||
- Basic HTTP/1.1 methods: GET, PUT, HEAD, OPTIONS, conditional PUT
|
||||
- WebDAV resource manipulation: MOVE, COPY, DELETE, MKCOL.
|
||||
- WebDAV metadata support: set and remove properties (PROPPATCH), query
|
||||
any set of properties (PROPFIND).
|
||||
- WebDAV locking support
|
||||
- WebDAV locking and ACL (RFC 3744) support
|
||||
- Autoconf macros supplied for easily embedding neon directly inside
|
||||
an application source tree.
|
||||
|
||||
@@ -41,7 +43,7 @@ The autoconf macros in the "macros" directory are under a less
|
||||
restrictive license, see each file for details.
|
||||
|
||||
~~~
|
||||
neon is Copyright (C) 1999-2008 Joe Orton
|
||||
neon is Copyright (C) 1999-2021 Joe Orton
|
||||
Portions are:
|
||||
Copyright (C) Aleix Conchillo Flaque
|
||||
Copyright (C) Arfrever Frehtes Taifersar Arahesis
|
||||
|
||||
8
libs/neon/aclocal.m4
vendored
8
libs/neon/aclocal.m4
vendored
@@ -1,6 +1,6 @@
|
||||
# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
|
||||
# generated automatically by aclocal 1.16.2 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996-2020 Free Software Foundation, Inc.
|
||||
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@@ -9046,7 +9046,7 @@ m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1997-2020 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@@ -9077,7 +9077,7 @@ AC_CONFIG_COMMANDS_PRE(
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
# Copyright (C) 2006-2018 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2006-2020 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
||||
@@ -8,21 +8,21 @@ if test ! -f .version; then
|
||||
echo 0.0.0-dev > .version
|
||||
# for the documentation:
|
||||
date +"%e %B %Y" | tr -d '\n' > doc/date.xml
|
||||
echo -n 0.0.0-dev > doc/version.xml
|
||||
echo 0.0.0-dev > doc/version.xml
|
||||
fi
|
||||
set -e
|
||||
echo -n "libtoolize... "
|
||||
LIBTOOLIZE=${LIBTOOLIZE:-libtoolize}
|
||||
printf "libtoolize... "
|
||||
LIBTOOLIZE=${LIBTOOLIZE:-`which libtoolize || which glibtoolize`}
|
||||
if ${LIBTOOLIZE} --help | grep -- --install > /dev/null; then
|
||||
${LIBTOOLIZE} --copy --force --install >/dev/null;
|
||||
else
|
||||
${LIBTOOLIZE} --copy --force >/dev/null
|
||||
fi
|
||||
echo -n "aclocal... "
|
||||
printf "aclocal... "
|
||||
${ACLOCAL:-aclocal} -I macros
|
||||
echo -n "autoheader... "
|
||||
printf "autoheader... "
|
||||
${AUTOHEADER:-autoheader}
|
||||
echo -n "autoconf... "
|
||||
printf "autoconf... "
|
||||
${AUTOCONF:-autoconf} -Wall
|
||||
echo okay.
|
||||
# remove the autoconf cache
|
||||
|
||||
@@ -42,6 +42,9 @@
|
||||
/* Define if you have expat */
|
||||
#undef HAVE_EXPAT
|
||||
|
||||
/* Define to 1 if you have the `explicit_bzero' function. */
|
||||
#undef HAVE_EXPLICIT_BZERO
|
||||
|
||||
/* Define to 1 if you have the `fcntl' function. */
|
||||
#undef HAVE_FCNTL
|
||||
|
||||
@@ -166,6 +169,9 @@
|
||||
/* Define if OpenSSL support is enabled */
|
||||
#undef HAVE_OPENSSL
|
||||
|
||||
/* Enable OpenSSL 1.1 support */
|
||||
#undef HAVE_OPENSSL11
|
||||
|
||||
/* Define to 1 if you have the <openssl/opensslv.h> header file. */
|
||||
#undef HAVE_OPENSSL_OPENSSLV_H
|
||||
|
||||
@@ -187,6 +193,9 @@
|
||||
/* Define to 1 if you have the `pthread_mutex_lock' function. */
|
||||
#undef HAVE_PTHREAD_MUTEX_LOCK
|
||||
|
||||
/* Define to 1 if you have the `sendmsg' function. */
|
||||
#undef HAVE_SENDMSG
|
||||
|
||||
/* Define to 1 if you have the `setlocale' function. */
|
||||
#undef HAVE_SETLOCALE
|
||||
|
||||
|
||||
@@ -25,9 +25,9 @@
|
||||
|
||||
#ifdef WIN32
|
||||
|
||||
#define NEON_VERSION "0.31.2"
|
||||
#define NEON_VERSION "0.32.1"
|
||||
#define NE_VERSION_MAJOR (0)
|
||||
#define NE_VERSION_MINOR (31)
|
||||
#define NE_VERSION_MINOR (32)
|
||||
|
||||
#define HAVE_ERRNO_H
|
||||
#define HAVE_LIMITS_H
|
||||
|
||||
937
libs/neon/configure
vendored
937
libs/neon/configure
vendored
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
||||
20 June 2020
|
||||
20 September 2021
|
||||
@@ -1,12 +1,12 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Standards compliance</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="intro.html" title="Chapter 1. Introduction"><link rel="prev" href="using.html" title="How to use neon from your application"><link rel="next" href="security.html" title="HTTP Client Security"></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">Standards compliance</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Introduction</th><td width="20%" align="right"> <a accesskey="n" href="security.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="compliance"></a>Standards compliance</h2></div></div></div><p>neon is intended to be compliant with the IETF and W3C
|
||||
standards which it implements, with a few exceptions due to
|
||||
practical necessity or interoperability issues. These
|
||||
exceptions are documented in this section.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46200848345840"></a>RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV</h3></div></div></div><p>neon is deliberately not compliant with section
|
||||
exceptions are documented in this section.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46097884355344"></a>RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV</h3></div></div></div><p>neon is deliberately not compliant with section
|
||||
23.4.2, and treats property names as a (namespace-URI, name)
|
||||
pair. This is <a class="ulink" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/1999OctDec/0343.html" target="_top">generally
|
||||
considered</a> to be correct behaviour by the WebDAV
|
||||
working group, and is likely to formally adopted in a future
|
||||
revision of the specification.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46200848344016"></a>RFC 2616, Hypertext Transfer Protocol—HTTP/1.1</h3></div></div></div><p>There is some confusion in this specification about the
|
||||
revision of the specification.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46097884616112"></a>RFC 2616, Hypertext Transfer Protocol—HTTP/1.1</h3></div></div></div><p>There is some confusion in this specification about the
|
||||
use of the <span class="quote">“<span class="quote">identity</span>”</span>
|
||||
<em class="firstterm">transfer-coding</em>. neon ignores the
|
||||
<code class="literal">Transfer-Encoding</code> response header if it
|
||||
@@ -15,7 +15,7 @@
|
||||
the header was not present. neon will give an error if a
|
||||
response includes a <code class="literal">Transfer-Encoding</code>
|
||||
header with a value other than <span class="quote">“<span class="quote">identity</span>”</span> or
|
||||
<span class="quote">“<span class="quote">chunked</span>”</span>.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46200848339248"></a>RFC 2617, HTTP Authentication: Basic and Digest Access Authentication</h3></div></div></div><p>neon is not strictly compliant with the quoting rules
|
||||
<span class="quote">“<span class="quote">chunked</span>”</span>.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46097885255024"></a>RFC 2617, HTTP Authentication: Basic and Digest Access Authentication</h3></div></div></div><p>neon is not strictly compliant with the quoting rules
|
||||
given in the grammar for the <code class="literal">Authorization</code>
|
||||
header. The grammar requires that the <code class="literal">qop</code>
|
||||
and <code class="literal">algorithm</code> parameters are not quoted,
|
||||
@@ -23,7 +23,7 @@
|
||||
(Microsoft® IIS 5) rejects the request if these parameters
|
||||
are not quoted. neon sends these parameters with
|
||||
quotes—this is not known to cause any problems with
|
||||
other server implementations.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46200848335424"></a>Namespaces in XML</h3></div></div></div><p>The neon XML parser interface will accept and parse
|
||||
other server implementations.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46097884956352"></a>Namespaces in XML</h3></div></div></div><p>The neon XML parser interface will accept and parse
|
||||
without error some XML documents which are well-formed
|
||||
according to the XML specification but do not conform to the
|
||||
"Namespaces in XML" specification <a class="xref" href="biblio.html#bib.xmlnames" title="Namespaces in XML">[<abbr class="abbrev">REC-XML-names</abbr>]</a>. Specifically: the restrictions on
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 1. Introduction</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="index.html" title="neon HTTP/WebDAV client library"><link rel="prev" href="index.html" title="neon HTTP/WebDAV client library"><link rel="next" href="features.html" title="Feature list"></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">Chapter 1. Introduction</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="features.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="intro"></a>Chapter 1. Introduction</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="features.html">Feature list</a></span></dt><dt><span class="sect1"><a href="using.html">How to use neon from your application</a></span></dt><dt><span class="sect1"><a href="compliance.html">Standards compliance</a></span></dt><dd><dl><dt><span class="sect2"><a href="compliance.html#idm46200848345840">RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV</a></span></dt><dt><span class="sect2"><a href="compliance.html#idm46200848344016">RFC 2616, Hypertext Transfer Protocol—HTTP/1.1</a></span></dt><dt><span class="sect2"><a href="compliance.html#idm46200848339248">RFC 2617, HTTP Authentication: Basic and Digest Access Authentication</a></span></dt><dt><span class="sect2"><a href="compliance.html#idm46200848335424">Namespaces in XML</a></span></dt></dl></dd><dt><span class="sect1"><a href="security.html">HTTP Client Security</a></span></dt><dd><dl><dt><span class="sect2"><a href="security.html#idm46200853782144">CPU or memory consumption attacks</a></span></dt><dt><span class="sect2"><a href="security.html#idm46200853773616">SSL/TLS connection security</a></span></dt><dt><span class="sect2"><a href="security.html#idm46200848285312">Control character insertion in error messages</a></span></dt><dt><span class="sect2"><a href="security.html#idm46200848283264">Attacks against authentication credentials</a></span></dt></dl></dd></dl></div><p>This chapter provides an introduction to neon, giving an
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 1. Introduction</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="index.html" title="neon HTTP/WebDAV client library"><link rel="prev" href="index.html" title="neon HTTP/WebDAV client library"><link rel="next" href="features.html" title="Feature list"></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">Chapter 1. Introduction</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="features.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="intro"></a>Chapter 1. Introduction</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="features.html">Feature list</a></span></dt><dt><span class="sect1"><a href="using.html">How to use neon from your application</a></span></dt><dt><span class="sect1"><a href="compliance.html">Standards compliance</a></span></dt><dd><dl><dt><span class="sect2"><a href="compliance.html#idm46097884355344">RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV</a></span></dt><dt><span class="sect2"><a href="compliance.html#idm46097884616112">RFC 2616, Hypertext Transfer Protocol—HTTP/1.1</a></span></dt><dt><span class="sect2"><a href="compliance.html#idm46097885255024">RFC 2617, HTTP Authentication: Basic and Digest Access Authentication</a></span></dt><dt><span class="sect2"><a href="compliance.html#idm46097884956352">Namespaces in XML</a></span></dt></dl></dd><dt><span class="sect1"><a href="security.html">HTTP Client Security</a></span></dt><dd><dl><dt><span class="sect2"><a href="security.html#idm46097888446992">CPU or memory consumption attacks</a></span></dt><dt><span class="sect2"><a href="security.html#idm46097888494800">SSL/TLS connection security</a></span></dt><dt><span class="sect2"><a href="security.html#idm46097882952960">Control character insertion in error messages</a></span></dt><dt><span class="sect2"><a href="security.html#idm46097882950912">Attacks against authentication credentials</a></span></dt></dl></dd></dl></div><p>This chapter provides an introduction to neon, giving an
|
||||
overview of the range of features offered, and some general guidelines
|
||||
for using the neon API.</p><p>neon aims to provide a modern, flexible, and simple API
|
||||
in the C programming language for implementing HTTP and WebDAV
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_malloc</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="refiaddr.html" title="ne_iaddr_make"><link rel="next" href="refsess.html" title="ne_session_create"></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">ne_malloc</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refiaddr.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsess.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refalloc"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_malloc, ne_calloc, ne_realloc, ne_strdup, ne_strndup, ne_oom_callback — memory allocation wrappers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_alloc.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void *<b class="fsfunc">ne_malloc</b>(</code></td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void *<b class="fsfunc">ne_calloc</b>(</code></td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void *<b class="fsfunc">ne_realloc</b>(</code></td><td>void *<var class="pdparam">size</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">len</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_strdup</b>(</code></td><td>const char *<var class="pdparam">s</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_strndup</b>(</code></td><td>const char *<var class="pdparam">s</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_oom_callback</b>(</code></td><td>void (*<var class="pdparam">callback</var>)(void)<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200847243568"></a><h2>Description</h2><p>The functions <code class="function">ne_malloc</code>,
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_malloc</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="refiaddr.html" title="ne_iaddr_make"><link rel="next" href="refsess.html" title="ne_session_create"></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">ne_malloc</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refiaddr.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsess.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refalloc"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_malloc, ne_calloc, ne_realloc, ne_strdup, ne_strndup, ne_oom_callback — memory allocation wrappers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_alloc.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void *<b class="fsfunc">ne_malloc</b>(</code></td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void *<b class="fsfunc">ne_calloc</b>(</code></td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void *<b class="fsfunc">ne_realloc</b>(</code></td><td>void *<var class="pdparam">size</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">len</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_strdup</b>(</code></td><td>const char *<var class="pdparam">s</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_strndup</b>(</code></td><td>const char *<var class="pdparam">s</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_oom_callback</b>(</code></td><td>void (*<var class="pdparam">callback</var>)(void)<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097881797712"></a><h2>Description</h2><p>The functions <code class="function">ne_malloc</code>,
|
||||
<code class="function">ne_calloc</code>, <code class="function">ne_realloc</code>,
|
||||
<code class="function">ne_strdup</code> and <code class="function">ne_strdnup</code>
|
||||
provide wrappers for the equivalent functions in the standard C
|
||||
@@ -6,7 +6,7 @@ library. The wrappers provide the extra guarantee that if the C
|
||||
library equivalent returns <code class="literal">NULL</code> when no memory is available, an
|
||||
optional callback will be called, and the library will then call
|
||||
<code class="function">abort</code>().</p><p><code class="function">ne_oom_callback</code> registers a callback
|
||||
which will be invoked if an out of memory error is detected.</p></div><div class="refsect1"><a name="idm46200847236880"></a><h2>Notes</h2><p>If the operating system uses optimistic memory
|
||||
which will be invoked if an out of memory error is detected.</p></div><div class="refsect1"><a name="idm46097881791024"></a><h2>Notes</h2><p>If the operating system uses optimistic memory
|
||||
allocation, the C library memory allocation routines will not return
|
||||
<code class="literal">NULL</code>, so it is not possible to gracefully handle memory allocation
|
||||
failures.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refiaddr.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="refsess.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_iaddr_make </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_session_create</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_server_auth</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="refreqbody.html" title="ne_set_request_body_buffer"><link rel="next" href="refshave.html" title="ne_shave"></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">ne_set_server_auth</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refreqbody.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refshave.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refauth"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_server_auth, ne_set_proxy_auth, ne_forget_auth — register authentication callbacks</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_auth.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">typedef int (*<b class="fsfunc">ne_auth_creds</b>)(</code></td><td>void *<var class="pdparam">userdata</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">realm</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">attempt</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">username</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">password</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_server_auth</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>ne_auth_creds <var class="pdparam">callback</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_proxy_auth</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>ne_auth_creds <var class="pdparam">callback</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_forget_auth</b>(</code></td><td>ne_session *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846476048"></a><h2>Description</h2><p>The <em class="type">ne_auth_creds</em> function type defines a
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_server_auth</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="refreqbody.html" title="ne_set_request_body_buffer"><link rel="next" href="refshave.html" title="ne_shave"></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">ne_set_server_auth</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refreqbody.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refshave.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refauth"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_server_auth, ne_set_proxy_auth, ne_forget_auth — register authentication callbacks</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_auth.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">typedef int (*<b class="fsfunc">ne_auth_creds</b>)(</code></td><td>void *<var class="pdparam">userdata</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">realm</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">attempt</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">username</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">password</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_server_auth</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>ne_auth_creds <var class="pdparam">callback</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_proxy_auth</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>ne_auth_creds <var class="pdparam">callback</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_forget_auth</b>(</code></td><td>ne_session *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097881030288"></a><h2>Description</h2><p>The <em class="type">ne_auth_creds</em> function type defines a
|
||||
callback which is invoked when a server or proxy server requires user
|
||||
authentication for a particular request. The
|
||||
<code class="parameter">realm</code> string is supplied by the server. The <code class="parameter">attempt</code> is a counter giving the
|
||||
@@ -15,7 +15,7 @@ parameter as the return value of the callback.</p></div><p>To abort the request,
|
||||
non-zero value; in which case the contents of the
|
||||
<code class="parameter">username</code> and <code class="parameter">password</code>
|
||||
buffers are ignored.</p><p>The <code class="function">ne_forget_auth</code> function can be
|
||||
used to discard the cached authentication credentials.</p></div><div class="refsect1"><a name="idm46200846464784"></a><h2>Examples</h2><pre class="programlisting">
|
||||
used to discard the cached authentication credentials.</p></div><div class="refsect1"><a name="idm46097881019024"></a><h2>Examples</h2><pre class="programlisting">
|
||||
/* Function which prompts for a line of user input: */
|
||||
extern char *prompt_for(const char *prompt);
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@ typedef struct {
|
||||
char *data;
|
||||
size_t used;
|
||||
size_t length;
|
||||
} <em class="type">ne_buffer</em>;</pre></div></div><div class="refsect1"><a name="idm46200847797200"></a><h2>Description</h2><p>The <em class="type">ne_buffer</em> type represents an expandable
|
||||
} <em class="type">ne_buffer</em>;</pre></div></div><div class="refsect1"><a name="idm46097882466048"></a><h2>Description</h2><p>The <em class="type">ne_buffer</em> type represents an expandable
|
||||
memory buffer for holding <code class="literal">NUL</code>-terminated strings. The
|
||||
<em class="structfield"><code>data</code></em> field points to the beginnning of the
|
||||
<em class="structfield"><code>data</code></em> field points to the beginning of the
|
||||
string, the length of which is given by the
|
||||
<em class="structfield"><code>used</code></em> field. The current size of memory
|
||||
allocated is given by the <em class="structfield"><code>length</code></em> field. It
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_append</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="refbuf.html" title="ne_buffer"><link rel="next" href="refbufutil.html" title="ne_buffer_clear"></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">ne_buffer_append</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refbuf.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refbufutil.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refbufapp"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer_append, ne_buffer_zappend, ne_buffer_concat — append data to a string buffer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_append</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">string</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">len</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_zappend</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">string</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_concat</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">str</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200847750864"></a><h2>Description</h2><p>The <code class="function">ne_buffer_append</code> and
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_append</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="refbuf.html" title="ne_buffer"><link rel="next" href="refbufutil.html" title="ne_buffer_clear"></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">ne_buffer_append</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refbuf.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refbufutil.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refbufapp"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer_append, ne_buffer_zappend, ne_buffer_concat — append data to a string buffer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_append</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">string</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">len</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_zappend</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">string</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_concat</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">str</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097882419712"></a><h2>Description</h2><p>The <code class="function">ne_buffer_append</code> and
|
||||
<code class="function">ne_buffer_zappend</code> functions append a string to
|
||||
the end of a buffer; extending the buffer as necessary. The
|
||||
<code class="parameter">len</code> passed to
|
||||
@@ -13,10 +13,10 @@ each argument must be a <em class="type">char *</em> pointer to a
|
||||
argument to mark the end of the list. The strings (including
|
||||
<code class="parameter">str</code>) are appended to the buffer in the order
|
||||
given. None of the strings passed to
|
||||
<code class="function">ne_buffer_concat</code> are modified.</p></div><div class="refsect1"><a name="idm46200847739984"></a><h2>Examples</h2><p>The following code will output "<code class="literal">Hello, world.
|
||||
<code class="function">ne_buffer_concat</code> are modified.</p></div><div class="refsect1"><a name="idm46097882408832"></a><h2>Examples</h2><p>The following code will output "<code class="literal">Hello, world.
|
||||
And goodbye.</code>".</p><pre class="programlisting">ne_buffer *buf = ne_buffer_create();
|
||||
ne_buffer_zappend(buf, "Hello");
|
||||
ne_buffer_concat(buf, ", world. ", "And ", "goodbye.", NULL);
|
||||
puts(buf->data);
|
||||
ne_buffer_destroy(buf);</pre></div><div class="refsect1"><a name="idm46200847737392"></a><h2>See also</h2><p><a class="xref" href="refbuf.html#ne_buffer">ne_buffer</a>, <a class="xref" href="refbufcr.html#ne_buffer_create">ne_buffer_create</a>,
|
||||
ne_buffer_destroy(buf);</pre></div><div class="refsect1"><a name="idm46097882406240"></a><h2>See also</h2><p><a class="xref" href="refbuf.html#ne_buffer">ne_buffer</a>, <a class="xref" href="refbufcr.html#ne_buffer_create">ne_buffer_create</a>,
|
||||
<a class="xref" href="refbufdest.html#ne_buffer_destroy">ne_buffer_destroy</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refbuf.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="refbufutil.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_buffer </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_buffer_clear</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_create</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="refbufutil.html" title="ne_buffer_clear"><link rel="next" href="refbufdest.html" title="ne_buffer_destroy"></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">ne_buffer_create</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refbufutil.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refbufdest.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refbufcr"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer_create, ne_buffer_ncreate — create a string buffer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_alloc.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_buffer *<b class="fsfunc">ne_buffer_create</b>(</code></td><td><code>void)</code>;</td><td> </td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_buffer *<b class="fsfunc">ne_buffer_ncreate</b>(</code></td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200847640816"></a><h2>Description</h2><p><code class="function">ne_buffer_create</code> creates a new
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_create</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="refbufutil.html" title="ne_buffer_clear"><link rel="next" href="refbufdest.html" title="ne_buffer_destroy"></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">ne_buffer_create</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refbufutil.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refbufdest.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refbufcr"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer_create, ne_buffer_ncreate — create a string buffer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_alloc.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_buffer *<b class="fsfunc">ne_buffer_create</b>(</code></td><td><code>void)</code>;</td><td> </td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_buffer *<b class="fsfunc">ne_buffer_ncreate</b>(</code></td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097882309664"></a><h2>Description</h2><p><code class="function">ne_buffer_create</code> creates a new
|
||||
buffer object, with an implementation-defined initial size.
|
||||
<code class="function">ne_buffer_ncreate</code> creates an
|
||||
<em class="type">ne_buffer</em> where the minimum initial size is given in the
|
||||
<code class="parameter">size</code> parameter. The buffer created will
|
||||
contain the empty string (<code class="literal">""</code>).</p></div><div class="refsect1"><a name="idm46200847636912"></a><h2>Return value</h2><p>Both functions return a pointer to a new buffer object,
|
||||
and never <code class="literal">NULL</code>.</p></div><div class="refsect1"><a name="idm46200847635136"></a><h2>See also</h2><p><a class="xref" href="refbuf.html#ne_buffer">ne_buffer</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refbufutil.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="refbufdest.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_buffer_clear </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_buffer_destroy</td></tr></table></div></body></html>
|
||||
contain the empty string (<code class="literal">""</code>).</p></div><div class="refsect1"><a name="idm46097882305760"></a><h2>Return value</h2><p>Both functions return a pointer to a new buffer object,
|
||||
and never <code class="literal">NULL</code>.</p></div><div class="refsect1"><a name="idm46097882303984"></a><h2>See also</h2><p><a class="xref" href="refbuf.html#ne_buffer">ne_buffer</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refbufutil.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="refbufdest.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_buffer_clear </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_buffer_destroy</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_destroy</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="refbufcr.html" title="ne_buffer_create"><link rel="next" href="referr.html" title="ne_get_error"></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">ne_buffer_destroy</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refbufcr.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="referr.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refbufdest"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer_destroy, ne_buffer_finish — destroy a buffer object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_destroy</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_buffer_finish</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200847604336"></a><h2>Description</h2><p><code class="function">ne_buffer_destroy</code> frees all memory
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_destroy</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="refbufcr.html" title="ne_buffer_create"><link rel="next" href="refhash.html" title="ne_strhash"></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">ne_buffer_destroy</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refbufcr.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refhash.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refbufdest"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer_destroy, ne_buffer_finish — destroy a buffer object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_destroy</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_buffer_finish</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097882273184"></a><h2>Description</h2><p><code class="function">ne_buffer_destroy</code> frees all memory
|
||||
associated with the buffer. <code class="function">ne_buffer_finish</code>
|
||||
frees the buffer structure, but not the actual string stored in the
|
||||
buffer, which is returned and must be <code class="function">free</code>()d by
|
||||
the caller.</p><p>Any use of the buffer object after calling either of these
|
||||
functions gives undefined behaviour.</p></div><div class="refsect1"><a name="idm46200847600816"></a><h2>Return value</h2><p><code class="function">ne_buffer_finish</code> returns the
|
||||
<code class="function">malloc</code>-allocated string stored in the buffer.</p></div><div class="refsect1"><a name="idm46200847598544"></a><h2>Examples</h2><p>An example use of <code class="function">ne_buffer_finish</code>;
|
||||
functions gives undefined behaviour.</p></div><div class="refsect1"><a name="idm46097882269664"></a><h2>Return value</h2><p><code class="function">ne_buffer_finish</code> returns the
|
||||
<code class="function">malloc</code>-allocated string stored in the buffer.</p></div><div class="refsect1"><a name="idm46097882267392"></a><h2>Examples</h2><p>An example use of <code class="function">ne_buffer_finish</code>;
|
||||
the <code class="function">duplicate</code> function returns a string made up of
|
||||
<code class="parameter">n</code> copies of <code class="parameter">str</code>:</p><pre class="programlisting">static char *duplicate(int n, const char *str)
|
||||
{
|
||||
@@ -13,5 +13,5 @@ the <code class="function">duplicate</code> function returns a string made up of
|
||||
ne_buffer_zappend(buf, str);
|
||||
}
|
||||
return ne_buffer_finish(buf);
|
||||
}</pre></div><div class="refsect1"><a name="idm46200847594080"></a><h2>See also</h2><p><a class="xref" href="refbuf.html#ne_buffer">ne_buffer</a>, <a class="xref" href="refbufcr.html#ne_buffer_create">ne_buffer_create</a>,
|
||||
<a class="xref" href="refbufapp.html#ne_buffer_zappend">ne_buffer_zappend</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refbufcr.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="referr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_buffer_create </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_get_error</td></tr></table></div></body></html>
|
||||
}</pre></div><div class="refsect1"><a name="idm46097882262928"></a><h2>See also</h2><p><a class="xref" href="refbuf.html#ne_buffer">ne_buffer</a>, <a class="xref" href="refbufcr.html#ne_buffer_create">ne_buffer_create</a>,
|
||||
<a class="xref" href="refbufapp.html#ne_buffer_zappend">ne_buffer_zappend</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refbufcr.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="refhash.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_buffer_create </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_strhash</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_clear</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="refbufapp.html" title="ne_buffer_append"><link rel="next" href="refbufcr.html" title="ne_buffer_create"></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">ne_buffer_clear</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refbufapp.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refbufcr.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refbufutil"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer_clear, ne_buffer_grow, ne_buffer_altered — clear, grow, or mark as altered a string buffer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_clear</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_altered</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_grow</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200847683088"></a><h2>Description</h2><p>The <code class="function">ne_buffer_clear</code> function sets
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_clear</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="refbufapp.html" title="ne_buffer_append"><link rel="next" href="refbufcr.html" title="ne_buffer_create"></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">ne_buffer_clear</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refbufapp.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refbufcr.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refbufutil"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer_clear, ne_buffer_grow, ne_buffer_altered — clear, grow, or mark as altered a string buffer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_clear</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_altered</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_grow</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097882351936"></a><h2>Description</h2><p>The <code class="function">ne_buffer_clear</code> function sets
|
||||
the string stored in <code class="parameter">buf</code> to be the empty string
|
||||
(<code class="literal">""</code>).</p><p>The <code class="function">ne_buffer_altered</code> function must
|
||||
be used after the string stored in the buffer
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_cert_identity</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="refsockinit.html" title="ne_sock_init"><link rel="next" href="refsslcert2.html" title="ne_ssl_cert_cmp"></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">ne_ssl_cert_identity</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsockinit.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsslcert2.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refcert"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_cert_identity, ne_ssl_cert_signedby, ne_ssl_cert_issuer, ne_ssl_cert_subject — functions to access certificate properties</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_ssl_cert_identity</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_ssl_certificate *<b class="fsfunc">ne_ssl_cert_signedby</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_ssl_dname *<b class="fsfunc">ne_ssl_cert_subject</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_ssl_dname *<b class="fsfunc">ne_ssl_cert_issuer</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846310080"></a><h2>Description</h2><p>The function <code class="function">ne_ssl_cert_identity</code>
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_cert_identity</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="refsockinit.html" title="ne_sock_init"><link rel="next" href="refsslcert2.html" title="ne_ssl_cert_cmp"></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">ne_ssl_cert_identity</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsockinit.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsslcert2.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refcert"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_cert_identity, ne_ssl_cert_signedby, ne_ssl_cert_issuer, ne_ssl_cert_subject — functions to access certificate properties</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_ssl_cert_identity</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_ssl_certificate *<b class="fsfunc">ne_ssl_cert_signedby</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_ssl_dname *<b class="fsfunc">ne_ssl_cert_subject</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_ssl_dname *<b class="fsfunc">ne_ssl_cert_issuer</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097880864448"></a><h2>Description</h2><p>The function <code class="function">ne_ssl_cert_identity</code>
|
||||
retrieves the <span class="quote">“<span class="quote">identity</span>”</span> of a certificate; for an
|
||||
SSL server certificate, this will be the hostname for which the
|
||||
certificate was issued. In PKI parlance, the identity is the
|
||||
@@ -10,12 +10,12 @@
|
||||
<code class="function">ne_ssl_cert_signedby</code> can be used to find the
|
||||
certificate which signed a particular certificate. For a
|
||||
self-signed certificate or a certificate for which the full chain
|
||||
is not available, this function will return <code class="literal">NULL</code>.</p></div><div class="refsect1"><a name="idm46200846303712"></a><h2>Return value</h2><p><code class="function">ne_ssl_cert_issuer</code> and
|
||||
is not available, this function will return <code class="literal">NULL</code>.</p></div><div class="refsect1"><a name="idm46097880858080"></a><h2>Return value</h2><p><code class="function">ne_ssl_cert_issuer</code> and
|
||||
<code class="function">ne_ssl_cert_subject</code> are guaranteed to never
|
||||
return <code class="literal">NULL</code>. <code class="function">ne_ssl_cert_identity</code> may
|
||||
return <code class="literal">NULL</code> if the certificate has no specific
|
||||
<span class="quote">“<span class="quote">identity</span>”</span>. <code class="function">ne_ssl_cert_signedby</code>
|
||||
may return <code class="literal">NULL</code> as covered above.</p></div><div class="refsect1"><a name="idm46200846297936"></a><h2>Examples</h2><p>The following function could be used to display information
|
||||
may return <code class="literal">NULL</code> as covered above.</p></div><div class="refsect1"><a name="idm46097880852304"></a><h2>Examples</h2><p>The following function could be used to display information
|
||||
about a given certificate:</p><pre class="programlisting">void dump_cert(const ne_ssl_certificate *cert) {
|
||||
const char *id = ne_ssl_cert_identity(cert);
|
||||
char *dn;
|
||||
@@ -30,4 +30,4 @@
|
||||
dn = ne_ssl_readable_dname(ne_ssl_cert_issuer(cert));
|
||||
printf("Issuer: %s\n", dn);
|
||||
free(dn);
|
||||
}</pre></div><div class="refsect1"><a name="idm46200846296048"></a><h2>See also</h2><p><a class="xref" href="refsslcert2.html#ne_ssl_cert_cmp">ne_ssl_cert_cmp</a>, <a class="xref" href="refssldname.html#ne_ssl_readable_dname">ne_ssl_readable_dname</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsockinit.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="refsslcert2.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_sock_init </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_ssl_cert_cmp</td></tr></table></div></body></html>
|
||||
}</pre></div><div class="refsect1"><a name="idm46097880850416"></a><h2>See also</h2><p><a class="xref" href="refsslcert2.html#ne_ssl_cert_cmp">ne_ssl_cert_cmp</a>, <a class="xref" href="refssldname.html#ne_ssl_readable_dname">ne_ssl_readable_dname</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsockinit.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="refsslcert2.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_sock_init </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_ssl_cert_cmp</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_client_cert</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="refsslvfy.html" title="ne_ssl_set_verify"><link rel="next" href="refstatus.html" title="ne_status"></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">ne_ssl_client_cert</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsslvfy.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refstatus.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refclicert"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_clicert_read, ne_ssl_clicert_name, ne_ssl_clicert_encrypted, ne_ssl_clicert_decrypt, ne_ssl_clicert_owner, ne_ssl_clicert_free — SSL client certificate handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_ssl_client_cert *<b class="fsfunc">ne_ssl_clicert_read</b>(</code></td><td>const char *<var class="pdparam">filename</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_ssl_clicert_name</b>(</code></td><td>const ne_ssl_client_cert *<var class="pdparam">ccert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_ssl_clicert_encrypted</b>(</code></td><td>const ne_ssl_client_cert *<var class="pdparam">ccert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_ssl_clicert_decrypt</b>(</code></td><td>ne_ssl_client_cert *<var class="pdparam">ccert</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">password</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_ssl_certificate *<b class="fsfunc">ne_ssl_clicert_owner</b>(</code></td><td>const ne_ssl_client_cert *<var class="pdparam">ccert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_ssl_clicert_free</b>(</code></td><td>ne_ssl_client_cert *<var class="pdparam">ccert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200845969824"></a><h2>Description</h2><p>The <code class="function">ne_ssl_clicert_read</code> function reads
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_client_cert</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="refsslvfy.html" title="ne_ssl_set_verify"><link rel="next" href="refstatus.html" title="ne_status"></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">ne_ssl_client_cert</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsslvfy.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refstatus.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refclicert"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_clicert_read, ne_ssl_clicert_name, ne_ssl_clicert_encrypted, ne_ssl_clicert_decrypt, ne_ssl_clicert_owner, ne_ssl_clicert_free — SSL client certificate handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_ssl_client_cert *<b class="fsfunc">ne_ssl_clicert_read</b>(</code></td><td>const char *<var class="pdparam">filename</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_ssl_clicert_name</b>(</code></td><td>const ne_ssl_client_cert *<var class="pdparam">ccert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_ssl_clicert_encrypted</b>(</code></td><td>const ne_ssl_client_cert *<var class="pdparam">ccert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_ssl_clicert_decrypt</b>(</code></td><td>ne_ssl_client_cert *<var class="pdparam">ccert</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">password</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_ssl_certificate *<b class="fsfunc">ne_ssl_clicert_owner</b>(</code></td><td>const ne_ssl_client_cert *<var class="pdparam">ccert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_ssl_clicert_free</b>(</code></td><td>ne_ssl_client_cert *<var class="pdparam">ccert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097880523936"></a><h2>Description</h2><p>The <code class="function">ne_ssl_clicert_read</code> function reads
|
||||
a <em class="firstterm">client certificate</em> from a
|
||||
PKCS#12-formatted file, and returns an
|
||||
<em class="type">ne_ssl_client_cert</em> object. If the client
|
||||
@@ -29,14 +29,14 @@
|
||||
only be called if the client certificate is in the
|
||||
<span class="emphasis"><em>decrypted</em></span> state.</p><p>When the client certificate is no longer needed, the
|
||||
<code class="function">ne_ssl_clicert_free</code> function should be used
|
||||
to destroy the object.</p></div><div class="refsect1"><a name="idm46200845956720"></a><h2>Return value</h2><p><code class="function">ne_ssl_clicert_read</code> returns a client
|
||||
to destroy the object.</p></div><div class="refsect1"><a name="idm46097880510832"></a><h2>Return value</h2><p><code class="function">ne_ssl_clicert_read</code> returns a client
|
||||
certificate object, or <code class="literal">NULL</code> if the file could not be read.
|
||||
<code class="function">ne_ssl_clicert_encrypted</code> returns zero if the
|
||||
object is in the decrypted state, or non-zero if it is in the
|
||||
encrypted state. <code class="function">ne_ssl_clicert_name</code> returns
|
||||
a <code class="literal">NUL</code>-terminated friendly name string, or <code class="literal">NULL</code>.
|
||||
<code class="function">ne_ssl_clicert_owner</code> returns a certificate
|
||||
object.</p></div><div class="refsect1"><a name="idm46200845951200"></a><h2>Examples</h2><p>The following code reads a client certificate and decrypts
|
||||
object.</p></div><div class="refsect1"><a name="idm46097880505312"></a><h2>Examples</h2><p>The following code reads a client certificate and decrypts
|
||||
it if necessary, then loads it into an HTTP session.</p><pre class="programlisting">ne_ssl_client_cert *ccert;
|
||||
|
||||
ccert = ne_ssl_clicert_read("/path/to/client.p12");
|
||||
@@ -52,4 +52,4 @@ if (ccert == NULL) {
|
||||
}
|
||||
|
||||
ne_ssl_set_clicert(sess, ccert);
|
||||
</pre></div><div class="refsect1"><a name="idm46200845948928"></a><h2>See also</h2><p><a class="xref" href="refsslcertio.html#ne_ssl_cert_read">ne_ssl_cert_read</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsslvfy.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="refstatus.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_ssl_set_verify </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_status</td></tr></table></div></body></html>
|
||||
</pre></div><div class="refsect1"><a name="idm46097880503408"></a><h2>See also</h2><p><a class="xref" href="refsslcertio.html#ne_ssl_cert_read">ne_ssl_cert_read</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsslvfy.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="refstatus.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_ssl_set_verify </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_status</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>neon-config</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="refneon.html" title="neon"><link rel="next" href="refresolve.html" title="ne_addr_resolve"></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-config</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refneon.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refresolve.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refconfig"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>neon-config — script providing information about installed copy
|
||||
of neon library</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">neon-config</code> [<code class="option">--prefix</code>] [[<code class="option">--cflags</code>] | [<code class="option">--libs</code>] | [<code class="option">--la-file</code>] | [<code class="option">--support</code> <em class="replaceable"><code>feature</code></em>] | [<code class="option">--help</code>] | [<code class="option">--version</code>]]</p></div></div><div class="refsect1"><a name="idm46200847967408"></a><h2>Description</h2><p>The <span class="command"><strong>neon-config</strong></span> script provides
|
||||
of neon library</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">neon-config</code> [<code class="option">--prefix</code>] [[<code class="option">--cflags</code>] | [<code class="option">--libs</code>] | [<code class="option">--la-file</code>] | [<code class="option">--support</code> <em class="replaceable"><code>feature</code></em>] | [<code class="option">--help</code>] | [<code class="option">--version</code>]]</p></div></div><div class="refsect1"><a name="idm46097882636160"></a><h2>Description</h2><p>The <span class="command"><strong>neon-config</strong></span> script provides
|
||||
information about an installed copy of the neon library. The
|
||||
<code class="option">--cflags</code> and <code class="option">--libs</code> options instruct
|
||||
how to compile and link an application against the library; the
|
||||
<code class="option">--version</code> and <code class="option">--support</code> options can
|
||||
help determine whether the library meets the applications
|
||||
requirements.</p></div><div class="refsect1"><a name="idm46200847963904"></a><h2>Options</h2><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="option">--cflags</code></span></p></td><td>Print the flags which should be passed to
|
||||
requirements.</p></div><div class="refsect1"><a name="idm46097882632656"></a><h2>Options</h2><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="option">--cflags</code></span></p></td><td>Print the flags which should be passed to
|
||||
the C compiler when compiling object files, when the object files use
|
||||
neon header files.</td></tr><tr><td><p><span class="term"><code class="option">--libs</code></span></p></td><td>Print the flags which should be passed to
|
||||
the linker when linking an application which uses the neon
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_get_error</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="refbufdest.html" title="ne_buffer_destroy"><link rel="next" href="refgetst.html" title="ne_get_status"></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">ne_get_error</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refbufdest.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refgetst.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="referr"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_get_error, ne_set_error — error handling for HTTP sessions</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_get_error</b>(</code></td><td>ne_sesssion *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_error</b>(</code></td><td>ne_sesssion *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200847553856"></a><h2>Description</h2><p>The session error string is used to store any
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_get_error</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="refparam.html" title="ne_strparam"><link rel="next" href="refgetst.html" title="ne_get_status"></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">ne_get_error</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refparam.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refgetst.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="referr"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_get_error, ne_set_error — error handling for HTTP sessions</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_get_error</b>(</code></td><td>ne_sesssion *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_error</b>(</code></td><td>ne_sesssion *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097882108688"></a><h2>Description</h2><p>The session error string is used to store any
|
||||
human-readable error information associated with any errors which
|
||||
occur whilst using the HTTP session.</p><p>The <code class="function">ne_get_error</code> function returns
|
||||
the current session error string. This string persists only
|
||||
@@ -8,11 +8,11 @@ occur whilst using the HTTP session.</p><p>The <code class="function">ne_get_err
|
||||
translated into the user's current locale.</p><p>The <code class="function">ne_set_error</code> function can be
|
||||
used to set a new session error string, using a
|
||||
<code class="function">printf</code>-style format string
|
||||
interface.</p></div><div class="refsect1"><a name="idm46200847549408"></a><h2>Return value</h2><p><code class="function">ne_set_error</code> returns a constant
|
||||
interface.</p></div><div class="refsect1"><a name="idm46097882103888"></a><h2>Return value</h2><p><code class="function">ne_set_error</code> returns a constant
|
||||
<code class="literal">NUL</code>-terminated string. In the default English locale, the
|
||||
returned string will <span class="emphasis"><em>not</em></span> have a
|
||||
terminating <span class="quote">“<span class="quote">.</span>”</span> period character.</p></div><div class="refsect1"><a name="idm46200847546272"></a><h2>Examples</h2><p>Retrieve the current error string:</p><pre class="programlisting">ne_session *sess = ne_session_create(...);
|
||||
terminating <span class="quote">“<span class="quote">.</span>”</span> period character.</p></div><div class="refsect1"><a name="idm46097882100752"></a><h2>Examples</h2><p>Retrieve the current error string:</p><pre class="programlisting">ne_session *sess = ne_session_create(...);
|
||||
...
|
||||
printf("Error was: %s\n", ne_get_error(sess));</pre><p>Set a new error string:</p><pre class="programlisting">ne_session *sess = ne_session_create(...);
|
||||
...
|
||||
ne_set_error(sess, "Response missing header %s", "somestring");</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refbufdest.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="refgetst.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_buffer_destroy </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_get_status</td></tr></table></div></body></html>
|
||||
ne_set_error(sess, "Response missing header %s", "somestring");</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refparam.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="refgetst.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_strparam </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_get_status</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_has_support</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="refgetst.html" title="ne_get_status"><link rel="next" href="refi18n.html" title="ne_i18n_init"></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">ne_has_support</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refgetst.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refi18n.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="reffeat"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_has_support — determine feature support status</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_utils.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_has_support</b>(</code></td><td>int <var class="pdparam">feature</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200847477872"></a><h2>Description</h2><p>The <code class="function">ne_has_support</code> function can be used
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_has_support</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="refgetst.html" title="ne_get_status"><link rel="next" href="refi18n.html" title="ne_i18n_init"></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">ne_has_support</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refgetst.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refi18n.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="reffeat"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_has_support — determine feature support status</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_utils.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_has_support</b>(</code></td><td>int <var class="pdparam">feature</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097882031872"></a><h2>Description</h2><p>The <code class="function">ne_has_support</code> function can be used
|
||||
to determine whether a particular optional feature, given by the
|
||||
feature code <code class="parameter">feature</code>, is supported. The
|
||||
following feature codes are available:
|
||||
@@ -6,5 +6,5 @@
|
||||
</p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="constant">NE_FEATURE_SSL</code></span></p></td><td>Indicates support for SSL/TLS</td></tr><tr><td><p><span class="term"><code class="constant">NE_FEATURE_ZLIB</code></span></p></td><td>Indicates support for compressed responses</td></tr><tr><td><p><span class="term"><code class="constant">NE_FEATURE_IPV6</code></span></p></td><td>Indicates support for IPv6</td></tr><tr><td><p><span class="term"><code class="constant">NE_FEATURE_LFS</code></span></p></td><td>Indicates support for large files</td></tr><tr><td><p><span class="term"><code class="constant">NE_FEATURE_SOCKS</code></span></p></td><td>Indicates support for SOCKSv5</td></tr><tr><td><p><span class="term"><code class="constant">NE_FEATURE_TS_SSL</code></span></p></td><td>Indicates support for thread-safe SSL
|
||||
initialization — see <a class="xref" href="refsockinit.html#ne_sock_init">ne_sock_init</a></td></tr></tbody></table></div><p>
|
||||
|
||||
</p></div><div class="refsect1"><a name="idm46200847464608"></a><h2>Return value</h2><p><code class="function">ne_has_support</code> returns non-zero if
|
||||
the given feature is supported, or zero otherwise.</p></div><div class="refsect1"><a name="idm46200847462960"></a><h2>See also</h2><p><a class="xref" href="refvers.html" title="ne_version_match"><span class="refentrytitle">ne_version_match</span></a>, <a class="xref" href="refsockinit.html" title="ne_sock_init"><span class="refentrytitle">ne_sock_init</span></a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refgetst.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="refi18n.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_get_status </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_i18n_init</td></tr></table></div></body></html>
|
||||
</p></div><div class="refsect1"><a name="idm46097882018608"></a><h2>Return value</h2><p><code class="function">ne_has_support</code> returns non-zero if
|
||||
the given feature is supported, or zero otherwise.</p></div><div class="refsect1"><a name="idm46097882016960"></a><h2>See also</h2><p><a class="xref" href="refvers.html" title="ne_version_match"><span class="refentrytitle">ne_version_match</span></a>, <a class="xref" href="refsockinit.html" title="ne_sock_init"><span class="refentrytitle">ne_sock_init</span></a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refgetst.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="refi18n.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_get_status </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_i18n_init</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_get_status</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="referr.html" title="ne_get_error"><link rel="next" href="reffeat.html" title="ne_has_support"></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">ne_get_status</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="referr.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="reffeat.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refgetst"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_get_status — retrieve HTTP response status for request</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_status *<b class="fsfunc">ne_get_status</b>(</code></td><td>const ne_request *<var class="pdparam">request</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200847584032"></a><h2>Description</h2><p>The <code class="function">ne_get_status</code> function returns
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_get_status</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="referr.html" title="ne_get_error"><link rel="next" href="reffeat.html" title="ne_has_support"></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">ne_get_status</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="referr.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="reffeat.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refgetst"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_get_status — retrieve HTTP response status for request</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_status *<b class="fsfunc">ne_get_status</b>(</code></td><td>const ne_request *<var class="pdparam">request</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097882137088"></a><h2>Description</h2><p>The <code class="function">ne_get_status</code> function returns
|
||||
a pointer to the HTTP status object giving the result of a request.
|
||||
The object returned only becomes valid once the request has been
|
||||
<span class="emphasis"><em>successfully</em></span> dispatched (the return value of
|
||||
<code class="function">ne_request_dispatch</code> or
|
||||
<code class="function">ne_begin_request</code> was zero). The object remains
|
||||
valid until the associated request object is destroyed.</p></div><div class="refsect1"><a name="idm46200847506976"></a><h2>See also</h2><p><a class="xref" href="refstatus.html#ne_status">ne_status</a>, <a class="xref" href="refreq.html#ne_request_create">ne_request_create</a></p></div><div class="refsect1"><a name="idm46200847505088"></a><h2>Example</h2><p>Display the response status code of applying the
|
||||
valid until the associated request object is destroyed.</p></div><div class="refsect1"><a name="idm46097882060864"></a><h2>See also</h2><p><a class="xref" href="refstatus.html#ne_status">ne_status</a>, <a class="xref" href="refreq.html#ne_request_create">ne_request_create</a></p></div><div class="refsect1"><a name="idm46097882058976"></a><h2>Example</h2><p>Display the response status code of applying the
|
||||
<code class="literal">HEAD</code> method to some resource.</p><pre class="programlisting">ne_request *req = ne_request_create(sess, "HEAD", "/foo/bar");
|
||||
if (ne_request_dispatch(req))
|
||||
/* handle errors... */
|
||||
|
||||
23
libs/neon/doc/html/refhash.html
Normal file
23
libs/neon/doc/html/refhash.html
Normal file
@@ -0,0 +1,23 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_strhash</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="refbufdest.html" title="ne_buffer_destroy"><link rel="next" href="refparam.html" title="ne_strparam"></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">ne_strhash</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refbufdest.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refparam.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refhash"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_strhash, ne_vstrhash — string hash interface</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_strhash</b>(</code></td><td>unsigned int <var class="pdparam">flags</var>, </td></tr><tr><td> </td><td><var class="pdparam">...</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_vstrhash</b>(</code></td><td>unsigned int <var class="pdparam">flags</var>, </td></tr><tr><td> </td><td>va_list <var class="pdparam">ap</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097882222336"></a><h2>Description</h2><p>The <code class="function">ne_strhash</code> and
|
||||
<code class="function">ne_vstrhash</code> functions can be used to
|
||||
create hashes. The varargs argument list must be <em class="type">const
|
||||
char *</em> strings followed by a <code class="literal">NULL</code> terminator. The
|
||||
<code class="parameter">flags</code> argument must select exactly one
|
||||
hash algorithm from the list below, which can be optionally
|
||||
bitwise-ORed with one of the formatting option. The hash is
|
||||
calculated for the concatenation of the argument list, without
|
||||
separators.</p><div class="refsect2"><a name="idm46097882218432"></a><h3>Hash algorithms</h3><p>The following hash algorithms are available:
|
||||
</p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="constant">NE_HASH_MD5</code></span></p></td><td>MD5</td></tr><tr><td><p><span class="term"><code class="constant">NE_HASH_SHA256</code></span></p></td><td>SHA-256 (SHA-2)</td></tr><tr><td><p><span class="term"><code class="constant">NE_HASH_SHA512</code></span></p></td><td>SHA-512 (SHA-2)</td></tr><tr><td><p><span class="term"><code class="constant">NE_HASH_SHA256_256</code></span></p></td><td>SHA-512/256 (SHA-2)</td></tr></tbody></table></div><p>
|
||||
|
||||
</p></div><div class="refsect2"><a name="idm46097882211392"></a><h3>Formatting options</h3><p>By default, the hash is returned as a hexadecimal
|
||||
lower-case character string. The following formatting
|
||||
options are available:
|
||||
|
||||
</p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="constant">NE_HASH_COLON</code></span></p></td><td>colon-separated hex pairs, e.g. <code class="literal">"aa:11:22..."</code> </td></tr><tr><td><p><span class="term"><code class="constant">NE_HASH_SPACE</code></span></p></td><td>space-separated hex pairs, e.g. <code class="literal">"aa 11 22..."</code></td></tr></tbody></table></div></div></div><div class="refsect1"><a name="idm46097882205744"></a><h2>Return value</h2><p>The return value is the ASCII hexadecimal representation
|
||||
of the hash as a malloc-allocated, NUL-terminated string, or
|
||||
<code class="literal">NULL</code> if the hash cannot be created. The string length is
|
||||
determined by the hash algorithm (and formatting options
|
||||
used). Support for hash algorithms is specific to the SSL
|
||||
toolkit with which neon is compiled. Some systems will
|
||||
further restrict hash availability at runtime, e.g. due to
|
||||
FIPS mode.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refbufdest.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="refparam.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_buffer_destroy </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_strparam</td></tr></table></div></body></html>
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_i18n_init</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="reffeat.html" title="ne_has_support"><link rel="next" href="refiaddr.html" title="ne_iaddr_make"></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">ne_i18n_init</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="reffeat.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refiaddr.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refi18n"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_i18n_init — functions to initialize internationalization support</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_i18n.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_i18n_init</b>(</code></td><td>const char *<var class="pdparam">encoding</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200847426448"></a><h2>Description</h2><p>The <code class="function">ne_i18n_init</code> function can be used
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_i18n_init</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="reffeat.html" title="ne_has_support"><link rel="next" href="refiaddr.html" title="ne_iaddr_make"></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">ne_i18n_init</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="reffeat.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refiaddr.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refi18n"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_i18n_init — functions to initialize internationalization support</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_i18n.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_i18n_init</b>(</code></td><td>const char *<var class="pdparam">encoding</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097881980448"></a><h2>Description</h2><p>The <code class="function">ne_i18n_init</code> function can be used
|
||||
to enable support for translated messages in the neon library.
|
||||
The <code class="parameter">encoding</code> parameter, if non-<code class="literal">NULL</code>,
|
||||
specifies the character encoding required for generated translated
|
||||
@@ -15,4 +15,4 @@
|
||||
will otherwise operate correctly.</p><p>Note that the encoding used is a process-global setting and
|
||||
so results may be unexpected if other users of neon within the
|
||||
process call <code class="function">ne_i18n_init</code> with a different
|
||||
encoding parameter.</p></div><div class="refsect1"><a name="idm46200847417280"></a><h2>See also</h2><p><a class="xref" href="refsockinit.html#ne_sock_init">ne_sock_init</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="reffeat.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="refiaddr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_has_support </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_iaddr_make</td></tr></table></div></body></html>
|
||||
encoding parameter.</p></div><div class="refsect1"><a name="idm46097881971200"></a><h2>See also</h2><p><a class="xref" href="refsockinit.html#ne_sock_init">ne_sock_init</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="reffeat.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="refiaddr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_has_support </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_iaddr_make</td></tr></table></div></body></html>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
typedef enum {
|
||||
ne_iaddr_ipv4 = 0,
|
||||
ne_iaddr_ipv6
|
||||
} <em class="type">ne_iaddr_type</em>;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_inet_addr *<b class="fsfunc">ne_iaddr_make</b>(</code></td><td>ne_iaddr_type <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>const unsigned char *<var class="pdparam">raw</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_iaddr_cmp</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia1</var>, </td></tr><tr><td> </td><td>const ne_inet_addr *<var class="pdparam">ia2</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_iaddr_print</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">buffer</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">bufsiz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_iaddr_type <b class="fsfunc">ne_iaddr_typeof</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_inet_addr *<b class="fsfunc">ne_iaddr_parse</b>(</code></td><td>const char *<var class="pdparam">address</var>, </td></tr><tr><td> </td><td>ne_iaddr_type <var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">unsigned char *<b class="fsfunc">ne_iaddr_raw</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var>, </td></tr><tr><td> </td><td>unsigned char *<var class="pdparam">buffer</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_iaddr_reverse</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">buffer</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">buflen</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_iaddr_free</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200847360416"></a><h2>Description</h2><p><code class="function">ne_iaddr_make</code> creates an
|
||||
} <em class="type">ne_iaddr_type</em>;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_inet_addr *<b class="fsfunc">ne_iaddr_make</b>(</code></td><td>ne_iaddr_type <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>const unsigned char *<var class="pdparam">raw</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_iaddr_cmp</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia1</var>, </td></tr><tr><td> </td><td>const ne_inet_addr *<var class="pdparam">ia2</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_iaddr_print</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">buffer</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">bufsiz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_iaddr_type <b class="fsfunc">ne_iaddr_typeof</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_inet_addr *<b class="fsfunc">ne_iaddr_parse</b>(</code></td><td>const char *<var class="pdparam">address</var>, </td></tr><tr><td> </td><td>ne_iaddr_type <var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">unsigned char *<b class="fsfunc">ne_iaddr_raw</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var>, </td></tr><tr><td> </td><td>unsigned char *<var class="pdparam">buffer</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_iaddr_reverse</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">buffer</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">buflen</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_iaddr_free</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097881914336"></a><h2>Description</h2><p><code class="function">ne_iaddr_make</code> creates an
|
||||
<em class="type">ne_inet_addr</em> object from a raw binary network
|
||||
address; for instance the four bytes <code class="literal">0x7f 0x00 0x00
|
||||
0x01</code> represent the IPv4 address
|
||||
@@ -31,7 +31,7 @@ typedef enum {
|
||||
hostname is longer than the buffer it will be silently truncated;
|
||||
on success the string written to the buffer is always
|
||||
<code class="literal">NUL</code>-terminated.</p><p><code class="function">ne_iaddr_free</code> releases the memory
|
||||
associated with a network address object.</p></div><div class="refsect1"><a name="idm46200847347392"></a><h2>Return value</h2><p><code class="function">ne_iaddr_make</code> returns <code class="literal">NULL</code> if the
|
||||
associated with a network address object.</p></div><div class="refsect1"><a name="idm46097881901312"></a><h2>Return value</h2><p><code class="function">ne_iaddr_make</code> returns <code class="literal">NULL</code> if the
|
||||
address type passed is not supported (for instance on a platform
|
||||
which does not support IPv6).</p><p><code class="function">ne_iaddr_print</code> returns the
|
||||
<code class="parameter">buffer</code> pointer, and never <code class="literal">NULL</code>.</p><p><code class="function">ne_iaddr_parse</code> returns a network
|
||||
@@ -39,7 +39,7 @@ typedef enum {
|
||||
<code class="parameter">address</code> parameter.</p><p><code class="function">ne_iaddr_reverse</code> returns zero on
|
||||
success or non-zero if no hostname is associated with the
|
||||
address.</p><p><code class="function">ne_iaddr_raw</code> returns the
|
||||
<code class="parameter">buffer</code> parameter, and never <code class="literal">NULL</code>.</p></div><div class="refsect1"><a name="idm46200847337616"></a><h2>Examples</h2><p>The following example connects a socket to port 80 at the
|
||||
<code class="parameter">buffer</code> parameter, and never <code class="literal">NULL</code>.</p></div><div class="refsect1"><a name="idm46097881891536"></a><h2>Examples</h2><p>The following example connects a socket to port 80 at the
|
||||
address <code class="literal">127.0.0.1</code>.</p><pre class="programlisting">unsigned char addr[] = "\0x7f\0x00\0x00\0x01";
|
||||
ne_inet_addr *ia;
|
||||
|
||||
@@ -50,4 +50,4 @@ if (ia != NULL) {
|
||||
/* ... */
|
||||
} else {
|
||||
/* ... */
|
||||
}</pre></div><div class="refsect1"><a name="idm46200847334880"></a><h2>See also</h2><p><a class="xref" href="refresolve.html#ne_addr_resolve">ne_addr_resolve</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refi18n.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="refalloc.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_i18n_init </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_malloc</td></tr></table></div></body></html>
|
||||
}</pre></div><div class="refsect1"><a name="idm46097881888800"></a><h2>See also</h2><p><a class="xref" href="refresolve.html#ne_addr_resolve">ne_addr_resolve</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refi18n.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="refalloc.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_i18n_init </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_malloc</td></tr></table></div></body></html>
|
||||
|
||||
@@ -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="idm46200848159056"></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="idm46097882827776"></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>,
|
||||
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
|
||||
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="idm46200848126064"></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="idm46097882785808"></a><h2>Conventions</h2><p>Some conventions are used throughout the neon API, to
|
||||
provide a consistent and simple interface; these are documented
|
||||
below.</p><div class="refsect2"><a name="idm46200848124896"></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="idm46097882784640"></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
|
||||
a thread-safe resolver interface. Modern operating systems offer
|
||||
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
|
||||
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
|
||||
for internationalization in neon.</p></div><div class="refsect2"><a name="idm46200848097552"></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="idm46097882766256"></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
|
||||
call into the neon library from a signal handler will have
|
||||
undefined behaviour - in other words, it may crash the
|
||||
process.</p></div><div class="refsect2"><a name="idm46200848095680"></a><h3>Functions using global state</h3><p>Any function in neon may modify the
|
||||
process.</p></div><div class="refsect2"><a name="idm46097882764384"></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
|
||||
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
|
||||
@@ -51,7 +51,7 @@
|
||||
<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
|
||||
installing a process-global callback to be invoked on
|
||||
<code class="function">malloc</code> failure</li></ul></div></div><div class="refsect2"><a name="idm46200848086736"></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="idm46097882755440"></a><h3>Namespaces</h3><p>To avoid possible collisions between names used for symbols
|
||||
and preprocessor macros by an application and the libraries it
|
||||
uses, it is good practice for each library to reserve a particular
|
||||
<span class="emphasis"><em>namespace prefix</em></span>. An application which
|
||||
@@ -80,28 +80,28 @@
|
||||
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
|
||||
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="idm46200848071232"></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="idm46097882739936"></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
|
||||
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
|
||||
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="idm46200848067792"></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="idm46097882736496"></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
|
||||
performs any URI encoding or decoding internally. WebDAV property
|
||||
names and values must be valid UTF-8 encoded Unicode
|
||||
strings.</p></div><div class="refsect2"><a name="idm46200848065488"></a><h3>User interaction</h3><p>As a pure library interface, neon will never produce
|
||||
strings.</p></div><div class="refsect2"><a name="idm46097882734192"></a><h3>User interaction</h3><p>As a pure library interface, neon will never produce
|
||||
output on <code class="constant">stdout</code> or
|
||||
<code class="constant">stderr</code>; all user interaction is the
|
||||
responsibility of the application.</p></div><div class="refsect2"><a name="idm46200848063376"></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="idm46097882732080"></a><h3>Memory handling</h3><p>neon does not attempt to cope gracefully with an
|
||||
out-of-memory situation; instead, by default, the
|
||||
<code class="function">abort</code> function is called to immediately
|
||||
terminate the process. An application may register a custom
|
||||
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="idm46200848060016"></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="idm46097882728720"></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
|
||||
application to associate a context with the callback. The
|
||||
userdata is of type <em class="type">void *</em>, allowing any pointer to
|
||||
be used.</p></div><div class="refsect2"><a name="idm46200848057568"></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="idm46097882726272"></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.
|
||||
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
|
||||
@@ -109,5 +109,5 @@
|
||||
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
|
||||
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="idm46200848052304"></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="idm46097882721008"></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>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_useragent</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="refresphdr.html" title="ne_get_response_header"><link rel="next" href="refreqflags.html" title="ne_set_request_flag"></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">ne_set_useragent</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refresphdr.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refreqflags.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refopts"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_useragent, ne_set_read_timeout, ne_set_connect_timeout, ne_get_scheme, ne_get_server_hostport — common properties for HTTP sessions</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_useragent</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">product</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_read_timeout</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">timeout</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_connect_timeout</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">timeout</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_get_scheme</b>(</code></td><td>ne_sesssion *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_get_server_hostport</b>(</code></td><td>ne_sesssion *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846663648"></a><h2>Description</h2><p>The <code class="literal">User-Agent</code> request header is used
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_useragent</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="refresphdr.html" title="ne_get_response_header"><link rel="next" href="refreqflags.html" title="ne_set_request_flag"></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">ne_set_useragent</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refresphdr.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refreqflags.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refopts"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_useragent, ne_set_read_timeout, ne_set_connect_timeout, ne_get_scheme, ne_get_server_hostport — common properties for HTTP sessions</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_useragent</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">product</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_read_timeout</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">timeout</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_connect_timeout</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">timeout</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_get_scheme</b>(</code></td><td>ne_sesssion *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_get_server_hostport</b>(</code></td><td>ne_sesssion *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097881217872"></a><h2>Description</h2><p>The <code class="literal">User-Agent</code> request header is used
|
||||
to identify the software which generated the request for statistical
|
||||
or debugging purposes. neon does not send a
|
||||
<code class="literal">User-Agent</code> header unless a call is made to the
|
||||
@@ -23,6 +23,6 @@ parameter.</p><p>When a connection is being established to a server,
|
||||
<code class="function">ne_get_server_hostport</code>; for example
|
||||
<code class="literal">www.example.com:8080</code>. Note that the
|
||||
<code class="literal">:port</code> will be omitted if the default port
|
||||
for the scheme is used.</p></div><div class="refsect1"><a name="idm46200846650704"></a><h2>Examples</h2><p>Set a user-agent string:</p><pre class="programlisting">ne_session *sess = ne_session_create(...);
|
||||
for the scheme is used.</p></div><div class="refsect1"><a name="idm46097881204928"></a><h2>Examples</h2><p>Set a user-agent string:</p><pre class="programlisting">ne_session *sess = ne_session_create(...);
|
||||
ne_set_useragent(sess, "MyApplication/2.1");</pre><p>Set a 30 second read timeout:</p><pre class="programlisting">ne_session *sess = ne_session_create(...);
|
||||
ne_set_read_timeout(sess, 30);</pre></div><div class="refsect1"><a name="idm46200846647728"></a><h2>See also</h2><p><a class="xref" href="refsess.html#ne_session_create">ne_session_create</a>, <a class="xref" href="refsessflags.html#ne_set_session_flag">ne_set_session_flag</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refresphdr.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="refreqflags.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_get_response_header </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_set_request_flag</td></tr></table></div></body></html>
|
||||
ne_set_read_timeout(sess, 30);</pre></div><div class="refsect1"><a name="idm46097881201952"></a><h2>See also</h2><p><a class="xref" href="refsess.html#ne_session_create">ne_session_create</a>, <a class="xref" href="refsessflags.html#ne_set_session_flag">ne_set_session_flag</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refresphdr.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="refreqflags.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_get_response_header </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_set_request_flag</td></tr></table></div></body></html>
|
||||
|
||||
19
libs/neon/doc/html/refparam.html
Normal file
19
libs/neon/doc/html/refparam.html
Normal file
@@ -0,0 +1,19 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_strparam</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="refhash.html" title="ne_strhash"><link rel="next" href="referr.html" title="ne_get_error"></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">ne_strparam</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refhash.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="referr.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refparam"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_strparam — HTTP extended parameter value encoding</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_strparam</b>(</code></td><td>const char *<var class="pdparam">charset</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">lang</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">value</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097882158848"></a><h2>Description</h2><p>The <code class="function">ne_strparam</code> function can be
|
||||
used to encode an extended parameter value for an HTTP header,
|
||||
as defined in RFC 5987. The function takes as arguments the
|
||||
<code class="parameter">value</code> to encode, using a given MIME
|
||||
<code class="parameter">charset</code> character set, and
|
||||
<code class="parameter">lang</code> language tag. The extended
|
||||
parameter encoding is used in HTTP protocol specifications to
|
||||
allow easily embedding special characters (such as quote
|
||||
marks, separators or non-ASCII) in header values.</p><p>In accordance with RFC 5987, the
|
||||
<code class="parameter">charset</code> argument must be either
|
||||
<code class="constant">"UTF-8"</code> or
|
||||
<code class="constant">"IS0-8859-1"</code>, but the
|
||||
<code class="parameter">lang</code> argument may be <code class="literal">NULL</code>.</p></div><div class="refsect1"><a name="idm46097882152016"></a><h2>Return value</h2><p>The return value is either:
|
||||
|
||||
</p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="literal">NULL</code></span></p></td><td>if the value parameter is a "regular
|
||||
parameter" and does not need extended
|
||||
encoding</td></tr><tr><td><p><span class="term">non-<code class="literal">NULL</code></span></p></td><td>the encoding of the input value as an
|
||||
extended parameter as a NUL-terminated, malloc-allocated
|
||||
string</td></tr></tbody></table></div></div><div class="refsect1"><a name="idm46097882146912"></a><h2>See also</h2><p><a class="ulink" href="https://tools.ietf.org/html/rfc5987" target="_top">https://tools.ietf.org/html/rfc5987</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refhash.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="referr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_strhash </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_get_error</td></tr></table></div></body></html>
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_session_proxy</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="refsess.html" title="ne_session_create"><link rel="next" href="refsessflags.html" title="ne_set_session_flag"></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">ne_session_proxy</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsess.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsessflags.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refproxy"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_session_proxy, ne_session_socks_proxy, ne_session_system_proxy, ne_set_addrlist — configure proxy servers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_session_proxy</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">hostname</var>, </td></tr><tr><td> </td><td>unsigned int <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_session_system_proxy</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_session_socks_proxy</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>enum ne_sock_sversion <var class="pdparam">version</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">hostname</var>, </td></tr><tr><td> </td><td>unsigned int <var class="pdparam">port</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">username</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">password</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_addrlist</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const ne_inet_addr **<var class="pdparam">addrlist</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">count</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200847091344"></a><h2>Description</h2><p>One (and no more than one) of the functions
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_session_proxy</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="refsess.html" title="ne_session_create"><link rel="next" href="refsessflags.html" title="ne_set_session_flag"></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">ne_session_proxy</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsess.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsessflags.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refproxy"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_session_proxy, ne_session_socks_proxy, ne_session_system_proxy, ne_set_addrlist — configure proxy servers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_session_proxy</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">hostname</var>, </td></tr><tr><td> </td><td>unsigned int <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_session_system_proxy</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_session_socks_proxy</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>enum ne_sock_sversion <var class="pdparam">version</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">hostname</var>, </td></tr><tr><td> </td><td>unsigned int <var class="pdparam">port</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">username</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">password</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_addrlist</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const ne_inet_addr **<var class="pdparam">addrlist</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">count</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097881645488"></a><h2>Description</h2><p>One (and no more than one) of the functions
|
||||
<code class="function">ne_session_proxy</code>,
|
||||
<code class="function">ne_session_system_proxy</code>,
|
||||
<code class="function">ne_session_socks_proxy</code>,
|
||||
@@ -7,17 +7,17 @@
|
||||
function is invoked for any given session object, only the
|
||||
last call has effect. If one of the functions is to be used,
|
||||
it must be used before the creation of any request object for
|
||||
the session.</p><div class="refsect2"><a name="idm46200847087520"></a><h3>HTTP proxy specification</h3><p>The <code class="function">ne_session_proxy</code> function
|
||||
the session.</p><div class="refsect2"><a name="idm46097881641664"></a><h3>HTTP proxy specification</h3><p>The <code class="function">ne_session_proxy</code> function
|
||||
configures use of an HTTP proxy server for the session, the
|
||||
location of which is given by the
|
||||
<code class="parameter">hostname</code> and
|
||||
<code class="parameter">port</code> parameters. If the proxy
|
||||
requires authentication, <a class="xref" href="refauth.html#ne_set_proxy_auth">ne_set_proxy_auth</a>
|
||||
should be used.</p></div><div class="refsect2"><a name="idm46200847083776"></a><h3>System proxy configuration</h3><p>The <code class="function">ne_session_system_proxy</code>
|
||||
should be used.</p></div><div class="refsect2"><a name="idm46097881637920"></a><h3>System proxy configuration</h3><p>The <code class="function">ne_session_system_proxy</code>
|
||||
function configures the session to use any proxy servers
|
||||
specified by the system configuration. Support for this
|
||||
function is platform-specific; if unsupported, the function
|
||||
has no effect.</p></div><div class="refsect2"><a name="idm46200847081760"></a><h3>SOCKS proxy configuration</h3><p>The <code class="function">ne_session_socks_proxy</code>
|
||||
has no effect.</p></div><div class="refsect2"><a name="idm46097881635904"></a><h3>SOCKS proxy configuration</h3><p>The <code class="function">ne_session_socks_proxy</code>
|
||||
function configures the session to use a SOCKS proxy. The
|
||||
<code class="parameter">version</code> indicates which version of
|
||||
the SOCKS protocol should be used. The
|
||||
@@ -33,7 +33,7 @@
|
||||
parameter is ignored.</td></tr><tr><td><p><span class="term"><code class="constant">NE_SOCK_SOCKSV5</code> (version 5)</span></p></td><td>The <code class="parameter">username</code> parameter
|
||||
may be <code class="literal">NULL</code>; if it is non-<code class="literal">NULL</code>,
|
||||
the <code class="parameter">password</code> parameter must also
|
||||
be non-<code class="literal">NULL</code>; otherwise, it is ignored..</td></tr></tbody></table></div></div><div class="refsect2"><a name="idm46200847065504"></a><h3>Origin server address override</h3><p>The <code class="function">ne_set_addrlist</code> function
|
||||
be non-<code class="literal">NULL</code>; otherwise, it is ignored..</td></tr></tbody></table></div></div><div class="refsect2"><a name="idm46097881619648"></a><h3>Origin server address override</h3><p>The <code class="function">ne_set_addrlist</code> function
|
||||
forces use of an address and port the a specified list when
|
||||
establishing a TCP connection, ignoring the "real" hostname
|
||||
and port identifying the origin server for the session (as
|
||||
@@ -44,10 +44,10 @@
|
||||
through the <code class="parameter">addrlist</code> list, attempting
|
||||
to connect to the address <code class="parameter">addrlist[0]</code>
|
||||
through to <code class="parameter">addrlist[count-1]</code> in turn,
|
||||
until a connection can be established.</p></div></div><div class="refsect1"><a name="idm46200847059904"></a><h2>Return Values</h2><p>None of the functions described here has a return
|
||||
value.</p></div><div class="refsect1"><a name="idm46200847058672"></a><h2>Examples</h2><p>Create and destroy a session:</p><pre class="programlisting">ne_session *sess;
|
||||
until a connection can be established.</p></div></div><div class="refsect1"><a name="idm46097881614048"></a><h2>Return Values</h2><p>None of the functions described here has a return
|
||||
value.</p></div><div class="refsect1"><a name="idm46097881612816"></a><h2>Examples</h2><p>Create and destroy a session:</p><pre class="programlisting">ne_session *sess;
|
||||
sess = ne_session_create("http", "host.example.com", 80);
|
||||
ne_session_proxy(sess, "proxy.example.com", 3128);
|
||||
/* ... use sess ... */
|
||||
ne_session_destroy(sess);
|
||||
</pre></div><div class="refsect1"><a name="idm46200847056704"></a><h2>See Also</h2><p><a class="xref" href="refsslvfy.html#ne_ssl_set_verify">ne_ssl_set_verify</a>, <a class="xref" href="refsslca.html#ne_ssl_trust_cert">ne_ssl_trust_cert</a>, <a class="xref" href="refsockinit.html#ne_sock_init">ne_sock_init</a>, <a class="xref" href="refsessflags.html#ne_set_session_flag">ne_set_session_flag</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsess.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="refsessflags.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_session_create </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_set_session_flag</td></tr></table></div></body></html>
|
||||
</pre></div><div class="refsect1"><a name="idm46097881610848"></a><h2>See Also</h2><p><a class="xref" href="refsslvfy.html#ne_ssl_set_verify">ne_ssl_set_verify</a>, <a class="xref" href="refsslca.html#ne_ssl_trust_cert">ne_ssl_trust_cert</a>, <a class="xref" href="refsockinit.html#ne_sock_init">ne_sock_init</a>, <a class="xref" href="refsessflags.html#ne_set_session_flag">ne_set_session_flag</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsess.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="refsessflags.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_session_create </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_set_session_flag</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_request_create</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="refsessflags.html" title="ne_set_session_flag"><link rel="next" href="refreqhdr.html" title="ne_add_request_header"></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">ne_request_create</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsessflags.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refreqhdr.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refreq"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_request_create, ne_request_dispatch, ne_request_destroy — low-level HTTP request handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_request *<b class="fsfunc">ne_request_create</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">method</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_request_dispatch</b>(</code></td><td>ne_request *<var class="pdparam">req</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_request_destroy</b>(</code></td><td>ne_request *<var class="pdparam">req</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846901776"></a><h2>Description</h2><p>The <em class="type">ne_request</em> object represents an HTTP
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_request_create</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="refsessflags.html" title="ne_set_session_flag"><link rel="next" href="refreqhdr.html" title="ne_add_request_header"></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">ne_request_create</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsessflags.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refreqhdr.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refreq"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_request_create, ne_request_dispatch, ne_request_destroy — low-level HTTP request handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_request *<b class="fsfunc">ne_request_create</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">method</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_request_dispatch</b>(</code></td><td>ne_request *<var class="pdparam">req</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_request_destroy</b>(</code></td><td>ne_request *<var class="pdparam">req</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097881455920"></a><h2>Description</h2><p>The <em class="type">ne_request</em> object represents an HTTP
|
||||
request and the associated response.
|
||||
The <code class="function">ne_request_create</code> function creates a
|
||||
new request object for the
|
||||
@@ -33,14 +33,14 @@ any processing of the response headers and message body.</p><p>A request can onl
|
||||
request object produces undefined behaviour.</p><p>If a request is being using a non-idempotent method such
|
||||
as <code class="literal">POST</code>, the
|
||||
<code class="literal">NE_REQFLAG_IDEMPOTENT</code> flag should be
|
||||
disabled; see <a class="xref" href="refreqflags.html#ne_set_request_flag">ne_set_request_flag</a>.</p></div><div class="refsect1"><a name="idm46200846881968"></a><h2>Return value</h2><p>The <code class="function">ne_request_create</code> function
|
||||
disabled; see <a class="xref" href="refreqflags.html#ne_set_request_flag">ne_set_request_flag</a>.</p></div><div class="refsect1"><a name="idm46097881436112"></a><h2>Return value</h2><p>The <code class="function">ne_request_create</code> function
|
||||
returns a pointer to a request object (and never <code class="literal">NULL</code>).</p><p>The <code class="function">ne_request_dispatch</code> function
|
||||
returns zero if the request was dispatched successfully, and a
|
||||
non-zero error code otherwise.</p></div><div class="refsect1"><a name="idm46200846878112"></a><h2>Errors</h2><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><span class="errorcode">NE_ERROR</span></span></p></td><td>Request failed (see session error string)</td></tr><tr><td><p><span class="term"><span class="errorcode">NE_LOOKUP</span></span></p></td><td>The DNS lookup for the server (or proxy server) failed.</td></tr><tr><td><p><span class="term"><span class="errorcode">NE_AUTH</span></span></p></td><td>Authentication failed on the server.</td></tr><tr><td><p><span class="term"><span class="errorcode">NE_PROXYAUTH</span></span></p></td><td>Authentication failed on the proxy server.</td></tr><tr><td><p><span class="term"><span class="errorcode">NE_CONNECT</span></span></p></td><td>A connection to the server could not be established.</td></tr><tr><td><p><span class="term"><span class="errorcode">NE_TIMEOUT</span></span></p></td><td>A timeout occurred while waiting for the server to respond.</td></tr></tbody></table></div></div><div class="refsect1"><a name="idm46200846866224"></a><h2>Example</h2><p>An example of applying a <code class="literal">MKCOL</code>
|
||||
non-zero error code otherwise.</p></div><div class="refsect1"><a name="idm46097881432256"></a><h2>Errors</h2><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><span class="errorcode">NE_ERROR</span></span></p></td><td>Request failed (see session error string)</td></tr><tr><td><p><span class="term"><span class="errorcode">NE_LOOKUP</span></span></p></td><td>The DNS lookup for the server (or proxy server) failed.</td></tr><tr><td><p><span class="term"><span class="errorcode">NE_AUTH</span></span></p></td><td>Authentication failed on the server.</td></tr><tr><td><p><span class="term"><span class="errorcode">NE_PROXYAUTH</span></span></p></td><td>Authentication failed on the proxy server.</td></tr><tr><td><p><span class="term"><span class="errorcode">NE_CONNECT</span></span></p></td><td>A connection to the server could not be established.</td></tr><tr><td><p><span class="term"><span class="errorcode">NE_TIMEOUT</span></span></p></td><td>A timeout occurred while waiting for the server to respond.</td></tr></tbody></table></div></div><div class="refsect1"><a name="idm46097881420368"></a><h2>Example</h2><p>An example of applying a <code class="literal">MKCOL</code>
|
||||
operation to the resource at the location
|
||||
<code class="literal">http://www.example.com/foo/bar/</code>:</p><pre class="programlisting">ne_session *sess = ne_session_create("http", "www.example.com", 80);
|
||||
ne_request *req = ne_request_create(sess, "MKCOL", "/foo/bar/");
|
||||
if (ne_request_dispatch(req)) {
|
||||
printf("Request failed: %s\n", ne_get_error(sess));
|
||||
}
|
||||
ne_request_destroy(req);</pre></div><div class="refsect1"><a name="idm46200846862944"></a><h2>See also</h2><p><a class="xref" href="referr.html#ne_get_error">ne_get_error</a>, <a class="xref" href="referr.html#ne_set_error">ne_set_error</a>, <a class="xref" href="refgetst.html#ne_get_status">ne_get_status</a>, <a class="xref" href="refreqhdr.html#ne_add_request_header">ne_add_request_header</a>, <a class="xref" href="refreqbody.html#ne_set_request_body_buffer">ne_set_request_body_buffer</a>, <a class="xref" href="refreqflags.html#ne_set_request_flag">ne_set_request_flag</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsessflags.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="refreqhdr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_set_session_flag </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_add_request_header</td></tr></table></div></body></html>
|
||||
ne_request_destroy(req);</pre></div><div class="refsect1"><a name="idm46097881417088"></a><h2>See also</h2><p><a class="xref" href="referr.html#ne_get_error">ne_get_error</a>, <a class="xref" href="referr.html#ne_set_error">ne_set_error</a>, <a class="xref" href="refgetst.html#ne_get_status">ne_get_status</a>, <a class="xref" href="refreqhdr.html#ne_add_request_header">ne_add_request_header</a>, <a class="xref" href="refreqbody.html#ne_set_request_body_buffer">ne_set_request_body_buffer</a>, <a class="xref" href="refreqflags.html#ne_set_request_flag">ne_set_request_flag</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsessflags.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="refreqhdr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_set_session_flag </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_add_request_header</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_request_body_buffer</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="refreqflags.html" title="ne_set_request_flag"><link rel="next" href="refauth.html" title="ne_set_server_auth"></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">ne_set_request_body_buffer</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refreqflags.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refauth.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refreqbody"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_request_body_buffer, ne_set_request_body_fd — include a message body with a request</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_request_body_buffer</b>(</code></td><td>ne_request *<var class="pdparam">req</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">buf</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">count</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_set_request_body_fd</b>(</code></td><td>ne_request *<var class="pdparam">req</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>ne_off_t <var class="pdparam">begin</var>, </td></tr><tr><td> </td><td>ne_off_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846536336"></a><h2>Description</h2><p>The <code class="function">ne_set_request_body_buffer</code>
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_request_body_buffer</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="refreqflags.html" title="ne_set_request_flag"><link rel="next" href="refauth.html" title="ne_set_server_auth"></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">ne_set_request_body_buffer</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refreqflags.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refauth.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refreqbody"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_request_body_buffer, ne_set_request_body_fd — include a message body with a request</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_request_body_buffer</b>(</code></td><td>ne_request *<var class="pdparam">req</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">buf</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">count</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_set_request_body_fd</b>(</code></td><td>ne_request *<var class="pdparam">req</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>ne_off_t <var class="pdparam">begin</var>, </td></tr><tr><td> </td><td>ne_off_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097881090576"></a><h2>Description</h2><p>The <code class="function">ne_set_request_body_buffer</code>
|
||||
function specifies that a message body should be included with the
|
||||
body, which is stored in the <code class="parameter">count</code> bytes buffer
|
||||
<code class="parameter">buf</code>.</p><p>The <code class="function">ne_set_request_body_fd</code> function
|
||||
@@ -14,4 +14,4 @@ from the beginning of the file).</p><p>For all the above functions, the source o
|
||||
<code class="function">ne_set_request_body_buffer</code> nor the file
|
||||
descriptor passed to
|
||||
<code class="function">ne_set_request_body_fd</code> are copied
|
||||
internally.</p></div><div class="refsect1"><a name="idm46200846527712"></a><h2>See also</h2><p><a class="xref" href="refreq.html#ne_request_create">ne_request_create</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refreqflags.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="refauth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_set_request_flag </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_set_server_auth</td></tr></table></div></body></html>
|
||||
internally.</p></div><div class="refsect1"><a name="idm46097881081952"></a><h2>See also</h2><p><a class="xref" href="refreq.html#ne_request_create">ne_request_create</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refreqflags.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="refauth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_set_request_flag </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_set_server_auth</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_request_flag</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="refopts.html" title="ne_set_useragent"><link rel="next" href="refreqbody.html" title="ne_set_request_body_buffer"></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">ne_set_request_flag</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refopts.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refreqbody.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refreqflags"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_request_flag, ne_get_request_flag — set and retrieve per-request flags</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_request_flag</b>(</code></td><td>ne_request *<var class="pdparam">req</var>, </td></tr><tr><td> </td><td>ne_request_flag <var class="pdparam">flag</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">value</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_get_request_flag</b>(</code></td><td>ne_request *<var class="pdparam">req</var>, </td></tr><tr><td> </td><td>ne_request_flag <var class="pdparam">flag</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846589152"></a><h2>Description</h2><p>The <code class="function">ne_set_request_flag</code> function
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_request_flag</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="refopts.html" title="ne_set_useragent"><link rel="next" href="refreqbody.html" title="ne_set_request_body_buffer"></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">ne_set_request_flag</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refopts.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refreqbody.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refreqflags"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_request_flag, ne_get_request_flag — set and retrieve per-request flags</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_request_flag</b>(</code></td><td>ne_request *<var class="pdparam">req</var>, </td></tr><tr><td> </td><td>ne_request_flag <var class="pdparam">flag</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">value</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_get_request_flag</b>(</code></td><td>ne_request *<var class="pdparam">req</var>, </td></tr><tr><td> </td><td>ne_request_flag <var class="pdparam">flag</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097881143392"></a><h2>Description</h2><p>The <code class="function">ne_set_request_flag</code> function
|
||||
enables or disables a per-request flag. Passing a non-zero
|
||||
<code class="parameter">value</code> argument enables the flag, and zero
|
||||
disables it.</p><p>The following flags are defined:</p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="constant">NE_REQFLAG_EXPECT100</code></span></p></td><td>enable this flag to use the "Expect:
|
||||
@@ -9,6 +9,6 @@
|
||||
the request to be resent), but has interoperability
|
||||
problems with some older servers.</td></tr><tr><td><p><span class="term"><code class="constant">NE_REQFLAG_IDEMPOTENT</code></span></p></td><td>disable this flag if the request uses a
|
||||
non-idempotent method such as
|
||||
<code class="literal">POST</code></td></tr></tbody></table></div></div><div class="refsect1"><a name="idm46200846581664"></a><h2>Return value</h2><p>The <code class="function">ne_get_request_flag</code> function returns
|
||||
<code class="literal">POST</code></td></tr></tbody></table></div></div><div class="refsect1"><a name="idm46097881135904"></a><h2>Return value</h2><p>The <code class="function">ne_get_request_flag</code> function returns
|
||||
zero if a flag is disabled, less than zero if the flag is not
|
||||
supported, or greater than zero if the flag is enabled.</p></div><div class="refsect1"><a name="idm46200846579888"></a><h2>See also</h2><p><a class="xref" href="refreq.html#ne_request_create">ne_request_create</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refopts.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="refreqbody.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_set_useragent </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_set_request_body_buffer</td></tr></table></div></body></html>
|
||||
supported, or greater than zero if the flag is enabled.</p></div><div class="refsect1"><a name="idm46097881134128"></a><h2>See also</h2><p><a class="xref" href="refreq.html#ne_request_create">ne_request_create</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refopts.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="refreqbody.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_set_useragent </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_set_request_body_buffer</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_add_request_header</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="refreq.html" title="ne_request_create"><link rel="next" href="refresphdr.html" title="ne_get_response_header"></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">ne_add_request_header</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refreq.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refresphdr.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refreqhdr"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_add_request_header, ne_print_request_header — add headers to a request</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_add_request_header</b>(</code></td><td>ne_request *<var class="pdparam">request</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">value</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_print_request_header</b>(</code></td><td>ne_request *<var class="pdparam">request</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846782800"></a><h2>Description</h2><p>The functions <code class="function">ne_add_request_header</code>
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_add_request_header</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="refreq.html" title="ne_request_create"><link rel="next" href="refresphdr.html" title="ne_get_response_header"></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">ne_add_request_header</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refreq.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refresphdr.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refreqhdr"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_add_request_header, ne_print_request_header — add headers to a request</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_add_request_header</b>(</code></td><td>ne_request *<var class="pdparam">request</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">value</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_print_request_header</b>(</code></td><td>ne_request *<var class="pdparam">request</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097881336944"></a><h2>Description</h2><p>The functions <code class="function">ne_add_request_header</code>
|
||||
and <code class="function">ne_print_request_header</code> can be used to add
|
||||
headers to a request, before it is sent.</p><p><code class="function">ne_add_request_header</code> simply adds a
|
||||
header of given <code class="parameter">name</code>, with given
|
||||
<code class="parameter">value</code>.</p><p><code class="function">ne_print_request_header</code> adds a
|
||||
header of given <code class="parameter">name</code>, taking the value from the
|
||||
<code class="function">printf</code>-like <code class="parameter">format</code> string
|
||||
parameter and subsequent variable-length argument list.</p></div><div class="refsect1"><a name="idm46200846775520"></a><h2>See also</h2><p><a class="xref" href="refreq.html#ne_request_create">ne_request_create</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refreq.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="refresphdr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_request_create </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_get_response_header</td></tr></table></div></body></html>
|
||||
parameter and subsequent variable-length argument list.</p></div><div class="refsect1"><a name="idm46097881329664"></a><h2>See also</h2><p><a class="xref" href="refreq.html#ne_request_create">ne_request_create</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refreq.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="refresphdr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_request_create </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_get_response_header</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_addr_resolve</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="refconfig.html" title="neon-config"><link rel="next" href="refbuf.html" title="ne_buffer"></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">ne_addr_resolve</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refconfig.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refbuf.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refresolve"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_addr_resolve, ne_addr_result, ne_addr_first, ne_addr_next, ne_addr_error, ne_addr_destroy — functions to resolve hostnames to addresses</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_socket.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_sock_addr *<b class="fsfunc">ne_addr_resolve</b>(</code></td><td>const char *<var class="pdparam">hostname</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_addr_result</b>(</code></td><td>const ne_sock_addr *<var class="pdparam">addr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_inet_addr *<b class="fsfunc">ne_addr_first</b>(</code></td><td>ne_sock_addr *<var class="pdparam">addr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_inet_addr *<b class="fsfunc">ne_addr_next</b>(</code></td><td>ne_sock_addr *<var class="pdparam">addr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_addr_error</b>(</code></td><td>const ne_sock_addr *<var class="pdparam">addr</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">buffer</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">bufsiz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_addr_destroy</b>(</code></td><td>ne_sock_addr *<var class="pdparam">addr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200847882352"></a><h2>Description</h2><p>The <code class="function">ne_addr_resolve</code> function resolves
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_addr_resolve</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="refconfig.html" title="neon-config"><link rel="next" href="refbuf.html" title="ne_buffer"></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">ne_addr_resolve</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refconfig.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refbuf.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refresolve"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_addr_resolve, ne_addr_result, ne_addr_first, ne_addr_next, ne_addr_error, ne_addr_destroy — functions to resolve hostnames to addresses</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_socket.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_sock_addr *<b class="fsfunc">ne_addr_resolve</b>(</code></td><td>const char *<var class="pdparam">hostname</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_addr_result</b>(</code></td><td>const ne_sock_addr *<var class="pdparam">addr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_inet_addr *<b class="fsfunc">ne_addr_first</b>(</code></td><td>ne_sock_addr *<var class="pdparam">addr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_inet_addr *<b class="fsfunc">ne_addr_next</b>(</code></td><td>ne_sock_addr *<var class="pdparam">addr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_addr_error</b>(</code></td><td>const ne_sock_addr *<var class="pdparam">addr</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">buffer</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">bufsiz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_addr_destroy</b>(</code></td><td>ne_sock_addr *<var class="pdparam">addr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097882551120"></a><h2>Description</h2><p>The <code class="function">ne_addr_resolve</code> function resolves
|
||||
the given <code class="parameter">hostname</code>, returning an
|
||||
<em class="type">ne_sock_addr</em> object representing the address (or
|
||||
addresses) associated with the hostname. The
|
||||
@@ -25,10 +25,10 @@
|
||||
addresses. The <em class="type">ne_inet_addr</em> pointer returned by
|
||||
these functions can be passed to
|
||||
<code class="function">ne_sock_connect</code> to connect a socket.</p><p>After the address object has been used, it should be
|
||||
destroyed using <code class="function">ne_addr_destroy</code>.</p></div><div class="refsect1"><a name="idm46200847865040"></a><h2>Return value</h2><p><code class="function">ne_addr_resolve</code> returns a pointer to an
|
||||
destroyed using <code class="function">ne_addr_destroy</code>.</p></div><div class="refsect1"><a name="idm46097882533808"></a><h2>Return value</h2><p><code class="function">ne_addr_resolve</code> returns a pointer to an
|
||||
address object, and never <code class="literal">NULL</code>.
|
||||
<code class="function">ne_addr_error</code> returns the
|
||||
<code class="parameter">buffer</code> parameter .</p></div><div class="refsect1"><a name="idm46200847861520"></a><h2>Examples</h2><p>The code below prints out the set of addresses associated
|
||||
<code class="parameter">buffer</code> parameter .</p></div><div class="refsect1"><a name="idm46097882530288"></a><h2>Examples</h2><p>The code below prints out the set of addresses associated
|
||||
with the hostname <code class="literal">www.google.com</code>.</p><pre class="programlisting">ne_sock_addr *addr;
|
||||
char buf[256];
|
||||
|
||||
@@ -45,4 +45,4 @@ if (ne_addr_result(addr)) {
|
||||
putchar('\n');
|
||||
}
|
||||
ne_addr_destroy(addr);
|
||||
</pre></div><div class="refsect1"><a name="idm46200847859024"></a><h2>See also</h2><p><a class="xref" href="refiaddr.html#ne_iaddr_print">ne_iaddr_print</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refconfig.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="refbuf.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">neon-config </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_buffer</td></tr></table></div></body></html>
|
||||
</pre></div><div class="refsect1"><a name="idm46097882527792"></a><h2>See also</h2><p><a class="xref" href="refiaddr.html#ne_iaddr_print">ne_iaddr_print</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refconfig.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="refbuf.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">neon-config </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_buffer</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_get_response_header</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="refreqhdr.html" title="ne_add_request_header"><link rel="next" href="refopts.html" title="ne_set_useragent"></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">ne_get_response_header</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refreqhdr.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refopts.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refresphdr"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_get_response_header, ne_response_header_iterate — functions to access response headers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_get_response_header</b>(</code></td><td>ne_request *<var class="pdparam">request</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void *<b class="fsfunc">ne_response_header_iterate</b>(</code></td><td>ne_request *<var class="pdparam">request</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">cursor</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">value</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846734032"></a><h2>Description</h2><p>To retrieve the value of a response header field, the
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_get_response_header</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="refreqhdr.html" title="ne_add_request_header"><link rel="next" href="refopts.html" title="ne_set_useragent"></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">ne_get_response_header</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refreqhdr.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refopts.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refresphdr"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_get_response_header, ne_response_header_iterate — functions to access response headers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_get_response_header</b>(</code></td><td>ne_request *<var class="pdparam">request</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void *<b class="fsfunc">ne_response_header_iterate</b>(</code></td><td>ne_request *<var class="pdparam">request</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">cursor</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">value</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097881288176"></a><h2>Description</h2><p>To retrieve the value of a response header field, the
|
||||
<code class="function">ne_get_response_header</code> function can be used,
|
||||
and is given the name of the header to return.</p><p>To iterate over all the response headers returned, the
|
||||
<code class="function">ne_response_header_iterate</code> function can be
|
||||
@@ -8,14 +8,14 @@
|
||||
the <code class="parameter">name</code> and <code class="parameter">value</code>
|
||||
parameters, and returns a new cursor pointer which can be passed
|
||||
to <code class="function">ne_response_header_iterate</code> to retrieve the
|
||||
next header.</p></div><div class="refsect1"><a name="idm46200846727824"></a><h2>Return value</h2><p><code class="function">ne_get_response_header</code> returns a
|
||||
next header.</p></div><div class="refsect1"><a name="idm46097881281968"></a><h2>Return value</h2><p><code class="function">ne_get_response_header</code> returns a
|
||||
string, or <code class="literal">NULL</code> if no header with that name was given. If used
|
||||
during request processing, the return value pointer is valid only
|
||||
until the next call to <code class="function">ne_begin_request</code>, or
|
||||
else, until the request object is destroyed.</p><p>Likewise, the cursor, names, and values returned by
|
||||
<code class="function">ne_response_header_iterate</code> are only valid
|
||||
until the next call to <code class="function">ne_begin_request</code> or
|
||||
until the request object is destroyed.</p></div><div class="refsect1"><a name="idm46200846723056"></a><h2>Examples</h2><p>The following code will output the value of the
|
||||
until the request object is destroyed.</p></div><div class="refsect1"><a name="idm46097881277200"></a><h2>Examples</h2><p>The following code will output the value of the
|
||||
<code class="literal">Last-Modified</code> header for a resource:</p><pre class="programlisting">ne_request *req = ne_request_create(sess, "GET", "/foo.txt");
|
||||
if (ne_request_dispatch(req) == NE_OK) {
|
||||
const char *mtime = ne_get_response_header(req, "Last-Modified");
|
||||
@@ -23,4 +23,4 @@ if (ne_request_dispatch(req) == NE_OK) {
|
||||
printf("/foo.txt has last-modified value %s\n", mtime);
|
||||
}
|
||||
}
|
||||
ne_request_destroy(req);</pre></div><div class="refsect1"><a name="idm46200846720352"></a><h2>See also</h2><p><a class="xref" href="refreq.html#ne_request_create">ne_request_create</a>, <a class="xref" href="refreq.html#ne_request_destroy">ne_request_destroy</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refreqhdr.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="refopts.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_add_request_header </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_set_useragent</td></tr></table></div></body></html>
|
||||
ne_request_destroy(req);</pre></div><div class="refsect1"><a name="idm46097881274496"></a><h2>See also</h2><p><a class="xref" href="refreq.html#ne_request_create">ne_request_create</a>, <a class="xref" href="refreq.html#ne_request_destroy">ne_request_destroy</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refreqhdr.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="refopts.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_add_request_header </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_set_useragent</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_session_create</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="refalloc.html" title="ne_malloc"><link rel="next" href="refproxy.html" title="ne_session_proxy"></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">ne_session_create</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refalloc.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refproxy.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsess"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_session_create, ne_close_connection, ne_session_destroy — set up HTTP sessions</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_session *<b class="fsfunc">ne_session_create</b>(</code></td><td>const char *<var class="pdparam">scheme</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">hostname</var>, </td></tr><tr><td> </td><td>unsigned int <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_close_connection</b>(</code></td><td>ne_session *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_session_destroy</b>(</code></td><td>ne_session *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200847184032"></a><h2>Description</h2><p>An <em class="type">ne_session</em> object represents an HTTP
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_session_create</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="refalloc.html" title="ne_malloc"><link rel="next" href="refproxy.html" title="ne_session_proxy"></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">ne_session_create</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refalloc.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refproxy.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsess"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_session_create, ne_close_connection, ne_session_destroy — set up HTTP sessions</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_session *<b class="fsfunc">ne_session_create</b>(</code></td><td>const char *<var class="pdparam">scheme</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">hostname</var>, </td></tr><tr><td> </td><td>unsigned int <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_close_connection</b>(</code></td><td>ne_session *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_session_destroy</b>(</code></td><td>ne_session *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097881738176"></a><h2>Description</h2><p>An <em class="type">ne_session</em> object represents an HTTP
|
||||
session - a logical grouping of a sequence of HTTP requests made to a
|
||||
certain server. Any requests made using the session can use a
|
||||
persistent connection, share cached authentication credentials and any
|
||||
@@ -27,14 +27,14 @@ is a request active using the session.</p><p>Once a session has been completed,
|
||||
subsequent use of the session pointer produces undefined
|
||||
behaviour. The session object must not be destroyed until
|
||||
after all associated request objects have been
|
||||
destroyed.</p></div><div class="refsect1"><a name="idm46200847169872"></a><h2>Notes</h2><p>The hostname passed to
|
||||
destroyed.</p></div><div class="refsect1"><a name="idm46097881724016"></a><h2>Notes</h2><p>The hostname passed to
|
||||
<code class="function">ne_session_create</code> is resolved when the first
|
||||
request using the session is dispatched; a DNS resolution failure can
|
||||
only be detected at that time (using the <code class="literal">NE_LOOKUP</code>
|
||||
error code); see <a class="xref" href="refreq.html#ne_request_dispatch">ne_request_dispatch</a> for
|
||||
details.</p></div><div class="refsect1"><a name="idm46200847166816"></a><h2>Return Values</h2><p><code class="function">ne_session_create</code> will return
|
||||
a pointer to a new session object (and never <code class="literal">NULL</code>).</p></div><div class="refsect1"><a name="idm46200847164464"></a><h2>Examples</h2><p>Create and destroy a session:</p><pre class="programlisting">ne_session *sess;
|
||||
details.</p></div><div class="refsect1"><a name="idm46097881720960"></a><h2>Return Values</h2><p><code class="function">ne_session_create</code> will return
|
||||
a pointer to a new session object (and never <code class="literal">NULL</code>).</p></div><div class="refsect1"><a name="idm46097881718608"></a><h2>Examples</h2><p>Create and destroy a session:</p><pre class="programlisting">ne_session *sess;
|
||||
sess = ne_session_create("http", "host.example.com", 80);
|
||||
/* ... use sess ... */
|
||||
ne_session_destroy(sess);
|
||||
</pre></div><div class="refsect1"><a name="idm46200847162544"></a><h2>See Also</h2><p><a class="xref" href="refsslvfy.html#ne_ssl_set_verify">ne_ssl_set_verify</a>, <a class="xref" href="refsslca.html#ne_ssl_trust_cert">ne_ssl_trust_cert</a>, <a class="xref" href="refsockinit.html#ne_sock_init">ne_sock_init</a>, <a class="xref" href="refsessflags.html#ne_set_session_flag">ne_set_session_flag</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refalloc.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="refproxy.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_malloc </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_session_proxy</td></tr></table></div></body></html>
|
||||
</pre></div><div class="refsect1"><a name="idm46097881716688"></a><h2>See Also</h2><p><a class="xref" href="refsslvfy.html#ne_ssl_set_verify">ne_ssl_set_verify</a>, <a class="xref" href="refsslca.html#ne_ssl_trust_cert">ne_ssl_trust_cert</a>, <a class="xref" href="refsockinit.html#ne_sock_init">ne_sock_init</a>, <a class="xref" href="refsessflags.html#ne_set_session_flag">ne_set_session_flag</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refalloc.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="refproxy.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_malloc </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_session_proxy</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_session_flag</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="refproxy.html" title="ne_session_proxy"><link rel="next" href="refreq.html" title="ne_request_create"></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">ne_set_session_flag</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refproxy.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refreq.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsessflags"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_session_flag, ne_get_session_flag — set and retrieve session flags</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_session_flag</b>(</code></td><td>ne_session *<var class="pdparam">sess</var>, </td></tr><tr><td> </td><td>ne_session_flag <var class="pdparam">flag</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">value</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_get_session_flag</b>(</code></td><td>ne_session *<var class="pdparam">sess</var>, </td></tr><tr><td> </td><td>ne_session_flag <var class="pdparam">flag</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846974320"></a><h2>Description</h2><p>The <code class="function">ne_set_session_flag</code> function
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_session_flag</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="refproxy.html" title="ne_session_proxy"><link rel="next" href="refreq.html" title="ne_request_create"></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">ne_set_session_flag</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refproxy.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refreq.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsessflags"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_session_flag, ne_get_session_flag — set and retrieve session flags</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_session_flag</b>(</code></td><td>ne_session *<var class="pdparam">sess</var>, </td></tr><tr><td> </td><td>ne_session_flag <var class="pdparam">flag</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">value</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_get_session_flag</b>(</code></td><td>ne_session *<var class="pdparam">sess</var>, </td></tr><tr><td> </td><td>ne_session_flag <var class="pdparam">flag</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097881528464"></a><h2>Description</h2><p>The <code class="function">ne_set_session_flag</code> function
|
||||
enables or disables a session flag. Passing a non-zero
|
||||
<code class="parameter">value</code> argument enables the flag, and zero
|
||||
disables it.</p><p>The following flags are defined:</p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="constant">NE_SESSFLAG_PERSIST</code></span></p></td><td>disable this flag to prevent use of persistent
|
||||
@@ -12,6 +12,6 @@
|
||||
which does not correctly support the TLS SNI
|
||||
extension</td></tr><tr><td><p><span class="term"><code class="constant">NE_SESSFLAG_EXPECT100</code></span></p></td><td>enable this flag to enable the request flag
|
||||
<code class="constant">NE_REQFLAG_EXPECT100</code> for new
|
||||
requests</td></tr></tbody></table></div></div><div class="refsect1"><a name="idm46200846958528"></a><h2>Return value</h2><p>The <code class="function">ne_get_session_flag</code> function
|
||||
requests</td></tr></tbody></table></div></div><div class="refsect1"><a name="idm46097881512672"></a><h2>Return value</h2><p>The <code class="function">ne_get_session_flag</code> function
|
||||
returns zero if a flag is disabled, less than zero if the flag is
|
||||
not supported, or greater than zero if the flag is enabled.</p></div><div class="refsect1"><a name="idm46200846956592"></a><h2>See also</h2><p><a class="xref" href="refsess.html#ne_session_create">ne_session_create</a>, <a class="xref" href="refreqflags.html#ne_set_request_flag">ne_set_request_flag</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refproxy.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="refreq.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_session_proxy </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_request_create</td></tr></table></div></body></html>
|
||||
not supported, or greater than zero if the flag is enabled.</p></div><div class="refsect1"><a name="idm46097881510736"></a><h2>See also</h2><p><a class="xref" href="refsess.html#ne_session_create">ne_session_create</a>, <a class="xref" href="refreqflags.html#ne_set_request_flag">ne_set_request_flag</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refproxy.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="refreq.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_session_proxy </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_request_create</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_shave</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="refauth.html" title="ne_set_server_auth"><link rel="next" href="refsockinit.html" title="ne_sock_init"></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">ne_shave</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refauth.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsockinit.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refshave"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_shave — trim whitespace from a string</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_shave</b>(</code></td><td>char *<var class="pdparam">str</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">whitespace</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846415344"></a><h2>Description</h2><p><code class="function">ne_shave</code> returns a portion of
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_shave</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="refauth.html" title="ne_set_server_auth"><link rel="next" href="refsockinit.html" title="ne_sock_init"></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">ne_shave</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refauth.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsockinit.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refshave"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_shave — trim whitespace from a string</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_shave</b>(</code></td><td>char *<var class="pdparam">str</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">whitespace</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097880969584"></a><h2>Description</h2><p><code class="function">ne_shave</code> returns a portion of
|
||||
<code class="parameter">str</code> with any leading or trailing characters in
|
||||
the <code class="parameter">whitespace</code> array removed.
|
||||
<code class="parameter">str</code> may be modified. Note that the return
|
||||
value may not be equal to <code class="parameter">str</code>.</p></div><div class="refsect1"><a name="idm46200846411200"></a><h2>Examples</h2><p>The following code segment will output
|
||||
value may not be equal to <code class="parameter">str</code>.</p></div><div class="refsect1"><a name="idm46097880965440"></a><h2>Examples</h2><p>The following code segment will output
|
||||
<code class="literal">"fish"</code>:</p><pre class="programlisting">char s[] = ".!.fish!.!";
|
||||
puts(ne_shave(s, ".!"));</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refauth.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="refsockinit.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_set_server_auth </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_sock_init</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_sock_init</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="refshave.html" title="ne_shave"><link rel="next" href="refcert.html" title="ne_ssl_cert_identity"></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">ne_sock_init</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refshave.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refcert.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsockinit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_sock_init, ne_sock_exit — perform library initialization</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_socket.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_sock_init</b>(</code></td><td><code>void)</code>;</td><td> </td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_sock_exit</b>(</code></td><td><code>void)</code>;</td><td> </td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846383456"></a><h2>Description</h2><p>In some platforms and configurations, neon may be using
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_sock_init</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="refshave.html" title="ne_shave"><link rel="next" href="refcert.html" title="ne_ssl_cert_identity"></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">ne_sock_init</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refshave.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refcert.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsockinit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_sock_init, ne_sock_exit — perform library initialization</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_socket.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_sock_init</b>(</code></td><td><code>void)</code>;</td><td> </td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_sock_exit</b>(</code></td><td><code>void)</code>;</td><td> </td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097880937696"></a><h2>Description</h2><p>In some platforms and configurations, neon may be using
|
||||
some socket or SSL libraries which require global initialization
|
||||
before use. To perform this initialization, the
|
||||
<code class="function">ne_sock_init</code> function must be called before
|
||||
@@ -25,7 +25,7 @@
|
||||
section. Otherwise, it is not safe to use neon with SSL in a
|
||||
multi-threaded process. The <a class="xref" href="reffeat.html#ne_has_support">ne_has_support</a>
|
||||
function can be used to determine whether neon is built to
|
||||
enable thread-safety support in the SSL library.</p><div class="refsect2"><a name="idm46200846371984"></a><h3>Thread-safe SSL with OpenSSL</h3><p>neon follows two simple rules when dealing with the
|
||||
enable thread-safety support in the SSL library.</p><div class="refsect2"><a name="idm46097880926224"></a><h3>Thread-safe SSL with OpenSSL</h3><p>neon follows two simple rules when dealing with the
|
||||
OpenSSL locking callbacks:
|
||||
|
||||
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><code class="function">ne_sock_init</code> will set
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
Applications and libraries should be able to co-operate to
|
||||
ensure that SSL use is always thread-safe if similar rules are
|
||||
always followed.</p></div><div class="refsect2"><a name="idm46200846367392"></a><h3>Thread-safe SSL with GnuTLS</h3><p>The cryptography library used by GnuTLS, libgcrypt, only
|
||||
always followed.</p></div><div class="refsect2"><a name="idm46097880921632"></a><h3>Thread-safe SSL with GnuTLS</h3><p>The cryptography library used by GnuTLS, libgcrypt, only
|
||||
supports an initialization operation to register thread-safety
|
||||
callbacks. <code class="function">ne_sock_init</code> will register the
|
||||
thread-safe locking callbacks on first use;
|
||||
@@ -46,6 +46,6 @@
|
||||
unsafe to dynamically unload neon from the process if neon
|
||||
is configured with thread-safe SSL support enabled (since the
|
||||
callbacks would be left pointing at unmapped memory once neon
|
||||
is unloaded).</p></div></div><div class="refsect1"><a name="idm46200846364224"></a><h2>Return value</h2><p><code class="function">ne_sock_init</code> returns zero on success,
|
||||
is unloaded).</p></div></div><div class="refsect1"><a name="idm46097880918464"></a><h2>Return value</h2><p><code class="function">ne_sock_init</code> returns zero on success,
|
||||
or non-zero on error. If an error occurs, no further use of the
|
||||
neon library should be attempted.</p></div><div class="refsect1"><a name="idm46200846362320"></a><h2>See also</h2><p><a class="xref" href="refneon.html" title="neon"><span class="refentrytitle">neon</span></a>, <a class="xref" href="reffeat.html" title="ne_has_support"><span class="refentrytitle">ne_has_support</span></a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refshave.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="refcert.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_shave </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_ssl_cert_identity</td></tr></table></div></body></html>
|
||||
neon library should be attempted.</p></div><div class="refsect1"><a name="idm46097880916560"></a><h2>See also</h2><p><a class="xref" href="refneon.html" title="neon"><span class="refentrytitle">neon</span></a>, <a class="xref" href="reffeat.html" title="ne_has_support"><span class="refentrytitle">ne_has_support</span></a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refshave.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="refcert.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_shave </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_ssl_cert_identity</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_trust_cert</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="refssldname.html" title="ne_ssl_dname"><link rel="next" href="refsslvfy.html" title="ne_ssl_set_verify"></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">ne_ssl_trust_cert</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refssldname.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsslvfy.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsslca"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_trust_cert, ne_ssl_trust_default_ca — functions to indicate that certificates are trusted</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_ssl_trust_cert</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_ssl_trust_default_ca</b>(</code></td><td>ne_session *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846100144"></a><h2>Description</h2><p>To indicate that a given certificate is trusted by the
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_trust_cert</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="refssldname.html" title="ne_ssl_dname"><link rel="next" href="refsslvfy.html" title="ne_ssl_set_verify"></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">ne_ssl_trust_cert</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refssldname.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsslvfy.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsslca"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_trust_cert, ne_ssl_trust_default_ca — functions to indicate that certificates are trusted</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_ssl_trust_cert</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_ssl_trust_default_ca</b>(</code></td><td>ne_session *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097880654384"></a><h2>Description</h2><p>To indicate that a given certificate is trusted by the
|
||||
user, the certificate object can be passed to
|
||||
<code class="function">ne_ssl_trust_cert</code>. The certificate object is
|
||||
duplicated internally and can subsequently be destroyed.</p><p>The SSL library in use by neon may include a default
|
||||
set of CA certificates; calling the
|
||||
<code class="function">ne_ssl_trust_default_ca</code> function will indicate
|
||||
that these CAs are trusted by the user.</p></div><div class="refsect1"><a name="idm46200846097136"></a><h2>Examples</h2><p>Load the CA certificate stored in <code class="filename">/path/to/cacert.pem</code>:</p><pre class="programlisting">ne_session *sess = ne_session_create(...);
|
||||
that these CAs are trusted by the user.</p></div><div class="refsect1"><a name="idm46097880651376"></a><h2>Examples</h2><p>Load the CA certificate stored in <code class="filename">/path/to/cacert.pem</code>:</p><pre class="programlisting">ne_session *sess = ne_session_create(...);
|
||||
ne_ssl_certificate *cert = ne_ssl_cert_read("/path/to/cacert.pem");
|
||||
|
||||
if (cert) {
|
||||
@@ -12,4 +12,4 @@ if (cert) {
|
||||
ne_ssl_cert_free(cert);
|
||||
} else {
|
||||
printf("Could not load CA cert: %s\n", ne_get_error(sess));
|
||||
}</pre></div><div class="refsect1"><a name="idm46200846094464"></a><h2>See also</h2><p><a class="xref" href="refsslcertio.html#ne_ssl_cert_read">ne_ssl_cert_read</a>, <a class="xref" href="refsslcertio.html#ne_ssl_cert_import">ne_ssl_cert_import</a>, <a class="xref" href="refsslcert2.html#ne_ssl_cert_free">ne_ssl_cert_free</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refssldname.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="refsslvfy.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_ssl_dname </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_ssl_set_verify</td></tr></table></div></body></html>
|
||||
}</pre></div><div class="refsect1"><a name="idm46097880648704"></a><h2>See also</h2><p><a class="xref" href="refsslcertio.html#ne_ssl_cert_read">ne_ssl_cert_read</a>, <a class="xref" href="refsslcertio.html#ne_ssl_cert_import">ne_ssl_cert_import</a>, <a class="xref" href="refsslcert2.html#ne_ssl_cert_free">ne_ssl_cert_free</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refssldname.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="refsslvfy.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_ssl_dname </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_ssl_set_verify</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_cert_cmp</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="refcert.html" title="ne_ssl_cert_identity"><link rel="next" href="refsslcertio.html" title="ne_ssl_cert_read"></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">ne_ssl_cert_cmp</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refcert.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsslcertio.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsslcert2"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_cert_cmp, ne_ssl_cert_free — functions to operate on certificate objects</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_header.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_ssl_cert_cmp</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">c1</var>, </td></tr><tr><td> </td><td>const ne_ssl_certificate *<var class="pdparam">c2</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_ssl_cert_free</b>(</code></td><td>ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846247312"></a><h2>Description</h2><p>The <code class="function">ne_ssl_cert_cmp</code> function can be
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_cert_cmp</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="refcert.html" title="ne_ssl_cert_identity"><link rel="next" href="refsslcertio.html" title="ne_ssl_cert_read"></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">ne_ssl_cert_cmp</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refcert.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsslcertio.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsslcert2"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_cert_cmp, ne_ssl_cert_free — functions to operate on certificate objects</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_header.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_ssl_cert_cmp</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">c1</var>, </td></tr><tr><td> </td><td>const ne_ssl_certificate *<var class="pdparam">c2</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_ssl_cert_free</b>(</code></td><td>ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097880801680"></a><h2>Description</h2><p>The <code class="function">ne_ssl_cert_cmp</code> function can be
|
||||
used to compare two certificate objects; it returns zero if they
|
||||
refer to the same certificate, and non-zero otherwise.</p><p>The <code class="function">ne_ssl_cert_free</code> function can be
|
||||
used to destroy a certificate object when it is no longer
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_cert_read</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="refsslcert2.html" title="ne_ssl_cert_cmp"><link rel="next" href="refssldname.html" title="ne_ssl_dname"></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">ne_ssl_cert_read</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsslcert2.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refssldname.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsslcertio"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_cert_read, ne_ssl_cert_write, ne_ssl_cert_import, ne_ssl_cert_export — functions to read or write certificates to and from files or strings</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_ssl_certificate *<b class="fsfunc">ne_ssl_cert_read</b>(</code></td><td>const char *<var class="pdparam">filename</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_ssl_cert_write</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">filename</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_ssl_certificate *<b class="fsfunc">ne_ssl_cert_import</b>(</code></td><td>const char *<var class="pdparam">data</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_ssl_cert_export</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846212112"></a><h2>Description</h2><p>The <code class="function">ne_ssl_cert_write</code> function writes a
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_cert_read</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="refsslcert2.html" title="ne_ssl_cert_cmp"><link rel="next" href="refssldname.html" title="ne_ssl_dname"></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">ne_ssl_cert_read</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsslcert2.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refssldname.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsslcertio"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_cert_read, ne_ssl_cert_write, ne_ssl_cert_import, ne_ssl_cert_export — functions to read or write certificates to and from files or strings</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_ssl_certificate *<b class="fsfunc">ne_ssl_cert_read</b>(</code></td><td>const char *<var class="pdparam">filename</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_ssl_cert_write</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">filename</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_ssl_certificate *<b class="fsfunc">ne_ssl_cert_import</b>(</code></td><td>const char *<var class="pdparam">data</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_ssl_cert_export</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097880766352"></a><h2>Description</h2><p>The <code class="function">ne_ssl_cert_write</code> function writes a
|
||||
certificate to a file using the PEM encoding. The
|
||||
<code class="function">ne_ssl_cert_export</code> function returns a
|
||||
base64-encoded <code class="literal">NUL</code>-terminated string representing the
|
||||
@@ -9,14 +9,14 @@
|
||||
returns a certificate object from a base64-encoded string,
|
||||
<code class="parameter">data</code>, as returned by
|
||||
<code class="function">ne_ssl_cert_export</code>. The certificate object
|
||||
returned by these functions should be destroyed using <a class="xref" href="refsslcert2.html#ne_ssl_cert_free">ne_ssl_cert_free</a> after use.</p></div><div class="refsect1"><a name="idm46200846204640"></a><h2>Return value</h2><p><code class="function">ne_ssl_cert_read</code> returns <code class="literal">NULL</code> if a
|
||||
returned by these functions should be destroyed using <a class="xref" href="refsslcert2.html#ne_ssl_cert_free">ne_ssl_cert_free</a> after use.</p></div><div class="refsect1"><a name="idm46097880758880"></a><h2>Return value</h2><p><code class="function">ne_ssl_cert_read</code> returns <code class="literal">NULL</code> if a
|
||||
certificate could not be read from the file.
|
||||
<code class="function">ne_ssl_cert_write</code> returns non-zero if the
|
||||
certificate could not be written to the file.
|
||||
<code class="function">ne_ssl_cert_export</code> always returns a
|
||||
<code class="literal">NUL</code>-terminated string, and never <code class="literal">NULL</code>.
|
||||
<code class="function">ne_ssl_cert_import</code> returns <code class="literal">NULL</code> if the
|
||||
string was not a valid base64-encoded certificate.</p></div><div class="refsect1"><a name="idm46200846198368"></a><h2>Encoding Formats</h2><p>The string produced by
|
||||
string was not a valid base64-encoded certificate.</p></div><div class="refsect1"><a name="idm46097880752608"></a><h2>Encoding Formats</h2><p>The string produced by
|
||||
<code class="function">ne_ssl_cert_export</code> is the base64 encoding of
|
||||
the DER representation of the certificate. The file written by
|
||||
<code class="function">ne_ssl_cert_write</code> uses the PEM format: this
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_dname</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="refsslcertio.html" title="ne_ssl_cert_read"><link rel="next" href="refsslca.html" title="ne_ssl_trust_cert"></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">ne_ssl_dname</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsslcertio.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsslca.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refssldname"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_readable_dname, ne_ssl_dname_cmp — SSL distinguished name handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_ssl_readable_dname</b>(</code></td><td>const ne_ssl_dname *<var class="pdparam">dname</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_ssl_dname_cmp</b>(</code></td><td>const ne_ssl_dname *<var class="pdparam">dn1</var>, </td></tr><tr><td> </td><td>const ne_ssl_dname *<var class="pdparam">dn2</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846147312"></a><h2>Description</h2><p>The <code class="function">ne_ssl_readable_dname</code> function
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_dname</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="refsslcertio.html" title="ne_ssl_cert_read"><link rel="next" href="refsslca.html" title="ne_ssl_trust_cert"></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">ne_ssl_dname</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsslcertio.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsslca.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refssldname"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_readable_dname, ne_ssl_dname_cmp — SSL distinguished name handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_ssl_readable_dname</b>(</code></td><td>const ne_ssl_dname *<var class="pdparam">dname</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_ssl_dname_cmp</b>(</code></td><td>const ne_ssl_dname *<var class="pdparam">dn1</var>, </td></tr><tr><td> </td><td>const ne_ssl_dname *<var class="pdparam">dn2</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097880701552"></a><h2>Description</h2><p>The <code class="function">ne_ssl_readable_dname</code> function
|
||||
creates a single-line, human-readable string out of an
|
||||
<em class="type">ne_ssl_dname</em> object. The returned string is
|
||||
<code class="function">malloc</code>()-allocated, and must be
|
||||
<code class="function">free</code>()d by the caller.</p><p>The <code class="function">ne_ssl_dname_cmp</code> function
|
||||
compares two distinguished names, and returns zero if they are
|
||||
equal, or non-zero otherwise.</p></div><div class="refsect1"><a name="idm46200846142768"></a><h2>Return value</h2><p><code class="function">ne_ssl_readable_dname</code> returns a <code class="function">malloc</code>-allocated
|
||||
string, and never <code class="literal">NULL</code>.</p></div><div class="refsect1"><a name="idm46200846139872"></a><h2>Examples</h2><p>See <a class="xref" href="refcert.html#ne_ssl_cert_subject">ne_ssl_cert_subject</a> for an example
|
||||
use of <code class="function">ne_ssl_readable_dname</code>.</p></div><div class="refsect1"><a name="idm46200846137600"></a><h2>See also</h2><p><a class="xref" href="refcert.html#ne_ssl_cert_subject">ne_ssl_cert_subject</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsslcertio.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="refsslca.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_ssl_cert_read </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_ssl_trust_cert</td></tr></table></div></body></html>
|
||||
equal, or non-zero otherwise.</p></div><div class="refsect1"><a name="idm46097880697008"></a><h2>Return value</h2><p><code class="function">ne_ssl_readable_dname</code> returns a <code class="function">malloc</code>-allocated
|
||||
string, and never <code class="literal">NULL</code>.</p></div><div class="refsect1"><a name="idm46097880694112"></a><h2>Examples</h2><p>See <a class="xref" href="refcert.html#ne_ssl_cert_subject">ne_ssl_cert_subject</a> for an example
|
||||
use of <code class="function">ne_ssl_readable_dname</code>.</p></div><div class="refsect1"><a name="idm46097880691840"></a><h2>See also</h2><p><a class="xref" href="refcert.html#ne_ssl_cert_subject">ne_ssl_cert_subject</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsslcertio.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="refsslca.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_ssl_cert_read </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_ssl_trust_cert</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_set_verify</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="refsslca.html" title="ne_ssl_trust_cert"><link rel="next" href="refclicert.html" title="ne_ssl_client_cert"></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">ne_ssl_set_verify</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsslca.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refclicert.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsslvfy"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_set_verify — register an SSL certificate verification callback</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">typedef int <b class="fsfunc">ne_ssl_verify_fn</b>(</code></td><td>void *<var class="pdparam">userdata</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">failures</var>, </td></tr><tr><td> </td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_ssl_set_verify</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>ne_ssl_verify_fn <var class="pdparam">verify_fn</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200846056016"></a><h2>Description</h2><p>To enable manual SSL certificate verification, a
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_set_verify</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="refsslca.html" title="ne_ssl_trust_cert"><link rel="next" href="refclicert.html" title="ne_ssl_client_cert"></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">ne_ssl_set_verify</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsslca.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refclicert.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsslvfy"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_set_verify — register an SSL certificate verification callback</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">typedef int <b class="fsfunc">ne_ssl_verify_fn</b>(</code></td><td>void *<var class="pdparam">userdata</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">failures</var>, </td></tr><tr><td> </td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_ssl_set_verify</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>ne_ssl_verify_fn <var class="pdparam">verify_fn</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097880610640"></a><h2>Description</h2><p>To enable manual SSL certificate verification, a
|
||||
callback can be registered using
|
||||
<code class="function">ne_ssl_set_verify</code>. If such a callback is not
|
||||
registered, when a connection is established to an SSL server which
|
||||
@@ -18,9 +18,9 @@ callback represents the certificate which was presented by the server.
|
||||
If the server presented a chain of certificates, the chain can be
|
||||
accessed using <a class="xref" href="refcert.html#ne_ssl_cert_signedby">ne_ssl_cert_signedby</a>. The
|
||||
<code class="parameter">cert</code> object given is not valid after the
|
||||
callback returns.</p></div><div class="refsect1"><a name="idm46200846041936"></a><h2>Return value</h2><p>The verification callback must return zero to indicate
|
||||
callback returns.</p></div><div class="refsect1"><a name="idm46097880596336"></a><h2>Return value</h2><p>The verification callback must return zero to indicate
|
||||
that the certificate should be trusted; and non-zero otherwise (in
|
||||
which case, the connection will fail).</p></div><div class="refsect1"><a name="idm46200846040608"></a><h2>Examples</h2><p>The following code implements an example verification
|
||||
which case, the connection will fail).</p></div><div class="refsect1"><a name="idm46097880595008"></a><h2>Examples</h2><p>The following code implements an example verification
|
||||
callback, using the <code class="function">dump_cert</code> function
|
||||
from <a class="xref" href="refcert.html#ne_ssl_cert_subject">ne_ssl_cert_subject</a> to display
|
||||
certification information. Notice that the hostname of the
|
||||
@@ -63,4 +63,4 @@ main(...)
|
||||
ne_session *sess = ne_session_create("https", "some.host.name", 443);
|
||||
ne_ssl_set_verify(sess, my_verify, "some.host.name");
|
||||
...
|
||||
}</pre></div><div class="refsect1"><a name="idm46200846035184"></a><h2>See also</h2><p><a class="xref" href="refsslca.html#ne_ssl_trust_cert">ne_ssl_trust_cert</a>, <a class="xref" href="refssldname.html#ne_ssl_readable_dname">ne_ssl_readable_dname</a>, <a class="xref" href="refcert.html#ne_ssl_cert_subject">ne_ssl_cert_subject</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsslca.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="refclicert.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_ssl_trust_cert </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_ssl_client_cert</td></tr></table></div></body></html>
|
||||
}</pre></div><div class="refsect1"><a name="idm46097880589584"></a><h2>See also</h2><p><a class="xref" href="refsslca.html#ne_ssl_trust_cert">ne_ssl_trust_cert</a>, <a class="xref" href="refssldname.html#ne_ssl_readable_dname">ne_ssl_readable_dname</a>, <a class="xref" href="refcert.html#ne_ssl_cert_subject">ne_ssl_cert_subject</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsslca.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="refclicert.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_ssl_trust_cert </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_ssl_client_cert</td></tr></table></div></body></html>
|
||||
|
||||
@@ -4,7 +4,7 @@ typedef struct {
|
||||
int major_version, minor_version;
|
||||
int code, klass;
|
||||
const char *reason_phrase;
|
||||
} <em class="type">ne_status</em>;</pre></div></div><div class="refsect1"><a name="idm46200845892192"></a><h2>Description</h2><p>An <em class="type">ne_status</em> type represents an HTTP
|
||||
} <em class="type">ne_status</em>;</pre></div></div><div class="refsect1"><a name="idm46097880446752"></a><h2>Description</h2><p>An <em class="type">ne_status</em> type represents an HTTP
|
||||
response status; used in response messages giving a result of request.
|
||||
The <em class="structfield"><code>major_version</code></em> and
|
||||
<em class="structfield"><code>minor_version</code></em> fields give the HTTP version
|
||||
@@ -12,11 +12,11 @@ supported by the server issuing the response. The
|
||||
<em class="structfield"><code>code</code></em> field gives the status code of the
|
||||
result (lying between 100 and 999 inclusive), and the
|
||||
<em class="structfield"><code>klass</code></em> field gives the
|
||||
class<a href="#ftn.idm46200845889152" class="footnote" name="idm46200845889152"><sup class="footnote">[2]</sup></a>, which is equal to the most significant digit
|
||||
class<a href="#ftn.idm46097880443712" class="footnote" name="idm46097880443712"><sup class="footnote">[2]</sup></a>, which is equal to the most significant digit
|
||||
of the status.</p><p>There are five classes of HTTP status code defined by
|
||||
RFC2616:</p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="literal">1xx</code></span></p></td><td>Informational response.</td></tr><tr><td><p><span class="term"><code class="literal">2xx</code></span></p></td><td>Success: the operation was successful</td></tr><tr><td><p><span class="term"><code class="literal">3xx</code></span></p></td><td>Redirection</td></tr><tr><td><p><span class="term"><code class="literal">4xx</code></span></p></td><td>Client
|
||||
error: the request made was incorrect in some
|
||||
manner.</td></tr><tr><td><p><span class="term"><code class="literal">5xx</code></span></p></td><td>Server error</td></tr></tbody></table></div></div><div class="refsect1"><a name="idm46200845877984"></a><h2>See also</h2><p><a class="xref" href="refgetst.html#ne_get_status">ne_get_status</a>.</p></div><div class="footnotes"><br><hr style="width:100; text-align:left;margin-left: 0"><div id="ftn.idm46200845889152" class="footnote"><p><a href="#idm46200845889152" class="para"><sup class="para">[2] </sup></a>the field is named <span class="quote">“<span class="quote">klass</span>”</span> not
|
||||
manner.</td></tr><tr><td><p><span class="term"><code class="literal">5xx</code></span></p></td><td>Server error</td></tr></tbody></table></div></div><div class="refsect1"><a name="idm46097880432544"></a><h2>See also</h2><p><a class="xref" href="refgetst.html#ne_get_status">ne_get_status</a>.</p></div><div class="footnotes"><br><hr style="width:100; text-align:left;margin-left: 0"><div id="ftn.idm46097880443712" class="footnote"><p><a href="#idm46097880443712" class="para"><sup class="para">[2] </sup></a>the field is named <span class="quote">“<span class="quote">klass</span>”</span> not
|
||||
<span class="quote">“<span class="quote">class</span>”</span> so that the header can be used from a C++
|
||||
program, in which <span class="quote">“<span class="quote">class</span>”</span> is a reserved
|
||||
word)</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refclicert.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="reftok.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_ssl_client_cert </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_token</td></tr></table></div></body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_token</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="refstatus.html" title="ne_status"><link rel="next" href="refvers.html" title="ne_version_match"></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">ne_token</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refstatus.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refvers.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="reftok"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_token, ne_qtoken — string tokenizers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_token</b>(</code></td><td>char **<var class="pdparam">str</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">sep</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_qtoken</b>(</code></td><td>char **<var class="pdparam">str</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">sep</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">quotes</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200845840144"></a><h2>Description</h2><p><code class="function">ne_token</code> and
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_token</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="refstatus.html" title="ne_status"><link rel="next" href="refvers.html" title="ne_version_match"></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">ne_token</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refstatus.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refvers.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="reftok"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_token, ne_qtoken — string tokenizers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_token</b>(</code></td><td>char **<var class="pdparam">str</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">sep</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_qtoken</b>(</code></td><td>char **<var class="pdparam">str</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">sep</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">quotes</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097880394704"></a><h2>Description</h2><p><code class="function">ne_token</code> and
|
||||
<code class="function">ne_qtoken</code> tokenize the string at the location
|
||||
stored in the pointer <code class="parameter">str</code>. Each time the
|
||||
function is called, it returns the next token, and modifies the
|
||||
@@ -10,7 +10,7 @@ string are skipped when searching for a separator. A quoted segment
|
||||
is enclosed in a pair of one of the characters given in the
|
||||
<code class="parameter">quotes</code> string.</p><p>The string being tokenized is modified each time
|
||||
the tokenizing function is called; replacing the next separator
|
||||
character with a <code class="literal">NUL</code> terminator.</p></div><div class="refsect1"><a name="idm46200845832432"></a><h2>Examples</h2><p>The following function prints out each token in a
|
||||
character with a <code class="literal">NUL</code> terminator.</p></div><div class="refsect1"><a name="idm46097880386992"></a><h2>Examples</h2><p>The following function prints out each token in a
|
||||
comma-separated string <code class="parameter">list</code>, which is
|
||||
modified in-place:</p><pre class="programlisting">static void splitter(char *list)
|
||||
{
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_version_match</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="reftok.html" title="ne_token"><link rel="next" href="refxml.html" title="ne_xml_create"></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">ne_version_match</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="reftok.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refxml.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refvers"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_version_match, ne_version_string — library versioning</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_utils.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_version_match</b>(</code></td><td>int <var class="pdparam">major</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">minor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_version_string</b>(</code></td><td><code>void)</code>;</td><td> </td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200845794320"></a><h2>Description</h2><p>The <code class="function">ne_version_match</code> function returns
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_version_match</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="reftok.html" title="ne_token"><link rel="next" href="refxml.html" title="ne_xml_create"></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">ne_version_match</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="reftok.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refxml.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refvers"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_version_match, ne_version_string — library versioning</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_utils.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_version_match</b>(</code></td><td>int <var class="pdparam">major</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">minor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_version_string</b>(</code></td><td><code>void)</code>;</td><td> </td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097880348880"></a><h2>Description</h2><p>The <code class="function">ne_version_match</code> function returns
|
||||
non-zero if the library version is not of major version
|
||||
<code class="parameter">major</code>, or the minor version is less than
|
||||
<code class="parameter">minor</code>. For neon versions 0.x, every
|
||||
minor version is assumed to be incompatible with every other minor
|
||||
version.</p><p>The <code class="function">ne_version_string</code> function returns
|
||||
a string giving the library version.</p></div><div class="refsect1"><a name="idm46200845789904"></a><h2>Examples</h2><p>To require neon 1.x, version 1.2 or later:</p><pre class="programlisting">if (ne_version_match(1, 2)) {
|
||||
a string giving the library version.</p></div><div class="refsect1"><a name="idm46097880344464"></a><h2>Examples</h2><p>To require neon 1.x, version 1.2 or later:</p><pre class="programlisting">if (ne_version_match(1, 2)) {
|
||||
printf("Library version out of date: 1.2 required, found %s.",
|
||||
ne_version_string());
|
||||
exit(1);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_xml_create</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="refvers.html" title="ne_version_match"><link rel="next" href="biblio.html" title="Bibliography"></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">ne_xml_create</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refvers.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="biblio.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refxml"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_xml_create, ne_xml_destroy — create and destroy an XML parser</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_xml.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_xml_parser *<b class="fsfunc">ne_xml_create</b>(</code></td><td><code>void)</code>;</td><td> </td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_xml_destroy</b>(</code></td><td>ne_xml_parser *<var class="pdparam">parser</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46200845760112"></a><h2>Description</h2><p>The <code class="function">ne_xml_create</code> function creates an
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_xml_create</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="refvers.html" title="ne_version_match"><link rel="next" href="biblio.html" title="Bibliography"></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">ne_xml_create</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refvers.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="biblio.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refxml"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_xml_create, ne_xml_destroy — create and destroy an XML parser</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_xml.h></pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_xml_parser *<b class="fsfunc">ne_xml_create</b>(</code></td><td><code>void)</code>;</td><td> </td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_xml_destroy</b>(</code></td><td>ne_xml_parser *<var class="pdparam">parser</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm46097880314672"></a><h2>Description</h2><p>The <code class="function">ne_xml_create</code> function creates an
|
||||
XML parser object, which can be used for parsing XML documents
|
||||
using stacked SAX handlers.</p></div><div class="refsect1"><a name="idm46200845758208"></a><h2>Return value</h2><p><code class="function">ne_xml_create</code> returns a pointer to an
|
||||
XML parser object, and never <code class="literal">NULL</code></p></div><div class="refsect1"><a name="idm46200845756064"></a><h2>See also</h2><p>XXX</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refvers.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="biblio.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_version_match </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Bibliography</td></tr></table></div></body></html>
|
||||
using stacked SAX handlers.</p></div><div class="refsect1"><a name="idm46097880312768"></a><h2>Return value</h2><p><code class="function">ne_xml_create</code> returns a pointer to an
|
||||
XML parser object, and never <code class="literal">NULL</code></p></div><div class="refsect1"><a name="idm46097880310624"></a><h2>See also</h2><p>XXX</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refvers.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="biblio.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_version_match </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Bibliography</td></tr></table></div></body></html>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
application) can be tricked into accessing an HTTP server which is
|
||||
controlled by an attacker. This section documents various types of
|
||||
possible attack and describes what mitigation is used in
|
||||
neon.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46200853782144"></a>CPU or memory consumption attacks</h3></div></div></div><p>neon uses fixed resource limits to prevent the following
|
||||
neon.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46097888446992"></a>CPU or memory consumption attacks</h3></div></div></div><p>neon uses fixed resource limits to prevent the following
|
||||
attacks:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>memory/CPU consumption attack using an unbounded number
|
||||
of response header fields</p></li><li class="listitem"><p>memory consumption attack using an unbounded length of
|
||||
individual response header lines (or continuation
|
||||
@@ -17,7 +17,7 @@
|
||||
must be mitigated at application level. Memory consumption in
|
||||
neon itself is fixed and is not proportional to the response
|
||||
size.</p><p>Test cases for all the above attacks are present in the
|
||||
neon test suite.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46200853773616"></a>SSL/TLS connection security</h3></div></div></div><p>When using a connection secured by SSL/TLS, it is necessary
|
||||
neon test suite.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46097888494800"></a>SSL/TLS connection security</h3></div></div></div><p>When using a connection secured by SSL/TLS, it is necessary
|
||||
for clients to verify that the X.509 certificate presented by the
|
||||
server matches the server's expected identity. The algorithm
|
||||
required for this purpose is described in RFC 2818 and RFC 3280,
|
||||
@@ -35,14 +35,14 @@
|
||||
present the certificate details to a user for manual/off-line
|
||||
verification, if possible.</p><p>Test cases for the correctness of the implementation of the
|
||||
identity verification algorithm are present in the neon test
|
||||
suite.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46200848285312"></a>Control character insertion in error messages</h3></div></div></div><p>Where error messages (as returned by
|
||||
suite.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46097882952960"></a>Control character insertion in error messages</h3></div></div></div><p>Where error messages (as returned by
|
||||
(<a class="xref" href="referr.html#ne_get_error">ne_get_error</a>) contain data supplied by the
|
||||
server, the untrusted data is sanitised to remove both control
|
||||
characters and non-ASCII characters. This prevents any attacks
|
||||
where such error messages are exposed to the user and can
|
||||
potentially distort the presentation of the interface (for
|
||||
example, through the use of a carriage return character in a text
|
||||
user interface).</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46200848283264"></a>Attacks against authentication credentials</h3></div></div></div><p>Authentication credentials can be compromised by a
|
||||
user interface).</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm46097882950912"></a>Attacks against authentication credentials</h3></div></div></div><p>Authentication credentials can be compromised by a
|
||||
"downgrade attack" by an active attacker; for example, where a
|
||||
MITM presents a Basic authentication challenge in place of the
|
||||
server's Digest challenge. neon mitigates these attacks by
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_add_request_header
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_ADD_REQUEST_HEADE" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_ADD_REQUEST_HEADE" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_addr_resolve
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_ADDR_RESOLVE" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_ADDR_RESOLVE" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_buffer
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_BUFFER" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_BUFFER" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
@@ -49,7 +49,7 @@ The
|
||||
type represents an expandable memory buffer for holding
|
||||
NUL\-terminated strings\&. The
|
||||
\fIdata\fR
|
||||
field points to the beginnning of the string, the length of which is given by the
|
||||
field points to the beginning of the string, the length of which is given by the
|
||||
\fIused\fR
|
||||
field\&. The current size of memory allocated is given by the
|
||||
\fIlength\fR
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_buffer_append
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_BUFFER_APPEND" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_BUFFER_APPEND" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_buffer_clear
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_BUFFER_CLEAR" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_BUFFER_CLEAR" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_buffer_create
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_BUFFER_CREATE" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_BUFFER_CREATE" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_buffer_destroy
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_BUFFER_DESTROY" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_BUFFER_DESTROY" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_get_error
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_GET_ERROR" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_GET_ERROR" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_get_response_header
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_GET_RESPONSE_HEAD" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_GET_RESPONSE_HEAD" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_get_status
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_GET_STATUS" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_GET_STATUS" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_has_support
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_HAS_SUPPORT" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_HAS_SUPPORT" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_i18n_init
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_I18N_INIT" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_I18N_INIT" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_iaddr_make
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_IADDR_MAKE" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_IADDR_MAKE" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_malloc
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_MALLOC" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_MALLOC" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_request_create
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_REQUEST_CREATE" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_REQUEST_CREATE" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_session_create
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SESSION_CREATE" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SESSION_CREATE" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_session_proxy
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SESSION_PROXY" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SESSION_PROXY" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_set_request_body_buffer
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SET_REQUEST_BODY_" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SET_REQUEST_BODY_" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_set_request_flag
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SET_REQUEST_FLAG" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SET_REQUEST_FLAG" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_set_server_auth
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SET_SERVER_AUTH" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SET_SERVER_AUTH" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_set_session_flag
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SET_SESSION_FLAG" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SET_SESSION_FLAG" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_set_useragent
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SET_USERAGENT" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SET_USERAGENT" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_shave
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SHAVE" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SHAVE" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_sock_init
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SOCK_INIT" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SOCK_INIT" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_ssl_cert_cmp
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SSL_CERT_CMP" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SSL_CERT_CMP" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_ssl_cert_identity
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SSL_CERT_IDENTITY" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SSL_CERT_IDENTITY" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_ssl_cert_read
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SSL_CERT_READ" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SSL_CERT_READ" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_ssl_client_cert
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SSL_CLIENT_CERT" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SSL_CLIENT_CERT" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_ssl_dname
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SSL_DNAME" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SSL_DNAME" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_ssl_set_verify
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SSL_SET_VERIFY" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SSL_SET_VERIFY" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_ssl_trust_cert
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_SSL_TRUST_CERT" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_SSL_TRUST_CERT" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_status
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_STATUS" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_STATUS" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
106
libs/neon/doc/man/ne_strhash.3
Normal file
106
libs/neon/doc/man/ne_strhash.3
Normal file
@@ -0,0 +1,106 @@
|
||||
'\" t
|
||||
.\" Title: ne_strhash
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_STRHASH" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
.\" http://bugs.debian.org/507673
|
||||
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
|
||||
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
.ie \n(.g .ds Aq \(aq
|
||||
.el .ds Aq '
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" disable hyphenation
|
||||
.nh
|
||||
.\" disable justification (adjust text to left margin only)
|
||||
.ad l
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * MAIN CONTENT STARTS HERE *
|
||||
.\" -----------------------------------------------------------------
|
||||
.SH "NAME"
|
||||
ne_strhash, ne_vstrhash \- string hash interface
|
||||
.SH "SYNOPSIS"
|
||||
.sp
|
||||
.ft B
|
||||
.nf
|
||||
#include <ne_string\&.h>
|
||||
.fi
|
||||
.ft
|
||||
.HP \w'char\ *ne_strhash('u
|
||||
.BI "char *ne_strhash(unsigned\ int\ " "flags" ", " "\&.\&.\&." ");"
|
||||
.HP \w'char\ *ne_vstrhash('u
|
||||
.BI "char *ne_vstrhash(unsigned\ int\ " "flags" ", va_list\ " "ap" ");"
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
The
|
||||
\fBne_strhash\fR
|
||||
and
|
||||
\fBne_vstrhash\fR
|
||||
functions can be used to create hashes\&. The varargs argument list must be
|
||||
\fBconst char *\fR
|
||||
strings followed by a
|
||||
NULL
|
||||
terminator\&. The
|
||||
\fIflags\fR
|
||||
argument must select exactly one hash algorithm from the list below, which can be optionally bitwise\-ORed with one of the formatting option\&. The hash is calculated for the concatenation of the argument list, without separators\&.
|
||||
.SS "Hash algorithms"
|
||||
.PP
|
||||
The following hash algorithms are available:
|
||||
.PP
|
||||
\fBNE_HASH_MD5\fR
|
||||
.RS 4
|
||||
MD5
|
||||
.RE
|
||||
.PP
|
||||
\fBNE_HASH_SHA256\fR
|
||||
.RS 4
|
||||
SHA\-256 (SHA\-2)
|
||||
.RE
|
||||
.PP
|
||||
\fBNE_HASH_SHA512\fR
|
||||
.RS 4
|
||||
SHA\-512 (SHA\-2)
|
||||
.RE
|
||||
.PP
|
||||
\fBNE_HASH_SHA256_256\fR
|
||||
.RS 4
|
||||
SHA\-512/256 (SHA\-2)
|
||||
.RE
|
||||
.SS "Formatting options"
|
||||
.PP
|
||||
By default, the hash is returned as a hexadecimal lower\-case character string\&. The following formatting options are available:
|
||||
.PP
|
||||
\fBNE_HASH_COLON\fR
|
||||
.RS 4
|
||||
colon\-separated hex pairs, e\&.g\&.
|
||||
"aa:11:22\&.\&.\&."
|
||||
.RE
|
||||
.PP
|
||||
\fBNE_HASH_SPACE\fR
|
||||
.RS 4
|
||||
space\-separated hex pairs, e\&.g\&.
|
||||
"aa 11 22\&.\&.\&."
|
||||
.RE
|
||||
.SH "RETURN VALUE"
|
||||
.PP
|
||||
The return value is the ASCII hexadecimal representation of the hash as a malloc\-allocated, NUL\-terminated string, or
|
||||
NULL
|
||||
if the hash cannot be created\&. The string length is determined by the hash algorithm (and formatting options used)\&. Support for hash algorithms is specific to the SSL toolkit with which neon is compiled\&. Some systems will further restrict hash availability at runtime, e\&.g\&. due to FIPS mode\&.
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
\fBJoe Orton\fR <\&neon@lists.manyfish.co.uk\&>
|
||||
.RS 4
|
||||
Author.
|
||||
.RE
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
85
libs/neon/doc/man/ne_strparam.3
Normal file
85
libs/neon/doc/man/ne_strparam.3
Normal file
@@ -0,0 +1,85 @@
|
||||
'\" t
|
||||
.\" Title: ne_strparam
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_STRPARAM" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
.\" http://bugs.debian.org/507673
|
||||
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
|
||||
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
.ie \n(.g .ds Aq \(aq
|
||||
.el .ds Aq '
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" disable hyphenation
|
||||
.nh
|
||||
.\" disable justification (adjust text to left margin only)
|
||||
.ad l
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * MAIN CONTENT STARTS HERE *
|
||||
.\" -----------------------------------------------------------------
|
||||
.SH "NAME"
|
||||
ne_strparam \- HTTP extended parameter value encoding
|
||||
.SH "SYNOPSIS"
|
||||
.sp
|
||||
.ft B
|
||||
.nf
|
||||
#include <ne_string\&.h>
|
||||
.fi
|
||||
.ft
|
||||
.HP \w'char\ *ne_strparam('u
|
||||
.BI "char *ne_strparam(const\ char\ *" "charset" ", const\ char\ *" "lang" ", const\ char\ *" "value" ");"
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
The
|
||||
\fBne_strparam\fR
|
||||
function can be used to encode an extended parameter value for an HTTP header, as defined in RFC 5987\&. The function takes as arguments the
|
||||
\fIvalue\fR
|
||||
to encode, using a given MIME
|
||||
\fIcharset\fR
|
||||
character set, and
|
||||
\fIlang\fR
|
||||
language tag\&. The extended parameter encoding is used in HTTP protocol specifications to allow easily embedding special characters (such as quote marks, separators or non\-ASCII) in header values\&.
|
||||
.PP
|
||||
In accordance with RFC 5987, the
|
||||
\fIcharset\fR
|
||||
argument must be either
|
||||
\fB"UTF\-8"\fR
|
||||
or
|
||||
\fB"IS0\-8859\-1"\fR, but the
|
||||
\fIlang\fR
|
||||
argument may be
|
||||
NULL\&.
|
||||
.SH "RETURN VALUE"
|
||||
.PP
|
||||
The return value is either:
|
||||
.PP
|
||||
NULL
|
||||
.RS 4
|
||||
if the value parameter is a "regular parameter" and does not need extended encoding
|
||||
.RE
|
||||
.PP
|
||||
non\-NULL
|
||||
.RS 4
|
||||
the encoding of the input value as an extended parameter as a NUL\-terminated, malloc\-allocated string
|
||||
.RE
|
||||
.SH "SEE ALSO"
|
||||
.PP
|
||||
\m[blue]\fB\%https://tools.ietf.org/html/rfc5987\fR\m[]
|
||||
.SH "AUTHOR"
|
||||
.PP
|
||||
\fBJoe Orton\fR <\&neon@lists.manyfish.co.uk\&>
|
||||
.RS 4
|
||||
Author.
|
||||
.RE
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_token
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_TOKEN" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_TOKEN" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_version_match
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_VERSION_MATCH" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_VERSION_MATCH" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
1
libs/neon/doc/man/ne_vstrhash.3
Normal file
1
libs/neon/doc/man/ne_vstrhash.3
Normal file
@@ -0,0 +1 @@
|
||||
.so man3/ne_strhash.3
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: ne_xml_create
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NE_XML_CREATE" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NE_XML_CREATE" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: neon-config
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NEON\-CONFIG" "1" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NEON\-CONFIG" "1" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: neon
|
||||
.\" Author:
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 20 June 2020
|
||||
.\" Date: 20 September 2021
|
||||
.\" Manual: neon API reference
|
||||
.\" Source: neon 0.31.2
|
||||
.\" Source: neon 0.32.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "NEON" "3" "20 June 2020" "neon 0.31.2" "neon API reference"
|
||||
.TH "NEON" "3" "20 September 2021" "neon 0.32.1" "neon API reference"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -65,6 +65,8 @@
|
||||
<!ENTITY refbufapp SYSTEM "ref/bufapp.xml">
|
||||
<!ENTITY refbufdest SYSTEM "ref/bufdest.xml">
|
||||
<!ENTITY refbufutil SYSTEM "ref/bufutil.xml">
|
||||
<!ENTITY refhash SYSTEM "ref/hash.xml">
|
||||
<!ENTITY refparam SYSTEM "ref/param.xml">
|
||||
<!ENTITY reftok SYSTEM "ref/tok.xml">
|
||||
<!ENTITY refshave SYSTEM "ref/shave.xml">
|
||||
<!ENTITY refvers SYSTEM "ref/vers.xml">
|
||||
@@ -87,7 +89,7 @@
|
||||
</personname>
|
||||
<email>neon@lists.manyfish.co.uk</email>
|
||||
</author>
|
||||
<copyright><year>2001-2008</year><holder>Joe Orton</holder></copyright>
|
||||
<copyright><year>2001-2021</year><holder>Joe Orton</holder></copyright>
|
||||
|
||||
<legalnotice>
|
||||
|
||||
@@ -170,6 +172,8 @@ ignoring the WebDAV support if desired.</para>
|
||||
&refbufutil; <!-- ne_buffer_clear -->
|
||||
&refbufcr; <!-- ne_buffer_create -->
|
||||
&refbufdest; <!-- ne_buffer_destroy -->
|
||||
&refhash; <!-- ne_strhash -->
|
||||
&refparam; <!-- ne_strparam -->
|
||||
&referr; <!-- ne_get_error -->
|
||||
&refgetst; <!-- ne_get_status -->
|
||||
&reffeat; <!-- ne_has_support -->
|
||||
|
||||
@@ -27,7 +27,7 @@ typedef struct {
|
||||
|
||||
<para>The <type>ne_buffer</type> type represents an expandable
|
||||
memory buffer for holding &nul;-terminated strings. The
|
||||
<structfield>data</structfield> field points to the beginnning of the
|
||||
<structfield>data</structfield> field points to the beginning of the
|
||||
string, the length of which is given by the
|
||||
<structfield>used</structfield> field. The current size of memory
|
||||
allocated is given by the <structfield>length</structfield> field. It
|
||||
|
||||
108
libs/neon/doc/ref/hash.xml
Normal file
108
libs/neon/doc/ref/hash.xml
Normal file
@@ -0,0 +1,108 @@
|
||||
<refentry id="refhash">
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>ne_strhash</refentrytitle>
|
||||
<manvolnum>3</manvolnum>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname id="ne_strhash">ne_strhash</refname>
|
||||
<refname id="ne_vstrhash">ne_vstrhash</refname>
|
||||
<refpurpose>string hash interface</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
|
||||
<funcsynopsis>
|
||||
<funcsynopsisinfo>#include <ne_string.h></funcsynopsisinfo>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>char *<function>ne_strhash</function></funcdef>
|
||||
<paramdef>unsigned int <parameter>flags</parameter></paramdef>
|
||||
<paramdef><parameter>...</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>char *<function>ne_vstrhash</function></funcdef>
|
||||
<paramdef>unsigned int <parameter>flags</parameter></paramdef>
|
||||
<paramdef>va_list <parameter>ap</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>The <function>ne_strhash</function> and
|
||||
<function>ne_vstrhash</function> functions can be used to
|
||||
create hashes. The varargs argument list must be <type>const
|
||||
char *</type> strings followed by a &null; terminator. The
|
||||
<parameter>flags</parameter> argument must select exactly one
|
||||
hash algorithm from the list below, which can be optionally
|
||||
bitwise-ORed with one of the formatting option. The hash is
|
||||
calculated for the concatenation of the argument list, without
|
||||
separators.</para>
|
||||
|
||||
<refsect2>
|
||||
<title>Hash algorithms</title>
|
||||
|
||||
<para>The following hash algorithms are available:
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><constant>NE_HASH_MD5</constant></term>
|
||||
<listitem><simpara>MD5</simpara></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><constant>NE_HASH_SHA256</constant></term>
|
||||
<listitem><simpara>SHA-256 (SHA-2)</simpara></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><constant>NE_HASH_SHA512</constant></term>
|
||||
<listitem><simpara>SHA-512 (SHA-2)</simpara></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><constant>NE_HASH_SHA256_256</constant></term>
|
||||
<listitem><simpara>SHA-512/256 (SHA-2)</simpara></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</para></refsect2>
|
||||
|
||||
<refsect2>
|
||||
<title>Formatting options</title>
|
||||
|
||||
<para>By default, the hash is returned as a hexadecimal
|
||||
lower-case character string. The following formatting
|
||||
options are available:
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><constant>NE_HASH_COLON</constant></term>
|
||||
<listitem><simpara>colon-separated hex pairs, e.g. <literal>"aa:11:22..."</literal> </simpara></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><constant>NE_HASH_SPACE</constant></term>
|
||||
<listitem><simpara>space-separated hex pairs, e.g. <literal>"aa 11 22..."</literal></simpara></listitem>
|
||||
</varlistentry>
|
||||
</variablelist></para>
|
||||
|
||||
</refsect2>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Return value</title>
|
||||
|
||||
<para>The return value is the ASCII hexadecimal representation
|
||||
of the hash as a malloc-allocated, NUL-terminated string, or
|
||||
&null; if the hash cannot be created. The string length is
|
||||
determined by the hash algorithm (and formatting options
|
||||
used). Support for hash algorithms is specific to the SSL
|
||||
toolkit with which &neon; is compiled. Some systems will
|
||||
further restrict hash availability at runtime, e.g. due to
|
||||
FIPS mode.</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
||||
74
libs/neon/doc/ref/param.xml
Normal file
74
libs/neon/doc/ref/param.xml
Normal file
@@ -0,0 +1,74 @@
|
||||
<refentry id="refparam">
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>ne_strparam</refentrytitle>
|
||||
<manvolnum>3</manvolnum>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname id="ne_strparam">ne_strparam</refname>
|
||||
<refpurpose>HTTP extended parameter value encoding</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
|
||||
<funcsynopsis>
|
||||
<funcsynopsisinfo>#include <ne_string.h></funcsynopsisinfo>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>char *<function>ne_strparam</function></funcdef>
|
||||
<paramdef>const char *<parameter>charset</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>lang</parameter></paramdef>
|
||||
<paramdef>const char *<parameter>value</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>The <function>ne_strparam</function> function can be
|
||||
used to encode an extended parameter value for an HTTP header,
|
||||
as defined in RFC 5987. The function takes as arguments the
|
||||
<parameter>value</parameter> to encode, using a given MIME
|
||||
<parameter>charset</parameter> character set, and
|
||||
<parameter>lang</parameter> language tag. The extended
|
||||
parameter encoding is used in HTTP protocol specifications to
|
||||
allow easily embedding special characters (such as quote
|
||||
marks, separators or non-ASCII) in header values.</para>
|
||||
|
||||
<para>In accordance with RFC 5987, the
|
||||
<parameter>charset</parameter> argument must be either
|
||||
<constant>"UTF-8"</constant> or
|
||||
<constant>"IS0-8859-1"</constant>, but the
|
||||
<parameter>lang</parameter> argument may be &null;.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Return value</title>
|
||||
|
||||
<para>The return value is either:
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>&null;</term>
|
||||
<listitem><simpara>if the value parameter is a "regular
|
||||
parameter" and does not need extended
|
||||
encoding</simpara></listitem> </varlistentry>
|
||||
<varlistentry>
|
||||
<term>non-&null;</term>
|
||||
<listitem><simpara>the encoding of the input value as an
|
||||
extended parameter as a NUL-terminated, malloc-allocated
|
||||
string</simpara></listitem>
|
||||
</varlistentry>
|
||||
</variablelist></para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>See also</title>
|
||||
|
||||
<para><ulink url="https://tools.ietf.org/html/rfc5987"/></para>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user