| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- <sect1 id="using">
- <title>How to use neon from your application</title>
- <para>This section describes how to add &neon; support to an
- application. If you just want to quickly try out &neon;, use
- the <xref linkend="refconfig"/> script.</para>
- <para>The &neon; source code is designed to be easily embedded
- into an application source tree. &neon; has no dependencies on
- libraries other than an SSL toolkit and XML parser, though the
- source tree can be configured to have no support for SSL or XML
- if desired. To configure the &neon; source code some <ulink
- url="http://www.gnu.org/software/autoconf/">GNU autoconf</ulink>
- macros are supplied, which can be used in a number of ways, as
- follows:</para>
-
- <itemizedlist>
- <listitem>
-
- <para>autoconf macros are distributed in the 'macros'
- subdirectory of the neon distribution. Use the NEON_LIBRARY
- macro from your configure.in to check for the presence of
- the neon library installed on the system. The macro adds an
- '--with-neon=...' argument to configure, which allows the
- user to specify a location for the library (the standard
- /usr and /usr/local directories are checked automatically
- without having to be specified).</para></listitem>
-
- <listitem><para>The 'src' directory of the neon package can be
- imported directly into your application, if you do not wish
- to add an external dependency. If you wish to bundle, use
- the NEON_BUNDLED macro to configure neon in your application:
- here, the neon sources are bundled in a directory called
- 'libneon':</para>
-
- <programlisting>NEON_BUNDLED(libneon, ...)</programlisting>
-
- <para>If your application supports builds where srcdir != builddir,
- you should use the NEON_VPATH_BUNDLED macro like this:</para>
-
- <programlisting>NEON_VPATH_BUNDLED(${srcdir}/libneon, libneon, ...)</programlisting>
-
- <para>If you use this macro, a '--with-included-neon' option
- will be added to the generated configure script. This
- allows the user to force the bundled neon to be used in the
- application, rather than any neon library found on the
- system. If you allow neon to be configured this way, you
- must also configure an XML parser. Use the NEON_XML_PARSER
- macro to do this.</para></listitem>
-
- <listitem><para>The final argument to the _BUNDLED macros is a
- set of actions which are executed if the bundled build *is*
- chosen (rather than an external neon which might have been
- found on the user's system). In here, use either the
- NEON_LIBTOOL_BUILD or NEON_NORMAL_BUILD macro to set up the
- neon Makefile appropriately: including adding the neon source
- directory to the recursive make.</para></listitem>
-
- </itemizedlist>
-
- <para>A full fragment might be:</para>
-
- <programlisting>NEON_BUNDLED(libneon, [
- NEON_NORMAL_BUILD
- NEON_XML_PARSER
- SUBDIRS="libneon $SUBDIRS"
- ])</programlisting>
-
- <para>This means the bundled neon source directory (called 'libneon')
- is used if no neon is found on the system, and the standard XML
- parser search is used.</para>
-
- </sect1>
-
- <sect1 id="compliance">
- <title>Standards compliance</title>
-
- <para>&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.</para>
- <sect2><title>RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV</title>
-
- <para>&neon; is deliberately not compliant with section
- 23.4.2, and treats property names as a (namespace-URI, name)
- pair. This is <ulink
- url="http://lists.w3.org/Archives/Public/w3c-dist-auth/1999OctDec/0343.html">generally
- considered</ulink> to be correct behaviour by the WebDAV
- working group, and is likely to formally adopted in a future
- revision of the specification.</para></sect2>
-
- <sect2><title>RFC 2616, Hypertext Transfer Protocol—HTTP/1.1</title>
-
- <para>There is some confusion in this specification about the
- use of the <quote>identity</quote>
- <firstterm>transfer-coding</firstterm>. &neon; ignores the
- <literal>Transfer-Encoding</literal> response header if it
- contains only the (now deprecated) <quote>identity</quote>
- token, and will determine the response message length as if
- the header was not present. &neon; will give an error if a
- response includes a <literal>Transfer-Encoding</literal>
- header with a value other than <quote>identity</quote> or
- <quote>chunked</quote>.</para></sect2>
- <sect2>
- <title>RFC 2617, HTTP Authentication: Basic and Digest Access Authentication</title>
- <para>&neon; is not strictly compliant with the quoting rules
- given in the grammar for the <literal>Authorization</literal>
- header. The grammar requires that the <literal>qop</literal>
- and <literal>algorithm</literal> parameters are not quoted,
- however one widely deployed server implementation
- (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.</para></sect2>
- <sect2>
- <title>Namespaces in XML</title>
- <para>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 <xref
- linkend="bib.xmlnames"/>. Specifically: the restrictions on
- the first character of the <literal>NCName</literal> rule are
- not all implemented; &neon; will allow any
- <literal>CombiningChar</literal>, <literal>Extender</literal>
- and some characters from the <literal>Digit</literal> class in
- this position.</para> </sect2>
-
- <!-- a few RFC2818/3280 issues: rules about when to cache
- sessions in the face of unclean shutdown are strict, neon is
- probably not compliant: document or fix. Likewise SSL
- shutdown issues in general. Cert hostname checks allow
- wildcard "*." syntax which is less than 2818 but more than
- 3280 requires. -->
- </sect1>
|