<?xml version='1.0'?> <!-- -*- text -*- -->

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [

<!ENTITY % isoent SYSTEM
    "http://www.oasis-open.org/docbook/xml/4.2/ent/iso-num.ent">
<!ENTITY % isopub SYSTEM
    "http://www.oasis-open.org/docbook/xml/4.2/ent/iso-pub.ent">

%isoent;
%isopub;

<!ENTITY fdl SYSTEM "fdl.sgml">

<!-- date/version stamp files created as release tarball is rolled -->
<!ENTITY date SYSTEM "date.xml">
<!ENTITY version SYSTEM "version.xml">

<!ENTITY neon "neon">

<!-- a useful entity for writing reference examples -->
<!ENTITY egsess "ne_session *sess = ne_session_create(...);">

<!ENTITY null "<literal>NULL</literal>">

<!ENTITY nul "<literal>NUL</literal>">

<!-- xml.xml entities: -->
<!ENTITY startelm "<emphasis>start-element</emphasis>">
<!ENTITY cdata "<emphasis>character-data</emphasis>">
<!ENTITY endelm "<emphasis>end-element</emphasis>">

<!ENTITY section.features SYSTEM "feat.xml">
<!ENTITY section.using SYSTEM "using.xml">
<!ENTITY section.xml SYSTEM "xml.xml">
<!ENTITY section.ssl SYSTEM "ssl.xml">

<!ENTITY biblio SYSTEM "biblio.xml">

<!ENTITY refneon SYSTEM "ref/neon.xml">
<!ENTITY refconfig SYSTEM "ref/config.xml">

<!ENTITY refsess SYSTEM "ref/sess.xml">
<!ENTITY referr SYSTEM "ref/err.xml">
<!ENTITY refopts SYSTEM "ref/opts.xml">
<!ENTITY refsslvfy SYSTEM "ref/sslvfy.xml">
<!ENTITY refsslcert SYSTEM "ref/sslcert.xml">
<!ENTITY refsslcert2 SYSTEM "ref/sslcert2.xml">
<!ENTITY refsslcertio SYSTEM "ref/sslcertio.xml">
<!ENTITY refssldname SYSTEM "ref/ssldname.xml">
<!ENTITY refssltrust SYSTEM "ref/ssltrust.xml">
<!ENTITY refreq SYSTEM "ref/req.xml">
<!ENTITY refreqhdr SYSTEM "ref/reqhdr.xml">
<!ENTITY refstatus SYSTEM "ref/status.xml">
<!ENTITY refgetst SYSTEM "ref/getst.xml">
<!ENTITY refreqbody SYSTEM "ref/reqbody.xml">
<!ENTITY refauth SYSTEM "ref/auth.xml">
<!ENTITY refalloc SYSTEM "ref/alloc.xml">
<!ENTITY refbuf SYSTEM "ref/buf.xml">
<!ENTITY refbufcr SYSTEM "ref/bufcr.xml">
<!ENTITY refbufapp SYSTEM "ref/bufapp.xml">
<!ENTITY refbufdest SYSTEM "ref/bufdest.xml">
<!ENTITY refbufutil SYSTEM "ref/bufutil.xml">
<!ENTITY reftok SYSTEM "ref/tok.xml">
<!ENTITY refshave SYSTEM "ref/shave.xml">
<!ENTITY refvers SYSTEM "ref/vers.xml">
<!ENTITY refinit SYSTEM "ref/init.xml">
<!ENTITY refresolve SYSTEM "ref/resolve.xml">
<!ENTITY refiaddr SYSTEM "ref/iaddr.xml">
<!ENTITY refclicert SYSTEM "ref/clicert.xml">

]>

<book>
  <bookinfo>
    <title>neon HTTP/WebDAV client library</title>
    <author>
      <firstname>Joe</firstname><surname>Orton</surname>
      <affiliation>
	<address><email>neon@webdav.org</email></address>
      </affiliation>
    </author>
    <copyright><year>2001-2003</year><holder>Joe Orton</holder></copyright>

    <legalnotice>
      <para>Permission is granted to copy, distribute and/or modify this document
      under the terms of the GNU Free Documentation License, Version 1.1
      or any later version published by the Free Software Foundation;
      with no Invariant Sections, with no Front-Cover Texts, 
      and with no Back-Cover Texts.
      A copy of the license is included in the section entitled "GNU
      Free Documentation License".</para>
    </legalnotice>

  </bookinfo>
  
  <chapter id="intro">
    <title>Introduction</title>

    <para>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.</para>
    
    <para>neon aims to provide a modern, flexible, and simple API
in the C programming language for implementing HTTP and WebDAV
support.  The WebDAV functionality is entirely separate from the basic
HTTP functionality; neon can be used simply as an HTTP client library,
ignoring the WebDAV support if desired.</para>

    &section.features;

    &section.using;
    
  </chapter>
 
  <chapter id="api">
    <title>The &neon; C language interface</title>

    <para>The documentation for the &neon; interface is split between
    this chapter, which gives a broad introduction to the abstractions
    exposed by the library, and <xref linkend="ref"/>, which gives a
    function-by-function breakdown of the interface.</para>

    &section.xml;

<!-- &section.ssl; -->

  </chapter>
 
  <reference id="ref">

    <!-- these are used in the man page header/footers -->
    <referenceinfo>
      <title>neon API reference</title>
      <date>&date;</date>
      <productname>neon &version;</productname>
    </referenceinfo>
    
    <title>neon API reference</title>

    &refneon; <!-- neon -->
    &refconfig; <!-- neon-config -->

    &refreqhdr; <!-- ne_add_request_header -->
    &refresolve; <!-- ne_addr_resolve -->
    &refbuf; <!-- ne_buffer -->
    &refbufapp; <!-- ne_buffer_append -->
    &refbufutil; <!-- ne_buffer_clear -->
    &refbufcr; <!-- ne_buffer_create -->
    &refbufdest; <!-- ne_buffer_destroy -->
    &referr; <!-- ne_get_error -->
    &refgetst; <!-- ne_get_status -->
    &refiaddr; <!-- ne_iaddr_make -->
    &refalloc; <!-- ne_malloc -->
    &refreq; <!-- ne_request_create -->
    &refsess; <!-- ne_session_create -->
    &refopts; <!-- ne_set_useragent -->
    &refreqbody; <!-- ne_set_request_body_buffer -->
    &refauth; <!-- ne_set_server_auth -->
    &refshave; <!-- ne_shave -->
    &refinit; <!-- ne_sock_init -->
    &refsslcert; <!-- ne_ssl_cert_identity -->
    &refsslcert2; <!-- ne_ssl_cert_cmp -->
    &refsslcertio; <!-- ne_ssl_cert_read -->
    &refssldname; <!-- ne_ssl_dname -->
    &refssltrust; <!-- ne_ssl_load_ca -->
    &refsslvfy; <!-- ne_ssl_set_verify -->
    &refclicert; <!-- ne_ssl_client_cert -->
    &refstatus; <!-- ne_status -->
    &reftok; <!-- ne_token -->
    &refvers; <!-- ne_version_match -->

    <!-- REFEND -->
    <!-- ******************************************************************* -->

  </reference>

&biblio;

&fdl;
  
</book>
