diff options
author | Patrick Ohly <patrick.ohly@intel.com> | 2014-05-24 20:53:00 +0200 |
---|---|---|
committer | Patrick Ohly <patrick.ohly@intel.com> | 2014-05-24 20:53:00 +0200 |
commit | 1a4c41a940d0e07fc5f182bcf4bf996a57e1fb05 (patch) | |
tree | 5fbee95746506bc91edfc06fe8e3f28b40168d49 | |
parent | 311a7b6ca1cf9f3ff3d8878e57c260ca93cfd5fa (diff) | |
download | neon-1a4c41a940d0e07fc5f182bcf4bf996a57e1fb05.tar.gz neon-1a4c41a940d0e07fc5f182bcf4bf996a57e1fb05.tar.bz2 neon-1a4c41a940d0e07fc5f182bcf4bf996a57e1fb05.zip |
Imported Upstream version 0.29.4upstream/0.29.4
119 files changed, 1132 insertions, 804 deletions
@@ -1 +1 @@ -0.29.3 +0.29.4 @@ -1,7 +1,108 @@ ------------------------------------------------------------------------ -r1785 | joe | 2010-01-11 20:26:37 +0000 (Mon, 11 Jan 2010) | 1 line +r1817 | joe | 2010-10-01 13:01:18 +0100 (Fri, 01 Oct 2010) | 1 line + +Tag release 0.29.4. +------------------------------------------------------------------------ +r1816 | joe | 2010-10-01 13:00:02 +0100 (Fri, 01 Oct 2010) | 2 lines + +* po/: make update-po. + +------------------------------------------------------------------------ +r1814 | joe | 2010-09-28 13:02:37 +0100 (Tue, 28 Sep 2010) | 2 lines + +* NEWS: Update. + +------------------------------------------------------------------------ +r1813 | joe | 2010-09-28 13:00:48 +0100 (Tue, 28 Sep 2010) | 10 lines + +Merge r1811 from trunk: + +* src/ne_session.c (ne__ssl_match_hostname): Deny a wildcard match + against anything which parses as an IP address. + +* test/ssl.c (fail_wildcard_ip): Add test case. + +* test/makekeys.sh: Generate test wildcard IP cert. + + +------------------------------------------------------------------------ +r1812 | joe | 2010-09-28 12:57:26 +0100 (Tue, 28 Sep 2010) | 8 lines + +Merge r1809 from trunk: + +* src/ne_request.c (open_connection): If SOCKS proxy fails, set return + value to NE_ERROR. + +* test/request.c (socks_fail): Add test case. + + +------------------------------------------------------------------------ +r1808 | joe | 2010-09-22 21:42:08 +0100 (Wed, 22 Sep 2010) | 2 lines + +* NEWS: Update for 0.29.4. + +------------------------------------------------------------------------ +r1807 | joe | 2010-09-22 20:33:36 +0100 (Wed, 22 Sep 2010) | 9 lines + +Merge r1801 from trunk: + +* src/ne_request.c (body_fd_send): Handle read() errors; thanks to Lou + Montulli. + +* test/request.c (serve_mirror, send_length): Add test case. + +* test/Makefile.in (foobar.txt): Create test file. + +------------------------------------------------------------------------ +r1806 | joe | 2010-09-22 20:25:52 +0100 (Wed, 22 Sep 2010) | 8 lines + +Merge r1802, r1805 from trunk: + +* macros/neon.m4 (NE_CHECK_FUNCS): Fix AI_ADDRCONFIG detection. + +* src/ne_auth.c (ah_post_send): Always clear the SSPI context. +(Danil Shopyrin) + + +------------------------------------------------------------------------ +r1800 | joe | 2010-05-05 09:13:00 +0100 (Wed, 05 May 2010) | 5 lines + +Merge r1794 from trunk: + +* src/ne_session.c (ne_session_create): Fix to enable SNI by default again. + (Tobias Gruetzmacher) + +------------------------------------------------------------------------ +r1796 | joe | 2010-03-29 10:19:04 +0100 (Mon, 29 Mar 2010) | 9 lines + +Merge r1792, r1793, r1795 from trunk: + +* src/ne_request.c (do_connect): Tweak debugging. + +* doc/ref/: Fix some refpurposes. + +* doc/ref/reqflags.xml: Doc tweak. + + +------------------------------------------------------------------------ +r1790 | joe | 2010-02-08 09:52:54 +0000 (Mon, 08 Feb 2010) | 2 lines + +* macros/neon-test.m4: Test for signal.h + +------------------------------------------------------------------------ +r1787 | joe | 2010-01-11 22:59:31 +0000 (Mon, 11 Jan 2010) | 2 lines + +* macros/neon.m4, NEWS: Missed a backport :( + +------------------------------------------------------------------------ +r1786 | joe | 2010-01-11 22:57:34 +0000 (Mon, 11 Jan 2010) | 6 lines + +Merge r1777 from trunk: + +* src/ne_defs.h: Only define NE_PRIVATE if undefined. + +* configure.in: Define NE_PRIVATE to 'extern' for a static build. -Tag release 0.29.3. ------------------------------------------------------------------------ r1784 | joe | 2010-01-11 20:21:21 +0000 (Mon, 11 Jan 2010) | 2 lines @@ -1,3 +1,12 @@ +Changes in release 0.29.4: +* Fix SNI support (Tobias Gruetzmacher) +* Fix possible Solaris linker errors if building static library +* Win32: Fix Kerberos authentication support with SSPI (Danil Shopyrin) +* Fix error handling when pulling a request body from an file + (thanks to Lou Montulli) +* Fix ne_request_dispatch() return value for SOCKS proxy failure cases +* Tighten SSL cert ID checks to deny a wildcard match against an IP address + Changes in release 0.29.3: * Change ne_sock_close() to no longer wait for SSL closure alert: - fixes possible hang with IIS servers when closing SSL connection diff --git a/config.guess b/config.guess index da83314..dc84c68 100755 --- a/config.guess +++ b/config.guess @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. -timestamp='2009-04-27' +timestamp='2009-11-20' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -27,16 +27,16 @@ timestamp='2009-04-27' # the same distribution terms that you use for the rest of that program. -# Originally written by Per Bothner <per@bothner.com>. -# Please send patches to <config-patches@gnu.org>. Submit a context -# diff and a properly formatted ChangeLog entry. +# Originally written by Per Bothner. Please send patches (context +# diff format) to <config-patches@gnu.org> and include a ChangeLog +# entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` @@ -170,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null + | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? @@ -333,6 +333,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" @@ -656,7 +659,7 @@ EOF # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null + grep -q __LP64__ then HP_ARCH="hppa2.0w" else @@ -807,12 +810,12 @@ EOF i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - *:Interix*:[3456]*) + *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; - EM64T | authenticamd | genuineintel) + authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) @@ -822,6 +825,9 @@ EOF [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we @@ -851,6 +857,20 @@ EOF i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ @@ -873,6 +893,17 @@ EOF frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; @@ -882,78 +913,34 @@ EOF m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) + mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU - #undef mips64 - #undef mips64el + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el + CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 + CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -962,8 +949,11 @@ EOF *) echo hppa-unknown-linux-gnu ;; esac exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux @@ -986,66 +976,6 @@ EOF xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include <features.h> - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^LIBC/{ - s: ::g - p - }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both @@ -1074,7 +1004,7 @@ EOF i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) @@ -1182,7 +1112,7 @@ EOF rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) @@ -1275,6 +1205,16 @@ EOF *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} @@ -25,7 +25,7 @@ #ifdef WIN32 -#define NEON_VERSION "0.29.3" +#define NEON_VERSION "0.29.4" #define NE_VERSION_MAJOR (0) #define NE_VERSION_MINOR (29) @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. -timestamp='2009-04-17' +timestamp='2009-11-20' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -32,13 +32,16 @@ timestamp='2009-04-17' # Please send patches to <config-patches@gnu.org>. Submit a context -# diff and a properly formatted ChangeLog entry. +# diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. @@ -149,10 +152,13 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) + -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; + -bluegene*) + os=-cnk + ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 @@ -281,6 +287,7 @@ case $basic_machine in | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ + | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ @@ -288,13 +295,14 @@ case $basic_machine in | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ + | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12) + m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none @@ -337,7 +345,7 @@ case $basic_machine in | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -365,7 +373,7 @@ case $basic_machine in | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ - | romp-* | rs6000-* \ + | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ @@ -374,6 +382,7 @@ case $basic_machine in | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ + | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ @@ -467,6 +476,10 @@ case $basic_machine in basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; c90) basic_machine=c90-cray os=-unicos @@ -719,6 +732,9 @@ case $basic_machine in basic_machine=ns32k-utek os=-sysv ;; + microblaze) + basic_machine=microblaze-xilinx + ;; mingw32) basic_machine=i386-pc os=-mingw32 @@ -1240,6 +1256,9 @@ case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; @@ -1260,9 +1279,9 @@ case $os in # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -kopensolaris* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ @@ -1283,7 +1302,7 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1613,7 +1632,7 @@ case $basic_machine in -sunos*) vendor=sun ;; - -aix*) + -cnk*|-aix*) vendor=ibm ;; -beos*) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.63 for neon 0.29.3. +# Generated by GNU Autoconf 2.63 for neon 0.29.4. # # Report bugs to <neon@lists.manyfish.co.uk>. # @@ -9,7 +9,7 @@ # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # -# Copyright 2000-2009 Joe Orton and others +# Copyright 2000-2010 Joe Orton and others # This configure script may be copied, distributed and modified under the # terms of the GNU Library General Public license; see src/COPYING.LIB for # more details. @@ -750,8 +750,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='neon' PACKAGE_TARNAME='neon' -PACKAGE_VERSION='0.29.3' -PACKAGE_STRING='neon 0.29.3' +PACKAGE_VERSION='0.29.4' +PACKAGE_STRING='neon 0.29.4' PACKAGE_BUGREPORT='neon@lists.manyfish.co.uk' ac_unique_file="src/ne_request.c" @@ -1493,7 +1493,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures neon 0.29.3 to adapt to many kinds of systems. +\`configure' configures neon 0.29.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1558,7 +1558,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of neon 0.29.3:";; + short | recursive ) echo "Configuration of neon 0.29.4:";; esac cat <<\_ACEOF @@ -1679,7 +1679,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -neon configure 0.29.3 +neon configure 0.29.4 generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1687,7 +1687,7 @@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. -Copyright 2000-2009 Joe Orton and others +Copyright 2000-2010 Joe Orton and others This configure script may be copied, distributed and modified under the terms of the GNU Library General Public license; see src/COPYING.LIB for more details. @@ -1698,7 +1698,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by neon $as_me 0.29.3, which was +It was created by neon $as_me 0.29.4, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ @@ -2273,7 +2273,7 @@ NEON_BUILD_BUNDLED=yes # Define the current versions. NE_VERSION_MAJOR=0 NE_VERSION_MINOR=29 -NE_VERSION_PATCH=3 +NE_VERSION_PATCH=4 NE_VERSION_TAG= # 0.29.x is backwards-compatible to 0.27.x, so AGE=2 @@ -10249,6 +10249,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <netdb.h> +#include <stdlib.h> int main () { @@ -14850,13 +14851,13 @@ if test "${lt_cv_nm_interface+set}" = set; then else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:14853: $ac_compile\"" >&5) + (eval echo "\"\$as_me:14854: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:14856: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:14857: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:14859: output\"" >&5) + (eval echo "\"\$as_me:14860: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -16061,7 +16062,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 16064 "configure"' > conftest.$ac_ext + echo '#line 16065 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -17396,11 +17397,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17399: $lt_compile\"" >&5) + (eval echo "\"\$as_me:17400: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:17403: \$? = $ac_status" >&5 + echo "$as_me:17404: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -17735,11 +17736,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17738: $lt_compile\"" >&5) + (eval echo "\"\$as_me:17739: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:17742: \$? = $ac_status" >&5 + echo "$as_me:17743: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -17840,11 +17841,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17843: $lt_compile\"" >&5) + (eval echo "\"\$as_me:17844: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:17847: \$? = $ac_status" >&5 + echo "$as_me:17848: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -17895,11 +17896,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17898: $lt_compile\"" >&5) + (eval echo "\"\$as_me:17899: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:17902: \$? = $ac_status" >&5 + echo "$as_me:17903: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -20698,7 +20699,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 20701 "configure" +#line 20702 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -20794,7 +20795,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 20797 "configure" +#line 20798 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -21898,7 +21899,8 @@ fi -for ac_header in sys/time.h stdint.h locale.h + +for ac_header in sys/time.h stdint.h locale.h signal.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then @@ -25159,6 +25161,15 @@ if test x${enable_shared}${pic_mode}z = xnodefaultz; then $as_echo "$as_me: Using PIC for static library build" >&6;} fi +if test x${enable_shared} = xno; then + # Defining NE_PRIVATE as the empty string would work; using a + # non-empty but redundant string 'extern' avoids any possible cpp + # confusion with from an empty macro. + CPPFLAGS="$CPPFLAGS -DNE_PRIVATE=extern" + { $as_echo "$as_me:$LINENO: Private symbol suppression disabled for static library build" >&5 +$as_echo "$as_me: Private symbol suppression disabled for static library build" >&6;} +fi + # Bundled language catalogs ALL_LINGUAS="cs de fr ja nn pl ru tr zh_CN" @@ -25598,7 +25609,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by neon $as_me 0.29.3, which was +This file was extended by neon $as_me 0.29.4, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -25661,7 +25672,7 @@ Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -neon config.status 0.29.3 +neon config.status 0.29.4 configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" @@ -27340,7 +27351,7 @@ fi # for VPATH builds: test -d test/common || mkdir test/common -{ $as_echo "$as_me:$LINENO: Configured to build neon 0.29.3: +{ $as_echo "$as_me:$LINENO: Configured to build neon 0.29.4: Install prefix: ${prefix} Compiler: ${CC} @@ -27349,7 +27360,7 @@ test -d test/common || mkdir test/common zlib support: ${ne_ZLIB_message} Build libraries: Shared=${enable_shared}, Static=${enable_static} " >&5 -$as_echo "$as_me: Configured to build neon 0.29.3: +$as_echo "$as_me: Configured to build neon 0.29.4: Install prefix: ${prefix} Compiler: ${CC} diff --git a/configure.in b/configure.in index 368e6e7..65985ce 100644 --- a/configure.in +++ b/configure.in @@ -6,7 +6,7 @@ m4_define(ne_version, [m4_translit(m4_include(.version), [ AC_INIT(neon, ne_version, [neon@lists.manyfish.co.uk]) -AC_COPYRIGHT([Copyright 2000-2009 Joe Orton and others +AC_COPYRIGHT([Copyright 2000-2010 Joe Orton and others This configure script may be copied, distributed and modified under the terms of the GNU Library General Public license; see src/COPYING.LIB for more details.]) @@ -162,6 +162,14 @@ if test x${enable_shared}${pic_mode}z = xnodefaultz; then AC_MSG_NOTICE([Using PIC for static library build]) fi +if test x${enable_shared} = xno; then + # Defining NE_PRIVATE as the empty string would work; using a + # non-empty but redundant string 'extern' avoids any possible cpp + # confusion with from an empty macro. + CPPFLAGS="$CPPFLAGS -DNE_PRIVATE=extern" + AC_MSG_NOTICE([Private symbol suppression disabled for static library build]) +fi + # Bundled language catalogs ALL_LINGUAS="cs de fr ja nn pl ru tr zh_CN" AC_SUBST(ALL_LINGUAS) diff --git a/doc/date.xml b/doc/date.xml index ee1c91e..dda8a69 100644 --- a/doc/date.xml +++ b/doc/date.xml @@ -1 +1 @@ -11 January 2010
\ No newline at end of file + 1 October 2010
\ No newline at end of file diff --git a/doc/html/compliance.html b/doc/html/compliance.html index 142e386..b3b21f1 100644 --- a/doc/html/compliance.html +++ b/doc/html/compliance.html @@ -1,12 +1,12 @@ <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Standards compliance</title><link rel="stylesheet" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="Standards compliance"><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" title="RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV"><div class="titlepage"><div><div><h3 class="title"><a name="id397176"></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" title="RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV"><div class="titlepage"><div><div><h3 class="title"><a name="id366045"></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" title="RFC 2616, Hypertext Transfer Protocol—HTTP/1.1"><div class="titlepage"><div><div><h3 class="title"><a name="id397193"></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" title="RFC 2616, Hypertext Transfer Protocol—HTTP/1.1"><div class="titlepage"><div><div><h3 class="title"><a name="id366061"></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" title="RFC 2617, HTTP Authentication: Basic and Digest Access Authentication"><div class="titlepage"><div><div><h3 class="title"><a name="id397233"></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" title="RFC 2617, HTTP Authentication: Basic and Digest Access Authentication"><div class="titlepage"><div><div><h3 class="title"><a name="id366100"></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" title="Namespaces in XML"><div class="titlepage"><div><div><h3 class="title"><a name="id397261"></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" title="Namespaces in XML"><div class="titlepage"><div><div><h3 class="title"><a name="id366129"></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 diff --git a/doc/html/index.html b/doc/html/index.html index e07ef83..d4ad0a4 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -1,4 +1,4 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>neon HTTP/WebDAV client library</title><link rel="stylesheet" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="next" href="intro.html" title="Chapter 1. Introduction"></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 HTTP/WebDAV client library</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr></table><hr></div><div class="book" title="neon HTTP/WebDAV client library"><div class="titlepage"><div><div><h1 class="title"><a name="id387887"></a>neon HTTP/WebDAV client library</h1></div><div><div class="author"><h3 class="author"><span class="firstname">Joe</span> <span class="surname">Orton</span></h3><code class="email"><<a class="email" href="mailto:neon@lists.manyfish.co.uk">neon@lists.manyfish.co.uk</a>></code></div></div><div><p class="copyright">Copyright © 2001-2008 Joe Orton</p></div><div><div class="legalnotice" title="Legal Notice"><a name="id387916"></a><p>This document is free documentation; you can redistribute +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>neon HTTP/WebDAV client library</title><link rel="stylesheet" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="next" href="intro.html" title="Chapter 1. Introduction"></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 HTTP/WebDAV client library</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr></table><hr></div><div class="book" title="neon HTTP/WebDAV client library"><div class="titlepage"><div><div><h1 class="title"><a name="id356755"></a>neon HTTP/WebDAV client library</h1></div><div><div class="author"><h3 class="author"><span class="firstname">Joe</span> <span class="surname">Orton</span></h3><code class="email"><<a class="email" href="mailto:neon@lists.manyfish.co.uk">neon@lists.manyfish.co.uk</a>></code></div></div><div><p class="copyright">Copyright © 2001-2008 Joe Orton</p></div><div><div class="legalnotice" title="Legal Notice"><a name="id356784"></a><p>This document is free documentation; you can redistribute it and/or modify it under the terms of the <a class="ulink" href="http://www.gnu.org/copyleft/gpl.html" target="_top">GNU General Public License</a> as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later @@ -10,5 +10,5 @@ License for more details.</p><p>You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, - USA.</p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="intro.html">1. Introduction</a></span></dt><dd><dl><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#id397176">RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV</a></span></dt><dt><span class="sect2"><a href="compliance.html#id397193">RFC 2616, Hypertext Transfer Protocol—HTTP/1.1</a></span></dt><dt><span class="sect2"><a href="compliance.html#id397233">RFC 2617, HTTP Authentication: Basic and Digest Access Authentication</a></span></dt><dt><span class="sect2"><a href="compliance.html#id397261">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#id397072">CPU or memory consumption attacks</a></span></dt><dt><span class="sect2"><a href="security.html#id397632">SSL/TLS connection security</a></span></dt><dt><span class="sect2"><a href="security.html#id397697">Control character insertion in error messages</a></span></dt><dt><span class="sect2"><a href="security.html#id397714">Attacks against authentication credentials</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="api.html">2. The neon C language interface</a></span></dt><dd><dl><dt><span class="sect1"><a href="xml.html">Parsing XML</a></span></dt><dd><dl><dt><span class="sect2"><a href="xml.html#xml-sax">Introduction to SAX</a></span></dt><dt><span class="sect2"><a href="xml.html#xml-stacked">Stacked SAX handlers</a></span></dt><dt><span class="sect2"><a href="xml.html#xml-state">Maintaining state</a></span></dt><dt><span class="sect2"><a href="xml.html#xml-ns">XML namespaces</a></span></dt></dl></dd></dl></dd><dt><span class="reference"><a href="ref.html">I. neon API reference</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="refneon.html">neon</a></span><span class="refpurpose"> — HTTP and WebDAV client library</span></dt><dt><span class="refentrytitle"><a href="refconfig.html">neon-config</a></span><span class="refpurpose"> — script providing information about installed copy - of neon library</span></dt><dt><span class="refentrytitle"><a href="refresolve.html">ne_addr_resolve</a></span><span class="refpurpose"> — functions to resolve hostnames to addresses</span></dt><dt><span class="refentrytitle"><a href="refbuf.html">ne_buffer</a></span><span class="refpurpose"> — string buffer handling</span></dt><dt><span class="refentrytitle"><a href="refbufapp.html">ne_buffer_append</a></span><span class="refpurpose"> — append data to a string buffer</span></dt><dt><span class="refentrytitle"><a href="refbufutil.html">ne_buffer_clear</a></span><span class="refpurpose"> — general purpose of group of functions</span></dt><dt><span class="refentrytitle"><a href="refbufcr.html">ne_buffer_create</a></span><span class="refpurpose"> — general purpose of group of functions</span></dt><dt><span class="refentrytitle"><a href="refbufdest.html">ne_buffer_destroy</a></span><span class="refpurpose"> — destroy a buffer object</span></dt><dt><span class="refentrytitle"><a href="referr.html">ne_get_error</a></span><span class="refpurpose"> — error handling for HTTP sessions</span></dt><dt><span class="refentrytitle"><a href="refgetst.html">ne_get_status</a></span><span class="refpurpose"> — retrieve HTTP response status for request</span></dt><dt><span class="refentrytitle"><a href="reffeat.html">ne_has_support</a></span><span class="refpurpose"> — determine feature support status</span></dt><dt><span class="refentrytitle"><a href="refi18n.html">ne_i18n_init</a></span><span class="refpurpose"> — functions to initialize internationalization support</span></dt><dt><span class="refentrytitle"><a href="refiaddr.html">ne_iaddr_make</a></span><span class="refpurpose"> — functions to manipulate and compare network addresses</span></dt><dt><span class="refentrytitle"><a href="refalloc.html">ne_malloc</a></span><span class="refpurpose"> — memory allocation wrappers</span></dt><dt><span class="refentrytitle"><a href="refsess.html">ne_session_create</a></span><span class="refpurpose"> — set up HTTP sessions</span></dt><dt><span class="refentrytitle"><a href="refsessflags.html">ne_set_session_flag</a></span><span class="refpurpose"> — set and retrieve session flags</span></dt><dt><span class="refentrytitle"><a href="refreq.html">ne_request_create</a></span><span class="refpurpose"> — low-level HTTP request handling</span></dt><dt><span class="refentrytitle"><a href="refreqhdr.html">ne_add_request_header</a></span><span class="refpurpose"> — add headers to a request</span></dt><dt><span class="refentrytitle"><a href="refresphdr.html">ne_get_response_header</a></span><span class="refpurpose"> — functions to access response headers</span></dt><dt><span class="refentrytitle"><a href="refopts.html">ne_set_useragent</a></span><span class="refpurpose"> — common properties for HTTP sessions</span></dt><dt><span class="refentrytitle"><a href="refreqflags.html">ne_set_request_flag</a></span><span class="refpurpose"> — set and retrieve per-request flags</span></dt><dt><span class="refentrytitle"><a href="refreqbody.html">ne_set_request_body_buffer</a></span><span class="refpurpose"> — include a message body with a request</span></dt><dt><span class="refentrytitle"><a href="refauth.html">ne_set_server_auth</a></span><span class="refpurpose"> — register authentication callbacks</span></dt><dt><span class="refentrytitle"><a href="refshave.html">ne_shave</a></span><span class="refpurpose"> — trim whitespace from a string</span></dt><dt><span class="refentrytitle"><a href="refsockinit.html">ne_sock_init</a></span><span class="refpurpose"> — perform library initialization</span></dt><dt><span class="refentrytitle"><a href="refcert.html">ne_ssl_cert_identity</a></span><span class="refpurpose"> — functions to access certificate properties</span></dt><dt><span class="refentrytitle"><a href="refsslcert2.html">ne_ssl_cert_cmp</a></span><span class="refpurpose"> — functions to operate on certificate objects</span></dt><dt><span class="refentrytitle"><a href="refsslcertio.html">ne_ssl_cert_read</a></span><span class="refpurpose"> — functions to read or write certificates to and from files or strings</span></dt><dt><span class="refentrytitle"><a href="refssldname.html">ne_ssl_dname</a></span><span class="refpurpose"> — SSL distinguished name handling</span></dt><dt><span class="refentrytitle"><a href="refsslca.html">ne_ssl_trust_cert</a></span><span class="refpurpose"> — functions to indicate that certificates are trusted</span></dt><dt><span class="refentrytitle"><a href="refsslvfy.html">ne_ssl_set_verify</a></span><span class="refpurpose"> — register an SSL certificate verification callback</span></dt><dt><span class="refentrytitle"><a href="refclicert.html">ne_ssl_client_cert</a></span><span class="refpurpose"> — SSL client certificate handling</span></dt><dt><span class="refentrytitle"><a href="refstatus.html">ne_status</a></span><span class="refpurpose"> — HTTP status structure</span></dt><dt><span class="refentrytitle"><a href="reftok.html">ne_token</a></span><span class="refpurpose"> — string tokenizers</span></dt><dt><span class="refentrytitle"><a href="refvers.html">ne_version_match</a></span><span class="refpurpose"> — library versioning</span></dt><dt><span class="refentrytitle"><a href="refxml.html">ne_xml_create</a></span><span class="refpurpose"> — create and destroy an XML parser</span></dt></dl></dd><dt><span class="bibliography"><a href="biblio.html">Bibliography</a></span></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>2.1. <a href="xml.html#xml-example">An example XML document</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Chapter 1. Introduction</td></tr></table></div></body></html> + USA.</p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="intro.html">1. Introduction</a></span></dt><dd><dl><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#id366045">RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV</a></span></dt><dt><span class="sect2"><a href="compliance.html#id366061">RFC 2616, Hypertext Transfer Protocol—HTTP/1.1</a></span></dt><dt><span class="sect2"><a href="compliance.html#id366100">RFC 2617, HTTP Authentication: Basic and Digest Access Authentication</a></span></dt><dt><span class="sect2"><a href="compliance.html#id366129">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#id365940">CPU or memory consumption attacks</a></span></dt><dt><span class="sect2"><a href="security.html#id366500">SSL/TLS connection security</a></span></dt><dt><span class="sect2"><a href="security.html#id366566">Control character insertion in error messages</a></span></dt><dt><span class="sect2"><a href="security.html#id366583">Attacks against authentication credentials</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="api.html">2. The neon C language interface</a></span></dt><dd><dl><dt><span class="sect1"><a href="xml.html">Parsing XML</a></span></dt><dd><dl><dt><span class="sect2"><a href="xml.html#xml-sax">Introduction to SAX</a></span></dt><dt><span class="sect2"><a href="xml.html#xml-stacked">Stacked SAX handlers</a></span></dt><dt><span class="sect2"><a href="xml.html#xml-state">Maintaining state</a></span></dt><dt><span class="sect2"><a href="xml.html#xml-ns">XML namespaces</a></span></dt></dl></dd></dl></dd><dt><span class="reference"><a href="ref.html">I. neon API reference</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="refneon.html">neon</a></span><span class="refpurpose"> — HTTP and WebDAV client library</span></dt><dt><span class="refentrytitle"><a href="refconfig.html">neon-config</a></span><span class="refpurpose"> — script providing information about installed copy + of neon library</span></dt><dt><span class="refentrytitle"><a href="refresolve.html">ne_addr_resolve</a></span><span class="refpurpose"> — functions to resolve hostnames to addresses</span></dt><dt><span class="refentrytitle"><a href="refbuf.html">ne_buffer</a></span><span class="refpurpose"> — string buffer handling</span></dt><dt><span class="refentrytitle"><a href="refbufapp.html">ne_buffer_append</a></span><span class="refpurpose"> — append data to a string buffer</span></dt><dt><span class="refentrytitle"><a href="refbufutil.html">ne_buffer_clear</a></span><span class="refpurpose"> — clear, grow, or mark as altered a string buffer</span></dt><dt><span class="refentrytitle"><a href="refbufcr.html">ne_buffer_create</a></span><span class="refpurpose"> — create a string buffer</span></dt><dt><span class="refentrytitle"><a href="refbufdest.html">ne_buffer_destroy</a></span><span class="refpurpose"> — destroy a buffer object</span></dt><dt><span class="refentrytitle"><a href="referr.html">ne_get_error</a></span><span class="refpurpose"> — error handling for HTTP sessions</span></dt><dt><span class="refentrytitle"><a href="refgetst.html">ne_get_status</a></span><span class="refpurpose"> — retrieve HTTP response status for request</span></dt><dt><span class="refentrytitle"><a href="reffeat.html">ne_has_support</a></span><span class="refpurpose"> — determine feature support status</span></dt><dt><span class="refentrytitle"><a href="refi18n.html">ne_i18n_init</a></span><span class="refpurpose"> — functions to initialize internationalization support</span></dt><dt><span class="refentrytitle"><a href="refiaddr.html">ne_iaddr_make</a></span><span class="refpurpose"> — functions to manipulate and compare network addresses</span></dt><dt><span class="refentrytitle"><a href="refalloc.html">ne_malloc</a></span><span class="refpurpose"> — memory allocation wrappers</span></dt><dt><span class="refentrytitle"><a href="refsess.html">ne_session_create</a></span><span class="refpurpose"> — set up HTTP sessions</span></dt><dt><span class="refentrytitle"><a href="refsessflags.html">ne_set_session_flag</a></span><span class="refpurpose"> — set and retrieve session flags</span></dt><dt><span class="refentrytitle"><a href="refreq.html">ne_request_create</a></span><span class="refpurpose"> — low-level HTTP request handling</span></dt><dt><span class="refentrytitle"><a href="refreqhdr.html">ne_add_request_header</a></span><span class="refpurpose"> — add headers to a request</span></dt><dt><span class="refentrytitle"><a href="refresphdr.html">ne_get_response_header</a></span><span class="refpurpose"> — functions to access response headers</span></dt><dt><span class="refentrytitle"><a href="refopts.html">ne_set_useragent</a></span><span class="refpurpose"> — common properties for HTTP sessions</span></dt><dt><span class="refentrytitle"><a href="refreqflags.html">ne_set_request_flag</a></span><span class="refpurpose"> — set and retrieve per-request flags</span></dt><dt><span class="refentrytitle"><a href="refreqbody.html">ne_set_request_body_buffer</a></span><span class="refpurpose"> — include a message body with a request</span></dt><dt><span class="refentrytitle"><a href="refauth.html">ne_set_server_auth</a></span><span class="refpurpose"> — register authentication callbacks</span></dt><dt><span class="refentrytitle"><a href="refshave.html">ne_shave</a></span><span class="refpurpose"> — trim whitespace from a string</span></dt><dt><span class="refentrytitle"><a href="refsockinit.html">ne_sock_init</a></span><span class="refpurpose"> — perform library initialization</span></dt><dt><span class="refentrytitle"><a href="refcert.html">ne_ssl_cert_identity</a></span><span class="refpurpose"> — functions to access certificate properties</span></dt><dt><span class="refentrytitle"><a href="refsslcert2.html">ne_ssl_cert_cmp</a></span><span class="refpurpose"> — functions to operate on certificate objects</span></dt><dt><span class="refentrytitle"><a href="refsslcertio.html">ne_ssl_cert_read</a></span><span class="refpurpose"> — functions to read or write certificates to and from files or strings</span></dt><dt><span class="refentrytitle"><a href="refssldname.html">ne_ssl_dname</a></span><span class="refpurpose"> — SSL distinguished name handling</span></dt><dt><span class="refentrytitle"><a href="refsslca.html">ne_ssl_trust_cert</a></span><span class="refpurpose"> — functions to indicate that certificates are trusted</span></dt><dt><span class="refentrytitle"><a href="refsslvfy.html">ne_ssl_set_verify</a></span><span class="refpurpose"> — register an SSL certificate verification callback</span></dt><dt><span class="refentrytitle"><a href="refclicert.html">ne_ssl_client_cert</a></span><span class="refpurpose"> — SSL client certificate handling</span></dt><dt><span class="refentrytitle"><a href="refstatus.html">ne_status</a></span><span class="refpurpose"> — HTTP status structure</span></dt><dt><span class="refentrytitle"><a href="reftok.html">ne_token</a></span><span class="refpurpose"> — string tokenizers</span></dt><dt><span class="refentrytitle"><a href="refvers.html">ne_version_match</a></span><span class="refpurpose"> — library versioning</span></dt><dt><span class="refentrytitle"><a href="refxml.html">ne_xml_create</a></span><span class="refpurpose"> — create and destroy an XML parser</span></dt></dl></dd><dt><span class="bibliography"><a href="biblio.html">Bibliography</a></span></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>2.1. <a href="xml.html#xml-example">An example XML document</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Chapter 1. Introduction</td></tr></table></div></body></html> diff --git a/doc/html/intro.html b/doc/html/intro.html index 93a4fe1..89360c1 100644 --- a/doc/html/intro.html +++ b/doc/html/intro.html @@ -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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="Chapter 1. Introduction"><div class="titlepage"><div><div><h2 class="title"><a name="intro"></a>Chapter 1. Introduction</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><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#id397176">RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV</a></span></dt><dt><span class="sect2"><a href="compliance.html#id397193">RFC 2616, Hypertext Transfer Protocol—HTTP/1.1</a></span></dt><dt><span class="sect2"><a href="compliance.html#id397233">RFC 2617, HTTP Authentication: Basic and Digest Access Authentication</a></span></dt><dt><span class="sect2"><a href="compliance.html#id397261">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#id397072">CPU or memory consumption attacks</a></span></dt><dt><span class="sect2"><a href="security.html#id397632">SSL/TLS connection security</a></span></dt><dt><span class="sect2"><a href="security.html#id397697">Control character insertion in error messages</a></span></dt><dt><span class="sect2"><a href="security.html#id397714">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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="Chapter 1. Introduction"><div class="titlepage"><div><div><h2 class="title"><a name="intro"></a>Chapter 1. Introduction</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><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#id366045">RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV</a></span></dt><dt><span class="sect2"><a href="compliance.html#id366061">RFC 2616, Hypertext Transfer Protocol—HTTP/1.1</a></span></dt><dt><span class="sect2"><a href="compliance.html#id366100">RFC 2617, HTTP Authentication: Basic and Digest Access Authentication</a></span></dt><dt><span class="sect2"><a href="compliance.html#id366129">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#id365940">CPU or memory consumption attacks</a></span></dt><dt><span class="sect2"><a href="security.html#id366500">SSL/TLS connection security</a></span></dt><dt><span class="sect2"><a href="security.html#id366566">Control character insertion in error messages</a></span></dt><dt><span class="sect2"><a href="security.html#id366583">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 diff --git a/doc/html/ref.html b/doc/html/ref.html index a795792..3b1bfed 100644 --- a/doc/html/ref.html +++ b/doc/html/ref.html @@ -1,2 +1,2 @@ <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>neon API reference</title><link rel="stylesheet" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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="xml.html" title="Parsing XML"><link rel="next" href="refneon.html" title="neon"></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 API reference</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="xml.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="refneon.html">Next</a></td></tr></table><hr></div><div class="reference" title="neon API reference"><div class="titlepage"><div><div><h1 class="title"><a name="ref"></a>neon API reference</h1></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="refentrytitle"><a href="refneon.html">neon</a></span><span class="refpurpose"> — HTTP and WebDAV client library</span></dt><dt><span class="refentrytitle"><a href="refconfig.html">neon-config</a></span><span class="refpurpose"> — script providing information about installed copy - of neon library</span></dt><dt><span class="refentrytitle"><a href="refresolve.html">ne_addr_resolve</a></span><span class="refpurpose"> — functions to resolve hostnames to addresses</span></dt><dt><span class="refentrytitle"><a href="refbuf.html">ne_buffer</a></span><span class="refpurpose"> — string buffer handling</span></dt><dt><span class="refentrytitle"><a href="refbufapp.html">ne_buffer_append</a></span><span class="refpurpose"> — append data to a string buffer</span></dt><dt><span class="refentrytitle"><a href="refbufutil.html">ne_buffer_clear</a></span><span class="refpurpose"> — general purpose of group of functions</span></dt><dt><span class="refentrytitle"><a href="refbufcr.html">ne_buffer_create</a></span><span class="refpurpose"> — general purpose of group of functions</span></dt><dt><span class="refentrytitle"><a href="refbufdest.html">ne_buffer_destroy</a></span><span class="refpurpose"> — destroy a buffer object</span></dt><dt><span class="refentrytitle"><a href="referr.html">ne_get_error</a></span><span class="refpurpose"> — error handling for HTTP sessions</span></dt><dt><span class="refentrytitle"><a href="refgetst.html">ne_get_status</a></span><span class="refpurpose"> — retrieve HTTP response status for request</span></dt><dt><span class="refentrytitle"><a href="reffeat.html">ne_has_support</a></span><span class="refpurpose"> — determine feature support status</span></dt><dt><span class="refentrytitle"><a href="refi18n.html">ne_i18n_init</a></span><span class="refpurpose"> — functions to initialize internationalization support</span></dt><dt><span class="refentrytitle"><a href="refiaddr.html">ne_iaddr_make</a></span><span class="refpurpose"> — functions to manipulate and compare network addresses</span></dt><dt><span class="refentrytitle"><a href="refalloc.html">ne_malloc</a></span><span class="refpurpose"> — memory allocation wrappers</span></dt><dt><span class="refentrytitle"><a href="refsess.html">ne_session_create</a></span><span class="refpurpose"> — set up HTTP sessions</span></dt><dt><span class="refentrytitle"><a href="refsessflags.html">ne_set_session_flag</a></span><span class="refpurpose"> — set and retrieve session flags</span></dt><dt><span class="refentrytitle"><a href="refreq.html">ne_request_create</a></span><span class="refpurpose"> — low-level HTTP request handling</span></dt><dt><span class="refentrytitle"><a href="refreqhdr.html">ne_add_request_header</a></span><span class="refpurpose"> — add headers to a request</span></dt><dt><span class="refentrytitle"><a href="refresphdr.html">ne_get_response_header</a></span><span class="refpurpose"> — functions to access response headers</span></dt><dt><span class="refentrytitle"><a href="refopts.html">ne_set_useragent</a></span><span class="refpurpose"> — common properties for HTTP sessions</span></dt><dt><span class="refentrytitle"><a href="refreqflags.html">ne_set_request_flag</a></span><span class="refpurpose"> — set and retrieve per-request flags</span></dt><dt><span class="refentrytitle"><a href="refreqbody.html">ne_set_request_body_buffer</a></span><span class="refpurpose"> — include a message body with a request</span></dt><dt><span class="refentrytitle"><a href="refauth.html">ne_set_server_auth</a></span><span class="refpurpose"> — register authentication callbacks</span></dt><dt><span class="refentrytitle"><a href="refshave.html">ne_shave</a></span><span class="refpurpose"> — trim whitespace from a string</span></dt><dt><span class="refentrytitle"><a href="refsockinit.html">ne_sock_init</a></span><span class="refpurpose"> — perform library initialization</span></dt><dt><span class="refentrytitle"><a href="refcert.html">ne_ssl_cert_identity</a></span><span class="refpurpose"> — functions to access certificate properties</span></dt><dt><span class="refentrytitle"><a href="refsslcert2.html">ne_ssl_cert_cmp</a></span><span class="refpurpose"> — functions to operate on certificate objects</span></dt><dt><span class="refentrytitle"><a href="refsslcertio.html">ne_ssl_cert_read</a></span><span class="refpurpose"> — functions to read or write certificates to and from files or strings</span></dt><dt><span class="refentrytitle"><a href="refssldname.html">ne_ssl_dname</a></span><span class="refpurpose"> — SSL distinguished name handling</span></dt><dt><span class="refentrytitle"><a href="refsslca.html">ne_ssl_trust_cert</a></span><span class="refpurpose"> — functions to indicate that certificates are trusted</span></dt><dt><span class="refentrytitle"><a href="refsslvfy.html">ne_ssl_set_verify</a></span><span class="refpurpose"> — register an SSL certificate verification callback</span></dt><dt><span class="refentrytitle"><a href="refclicert.html">ne_ssl_client_cert</a></span><span class="refpurpose"> — SSL client certificate handling</span></dt><dt><span class="refentrytitle"><a href="refstatus.html">ne_status</a></span><span class="refpurpose"> — HTTP status structure</span></dt><dt><span class="refentrytitle"><a href="reftok.html">ne_token</a></span><span class="refpurpose"> — string tokenizers</span></dt><dt><span class="refentrytitle"><a href="refvers.html">ne_version_match</a></span><span class="refpurpose"> — library versioning</span></dt><dt><span class="refentrytitle"><a href="refxml.html">ne_xml_create</a></span><span class="refpurpose"> — create and destroy an XML parser</span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="xml.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="refneon.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Parsing XML </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> neon</td></tr></table></div></body></html> + of neon library</span></dt><dt><span class="refentrytitle"><a href="refresolve.html">ne_addr_resolve</a></span><span class="refpurpose"> — functions to resolve hostnames to addresses</span></dt><dt><span class="refentrytitle"><a href="refbuf.html">ne_buffer</a></span><span class="refpurpose"> — string buffer handling</span></dt><dt><span class="refentrytitle"><a href="refbufapp.html">ne_buffer_append</a></span><span class="refpurpose"> — append data to a string buffer</span></dt><dt><span class="refentrytitle"><a href="refbufutil.html">ne_buffer_clear</a></span><span class="refpurpose"> — clear, grow, or mark as altered a string buffer</span></dt><dt><span class="refentrytitle"><a href="refbufcr.html">ne_buffer_create</a></span><span class="refpurpose"> — create a string buffer</span></dt><dt><span class="refentrytitle"><a href="refbufdest.html">ne_buffer_destroy</a></span><span class="refpurpose"> — destroy a buffer object</span></dt><dt><span class="refentrytitle"><a href="referr.html">ne_get_error</a></span><span class="refpurpose"> — error handling for HTTP sessions</span></dt><dt><span class="refentrytitle"><a href="refgetst.html">ne_get_status</a></span><span class="refpurpose"> — retrieve HTTP response status for request</span></dt><dt><span class="refentrytitle"><a href="reffeat.html">ne_has_support</a></span><span class="refpurpose"> — determine feature support status</span></dt><dt><span class="refentrytitle"><a href="refi18n.html">ne_i18n_init</a></span><span class="refpurpose"> — functions to initialize internationalization support</span></dt><dt><span class="refentrytitle"><a href="refiaddr.html">ne_iaddr_make</a></span><span class="refpurpose"> — functions to manipulate and compare network addresses</span></dt><dt><span class="refentrytitle"><a href="refalloc.html">ne_malloc</a></span><span class="refpurpose"> — memory allocation wrappers</span></dt><dt><span class="refentrytitle"><a href="refsess.html">ne_session_create</a></span><span class="refpurpose"> — set up HTTP sessions</span></dt><dt><span class="refentrytitle"><a href="refsessflags.html">ne_set_session_flag</a></span><span class="refpurpose"> — set and retrieve session flags</span></dt><dt><span class="refentrytitle"><a href="refreq.html">ne_request_create</a></span><span class="refpurpose"> — low-level HTTP request handling</span></dt><dt><span class="refentrytitle"><a href="refreqhdr.html">ne_add_request_header</a></span><span class="refpurpose"> — add headers to a request</span></dt><dt><span class="refentrytitle"><a href="refresphdr.html">ne_get_response_header</a></span><span class="refpurpose"> — functions to access response headers</span></dt><dt><span class="refentrytitle"><a href="refopts.html">ne_set_useragent</a></span><span class="refpurpose"> — common properties for HTTP sessions</span></dt><dt><span class="refentrytitle"><a href="refreqflags.html">ne_set_request_flag</a></span><span class="refpurpose"> — set and retrieve per-request flags</span></dt><dt><span class="refentrytitle"><a href="refreqbody.html">ne_set_request_body_buffer</a></span><span class="refpurpose"> — include a message body with a request</span></dt><dt><span class="refentrytitle"><a href="refauth.html">ne_set_server_auth</a></span><span class="refpurpose"> — register authentication callbacks</span></dt><dt><span class="refentrytitle"><a href="refshave.html">ne_shave</a></span><span class="refpurpose"> — trim whitespace from a string</span></dt><dt><span class="refentrytitle"><a href="refsockinit.html">ne_sock_init</a></span><span class="refpurpose"> — perform library initialization</span></dt><dt><span class="refentrytitle"><a href="refcert.html">ne_ssl_cert_identity</a></span><span class="refpurpose"> — functions to access certificate properties</span></dt><dt><span class="refentrytitle"><a href="refsslcert2.html">ne_ssl_cert_cmp</a></span><span class="refpurpose"> — functions to operate on certificate objects</span></dt><dt><span class="refentrytitle"><a href="refsslcertio.html">ne_ssl_cert_read</a></span><span class="refpurpose"> — functions to read or write certificates to and from files or strings</span></dt><dt><span class="refentrytitle"><a href="refssldname.html">ne_ssl_dname</a></span><span class="refpurpose"> — SSL distinguished name handling</span></dt><dt><span class="refentrytitle"><a href="refsslca.html">ne_ssl_trust_cert</a></span><span class="refpurpose"> — functions to indicate that certificates are trusted</span></dt><dt><span class="refentrytitle"><a href="refsslvfy.html">ne_ssl_set_verify</a></span><span class="refpurpose"> — register an SSL certificate verification callback</span></dt><dt><span class="refentrytitle"><a href="refclicert.html">ne_ssl_client_cert</a></span><span class="refpurpose"> — SSL client certificate handling</span></dt><dt><span class="refentrytitle"><a href="refstatus.html">ne_status</a></span><span class="refpurpose"> — HTTP status structure</span></dt><dt><span class="refentrytitle"><a href="reftok.html">ne_token</a></span><span class="refpurpose"> — string tokenizers</span></dt><dt><span class="refentrytitle"><a href="refvers.html">ne_version_match</a></span><span class="refpurpose"> — library versioning</span></dt><dt><span class="refentrytitle"><a href="refxml.html">ne_xml_create</a></span><span class="refpurpose"> — create and destroy an XML parser</span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="xml.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="refneon.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Parsing XML </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> neon</td></tr></table></div></body></html> diff --git a/doc/html/refalloc.html b/doc/html/refalloc.html index b4d01ff..83d5a39 100644 --- a/doc/html/refalloc.html +++ b/doc/html/refalloc.html @@ -1,4 +1,4 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_malloc</title><link rel="stylesheet" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_malloc"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_alloc.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id405962"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_malloc"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_alloc.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id374824"></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" title="Notes"><a name="id406018"></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" title="Notes"><a name="id374879"></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> diff --git a/doc/html/refauth.html b/doc/html/refauth.html index 5845503..e58b1ce 100644 --- a/doc/html/refauth.html +++ b/doc/html/refauth.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_set_server_auth"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_auth.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id411344"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_set_server_auth"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_auth.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id380207"></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" title="Examples"><a name="id411438"></a><h2>Examples</h2><pre class="programlisting"> +used to discard the cached authentication credentials.</p></div><div class="refsect1" title="Examples"><a name="id380301"></a><h2>Examples</h2><pre class="programlisting"> /* Function which prompts for a line of user input: */ extern char *prompt_for(const char *prompt); diff --git a/doc/html/refbuf.html b/doc/html/refbuf.html index 40b32c5..40214ec 100644 --- a/doc/html/refbuf.html +++ b/doc/html/refbuf.html @@ -4,7 +4,7 @@ typedef struct { char *data; size_t used; size_t length; -} <em class="type">ne_buffer</em>;</pre></div></div><div class="refsect1" title="Description"><a name="id401736"></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" title="Description"><a name="id370594"></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 string, the length of which is given by the diff --git a/doc/html/refbufapp.html b/doc/html/refbufapp.html index 1e43518..34836de 100644 --- a/doc/html/refbufapp.html +++ b/doc/html/refbufapp.html @@ -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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_buffer_append"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id402111"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_buffer_append"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id370968"></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" title="Examples"><a name="id402203"></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" title="Examples"><a name="id371061"></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" title="See also"><a name="id402225"></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" title="See also"><a name="id371082"></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> diff --git a/doc/html/refbufcr.html b/doc/html/refbufcr.html index 27f3607..0de8ecb 100644 --- a/doc/html/refbufcr.html +++ b/doc/html/refbufcr.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_buffer_create"><a name="refbufcr"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer_create, ne_buffer_ncreate — general purpose of group of functions</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_alloc.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id403024"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_buffer_create"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_alloc.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id371882"></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" title="Return value"><a name="id403057"></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" title="See also"><a name="id403072"></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" title="Return value"><a name="id371915"></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" title="See also"><a name="id371930"></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> diff --git a/doc/html/refbufdest.html b/doc/html/refbufdest.html index 26a5c19..93bf8cf 100644 --- a/doc/html/refbufdest.html +++ b/doc/html/refbufdest.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_buffer_destroy"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id403324"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_buffer_destroy"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id372183"></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" title="Return value"><a name="id403354"></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" title="Examples"><a name="id403373"></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" title="Return value"><a name="id372212"></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" title="Examples"><a name="id372231"></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" title="See also"><a name="id403410"></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>, +}</pre></div><div class="refsect1" title="See also"><a name="id372268"></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> diff --git a/doc/html/refbufutil.html b/doc/html/refbufutil.html index 86961bd..97efbd4 100644 --- a/doc/html/refbufutil.html +++ b/doc/html/refbufutil.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_buffer_clear"><a name="refbufutil"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer_clear, ne_buffer_grow, ne_buffer_altered — general purpose of group of functions</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id402670"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_buffer_clear"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id371527"></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 diff --git a/doc/html/refcert.html b/doc/html/refcert.html index 76ffcf5..40f1221 100644 --- a/doc/html/refcert.html +++ b/doc/html/refcert.html @@ -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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_ssl_cert_identity"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id412731"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_ssl_cert_identity"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id381595"></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" title="Return value"><a name="id412785"></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" title="Return value"><a name="id381649"></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" title="Examples"><a name="id412833"></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" title="Examples"><a name="id381697"></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" title="See also"><a name="id412852"></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" title="See also"><a name="id381716"></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> diff --git a/doc/html/refclicert.html b/doc/html/refclicert.html index e9fb57b..a23954d 100644 --- a/doc/html/refclicert.html +++ b/doc/html/refclicert.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_ssl_client_cert"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id415570"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_ssl_client_cert"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id384434"></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" title="Return value"><a name="id415680"></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" title="Return value"><a name="id384544"></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" title="Examples"><a name="id415726"></a><h2>Examples</h2><p>The following code reads a client certificate and decrypts + object.</p></div><div class="refsect1" title="Examples"><a name="id384590"></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" title="See also"><a name="id415745"></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" title="See also"><a name="id384608"></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> diff --git a/doc/html/refconfig.html b/doc/html/refconfig.html index 75842c9..cd1fe28 100644 --- a/doc/html/refconfig.html +++ b/doc/html/refconfig.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="neon-config"><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" title="Synopsis"><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" title="Description"><a name="id400325"></a><h2>Description</h2><p>The <span class="command"><strong>neon-config</strong></span> script provides + of neon library</p></div><div class="refsynopsisdiv" title="Synopsis"><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" title="Description"><a name="id369182"></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" title="Options"><a name="id400354"></a><h2>Options</h2><div class="variablelist"><table border="0"><col align="left" valign="top"><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" title="Options"><a name="id369211"></a><h2>Options</h2><div class="variablelist"><table border="0"><col align="left" valign="top"><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 diff --git a/doc/html/referr.html b/doc/html/referr.html index 17a9dbe..1e571e2 100644 --- a/doc/html/referr.html +++ b/doc/html/referr.html @@ -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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_get_error"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id403739"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_get_error"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id372598"></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,10 +8,10 @@ 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" title="Return value"><a name="id403780"></a><h2>Return value</h2><p><code class="function">ne_set_error</code> returns a constant + interface.</p></div><div class="refsect1" title="Return value"><a name="id372639"></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" title="Examples"><a name="id403806"></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" title="Examples"><a name="id372665"></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(...); ... diff --git a/doc/html/reffeat.html b/doc/html/reffeat.html index 7fe6d7f..804d1a3 100644 --- a/doc/html/reffeat.html +++ b/doc/html/reffeat.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_has_support"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_utils.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id404379"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_has_support"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_utils.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id373238"></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"><col align="left" valign="top"><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" title="Return value"><a name="id404490"></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" title="See also"><a name="id404505"></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" title="Return value"><a name="id373349"></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" title="See also"><a name="id373364"></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> diff --git a/doc/html/refgetst.html b/doc/html/refgetst.html index cf05805..acef34a 100644 --- a/doc/html/refgetst.html +++ b/doc/html/refgetst.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_get_status"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id404105"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_get_status"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id372963"></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" title="See also"><a name="id404135"></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" title="Example"><a name="id404151"></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" title="See also"><a name="id372994"></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" title="Example"><a name="id373009"></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... */ diff --git a/doc/html/refi18n.html b/doc/html/refi18n.html index 3fc5ef0..6242a35 100644 --- a/doc/html/refi18n.html +++ b/doc/html/refi18n.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_i18n_init"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_i18n.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id404812"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_i18n_init"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_i18n.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id373672"></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" title="See also"><a name="id404891"></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" title="See also"><a name="id373752"></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> diff --git a/doc/html/refiaddr.html b/doc/html/refiaddr.html index 5fc3c61..7624d78 100644 --- a/doc/html/refiaddr.html +++ b/doc/html/refiaddr.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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id405258"></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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id374120"></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 @@ -20,10 +20,10 @@ typedef enum { buffer, for instance the string <code class="literal">"127.0.0.1"</code>.</p><p><code class="function">ne_iaddr_typeof</code> returns the type of the given network address.</p><p><code class="function">ne_iaddr_free</code> releases the memory - associated with a network address object.</p></div><div class="refsect1" title="Return value"><a name="id405331"></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" title="Return value"><a name="id374192"></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></div><div class="refsect1" title="Examples"><a name="id405369"></a><h2>Examples</h2><p>The following example connects a socket to port 80 at the + <code class="parameter">buffer</code> pointer, and never <code class="literal">NULL</code>.</p></div><div class="refsect1" title="Examples"><a name="id374230"></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; @@ -34,4 +34,4 @@ if (ia != NULL) { /* ... */ } else { /* ... */ -}</pre></div><div class="refsect1" title="See also"><a name="id405392"></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" title="See also"><a name="id374253"></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> diff --git a/doc/html/refneon.html b/doc/html/refneon.html index e3e4476..999a795 100644 --- a/doc/html/refneon.html +++ b/doc/html/refneon.html @@ -1,11 +1,11 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>neon</title><link rel="stylesheet" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="neon"><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" title="Description"><a name="id399049"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="neon"><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" title="Description"><a name="id367908"></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" title="Conventions"><a name="id398999"></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" title="Conventions"><a name="id367858"></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" title="Thread-safeness and global initialization"><a name="id399009"></a><h3>Thread-safeness and global initialization</h3><p>neon itself is implemented to be thread-safe (avoiding any + below.</p><div class="refsect2" title="Thread-safeness and global initialization"><a name="id367867"></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" title="Asynchronous signal safety"><a name="id399250"></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" title="Asynchronous signal safety"><a name="id368108"></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" title="Functions using global state"><a name="id399265"></a><h3>Functions using global state</h3><p>Any function in neon may modify the + process.</p></div><div class="refsect2" title="Functions using global state"><a name="id368123"></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" title="Namespaces"><a name="id399340"></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" title="Namespaces"><a name="id368198"></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" title="Argument validation"><a name="id399470"></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" title="Argument validation"><a name="id368328"></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" title="URI paths, WebDAV metadata"><a name="id399482"></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" title="URI paths, WebDAV metadata"><a name="id368340"></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" title="User interaction"><a name="id399506"></a><h3>User interaction</h3><p>As a pure library interface, neon will never produce + strings.</p></div><div class="refsect2" title="User interaction"><a name="id368365"></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 - responsibilty of the application.</p></div><div class="refsect2" title="Memory handling"><a name="id399527"></a><h3>Memory handling</h3><p>neon does not attempt to cope gracefully with an + responsibilty of the application.</p></div><div class="refsect2" title="Memory handling"><a name="id368386"></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" title="Callbacks and userdata"><a name="id399555"></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" title="Callbacks and userdata"><a name="id368414"></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" title="Large File Support"><a name="id399576"></a><h3>Large File Support</h3><p>Since version 0.27.0, neon transparently uses the "LFS + be used.</p></div><div class="refsect2" title="Large File Support"><a name="id368434"></a><h3>Large File Support</h3><p>Since version 0.27.0, neon transparently uses the "LFS transitional" interfaces in places where file-backed file descriptors are manipulated. This means files larger than 2GiB can be handled on platforms with a native 32-bit @@ -110,4 +110,4 @@ 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" title="See also"><a name="id399622"></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></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> + <code class="literal">-D_FILE_OFFSET_BITS=64</code> macro definition.</p></div></div><div class="refsect1" title="See also"><a name="id368480"></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></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> diff --git a/doc/html/refopts.html b/doc/html/refopts.html index 2d0e635..fd54c79 100644 --- a/doc/html/refopts.html +++ b/doc/html/refopts.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_set_useragent"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id409777"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_set_useragent"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id378638"></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" title="Examples"><a name="id409886"></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" title="Examples"><a name="id378747"></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" title="See also"><a name="id409911"></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" title="See also"><a name="id378772"></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> diff --git a/doc/html/refreq.html b/doc/html/refreq.html index 1d02516..b6815a4 100644 --- a/doc/html/refreq.html +++ b/doc/html/refreq.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_request_create"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id407798"></a><h2>Description</h2><p>An HTTP request, represented by the +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_request_create</title><link rel="stylesheet" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_request_create"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id376659"></a><h2>Description</h2><p>An HTTP request, represented by the <em class="type">ne_request</em> type, specifies that some operation is to be performed on some resource. The <code class="function">ne_request_create</code> function creates a request @@ -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" title="Return value"><a name="id407964"></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" title="Return value"><a name="id376825"></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" title="Errors"><a name="id407996"></a><h2>Errors</h2><div class="variablelist"><table border="0"><col align="left" valign="top"><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" title="Example"><a name="id408095"></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" title="Errors"><a name="id376857"></a><h2>Errors</h2><div class="variablelist"><table border="0"><col align="left" valign="top"><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" title="Example"><a name="id376956"></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" title="See also"><a name="id408122"></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" title="See also"><a name="id376983"></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> diff --git a/doc/html/refreqbody.html b/doc/html/refreqbody.html index 14ae3a1..ed53a9d 100644 --- a/doc/html/refreqbody.html +++ b/doc/html/refreqbody.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_set_request_body_buffer"><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, ne_set_request_body_fd64 — include a message body with a request</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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>off_t <var class="pdparam">begin</var>, </td></tr><tr><td> </td><td>off_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1" title="Description"><a name="id410834"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_set_request_body_buffer"><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, ne_set_request_body_fd64 — include a message body with a request</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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>off_t <var class="pdparam">begin</var>, </td></tr><tr><td> </td><td>off_t <var class="pdparam">length</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1" title="Description"><a name="id379698"></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" title="See also"><a name="id410907"></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" title="See also"><a name="id379771"></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> diff --git a/doc/html/refreqflags.html b/doc/html/refreqflags.html index d1d8b75..1315d53 100644 --- a/doc/html/refreqflags.html +++ b/doc/html/refreqflags.html @@ -1,9 +1,14 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_request_flag</title><link rel="stylesheet" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_set_request_flag"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id410393"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_set_request_flag"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id379253"></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"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><code class="constant">NE_REQFLAG_EXPECT100</code></span></p></td><td>enables this flag to use the "Expect: - 100-continue" feature of HTTP/1.1</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 + disables it.</p><p>The following flags are defined:</p><div class="variablelist"><table border="0"><col align="left" valign="top"><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: + 100-continue" feature of HTTP/1.1, which allows the + server to process request headers without reading the + entire request body. This saves time and bandwidth if + the server gives an authentication challenge (requiring + 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" title="Return value"><a name="id410454"></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" title="Return value"><a name="id379316"></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" title="See also"><a name="id410470"></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" title="See also"><a name="id379332"></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> diff --git a/doc/html/refreqhdr.html b/doc/html/refreqhdr.html index a621b49..dcb9d42 100644 --- a/doc/html/refreqhdr.html +++ b/doc/html/refreqhdr.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_add_request_header"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id408785"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_add_request_header"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id377646"></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" title="See also"><a name="id408847"></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" title="See also"><a name="id377708"></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> diff --git a/doc/html/refresolve.html b/doc/html/refresolve.html index 2de4528..0789f1f 100644 --- a/doc/html/refresolve.html +++ b/doc/html/refresolve.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_addr_resolve"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_socket.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id401032"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_addr_resolve"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_socket.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id369890"></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" title="Return value"><a name="id401178"></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" title="Return value"><a name="id370035"></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" title="Examples"><a name="id401207"></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" title="Examples"><a name="id370065"></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" title="See also"><a name="id401232"></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" title="See also"><a name="id370089"></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> diff --git a/doc/html/refresphdr.html b/doc/html/refresphdr.html index 813ffcd..905bb72 100644 --- a/doc/html/refresphdr.html +++ b/doc/html/refresphdr.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_get_response_header"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id409190"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_get_response_header"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id378052"></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" title="Return value"><a name="id409243"></a><h2>Return value</h2><p><code class="function">ne_get_response_header</code> returns a + next header.</p></div><div class="refsect1" title="Return value"><a name="id378104"></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" title="Examples"><a name="id409283"></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" title="Examples"><a name="id378143"></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" title="See also"><a name="id409306"></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" title="See also"><a name="id378166"></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> diff --git a/doc/html/refsess.html b/doc/html/refsess.html index 98b5ee9..531bfd3 100644 --- a/doc/html/refsess.html +++ b/doc/html/refsess.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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="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_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="refsessflags.html">Next</a></td></tr></table><hr></div><div class="refentry" title="ne_session_create"><a name="refsess"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_session_create, ne_close_connection, ne_session_proxy, ne_session_destroy — set up HTTP sessions</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id406495"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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="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_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="refsessflags.html">Next</a></td></tr></table><hr></div><div class="refentry" title="ne_session_create"><a name="refsess"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_session_create, ne_close_connection, ne_session_proxy, ne_session_destroy — set up HTTP sessions</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id375355"></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 @@ -23,14 +23,14 @@ this function is entirely optional, but it must not be called if there is a request active using the session.</p><p>Once a session has been completed, <code class="function">ne_session_destroy</code> must be called to destroy the resources associated with the session. Any subsequent use of the -session pointer produces undefined behaviour.</p></div><div class="refsect1" title="Notes"><a name="id406615"></a><h2>Notes</h2><p>The hostname passed to +session pointer produces undefined behaviour.</p></div><div class="refsect1" title="Notes"><a name="id375475"></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" title="Return Values"><a name="id406641"></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" title="Examples"><a name="id406660"></a><h2>Examples</h2><p>Create and destroy a session:</p><pre class="programlisting">ne_session *sess; +details.</p></div><div class="refsect1" title="Return Values"><a name="id375500"></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" title="Examples"><a name="id375520"></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" title="See Also"><a name="id406676"></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="refsessflags.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_set_session_flag</td></tr></table></div></body></html> +</pre></div><div class="refsect1" title="See Also"><a name="id375536"></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="refsessflags.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_set_session_flag</td></tr></table></div></body></html> diff --git a/doc/html/refsessflags.html b/doc/html/refsessflags.html index 322ab02..64cb14f 100644 --- a/doc/html/refsessflags.html +++ b/doc/html/refsessflags.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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="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="refsess.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" title="ne_set_session_flag"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id407203"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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="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="refsess.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" title="ne_set_session_flag"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_request.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id376064"></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"><col align="left" valign="top"><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" title="Return value"><a name="id407336"></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" title="Return value"><a name="id376197"></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" title="See also"><a name="id407352"></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="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="refreq.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_request_create</td></tr></table></div></body></html> + not supported, or greater than zero if the flag is enabled.</p></div><div class="refsect1" title="See also"><a name="id376213"></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="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="refreq.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_request_create</td></tr></table></div></body></html> diff --git a/doc/html/refshave.html b/doc/html/refshave.html index 6342048..8000e09 100644 --- a/doc/html/refshave.html +++ b/doc/html/refshave.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_shave"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id411848"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_shave"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id380711"></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" title="Examples"><a name="id411882"></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" title="Examples"><a name="id380746"></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> diff --git a/doc/html/refsockinit.html b/doc/html/refsockinit.html index c246a6d..5e98625 100644 --- a/doc/html/refsockinit.html +++ b/doc/html/refsockinit.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_sock_init"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_socket.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id412117"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_sock_init"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_socket.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id380980"></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" title="Thread-safe SSL with OpenSSL"><a name="id412212"></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" title="Thread-safe SSL with OpenSSL"><a name="id381075"></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" 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" title="Thread-safe SSL with GnuTLS"><a name="id412251"></a><h3>Thread-safe SSL with GnuTLS</h3><p>The cryptography library used by GnuTLS, libgcrypt, only + always followed.</p></div><div class="refsect2" title="Thread-safe SSL with GnuTLS"><a name="id381115"></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" title="Return value"><a name="id412278"></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" title="Return value"><a name="id381140"></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" title="See also"><a name="id412292"></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" title="See also"><a name="id381156"></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> diff --git a/doc/html/refsslca.html b/doc/html/refsslca.html index 48943f1..ce83a10 100644 --- a/doc/html/refsslca.html +++ b/doc/html/refsslca.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_ssl_trust_cert"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id414493"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_ssl_trust_cert"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id383356"></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" title="Examples"><a name="id414518"></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" title="Examples"><a name="id383381"></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" title="See also"><a name="id414540"></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" title="See also"><a name="id383403"></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> diff --git a/doc/html/refsslcert2.html b/doc/html/refsslcert2.html index b1717e8..bb70a01 100644 --- a/doc/html/refsslcert2.html +++ b/doc/html/refsslcert2.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_ssl_cert_cmp"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_header.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id413259"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_ssl_cert_cmp"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_header.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id382122"></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 diff --git a/doc/html/refsslcertio.html b/doc/html/refsslcertio.html index 8356d4e..6c00bba 100644 --- a/doc/html/refsslcertio.html +++ b/doc/html/refsslcertio.html @@ -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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_ssl_cert_read"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id413558"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_ssl_cert_read"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id382422"></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" title="Return value"><a name="id413620"></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" title="Return value"><a name="id382483"></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" title="Encoding Formats"><a name="id413672"></a><h2>Encoding Formats</h2><p>The string produced by + string was not a valid base64-encoded certificate.</p></div><div class="refsect1" title="Encoding Formats"><a name="id382535"></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 diff --git a/doc/html/refssldname.html b/doc/html/refssldname.html index 301dca0..0ce7999 100644 --- a/doc/html/refssldname.html +++ b/doc/html/refssldname.html @@ -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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_ssl_dname"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id414094"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_ssl_dname"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_ssl.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id382958"></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" title="Return value"><a name="id414132"></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" title="Examples"><a name="id414156"></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" title="See also"><a name="id414175"></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" title="Return value"><a name="id382996"></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" title="Examples"><a name="id383020"></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" title="See also"><a name="id383039"></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> diff --git a/doc/html/refsslvfy.html b/doc/html/refsslvfy.html index 7d97c48..816f921 100644 --- a/doc/html/refsslvfy.html +++ b/doc/html/refsslvfy.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_ssl_set_verify"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id414853"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_ssl_set_verify"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_session.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id383716"></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" title="Return value"><a name="id414973"></a><h2>Return value</h2><p>The verification callback must return zero to indicate +callback returns.</p></div><div class="refsect1" title="Return value"><a name="id383837"></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" title="Examples"><a name="id414984"></a><h2>Examples</h2><p>The following code implements an example verification +which case, the connection will fail).</p></div><div class="refsect1" title="Examples"><a name="id383848"></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" title="See also"><a name="id415030"></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" title="See also"><a name="id383893"></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> diff --git a/doc/html/refstatus.html b/doc/html/refstatus.html index b028d0f..02cc147 100644 --- a/doc/html/refstatus.html +++ b/doc/html/refstatus.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" title="Description"><a name="id416209"></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" title="Description"><a name="id385073"></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<sup>[<a name="id416234" href="#ftn.id416234" class="footnote">2</a>]</sup>, which is equal to the most significant digit +class<sup>[<a name="id385097" href="#ftn.id385097" class="footnote">2</a>]</sup>, 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"><col align="left" valign="top"><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" title="See also"><a name="id416327"></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 width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id416234" href="#id416234" class="para">2</a>] </sup>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" title="See also"><a name="id385191"></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 width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id385097" href="#id385097" class="para">2</a>] </sup>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> diff --git a/doc/html/reftok.html b/doc/html/reftok.html index 472d7b1..4378524 100644 --- a/doc/html/reftok.html +++ b/doc/html/reftok.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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_token"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id416645"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_token"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_string.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id385508"></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" title="Examples"><a name="id416709"></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" title="Examples"><a name="id385573"></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) { diff --git a/doc/html/refvers.html b/doc/html/refvers.html index 3f5edad..fd07c19 100644 --- a/doc/html/refvers.html +++ b/doc/html/refvers.html @@ -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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_version_match"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_utils.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id417027"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_version_match"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_utils.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id385890"></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" title="Examples"><a name="id417065"></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" title="Examples"><a name="id385928"></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); diff --git a/doc/html/refxml.html b/doc/html/refxml.html index d2593fd..dbc8c9b 100644 --- a/doc/html/refxml.html +++ b/doc/html/refxml.html @@ -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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_xml_create"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_xml.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id417312"></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" href="../manual.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><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" title="ne_xml_create"><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" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include <ne_xml.h></pre><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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" title="Description"><a name="id386175"></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" title="Return value"><a name="id417327"></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" title="See also"><a name="id417346"></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" title="Return value"><a name="id386191"></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" title="See also"><a name="id386209"></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> diff --git a/doc/html/security.html b/doc/html/security.html index 82d37f3..5da86ef 100644 --- a/doc/html/security.html +++ b/doc/html/security.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" title="CPU or memory consumption attacks"><div class="titlepage"><div><div><h3 class="title"><a name="id397072"></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" title="CPU or memory consumption attacks"><div class="titlepage"><div><div><h3 class="title"><a name="id365940"></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" 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" title="SSL/TLS connection security"><div class="titlepage"><div><div><h3 class="title"><a name="id397632"></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" title="SSL/TLS connection security"><div class="titlepage"><div><div><h3 class="title"><a name="id366500"></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" title="Control character insertion in error messages"><div class="titlepage"><div><div><h3 class="title"><a name="id397697"></a>Control character insertion in error messages</h3></div></div></div><p>Where error messages (as returned by + suite.</p></div><div class="sect2" title="Control character insertion in error messages"><div class="titlepage"><div><div><h3 class="title"><a name="id366566"></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" title="Attacks against authentication credentials"><div class="titlepage"><div><div><h3 class="title"><a name="id397714"></a>Attacks against authentication credentials</h3></div></div></div><p>Authentication credentials can be compromised by a + user interface).</p></div><div class="sect2" title="Attacks against authentication credentials"><div class="titlepage"><div><div><h3 class="title"><a name="id366583"></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 diff --git a/doc/man/ne_add_request_header.3 b/doc/man/ne_add_request_header.3 index f5cde13..a124814 100644 --- a/doc/man/ne_add_request_header.3 +++ b/doc/man/ne_add_request_header.3 @@ -2,12 +2,12 @@ .\" Title: ne_add_request_header .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_ADD_REQUEST_HEADE" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_ADD_REQUEST_HEADE" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_addr_resolve.3 b/doc/man/ne_addr_resolve.3 index b531c17..d79c014 100644 --- a/doc/man/ne_addr_resolve.3 +++ b/doc/man/ne_addr_resolve.3 @@ -2,12 +2,12 @@ .\" Title: ne_addr_resolve .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_ADDR_RESOLVE" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_ADDR_RESOLVE" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_buffer.3 b/doc/man/ne_buffer.3 index 4f91fcd..9aecbbc 100644 --- a/doc/man/ne_buffer.3 +++ b/doc/man/ne_buffer.3 @@ -2,12 +2,12 @@ .\" Title: ne_buffer .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_BUFFER" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_BUFFER" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_buffer_append.3 b/doc/man/ne_buffer_append.3 index a8d3562..179b869 100644 --- a/doc/man/ne_buffer_append.3 +++ b/doc/man/ne_buffer_append.3 @@ -2,12 +2,12 @@ .\" Title: ne_buffer_append .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_BUFFER_APPEND" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_BUFFER_APPEND" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_buffer_clear.3 b/doc/man/ne_buffer_clear.3 index 23fc66f..14c9935 100644 --- a/doc/man/ne_buffer_clear.3 +++ b/doc/man/ne_buffer_clear.3 @@ -2,12 +2,12 @@ .\" Title: ne_buffer_clear .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_BUFFER_CLEAR" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_BUFFER_CLEAR" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -19,7 +19,7 @@ .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" -ne_buffer_clear, ne_buffer_grow, ne_buffer_altered \- general purpose of group of functions +ne_buffer_clear, ne_buffer_grow, ne_buffer_altered \- clear, grow, or mark as altered a string buffer .SH "SYNOPSIS" .sp .ft B diff --git a/doc/man/ne_buffer_create.3 b/doc/man/ne_buffer_create.3 index 685baba..f066c30 100644 --- a/doc/man/ne_buffer_create.3 +++ b/doc/man/ne_buffer_create.3 @@ -2,12 +2,12 @@ .\" Title: ne_buffer_create .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_BUFFER_CREATE" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_BUFFER_CREATE" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -19,7 +19,7 @@ .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" -ne_buffer_create, ne_buffer_ncreate \- general purpose of group of functions +ne_buffer_create, ne_buffer_ncreate \- create a string buffer .SH "SYNOPSIS" .sp .ft B diff --git a/doc/man/ne_buffer_destroy.3 b/doc/man/ne_buffer_destroy.3 index ae120fd..5d8e0ee 100644 --- a/doc/man/ne_buffer_destroy.3 +++ b/doc/man/ne_buffer_destroy.3 @@ -2,12 +2,12 @@ .\" Title: ne_buffer_destroy .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_BUFFER_DESTROY" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_BUFFER_DESTROY" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_get_error.3 b/doc/man/ne_get_error.3 index 2cc9ea2..2e6b0ed 100644 --- a/doc/man/ne_get_error.3 +++ b/doc/man/ne_get_error.3 @@ -2,12 +2,12 @@ .\" Title: ne_get_error .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_GET_ERROR" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_GET_ERROR" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_get_response_header.3 b/doc/man/ne_get_response_header.3 index bd4ea1c..ed84c3e 100644 --- a/doc/man/ne_get_response_header.3 +++ b/doc/man/ne_get_response_header.3 @@ -2,12 +2,12 @@ .\" Title: ne_get_response_header .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_GET_RESPONSE_HEAD" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_GET_RESPONSE_HEAD" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_get_status.3 b/doc/man/ne_get_status.3 index ae730dd..a52eb5b 100644 --- a/doc/man/ne_get_status.3 +++ b/doc/man/ne_get_status.3 @@ -2,12 +2,12 @@ .\" Title: ne_get_status .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_GET_STATUS" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_GET_STATUS" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_has_support.3 b/doc/man/ne_has_support.3 index 8329c8d..f67454e 100644 --- a/doc/man/ne_has_support.3 +++ b/doc/man/ne_has_support.3 @@ -2,12 +2,12 @@ .\" Title: ne_has_support .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_HAS_SUPPORT" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_HAS_SUPPORT" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_i18n_init.3 b/doc/man/ne_i18n_init.3 index 80af8d9..5505010 100644 --- a/doc/man/ne_i18n_init.3 +++ b/doc/man/ne_i18n_init.3 @@ -2,12 +2,12 @@ .\" Title: ne_i18n_init .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_I18N_INIT" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_I18N_INIT" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_iaddr_make.3 b/doc/man/ne_iaddr_make.3 index 8d4218a..fc3b1ca 100644 --- a/doc/man/ne_iaddr_make.3 +++ b/doc/man/ne_iaddr_make.3 @@ -2,12 +2,12 @@ .\" Title: ne_iaddr_make .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_IADDR_MAKE" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_IADDR_MAKE" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_malloc.3 b/doc/man/ne_malloc.3 index d81b313..5e9c333 100644 --- a/doc/man/ne_malloc.3 +++ b/doc/man/ne_malloc.3 @@ -2,12 +2,12 @@ .\" Title: ne_malloc .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_MALLOC" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_MALLOC" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_request_create.3 b/doc/man/ne_request_create.3 index 48b6d05..0c32461 100644 --- a/doc/man/ne_request_create.3 +++ b/doc/man/ne_request_create.3 @@ -2,12 +2,12 @@ .\" Title: ne_request_create .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_REQUEST_CREATE" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_REQUEST_CREATE" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_session_create.3 b/doc/man/ne_session_create.3 index 048785f..8de42d3 100644 --- a/doc/man/ne_session_create.3 +++ b/doc/man/ne_session_create.3 @@ -2,12 +2,12 @@ .\" Title: ne_session_create .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_SESSION_CREATE" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_SESSION_CREATE" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_set_request_body_buffer.3 b/doc/man/ne_set_request_body_buffer.3 index 03ea05c..bca5133 100644 --- a/doc/man/ne_set_request_body_buffer.3 +++ b/doc/man/ne_set_request_body_buffer.3 @@ -2,12 +2,12 @@ .\" Title: ne_set_request_body_buffer .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_SET_REQUEST_BODY_" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_SET_REQUEST_BODY_" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_set_request_flag.3 b/doc/man/ne_set_request_flag.3 index 0031929..30d6f16 100644 --- a/doc/man/ne_set_request_flag.3 +++ b/doc/man/ne_set_request_flag.3 @@ -2,12 +2,12 @@ .\" Title: ne_set_request_flag .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_SET_REQUEST_FLAG" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_SET_REQUEST_FLAG" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -43,7 +43,7 @@ The following flags are defined: .PP \fBNE_REQFLAG_EXPECT100\fR .RS 4 -enables this flag to use the "Expect: 100\-continue" feature of HTTP/1\&.1 +enable this flag to use the "Expect: 100\-continue" feature of HTTP/1\&.1, which allows the server to process request headers without reading the entire request body\&. This saves time and bandwidth if the server gives an authentication challenge (requiring the request to be resent), but has interoperability problems with some older servers\&. .RE .PP \fBNE_REQFLAG_IDEMPOTENT\fR diff --git a/doc/man/ne_set_server_auth.3 b/doc/man/ne_set_server_auth.3 index 2c0ceb2..0f8f7b5 100644 --- a/doc/man/ne_set_server_auth.3 +++ b/doc/man/ne_set_server_auth.3 @@ -2,12 +2,12 @@ .\" Title: ne_set_server_auth .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_SET_SERVER_AUTH" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_SET_SERVER_AUTH" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_set_session_flag.3 b/doc/man/ne_set_session_flag.3 index 730cca9..8563863 100644 --- a/doc/man/ne_set_session_flag.3 +++ b/doc/man/ne_set_session_flag.3 @@ -2,12 +2,12 @@ .\" Title: ne_set_session_flag .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_SET_SESSION_FLAG" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_SET_SESSION_FLAG" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_set_useragent.3 b/doc/man/ne_set_useragent.3 index 544b1df..37d1f75 100644 --- a/doc/man/ne_set_useragent.3 +++ b/doc/man/ne_set_useragent.3 @@ -2,12 +2,12 @@ .\" Title: ne_set_useragent .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_SET_USERAGENT" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_SET_USERAGENT" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_shave.3 b/doc/man/ne_shave.3 index 1f8bd07..4e9ef5b 100644 --- a/doc/man/ne_shave.3 +++ b/doc/man/ne_shave.3 @@ -2,12 +2,12 @@ .\" Title: ne_shave .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_SHAVE" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_SHAVE" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_sock_init.3 b/doc/man/ne_sock_init.3 index 9702239..81ef2cf 100644 --- a/doc/man/ne_sock_init.3 +++ b/doc/man/ne_sock_init.3 @@ -2,12 +2,12 @@ .\" Title: ne_sock_init .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_SOCK_INIT" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_SOCK_INIT" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_ssl_cert_cmp.3 b/doc/man/ne_ssl_cert_cmp.3 index 17463d2..062ffed 100644 --- a/doc/man/ne_ssl_cert_cmp.3 +++ b/doc/man/ne_ssl_cert_cmp.3 @@ -2,12 +2,12 @@ .\" Title: ne_ssl_cert_cmp .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_SSL_CERT_CMP" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_SSL_CERT_CMP" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_ssl_cert_identity.3 b/doc/man/ne_ssl_cert_identity.3 index c233414..7d969ff 100644 --- a/doc/man/ne_ssl_cert_identity.3 +++ b/doc/man/ne_ssl_cert_identity.3 @@ -2,12 +2,12 @@ .\" Title: ne_ssl_cert_identity .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_SSL_CERT_IDENTITY" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_SSL_CERT_IDENTITY" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_ssl_cert_read.3 b/doc/man/ne_ssl_cert_read.3 index 6205389..f75132f 100644 --- a/doc/man/ne_ssl_cert_read.3 +++ b/doc/man/ne_ssl_cert_read.3 @@ -2,12 +2,12 @@ .\" Title: ne_ssl_cert_read .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_SSL_CERT_READ" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_SSL_CERT_READ" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_ssl_clicert_read.3 b/doc/man/ne_ssl_clicert_read.3 index 4d04561..fc2763e 100644 --- a/doc/man/ne_ssl_clicert_read.3 +++ b/doc/man/ne_ssl_clicert_read.3 @@ -2,12 +2,12 @@ .\" Title: ne_ssl_client_cert .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_SSL_CLIENT_CERT" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_SSL_CLIENT_CERT" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_ssl_readable_dname.3 b/doc/man/ne_ssl_readable_dname.3 index 7cf0544..74823ff 100644 --- a/doc/man/ne_ssl_readable_dname.3 +++ b/doc/man/ne_ssl_readable_dname.3 @@ -2,12 +2,12 @@ .\" Title: ne_ssl_dname .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_SSL_DNAME" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_SSL_DNAME" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_ssl_set_verify.3 b/doc/man/ne_ssl_set_verify.3 index 204afb2..6ad4323 100644 --- a/doc/man/ne_ssl_set_verify.3 +++ b/doc/man/ne_ssl_set_verify.3 @@ -2,12 +2,12 @@ .\" Title: ne_ssl_set_verify .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_SSL_SET_VERIFY" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_SSL_SET_VERIFY" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_ssl_trust_cert.3 b/doc/man/ne_ssl_trust_cert.3 index 6b47084..273fc20 100644 --- a/doc/man/ne_ssl_trust_cert.3 +++ b/doc/man/ne_ssl_trust_cert.3 @@ -2,12 +2,12 @@ .\" Title: ne_ssl_trust_cert .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_SSL_TRUST_CERT" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_SSL_TRUST_CERT" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_status.3 b/doc/man/ne_status.3 index a106412..06214d7 100644 --- a/doc/man/ne_status.3 +++ b/doc/man/ne_status.3 @@ -2,12 +2,12 @@ .\" Title: ne_status .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_STATUS" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_STATUS" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_token.3 b/doc/man/ne_token.3 index b6f5445..65a920e 100644 --- a/doc/man/ne_token.3 +++ b/doc/man/ne_token.3 @@ -2,12 +2,12 @@ .\" Title: ne_token .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_TOKEN" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_TOKEN" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_version_match.3 b/doc/man/ne_version_match.3 index 9d5c809..1d0ffd7 100644 --- a/doc/man/ne_version_match.3 +++ b/doc/man/ne_version_match.3 @@ -2,12 +2,12 @@ .\" Title: ne_version_match .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_VERSION_MATCH" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_VERSION_MATCH" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/ne_xml_create.3 b/doc/man/ne_xml_create.3 index 2565fca..fe93bcb 100644 --- a/doc/man/ne_xml_create.3 +++ b/doc/man/ne_xml_create.3 @@ -2,12 +2,12 @@ .\" Title: ne_xml_create .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NE_XML_CREATE" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NE_XML_CREATE" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/neon-config.1 b/doc/man/neon-config.1 index 2e2fb83..32e6bcc 100644 --- a/doc/man/neon-config.1 +++ b/doc/man/neon-config.1 @@ -2,12 +2,12 @@ .\" Title: neon-config .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NEON\-CONFIG" "1" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NEON\-CONFIG" "1" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/man/neon.3 b/doc/man/neon.3 index ea33d58..db320c7 100644 --- a/doc/man/neon.3 +++ b/doc/man/neon.3 @@ -2,12 +2,12 @@ .\" Title: neon .\" Author: .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> -.\" Date: 11 January 2010 +.\" Date: 1 October 2010 .\" Manual: neon API reference -.\" Source: neon 0.29.3 +.\" Source: neon 0.29.4 .\" Language: English .\" -.TH "NEON" "3" "11 January 2010" "neon 0.29.3" "neon API reference" +.TH "NEON" "3" "1 October 2010" "neon 0.29.4" "neon API reference" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- diff --git a/doc/ref/bufcr.xml b/doc/ref/bufcr.xml index 0c572a6..9b881b4 100644 --- a/doc/ref/bufcr.xml +++ b/doc/ref/bufcr.xml @@ -8,7 +8,7 @@ <refnamediv> <refname id="ne_buffer_create">ne_buffer_create</refname> <refname id="ne_buffer_create_sized">ne_buffer_ncreate</refname> - <refpurpose>general purpose of group of functions</refpurpose> + <refpurpose>create a string buffer</refpurpose> </refnamediv> <refsynopsisdiv> diff --git a/doc/ref/bufutil.xml b/doc/ref/bufutil.xml index 3f3f3c5..a484786 100644 --- a/doc/ref/bufutil.xml +++ b/doc/ref/bufutil.xml @@ -9,7 +9,7 @@ <refname id="ne_buffer_clear">ne_buffer_clear</refname> <refname id="ne_buffer_grow">ne_buffer_grow</refname> <refname id="ne_buffer_altered">ne_buffer_altered</refname> - <refpurpose>general purpose of group of functions</refpurpose> + <refpurpose>clear, grow, or mark as altered a string buffer</refpurpose> </refnamediv> <refsynopsisdiv> diff --git a/doc/ref/reqflags.xml b/doc/ref/reqflags.xml index 9ac698a..ede0fb4 100644 --- a/doc/ref/reqflags.xml +++ b/doc/ref/reqflags.xml @@ -48,8 +48,13 @@ <varlistentry> <term><constant>NE_REQFLAG_EXPECT100</constant></term> <listitem> - <simpara>enables this flag to use the "Expect: - 100-continue" feature of HTTP/1.1</simpara> + <simpara>enable this flag to use the "Expect: + 100-continue" feature of HTTP/1.1, which allows the + server to process request headers without reading the + entire request body. This saves time and bandwidth if + the server gives an authentication challenge (requiring + the request to be resent), but has interoperability + problems with some older servers.</simpara> </listitem> </varlistentry> <varlistentry> diff --git a/doc/version.xml b/doc/version.xml index f9fa7c8..6b0ed1a 100644 --- a/doc/version.xml +++ b/doc/version.xml @@ -1 +1 @@ -0.29.3
\ No newline at end of file +0.29.4
\ No newline at end of file diff --git a/macros/neon-test.m4 b/macros/neon-test.m4 index 8957a6f..080c3eb 100644 --- a/macros/neon-test.m4 +++ b/macros/neon-test.m4 @@ -37,7 +37,7 @@ dnl CPPFLAGS which make "gcc -Werror" fail in NEON_FORMAT; suggest dnl this macro is used first. AC_BEFORE([$0], [NEON_XML_PARSER]) -AC_CHECK_HEADERS(sys/time.h stdint.h locale.h) +AC_CHECK_HEADERS(sys/time.h stdint.h locale.h signal.h) AC_CHECK_FUNCS(pipe isatty usleep shutdown setlocale) diff --git a/macros/neon.m4 b/macros/neon.m4 index a3a400a..dccca95 100644 --- a/macros/neon.m4 +++ b/macros/neon.m4 @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2009 Joe Orton <joe@manyfish.co.uk> -*- autoconf -*- +# Copyright (C) 1998-2010 Joe Orton <joe@manyfish.co.uk> -*- autoconf -*- # Copyright (C) 2004 Aleix Conchillo Flaque <aleix@member.fsf.org> # # This file is free software; you may copy and/or distribute it with @@ -137,7 +137,7 @@ AC_DEFUN([NE_VERSIONS_BUNDLED], [ # Define the current versions. NE_VERSION_MAJOR=0 NE_VERSION_MINOR=29 -NE_VERSION_PATCH=3 +NE_VERSION_PATCH=4 NE_VERSION_TAG= # 0.29.x is backwards-compatible to 0.27.x, so AGE=2 @@ -653,7 +653,8 @@ if test $ne_enable_gai = yes; then NE_ENABLE_SUPPORT(IPV6, [IPv6 support is enabled]) AC_DEFINE(USE_GETADDRINFO, 1, [Define if getaddrinfo() should be used]) AC_CACHE_CHECK([for working AI_ADDRCONFIG], [ne_cv_gai_addrconfig], [ - AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <netdb.h>], + AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <netdb.h> +#include <stdlib.h>], [struct addrinfo hints = {0}, *result; hints.ai_flags = AI_ADDRCONFIG; if (getaddrinfo("localhost", NULL, &hints, &result) != 0) return 1;])], Binary files differ@@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: sitecopy 0.11.4\n" "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n" -"POT-Creation-Date: 2009-12-30 21:31+0000\n" +"POT-Creation-Date: 2010-10-01 13:30+0100\n" "PO-Revision-Date: 2002-04-09 11:12+0100\n" "Last-Translator: Petr Prazak <prazak@grisoft.cz>\n" "Language-Team: cz\n" @@ -269,152 +269,164 @@ msgstr "%s: server ukonil spojen." msgid "%s: connection timed out" msgstr "%s: spojen vyprelo." -#: src/ne_request.c:311 +# src/console_fe.c:992 +#: src/ne_request.c:305 +#, fuzzy, c-format +msgid "Premature EOF in request body file" +msgstr "Nelze zapsat do souboru: %s" + +# src/console_fe.c:992 +#: src/ne_request.c:312 +#, fuzzy, c-format +msgid "Failed reading request body file: %s" +msgstr "Nelze zapsat do souboru: %s" + +#: src/ne_request.c:332 msgid "offset invalid" msgstr "" # src/console_fe.c:992 -#: src/ne_request.c:316 +#: src/ne_request.c:337 #, fuzzy, c-format msgid "Could not seek to offset %s of request body file: %s" msgstr "Nelze zapsat do souboru: %s" -#: src/ne_request.c:364 +#: src/ne_request.c:385 msgid "Could not send request body" msgstr "Nelze odeslat tlo poadavku" -#: src/ne_request.c:707 +#: src/ne_request.c:728 msgid "Could not read chunk size" msgstr "Nelze nast velikost bloku" -#: src/ne_request.c:714 +#: src/ne_request.c:735 msgid "Could not parse chunk size" msgstr "Nelze zpracovat velikost bloku" -#: src/ne_request.c:751 +#: src/ne_request.c:772 msgid "Could not read response body" msgstr "Nelze nast tlo odpovdi" -#: src/ne_request.c:767 +#: src/ne_request.c:788 #, fuzzy msgid "Could not read chunk delimiter" msgstr "Nelze nast velikost bloku" -#: src/ne_request.c:770 +#: src/ne_request.c:791 msgid "Chunk delimiter was invalid" msgstr "" -#: src/ne_request.c:875 +#: src/ne_request.c:896 msgid "Could not read status line" msgstr "Nelze pest stavov dek" -#: src/ne_request.c:897 +#: src/ne_request.c:918 #, fuzzy msgid "Could not parse response status line" msgstr "Nelze zpracovat stavov dek odpovdi." -#: src/ne_request.c:909 +#: src/ne_request.c:930 #, fuzzy msgid "Could not read interim response headers" msgstr "Nelze nast tlo odpovdi" -#: src/ne_request.c:943 +#: src/ne_request.c:964 msgid "Could not send request" msgstr "Nelze poslat poadavek" -#: src/ne_request.c:991 src/ne_request.c:1009 src/ne_request.c:1019 +#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040 msgid "Error reading response headers" msgstr "Chyba pi ten hlaviek odpovdi" -#: src/ne_request.c:1037 +#: src/ne_request.c:1058 #, c-format msgid "Response header too long" msgstr "Hlavika odpovdi je pli dlouh" -#: src/ne_request.c:1119 +#: src/ne_request.c:1140 #, fuzzy msgid "Response exceeded maximum number of header fields" msgstr "Odpov pekrocila maximln poet poloek v hlavicce." # src/console_fe.c:956 -#: src/ne_request.c:1134 +#: src/ne_request.c:1155 #, fuzzy, c-format msgid "Could not resolve hostname `%s': %s" msgstr "%s: Chyba: Nelze najt adresu vzdlenho potae (%s).\n" -#: src/ne_request.c:1265 +#: src/ne_request.c:1286 msgid "Unknown transfer-coding in response" msgstr "" -#: src/ne_request.c:1278 +#: src/ne_request.c:1299 msgid "Invalid Content-Length in response" msgstr "" # src/console_fe.c:992 -#: src/ne_request.c:1351 +#: src/ne_request.c:1372 #, c-format msgid "Could not write to file: %s" msgstr "Nelze zapsat do souboru: %s" -#: src/ne_request.c:1424 +#: src/ne_request.c:1445 #, fuzzy, c-format msgid "Could not create SSL connection through proxy server: %s" msgstr "Nelze navzat SSL spojen pes proxy server." -#: src/ne_request.c:1463 +#: src/ne_request.c:1484 #, fuzzy, c-format msgid "Could not create socket" msgstr "Nelze navzat SSL spojen" # src/console_fe.c:961 -#: src/ne_request.c:1496 +#: src/ne_request.c:1518 msgid "Could not connect to server" msgstr "Nelze se pipojit k serveru" # src/console_fe.c:961 -#: src/ne_request.c:1498 +#: src/ne_request.c:1520 msgid "Could not connect to proxy server" msgstr "Nelze se pipojit k proxy serveru" -#: src/ne_request.c:1541 +#: src/ne_request.c:1563 #, c-format msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy" msgstr "" -#: src/ne_request.c:1599 +#: src/ne_request.c:1621 #, fuzzy, c-format msgid "Could not establish connection from SOCKS proxy (%s:%u): %s" msgstr "Nelze navzat SSL spojen pes proxy server." -#: src/ne_session.c:528 src/ne_session.c:539 +#: src/ne_session.c:530 src/ne_session.c:541 msgid "[invalid date]" msgstr "" -#: src/ne_session.c:552 +#: src/ne_session.c:554 msgid "certificate is not yet valid" msgstr "" -#: src/ne_session.c:553 +#: src/ne_session.c:555 msgid "certificate has expired" msgstr "" -#: src/ne_session.c:554 +#: src/ne_session.c:556 msgid "certificate issued for a different hostname" msgstr "" -#: src/ne_session.c:555 +#: src/ne_session.c:557 msgid "issuer is not trusted" msgstr "" -#: src/ne_session.c:556 +#: src/ne_session.c:558 msgid "bad certificate chain" msgstr "" -#: src/ne_session.c:557 +#: src/ne_session.c:559 msgid "certificate has been revoked" msgstr "" -#: src/ne_session.c:562 +#: src/ne_session.c:564 msgid "Server certificate verification failed: " msgstr "" @@ -648,8 +660,3 @@ msgstr "Nelze nast tlo odpovdi" #, fuzzy #~ msgid "%s: %s" #~ msgstr "%s: Chyba: %s\n" - -# src/console_fe.c:992 -#, fuzzy -#~ msgid " of request body file: %s" -#~ msgstr "Nelze zapsat do souboru: %s" Binary files differ@@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: sitecopy 0.11.3\n" "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n" -"POT-Creation-Date: 2009-12-30 21:31+0000\n" +"POT-Creation-Date: 2010-10-01 13:30+0100\n" "PO-Revision-Date: 2002-01-13 13:37+0100\n" "Last-Translator: Thomas Schultz <tststs@gmx.de>\n" "Language-Team: de\n" @@ -261,147 +261,157 @@ msgstr "%s: Verbindung vom Server geschlossen." msgid "%s: connection timed out" msgstr "%s: Verbindung wegen Zeitberschreitung geschlossen." -#: src/ne_request.c:311 +#: src/ne_request.c:305 +#, fuzzy, c-format +msgid "Premature EOF in request body file" +msgstr "Konnte nicht in diese Datei schreiben: %s" + +#: src/ne_request.c:312 +#, fuzzy, c-format +msgid "Failed reading request body file: %s" +msgstr "Konnte nicht in diese Datei schreiben: %s" + +#: src/ne_request.c:332 msgid "offset invalid" msgstr "" -#: src/ne_request.c:316 +#: src/ne_request.c:337 #, fuzzy, c-format msgid "Could not seek to offset %s of request body file: %s" msgstr "Konnte nicht in diese Datei schreiben: %s" -#: src/ne_request.c:364 +#: src/ne_request.c:385 msgid "Could not send request body" msgstr "Konnte den Rumpf der Anfrage nicht schicken" -#: src/ne_request.c:707 +#: src/ne_request.c:728 msgid "Could not read chunk size" msgstr "Lesefehler bei Ermittlung der Blockgre" -#: src/ne_request.c:714 +#: src/ne_request.c:735 msgid "Could not parse chunk size" msgstr "Parser-Fehler bei Ermittlung der Blockgre" -#: src/ne_request.c:751 +#: src/ne_request.c:772 msgid "Could not read response body" msgstr "Konnte Rumpf der Antwort nicht lesen" -#: src/ne_request.c:767 +#: src/ne_request.c:788 #, fuzzy msgid "Could not read chunk delimiter" msgstr "Lesefehler bei Ermittlung der Blockgre" -#: src/ne_request.c:770 +#: src/ne_request.c:791 msgid "Chunk delimiter was invalid" msgstr "" -#: src/ne_request.c:875 +#: src/ne_request.c:896 msgid "Could not read status line" msgstr "Konnte Status-Zeile des Servers nicht lesen" -#: src/ne_request.c:897 +#: src/ne_request.c:918 #, fuzzy msgid "Could not parse response status line" msgstr "Konnte Status-Zeile des Servers nicht interpretieren." -#: src/ne_request.c:909 +#: src/ne_request.c:930 #, fuzzy msgid "Could not read interim response headers" msgstr "Konnte Rumpf der Antwort nicht lesen" -#: src/ne_request.c:943 +#: src/ne_request.c:964 msgid "Could not send request" msgstr "Konnte keine Anfrage (request) schicken" -#: src/ne_request.c:991 src/ne_request.c:1009 src/ne_request.c:1019 +#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040 msgid "Error reading response headers" msgstr "Fehler beim Lesen der Kopfzeilen (header) der Antwort" -#: src/ne_request.c:1037 +#: src/ne_request.c:1058 #, c-format msgid "Response header too long" msgstr "Kopfzeilen (header) der Antwort zu lang" -#: src/ne_request.c:1119 +#: src/ne_request.c:1140 #, fuzzy msgid "Response exceeded maximum number of header fields" msgstr "Antwort hatte zu viele Header-Felder." -#: src/ne_request.c:1134 +#: src/ne_request.c:1155 #, fuzzy, c-format msgid "Could not resolve hostname `%s': %s" msgstr "%s: Fehler: Konnte den Namen des Servers nicht auflsen (%s).\n" -#: src/ne_request.c:1265 +#: src/ne_request.c:1286 msgid "Unknown transfer-coding in response" msgstr "" -#: src/ne_request.c:1278 +#: src/ne_request.c:1299 msgid "Invalid Content-Length in response" msgstr "" -#: src/ne_request.c:1351 +#: src/ne_request.c:1372 #, c-format msgid "Could not write to file: %s" msgstr "Konnte nicht in diese Datei schreiben: %s" -#: src/ne_request.c:1424 +#: src/ne_request.c:1445 #, fuzzy, c-format msgid "Could not create SSL connection through proxy server: %s" msgstr "Konnte durch den Proxy-Server keine SSL-Verbindung herstellen" -#: src/ne_request.c:1463 +#: src/ne_request.c:1484 #, fuzzy, c-format msgid "Could not create socket" msgstr "Konnte keine SSL-Sitzung herstellen" -#: src/ne_request.c:1496 +#: src/ne_request.c:1518 msgid "Could not connect to server" msgstr "Verbindungsaufbau zum Server gescheitert." -#: src/ne_request.c:1498 +#: src/ne_request.c:1520 msgid "Could not connect to proxy server" msgstr "Verbindungsaufbau zum Proxy-Server gescheitert." -#: src/ne_request.c:1541 +#: src/ne_request.c:1563 #, c-format msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy" msgstr "" -#: src/ne_request.c:1599 +#: src/ne_request.c:1621 #, fuzzy, c-format msgid "Could not establish connection from SOCKS proxy (%s:%u): %s" msgstr "Konnte durch den Proxy-Server keine SSL-Verbindung herstellen" -#: src/ne_session.c:528 src/ne_session.c:539 +#: src/ne_session.c:530 src/ne_session.c:541 msgid "[invalid date]" msgstr "" -#: src/ne_session.c:552 +#: src/ne_session.c:554 msgid "certificate is not yet valid" msgstr "" -#: src/ne_session.c:553 +#: src/ne_session.c:555 msgid "certificate has expired" msgstr "" -#: src/ne_session.c:554 +#: src/ne_session.c:556 msgid "certificate issued for a different hostname" msgstr "" -#: src/ne_session.c:555 +#: src/ne_session.c:557 msgid "issuer is not trusted" msgstr "" -#: src/ne_session.c:556 +#: src/ne_session.c:558 msgid "bad certificate chain" msgstr "" -#: src/ne_session.c:557 +#: src/ne_session.c:559 msgid "certificate has been revoked" msgstr "" -#: src/ne_session.c:562 +#: src/ne_session.c:564 msgid "Server certificate verification failed: " msgstr "" @@ -629,7 +639,3 @@ msgstr "Konnte Rumpf der Antwort nicht lesen" #, fuzzy #~ msgid "%s: %s" #~ msgstr "%s: %s\n" - -#, fuzzy -#~ msgid " of request body file: %s" -#~ msgstr "Konnte nicht in diese Datei schreiben: %s" Binary files differ@@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: sitecopy 0.9.3\n" "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n" -"POT-Creation-Date: 2009-12-30 21:31+0000\n" +"POT-Creation-Date: 2010-10-01 13:30+0100\n" "PO-Revision-Date: 2000-01-31 00:00+0100\n" "Last-Translator: Sylvain Glaize <mokona@puupuu.org>\n" "Language-Team: fr\n" @@ -258,149 +258,159 @@ msgstr "" msgid "%s: connection timed out" msgstr "" -#: src/ne_request.c:311 +#: src/ne_request.c:305 +#, fuzzy, c-format +msgid "Premature EOF in request body file" +msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n" + +#: src/ne_request.c:312 +#, fuzzy, c-format +msgid "Failed reading request body file: %s" +msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n" + +#: src/ne_request.c:332 msgid "offset invalid" msgstr "" -#: src/ne_request.c:316 +#: src/ne_request.c:337 #, fuzzy, c-format msgid "Could not seek to offset %s of request body file: %s" msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n" -#: src/ne_request.c:364 +#: src/ne_request.c:385 msgid "Could not send request body" msgstr "" -#: src/ne_request.c:707 +#: src/ne_request.c:728 msgid "Could not read chunk size" msgstr "" -#: src/ne_request.c:714 +#: src/ne_request.c:735 #, fuzzy msgid "Could not parse chunk size" msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n" -#: src/ne_request.c:751 +#: src/ne_request.c:772 msgid "Could not read response body" msgstr "" -#: src/ne_request.c:767 +#: src/ne_request.c:788 #, fuzzy msgid "Could not read chunk delimiter" msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n" -#: src/ne_request.c:770 +#: src/ne_request.c:791 msgid "Chunk delimiter was invalid" msgstr "" -#: src/ne_request.c:875 +#: src/ne_request.c:896 msgid "Could not read status line" msgstr "" -#: src/ne_request.c:897 +#: src/ne_request.c:918 #, fuzzy msgid "Could not parse response status line" msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n" -#: src/ne_request.c:909 +#: src/ne_request.c:930 #, fuzzy msgid "Could not read interim response headers" msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n" -#: src/ne_request.c:943 +#: src/ne_request.c:964 msgid "Could not send request" msgstr "" -#: src/ne_request.c:991 src/ne_request.c:1009 src/ne_request.c:1019 +#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040 msgid "Error reading response headers" msgstr "" -#: src/ne_request.c:1037 +#: src/ne_request.c:1058 #, c-format msgid "Response header too long" msgstr "" -#: src/ne_request.c:1119 +#: src/ne_request.c:1140 msgid "Response exceeded maximum number of header fields" msgstr "" -#: src/ne_request.c:1134 +#: src/ne_request.c:1155 #, fuzzy, c-format msgid "Could not resolve hostname `%s': %s" msgstr "%s: erreur: impossible de trouver le nom de l'hte distant.\n" -#: src/ne_request.c:1265 +#: src/ne_request.c:1286 msgid "Unknown transfer-coding in response" msgstr "" -#: src/ne_request.c:1278 +#: src/ne_request.c:1299 msgid "Invalid Content-Length in response" msgstr "" -#: src/ne_request.c:1351 +#: src/ne_request.c:1372 #, fuzzy, c-format msgid "Could not write to file: %s" msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n" -#: src/ne_request.c:1424 +#: src/ne_request.c:1445 #, fuzzy, c-format msgid "Could not create SSL connection through proxy server: %s" msgstr "%s: erreur: impossible de se connecter l'hte distant.\n" -#: src/ne_request.c:1463 +#: src/ne_request.c:1484 #, fuzzy, c-format msgid "Could not create socket" msgstr "%s: erreur: impossible de se connecter l'hte distant.\n" -#: src/ne_request.c:1496 +#: src/ne_request.c:1518 #, fuzzy msgid "Could not connect to server" msgstr "%s: erreur: impossible de se connecter l'hte distant.\n" -#: src/ne_request.c:1498 +#: src/ne_request.c:1520 #, fuzzy msgid "Could not connect to proxy server" msgstr "%s: erreur: impossible de se connecter l'hte distant.\n" -#: src/ne_request.c:1541 +#: src/ne_request.c:1563 #, c-format msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy" msgstr "" -#: src/ne_request.c:1599 +#: src/ne_request.c:1621 #, fuzzy, c-format msgid "Could not establish connection from SOCKS proxy (%s:%u): %s" msgstr "%s: erreur: impossible de se connecter l'hte distant.\n" -#: src/ne_session.c:528 src/ne_session.c:539 +#: src/ne_session.c:530 src/ne_session.c:541 msgid "[invalid date]" msgstr "" -#: src/ne_session.c:552 +#: src/ne_session.c:554 msgid "certificate is not yet valid" msgstr "" -#: src/ne_session.c:553 +#: src/ne_session.c:555 msgid "certificate has expired" msgstr "" -#: src/ne_session.c:554 +#: src/ne_session.c:556 msgid "certificate issued for a different hostname" msgstr "" -#: src/ne_session.c:555 +#: src/ne_session.c:557 msgid "issuer is not trusted" msgstr "" -#: src/ne_session.c:556 +#: src/ne_session.c:558 msgid "bad certificate chain" msgstr "" -#: src/ne_session.c:557 +#: src/ne_session.c:559 msgid "certificate has been revoked" msgstr "" -#: src/ne_session.c:562 +#: src/ne_session.c:564 msgid "Server certificate verification failed: " msgstr "" @@ -634,7 +644,3 @@ msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n" #~ msgstr "" #~ "%s: dans issue_error\n" #~ "%s" - -#, fuzzy -#~ msgid " of request body file: %s" -#~ msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n" Binary files differ@@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: sitecopy 0.10.14\n" "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n" -"POT-Creation-Date: 2009-12-30 21:31+0000\n" +"POT-Creation-Date: 2010-10-01 13:30+0100\n" "PO-Revision-Date: 2001-01-16 07:32+0900\n" "Last-Translator: Nobuyuki Tsuchimura <tutimura@nn.iij4u.or.jp>\n" "Language-Team: ja\n" @@ -259,146 +259,156 @@ msgstr "%s: ³Сڤޤ" msgid "%s: connection timed out" msgstr "%s: ³ॢȤǤ" -#: src/ne_request.c:311 +#: src/ne_request.c:305 +#, fuzzy, c-format +msgid "Premature EOF in request body file" +msgstr "ե뤬ޤ: %s" + +#: src/ne_request.c:312 +#, fuzzy, c-format +msgid "Failed reading request body file: %s" +msgstr "ե뤬ޤ: %s" + +#: src/ne_request.c:332 msgid "offset invalid" msgstr "" -#: src/ne_request.c:316 +#: src/ne_request.c:337 #, fuzzy, c-format msgid "Could not seek to offset %s of request body file: %s" msgstr "ե뤬ޤ: %s" -#: src/ne_request.c:364 +#: src/ne_request.c:385 msgid "Could not send request body" msgstr "" -#: src/ne_request.c:707 +#: src/ne_request.c:728 msgid "Could not read chunk size" msgstr "chunk 礭ɤޤ" -#: src/ne_request.c:714 +#: src/ne_request.c:735 msgid "Could not parse chunk size" msgstr "chunk 礭ϤǤޤ" -#: src/ne_request.c:751 +#: src/ne_request.c:772 msgid "Could not read response body" msgstr "response body ɤޤ" -#: src/ne_request.c:767 +#: src/ne_request.c:788 #, fuzzy msgid "Could not read chunk delimiter" msgstr "chunk 礭ɤޤ" -#: src/ne_request.c:770 +#: src/ne_request.c:791 msgid "Chunk delimiter was invalid" msgstr "" -#: src/ne_request.c:875 +#: src/ne_request.c:896 msgid "Could not read status line" msgstr "" -#: src/ne_request.c:897 +#: src/ne_request.c:918 #, fuzzy msgid "Could not parse response status line" msgstr "response body ɤޤ" -#: src/ne_request.c:909 +#: src/ne_request.c:930 #, fuzzy msgid "Could not read interim response headers" msgstr "response body ɤޤ" -#: src/ne_request.c:943 +#: src/ne_request.c:964 msgid "Could not send request" msgstr "" -#: src/ne_request.c:991 src/ne_request.c:1009 src/ne_request.c:1019 +#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040 msgid "Error reading response headers" msgstr "" -#: src/ne_request.c:1037 +#: src/ne_request.c:1058 #, c-format msgid "Response header too long" msgstr "" -#: src/ne_request.c:1119 +#: src/ne_request.c:1140 msgid "Response exceeded maximum number of header fields" msgstr "" -#: src/ne_request.c:1134 +#: src/ne_request.c:1155 #, fuzzy, c-format msgid "Could not resolve hostname `%s': %s" msgstr "%s: 顼: СΥۥ̾ (%s) IP ɥ쥹ѴǤޤ\n" -#: src/ne_request.c:1265 +#: src/ne_request.c:1286 msgid "Unknown transfer-coding in response" msgstr "" -#: src/ne_request.c:1278 +#: src/ne_request.c:1299 msgid "Invalid Content-Length in response" msgstr "" -#: src/ne_request.c:1351 +#: src/ne_request.c:1372 #, c-format msgid "Could not write to file: %s" msgstr "ե뤬ޤ: %s" -#: src/ne_request.c:1424 +#: src/ne_request.c:1445 #, fuzzy, c-format msgid "Could not create SSL connection through proxy server: %s" msgstr "ץС SSL ³Ǥޤ" -#: src/ne_request.c:1463 +#: src/ne_request.c:1484 #, fuzzy, c-format msgid "Could not create socket" msgstr "ץС SSL ³Ǥޤ" -#: src/ne_request.c:1496 +#: src/ne_request.c:1518 msgid "Could not connect to server" msgstr "ץС³Ǥޤ" -#: src/ne_request.c:1498 +#: src/ne_request.c:1520 msgid "Could not connect to proxy server" msgstr "ץС³Ǥޤ" -#: src/ne_request.c:1541 +#: src/ne_request.c:1563 #, c-format msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy" msgstr "" -#: src/ne_request.c:1599 +#: src/ne_request.c:1621 #, fuzzy, c-format msgid "Could not establish connection from SOCKS proxy (%s:%u): %s" msgstr "ץС SSL ³Ǥޤ" -#: src/ne_session.c:528 src/ne_session.c:539 +#: src/ne_session.c:530 src/ne_session.c:541 msgid "[invalid date]" msgstr "" -#: src/ne_session.c:552 +#: src/ne_session.c:554 msgid "certificate is not yet valid" msgstr "" -#: src/ne_session.c:553 +#: src/ne_session.c:555 msgid "certificate has expired" msgstr "" -#: src/ne_session.c:554 +#: src/ne_session.c:556 msgid "certificate issued for a different hostname" msgstr "" -#: src/ne_session.c:555 +#: src/ne_session.c:557 msgid "issuer is not trusted" msgstr "" -#: src/ne_session.c:556 +#: src/ne_session.c:558 msgid "bad certificate chain" msgstr "" -#: src/ne_session.c:557 +#: src/ne_session.c:559 msgid "certificate has been revoked" msgstr "" -#: src/ne_session.c:562 +#: src/ne_session.c:564 msgid "Server certificate verification failed: " msgstr "" @@ -630,7 +640,3 @@ msgstr "response body ɤޤ" #, fuzzy #~ msgid "%s: %s" #~ msgstr "桼̾: %s\n" - -#, fuzzy -#~ msgid " of request body file: %s" -#~ msgstr "ե뤬ޤ: %s" diff --git a/po/neon.pot b/po/neon.pot index 4d5f266..f63c051 100644 --- a/po/neon.pot +++ b/po/neon.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n" -"POT-Creation-Date: 2009-12-30 21:31+0000\n" +"POT-Creation-Date: 2010-10-01 13:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -256,143 +256,153 @@ msgstr "" msgid "%s: connection timed out" msgstr "" -#: src/ne_request.c:311 +#: src/ne_request.c:305 +#, c-format +msgid "Premature EOF in request body file" +msgstr "" + +#: src/ne_request.c:312 +#, c-format +msgid "Failed reading request body file: %s" +msgstr "" + +#: src/ne_request.c:332 msgid "offset invalid" msgstr "" -#: src/ne_request.c:316 +#: src/ne_request.c:337 #, c-format msgid "Could not seek to offset %s of request body file: %s" msgstr "" -#: src/ne_request.c:364 +#: src/ne_request.c:385 msgid "Could not send request body" msgstr "" -#: src/ne_request.c:707 +#: src/ne_request.c:728 msgid "Could not read chunk size" msgstr "" -#: src/ne_request.c:714 +#: src/ne_request.c:735 msgid "Could not parse chunk size" msgstr "" -#: src/ne_request.c:751 +#: src/ne_request.c:772 msgid "Could not read response body" msgstr "" -#: src/ne_request.c:767 +#: src/ne_request.c:788 msgid "Could not read chunk delimiter" msgstr "" -#: src/ne_request.c:770 +#: src/ne_request.c:791 msgid "Chunk delimiter was invalid" msgstr "" -#: src/ne_request.c:875 +#: src/ne_request.c:896 msgid "Could not read status line" msgstr "" -#: src/ne_request.c:897 +#: src/ne_request.c:918 msgid "Could not parse response status line" msgstr "" -#: src/ne_request.c:909 +#: src/ne_request.c:930 msgid "Could not read interim response headers" msgstr "" -#: src/ne_request.c:943 +#: src/ne_request.c:964 msgid "Could not send request" msgstr "" -#: src/ne_request.c:991 src/ne_request.c:1009 src/ne_request.c:1019 +#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040 msgid "Error reading response headers" msgstr "" -#: src/ne_request.c:1037 +#: src/ne_request.c:1058 #, c-format msgid "Response header too long" msgstr "" -#: src/ne_request.c:1119 +#: src/ne_request.c:1140 msgid "Response exceeded maximum number of header fields" msgstr "" -#: src/ne_request.c:1134 +#: src/ne_request.c:1155 #, c-format msgid "Could not resolve hostname `%s': %s" msgstr "" -#: src/ne_request.c:1265 +#: src/ne_request.c:1286 msgid "Unknown transfer-coding in response" msgstr "" -#: src/ne_request.c:1278 +#: src/ne_request.c:1299 msgid "Invalid Content-Length in response" msgstr "" -#: src/ne_request.c:1351 +#: src/ne_request.c:1372 #, c-format msgid "Could not write to file: %s" msgstr "" -#: src/ne_request.c:1424 +#: src/ne_request.c:1445 #, c-format msgid "Could not create SSL connection through proxy server: %s" msgstr "" -#: src/ne_request.c:1463 +#: src/ne_request.c:1484 #, c-format msgid "Could not create socket" msgstr "" -#: src/ne_request.c:1496 +#: src/ne_request.c:1518 msgid "Could not connect to server" msgstr "" -#: src/ne_request.c:1498 +#: src/ne_request.c:1520 msgid "Could not connect to proxy server" msgstr "" -#: src/ne_request.c:1541 +#: src/ne_request.c:1563 #, c-format msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy" msgstr "" -#: src/ne_request.c:1599 +#: src/ne_request.c:1621 #, c-format msgid "Could not establish connection from SOCKS proxy (%s:%u): %s" msgstr "" -#: src/ne_session.c:528 src/ne_session.c:539 +#: src/ne_session.c:530 src/ne_session.c:541 msgid "[invalid date]" msgstr "" -#: src/ne_session.c:552 +#: src/ne_session.c:554 msgid "certificate is not yet valid" msgstr "" -#: src/ne_session.c:553 +#: src/ne_session.c:555 msgid "certificate has expired" msgstr "" -#: src/ne_session.c:554 +#: src/ne_session.c:556 msgid "certificate issued for a different hostname" msgstr "" -#: src/ne_session.c:555 +#: src/ne_session.c:557 msgid "issuer is not trusted" msgstr "" -#: src/ne_session.c:556 +#: src/ne_session.c:558 msgid "bad certificate chain" msgstr "" -#: src/ne_session.c:557 +#: src/ne_session.c:559 msgid "certificate has been revoked" msgstr "" -#: src/ne_session.c:562 +#: src/ne_session.c:564 msgid "Server certificate verification failed: " msgstr "" @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: sitecopy 0.11.4\n" "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n" -"POT-Creation-Date: 2009-12-30 21:31+0000\n" +"POT-Creation-Date: 2010-10-01 13:30+0100\n" "PO-Revision-Date: 2002-11-07 18:11+0100\n" "Last-Translator: Karl Ove Hufthammer <karl@huftis.org>\n" "Language-Team: Norwegian Nynorsk <i18n-nn@lister.ping.uio.no>\n" @@ -262,153 +262,163 @@ msgstr "%s: tilkoplinga vart lukka av tenaren." msgid "%s: connection timed out" msgstr "%s: sambandet vart tidsavbrote." -#: src/ne_request.c:311 +#: src/ne_request.c:305 +#, fuzzy, c-format +msgid "Premature EOF in request body file" +msgstr "Klarte ikkje skriva til fil: %s" + +#: src/ne_request.c:312 +#, fuzzy, c-format +msgid "Failed reading request body file: %s" +msgstr "Klarte ikkje skriva til fil: %s" + +#: src/ne_request.c:332 msgid "offset invalid" msgstr "" -#: src/ne_request.c:316 +#: src/ne_request.c:337 #, fuzzy, c-format msgid "Could not seek to offset %s of request body file: %s" msgstr "Klarte ikkje skriva til fil: %s" -#: src/ne_request.c:364 +#: src/ne_request.c:385 msgid "Could not send request body" msgstr "Klarte ikkje senda førespurnad" -#: src/ne_request.c:707 +#: src/ne_request.c:728 msgid "Could not read chunk size" msgstr "Klarte ikkje lesa storleik på oppdelt svar" -#: src/ne_request.c:714 +#: src/ne_request.c:735 msgid "Could not parse chunk size" msgstr "Klarte ikkje tolka storleik på oppdelt svar" -#: src/ne_request.c:751 +#: src/ne_request.c:772 msgid "Could not read response body" msgstr "Klarte ikkje lesa svar" -#: src/ne_request.c:767 +#: src/ne_request.c:788 #, fuzzy msgid "Could not read chunk delimiter" msgstr "Klarte ikkje lesa storleik på oppdelt svar" -#: src/ne_request.c:770 +#: src/ne_request.c:791 msgid "Chunk delimiter was invalid" msgstr "" -#: src/ne_request.c:875 +#: src/ne_request.c:896 msgid "Could not read status line" msgstr "Klarte ikkje lesa statuslinja" -#: src/ne_request.c:897 +#: src/ne_request.c:918 #, fuzzy msgid "Could not parse response status line" msgstr "Klarte ikkje tolka statuslinja i svaret." -#: src/ne_request.c:909 +#: src/ne_request.c:930 #, fuzzy msgid "Could not read interim response headers" msgstr "Klarte ikkje lesa svarlinje" -#: src/ne_request.c:943 +#: src/ne_request.c:964 msgid "Could not send request" msgstr "Klarte ikkje senda førespurnad" -#: src/ne_request.c:991 src/ne_request.c:1009 src/ne_request.c:1019 +#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040 msgid "Error reading response headers" msgstr "Feil ved lesing av svarhovud" -#: src/ne_request.c:1037 +#: src/ne_request.c:1058 #, c-format msgid "Response header too long" msgstr "For langt svarhovud" -#: src/ne_request.c:1119 +#: src/ne_request.c:1140 #, fuzzy msgid "Response exceeded maximum number of header fields" msgstr "Svaret inneheld for mange header-felt." -#: src/ne_request.c:1134 +#: src/ne_request.c:1155 #, fuzzy, c-format msgid "Could not resolve hostname `%s': %s" msgstr "%s: Feil: Fann ikkje adressa til nettverksvert (%s).\n" -#: src/ne_request.c:1265 +#: src/ne_request.c:1286 msgid "Unknown transfer-coding in response" msgstr "" -#: src/ne_request.c:1278 +#: src/ne_request.c:1299 msgid "Invalid Content-Length in response" msgstr "" -#: src/ne_request.c:1351 +#: src/ne_request.c:1372 #, c-format msgid "Could not write to file: %s" msgstr "Klarte ikkje skriva til fil: %s" -#: src/ne_request.c:1424 +#: src/ne_request.c:1445 #, fuzzy, c-format msgid "Could not create SSL connection through proxy server: %s" msgstr "Klarte ikkje oppretta SSL-tilkopling til mellomtenar" -#: src/ne_request.c:1463 +#: src/ne_request.c:1484 #, fuzzy, c-format msgid "Could not create socket" msgstr "Klarte ikkje forhandla SSL-økt" -#: src/ne_request.c:1496 +#: src/ne_request.c:1518 msgid "Could not connect to server" msgstr "Klarte ikkje kopla til tenaren." -#: src/ne_request.c:1498 +#: src/ne_request.c:1520 msgid "Could not connect to proxy server" msgstr "Klarte ikkje kopla til mellomtenar" -#: src/ne_request.c:1541 +#: src/ne_request.c:1563 #, c-format msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy" msgstr "" -#: src/ne_request.c:1599 +#: src/ne_request.c:1621 #, fuzzy, c-format msgid "Could not establish connection from SOCKS proxy (%s:%u): %s" msgstr "Klarte ikkje oppretta SSL-tilkopling til mellomtenar" -#: src/ne_session.c:528 src/ne_session.c:539 +#: src/ne_session.c:530 src/ne_session.c:541 #, fuzzy msgid "[invalid date]" msgstr "[ugyldig dato]" -#: src/ne_session.c:552 +#: src/ne_session.c:554 #, fuzzy msgid "certificate is not yet valid" msgstr "Sertifikatet er gyldig" -#: src/ne_session.c:553 +#: src/ne_session.c:555 #, fuzzy msgid "certificate has expired" msgstr "Tenarsertifikatet er utgått på dato." -#: src/ne_session.c:554 +#: src/ne_session.c:556 #, fuzzy msgid "certificate issued for a different hostname" msgstr "Sertifikatet er utferda av:" -#: src/ne_session.c:555 +#: src/ne_session.c:557 msgid "issuer is not trusted" msgstr "" -#: src/ne_session.c:556 +#: src/ne_session.c:558 #, fuzzy msgid "bad certificate chain" msgstr "Tenarsertifikatet er utgått på dato." -#: src/ne_session.c:557 +#: src/ne_session.c:559 #, fuzzy msgid "certificate has been revoked" msgstr "Tenarsertifikatet er utgått på dato." -#: src/ne_session.c:562 +#: src/ne_session.c:564 #, fuzzy msgid "Server certificate verification failed: " msgstr "Tenarsertifikatet er utgått på dato." @@ -646,7 +656,3 @@ msgstr "Klarte ikkje lesa «LIST»-svar." #~ msgid "Proxy server was not authenticated correctly." #~ msgstr "Mellomtenaren vart ikkje rett autentisert." - -#, fuzzy -#~ msgid " of request body file: %s" -#~ msgstr "Klarte ikkje skriva til fil: %s" Binary files differ@@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Neon 0.29.0\n" "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n" -"POT-Creation-Date: 2009-12-30 21:31+0000\n" +"POT-Creation-Date: 2010-10-01 13:30+0100\n" "PO-Revision-Date: 2009-09-04 02:00+0200\n" "Last-Translator: Arfrever Frehtes Taifersar Arahesis <Arfrever.FTA@gmail." "com>\n" @@ -269,143 +269,153 @@ msgstr "%s: połączenie zostało zamknięte przez serwer" msgid "%s: connection timed out" msgstr "%s: czas połączenia się skończył" -#: src/ne_request.c:311 +#: src/ne_request.c:305 +#, c-format +msgid "Premature EOF in request body file" +msgstr "" + +#: src/ne_request.c:312 +#, c-format +msgid "Failed reading request body file: %s" +msgstr "" + +#: src/ne_request.c:332 msgid "offset invalid" msgstr "nieprawidłowe przesunięcie" -#: src/ne_request.c:316 +#: src/ne_request.c:337 #, c-format msgid "Could not seek to offset %s of request body file: %s" msgstr "Nie można szukać przesunięcia %s pliku ciała żądania: %s" -#: src/ne_request.c:364 +#: src/ne_request.c:385 msgid "Could not send request body" msgstr "Nie można wysłać ciała żądania" -#: src/ne_request.c:707 +#: src/ne_request.c:728 msgid "Could not read chunk size" msgstr "Nie można odczytać rozmiaru kawałka" -#: src/ne_request.c:714 +#: src/ne_request.c:735 msgid "Could not parse chunk size" msgstr "Nie można parsować rozmiaru kawałka" -#: src/ne_request.c:751 +#: src/ne_request.c:772 msgid "Could not read response body" msgstr "Nie można odczytać ciała odpowiedzi" -#: src/ne_request.c:767 +#: src/ne_request.c:788 msgid "Could not read chunk delimiter" msgstr "Nie można odczytać ogranicznika kawałka" -#: src/ne_request.c:770 +#: src/ne_request.c:791 msgid "Chunk delimiter was invalid" msgstr "Ogranicznik kawałka był nieprawidłowy" -#: src/ne_request.c:875 +#: src/ne_request.c:896 msgid "Could not read status line" msgstr "Nie można odczytać linii statusu" -#: src/ne_request.c:897 +#: src/ne_request.c:918 msgid "Could not parse response status line" msgstr "Nie można parsować linii statusu odpowiedzi" -#: src/ne_request.c:909 +#: src/ne_request.c:930 msgid "Could not read interim response headers" msgstr "Nie można odczytać nagłówków tymczasowej odpowiedzi" -#: src/ne_request.c:943 +#: src/ne_request.c:964 msgid "Could not send request" msgstr "Nie można wysłać żądania" -#: src/ne_request.c:991 src/ne_request.c:1009 src/ne_request.c:1019 +#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040 msgid "Error reading response headers" msgstr "Błąd podczas odczytywania nagłówków odpowiedzi" -#: src/ne_request.c:1037 +#: src/ne_request.c:1058 #, c-format msgid "Response header too long" msgstr "Nagłówek odpowiedzi zbyt długi" -#: src/ne_request.c:1119 +#: src/ne_request.c:1140 msgid "Response exceeded maximum number of header fields" msgstr "Odpowiedź przekroczyła maksymalną liczbę pól nagłówka" -#: src/ne_request.c:1134 +#: src/ne_request.c:1155 #, c-format msgid "Could not resolve hostname `%s': %s" msgstr "Nie można rozwiązać nazwy hosta `%s': %s" -#: src/ne_request.c:1265 +#: src/ne_request.c:1286 msgid "Unknown transfer-coding in response" msgstr "Nieznane transfer-coding w odpowiedzi" -#: src/ne_request.c:1278 +#: src/ne_request.c:1299 msgid "Invalid Content-Length in response" msgstr "Nieprawidłowe Content-Length w odpowiedzi" -#: src/ne_request.c:1351 +#: src/ne_request.c:1372 #, c-format msgid "Could not write to file: %s" msgstr "Nie można pisać do pliku: %s" -#: src/ne_request.c:1424 +#: src/ne_request.c:1445 #, c-format msgid "Could not create SSL connection through proxy server: %s" msgstr "Nie można utworzyć połączenia SSL przez serwer proxy: %s" -#: src/ne_request.c:1463 +#: src/ne_request.c:1484 #, c-format msgid "Could not create socket" msgstr "Nie można utworzyć gniazda" -#: src/ne_request.c:1496 +#: src/ne_request.c:1518 msgid "Could not connect to server" msgstr "Nie można połączyć się z serwerem" -#: src/ne_request.c:1498 +#: src/ne_request.c:1520 msgid "Could not connect to proxy server" msgstr "Nie można połączyć się z serwerem proxy" -#: src/ne_request.c:1541 +#: src/ne_request.c:1563 #, c-format msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy" msgstr "Nie można znaleźć adresu IPv4 nazwy hosta %s dla proxy SOCKS v4" -#: src/ne_request.c:1599 +#: src/ne_request.c:1621 #, c-format msgid "Could not establish connection from SOCKS proxy (%s:%u): %s" msgstr "Nie można nawiązać połączenia z proxy SOCKS (%s:%u): %s" -#: src/ne_session.c:528 src/ne_session.c:539 +#: src/ne_session.c:530 src/ne_session.c:541 msgid "[invalid date]" msgstr "[nieprawidłowa data]" -#: src/ne_session.c:552 +#: src/ne_session.c:554 msgid "certificate is not yet valid" msgstr "certyfikat nie jest jeszcze poprawny" -#: src/ne_session.c:553 +#: src/ne_session.c:555 msgid "certificate has expired" msgstr "certyfikat wygasł" -#: src/ne_session.c:554 +#: src/ne_session.c:556 msgid "certificate issued for a different hostname" msgstr "certyfikat wydany dla innej nazwy hosta" -#: src/ne_session.c:555 +#: src/ne_session.c:557 msgid "issuer is not trusted" msgstr "wydawca nie jest zaufany" -#: src/ne_session.c:556 +#: src/ne_session.c:558 msgid "bad certificate chain" msgstr "zły łańcuch certyfikatu" -#: src/ne_session.c:557 +#: src/ne_session.c:559 msgid "certificate has been revoked" msgstr "certyfikat został unieważniony" -#: src/ne_session.c:562 +#: src/ne_session.c:564 msgid "Server certificate verification failed: " msgstr "Weryfikacja certyfikatu serwera nie powiodła się: " @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: sitecopy 0.11.5\n" "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n" -"POT-Creation-Date: 2009-12-30 21:31+0000\n" +"POT-Creation-Date: 2010-10-01 13:30+0100\n" "PO-Revision-Date: 2002-11-11 14:28+0000\n" "Last-Translator: Michael Sobolev <neon@webdav.org>\n" "Language-Team: ru\n" @@ -258,147 +258,157 @@ msgstr "" msgid "%s: connection timed out" msgstr "" -#: src/ne_request.c:311 +#: src/ne_request.c:305 +#, fuzzy, c-format +msgid "Premature EOF in request body file" +msgstr "%s: : : %s\n" + +#: src/ne_request.c:312 +#, fuzzy, c-format +msgid "Failed reading request body file: %s" +msgstr "%s: : : %s\n" + +#: src/ne_request.c:332 msgid "offset invalid" msgstr "" -#: src/ne_request.c:316 +#: src/ne_request.c:337 #, fuzzy, c-format msgid "Could not seek to offset %s of request body file: %s" msgstr "%s: : : %s\n" -#: src/ne_request.c:364 +#: src/ne_request.c:385 msgid "Could not send request body" msgstr "" -#: src/ne_request.c:707 +#: src/ne_request.c:728 msgid "Could not read chunk size" msgstr "" -#: src/ne_request.c:714 +#: src/ne_request.c:735 #, fuzzy msgid "Could not parse chunk size" msgstr "%s: : : %s\n" -#: src/ne_request.c:751 +#: src/ne_request.c:772 msgid "Could not read response body" msgstr "" -#: src/ne_request.c:767 +#: src/ne_request.c:788 #, fuzzy msgid "Could not read chunk delimiter" msgstr "%s: : : %s\n" -#: src/ne_request.c:770 +#: src/ne_request.c:791 msgid "Chunk delimiter was invalid" msgstr "" -#: src/ne_request.c:875 +#: src/ne_request.c:896 msgid "Could not read status line" msgstr "" -#: src/ne_request.c:897 +#: src/ne_request.c:918 #, fuzzy msgid "Could not parse response status line" msgstr "%s: : : %s\n" -#: src/ne_request.c:909 +#: src/ne_request.c:930 #, fuzzy msgid "Could not read interim response headers" msgstr "%s: : : %s\n" -#: src/ne_request.c:943 +#: src/ne_request.c:964 msgid "Could not send request" msgstr "" -#: src/ne_request.c:991 src/ne_request.c:1009 src/ne_request.c:1019 +#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040 msgid "Error reading response headers" msgstr "" -#: src/ne_request.c:1037 +#: src/ne_request.c:1058 #, c-format msgid "Response header too long" msgstr "" -#: src/ne_request.c:1119 +#: src/ne_request.c:1140 msgid "Response exceeded maximum number of header fields" msgstr "" -#: src/ne_request.c:1134 +#: src/ne_request.c:1155 #, fuzzy, c-format msgid "Could not resolve hostname `%s': %s" msgstr "%s: : : %s.\n" -#: src/ne_request.c:1265 +#: src/ne_request.c:1286 msgid "Unknown transfer-coding in response" msgstr "" -#: src/ne_request.c:1278 +#: src/ne_request.c:1299 msgid "Invalid Content-Length in response" msgstr "" -#: src/ne_request.c:1351 +#: src/ne_request.c:1372 #, fuzzy, c-format msgid "Could not write to file: %s" msgstr "%s: : : %s\n" -#: src/ne_request.c:1424 +#: src/ne_request.c:1445 #, c-format msgid "Could not create SSL connection through proxy server: %s" msgstr "" -#: src/ne_request.c:1463 +#: src/ne_request.c:1484 #, fuzzy, c-format msgid "Could not create socket" msgstr "%s: : : %s\n" -#: src/ne_request.c:1496 +#: src/ne_request.c:1518 msgid "Could not connect to server" msgstr "" -#: src/ne_request.c:1498 +#: src/ne_request.c:1520 msgid "Could not connect to proxy server" msgstr "" -#: src/ne_request.c:1541 +#: src/ne_request.c:1563 #, c-format msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy" msgstr "" -#: src/ne_request.c:1599 +#: src/ne_request.c:1621 #, c-format msgid "Could not establish connection from SOCKS proxy (%s:%u): %s" msgstr "" -#: src/ne_session.c:528 src/ne_session.c:539 +#: src/ne_session.c:530 src/ne_session.c:541 msgid "[invalid date]" msgstr "" -#: src/ne_session.c:552 +#: src/ne_session.c:554 msgid "certificate is not yet valid" msgstr "" -#: src/ne_session.c:553 +#: src/ne_session.c:555 msgid "certificate has expired" msgstr "" -#: src/ne_session.c:554 +#: src/ne_session.c:556 msgid "certificate issued for a different hostname" msgstr "" -#: src/ne_session.c:555 +#: src/ne_session.c:557 msgid "issuer is not trusted" msgstr "" -#: src/ne_session.c:556 +#: src/ne_session.c:558 msgid "bad certificate chain" msgstr "" -#: src/ne_session.c:557 +#: src/ne_session.c:559 msgid "certificate has been revoked" msgstr "" -#: src/ne_session.c:562 +#: src/ne_session.c:564 msgid "Server certificate verification failed: " msgstr "" @@ -619,7 +629,3 @@ msgstr "%s: : : %s\n" #, fuzzy #~ msgid "%s: %s" #~ msgstr "%s\n" - -#, fuzzy -#~ msgid " of request body file: %s" -#~ msgstr "%s: : : %s\n" Binary files differ@@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: sitecopy-0.10.10\n" "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n" -"POT-Creation-Date: 2009-12-30 21:31+0000\n" +"POT-Creation-Date: 2010-10-01 13:30+0100\n" "PO-Revision-Date: 2001-01-03 HO:MI+ZONE\n" "Last-Translator: A. Sinan Unur <sinan@unur.com>\n" "Language-Team: tr\n" @@ -261,146 +261,156 @@ msgstr "%s: balant sunucu tarafinden kesildi." msgid "%s: connection timed out" msgstr "%s: balant bekleme snr ald." -#: src/ne_request.c:311 +#: src/ne_request.c:305 +#, fuzzy, c-format +msgid "Premature EOF in request body file" +msgstr "%s dosyasna yazm yaplamad" + +#: src/ne_request.c:312 +#, fuzzy, c-format +msgid "Failed reading request body file: %s" +msgstr "%s dosyasna yazm yaplamad" + +#: src/ne_request.c:332 msgid "offset invalid" msgstr "" -#: src/ne_request.c:316 +#: src/ne_request.c:337 #, fuzzy, c-format msgid "Could not seek to offset %s of request body file: %s" msgstr "%s dosyasna yazm yaplamad" -#: src/ne_request.c:364 +#: src/ne_request.c:385 msgid "Could not send request body" msgstr "stek metni gnderilemedi" -#: src/ne_request.c:707 +#: src/ne_request.c:728 msgid "Could not read chunk size" msgstr "Para boyutu renilemedi" -#: src/ne_request.c:714 +#: src/ne_request.c:735 msgid "Could not parse chunk size" msgstr "Para boyutu anlalamad" -#: src/ne_request.c:751 +#: src/ne_request.c:772 msgid "Could not read response body" msgstr "Yant metni okunamad" -#: src/ne_request.c:767 +#: src/ne_request.c:788 #, fuzzy msgid "Could not read chunk delimiter" msgstr "Para boyutu renilemedi" -#: src/ne_request.c:770 +#: src/ne_request.c:791 msgid "Chunk delimiter was invalid" msgstr "" -#: src/ne_request.c:875 +#: src/ne_request.c:896 msgid "Could not read status line" msgstr "Durum satr okunamad" -#: src/ne_request.c:897 +#: src/ne_request.c:918 #, fuzzy msgid "Could not parse response status line" msgstr "Durum satr anlalamad." -#: src/ne_request.c:909 +#: src/ne_request.c:930 #, fuzzy msgid "Could not read interim response headers" msgstr "Yant metni okunamad" -#: src/ne_request.c:943 +#: src/ne_request.c:964 msgid "Could not send request" msgstr "stek gnderilemedi" -#: src/ne_request.c:991 src/ne_request.c:1009 src/ne_request.c:1019 +#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040 msgid "Error reading response headers" msgstr "Yant balklar okunurken hata" -#: src/ne_request.c:1037 +#: src/ne_request.c:1058 #, c-format msgid "Response header too long" msgstr "Yant bal ok uzun" -#: src/ne_request.c:1119 +#: src/ne_request.c:1140 msgid "Response exceeded maximum number of header fields" msgstr "" -#: src/ne_request.c:1134 +#: src/ne_request.c:1155 #, fuzzy, c-format msgid "Could not resolve hostname `%s': %s" msgstr "%s: Hata: %s sunucusunun adresi bulunamad.\n" -#: src/ne_request.c:1265 +#: src/ne_request.c:1286 msgid "Unknown transfer-coding in response" msgstr "" -#: src/ne_request.c:1278 +#: src/ne_request.c:1299 msgid "Invalid Content-Length in response" msgstr "" -#: src/ne_request.c:1351 +#: src/ne_request.c:1372 #, c-format msgid "Could not write to file: %s" msgstr "%s dosyasna yazm yaplamad" -#: src/ne_request.c:1424 +#: src/ne_request.c:1445 #, fuzzy, c-format msgid "Could not create SSL connection through proxy server: %s" msgstr "Ara sunucu zerinden SSL balants kurulamad" -#: src/ne_request.c:1463 +#: src/ne_request.c:1484 #, fuzzy, c-format msgid "Could not create socket" msgstr "SSL balants kurulamad" -#: src/ne_request.c:1496 +#: src/ne_request.c:1518 msgid "Could not connect to server" msgstr "Sunucuyla balant kurulamad" -#: src/ne_request.c:1498 +#: src/ne_request.c:1520 msgid "Could not connect to proxy server" msgstr "Ara sunucuyla balant kurulamad" -#: src/ne_request.c:1541 +#: src/ne_request.c:1563 #, c-format msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy" msgstr "" -#: src/ne_request.c:1599 +#: src/ne_request.c:1621 #, fuzzy, c-format msgid "Could not establish connection from SOCKS proxy (%s:%u): %s" msgstr "Ara sunucu zerinden SSL balants kurulamad" -#: src/ne_session.c:528 src/ne_session.c:539 +#: src/ne_session.c:530 src/ne_session.c:541 msgid "[invalid date]" msgstr "" -#: src/ne_session.c:552 +#: src/ne_session.c:554 msgid "certificate is not yet valid" msgstr "" -#: src/ne_session.c:553 +#: src/ne_session.c:555 msgid "certificate has expired" msgstr "" -#: src/ne_session.c:554 +#: src/ne_session.c:556 msgid "certificate issued for a different hostname" msgstr "" -#: src/ne_session.c:555 +#: src/ne_session.c:557 msgid "issuer is not trusted" msgstr "" -#: src/ne_session.c:556 +#: src/ne_session.c:558 msgid "bad certificate chain" msgstr "" -#: src/ne_session.c:557 +#: src/ne_session.c:559 msgid "certificate has been revoked" msgstr "" -#: src/ne_session.c:562 +#: src/ne_session.c:564 msgid "Server certificate verification failed: " msgstr "" @@ -638,7 +648,3 @@ msgstr "Yant metni okunamad" #~ msgid "Proxy server was not authenticated correctly." #~ msgstr "Proxy server was not authenticated correctly." - -#, fuzzy -#~ msgid " of request body file: %s" -#~ msgstr "%s dosyasna yazm yaplamad" diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo Binary files differindex f9fb504..5dd9dc3 100644 --- a/po/zh_CN.gmo +++ b/po/zh_CN.gmo diff --git a/po/zh_CN.po b/po/zh_CN.po index 580395f..e036d2b 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: neon 0.29.x\n" "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n" -"POT-Creation-Date: 2009-12-30 21:31+0000\n" +"POT-Creation-Date: 2010-10-01 13:30+0100\n" "PO-Revision-Date: 2008-03-03 11:20+0800\n" "Last-Translator: Dongsheng Song <dongsheng.song@gmail.com>\n" "Language-Team: neon@webdav.org\n" @@ -259,145 +259,155 @@ msgstr "%s: 连接被服务器关闭" msgid "%s: connection timed out" msgstr "%s: 连接超时" -#: src/ne_request.c:311 +#: src/ne_request.c:305 +#, c-format +msgid "Premature EOF in request body file" +msgstr "" + +#: src/ne_request.c:312 +#, c-format +msgid "Failed reading request body file: %s" +msgstr "" + +#: src/ne_request.c:332 msgid "offset invalid" msgstr "非法偏移" -#: src/ne_request.c:316 +#: src/ne_request.c:337 #, c-format msgid "Could not seek to offset %s of request body file: %s" msgstr "在请求主体文件不能定位到偏移 %s: %s" -#: src/ne_request.c:364 +#: src/ne_request.c:385 msgid "Could not send request body" msgstr "不能发送请求主体" -#: src/ne_request.c:707 +#: src/ne_request.c:728 msgid "Could not read chunk size" msgstr "不能读块大小" -#: src/ne_request.c:714 +#: src/ne_request.c:735 msgid "Could not parse chunk size" msgstr "不能解析块大小" -#: src/ne_request.c:751 +#: src/ne_request.c:772 msgid "Could not read response body" msgstr "不能读取响应主体" -#: src/ne_request.c:767 +#: src/ne_request.c:788 msgid "Could not read chunk delimiter" msgstr "不能读块分割符" -#: src/ne_request.c:770 +#: src/ne_request.c:791 msgid "Chunk delimiter was invalid" msgstr "非法的分割符" -#: src/ne_request.c:875 +#: src/ne_request.c:896 msgid "Could not read status line" msgstr "不能读状态行" -#: src/ne_request.c:897 +#: src/ne_request.c:918 msgid "Could not parse response status line" msgstr "不能解析响应状态行" -#: src/ne_request.c:909 +#: src/ne_request.c:930 msgid "Could not read interim response headers" msgstr "不能读临时响应头" -#: src/ne_request.c:943 +#: src/ne_request.c:964 msgid "Could not send request" msgstr "不能发送请求" -#: src/ne_request.c:991 src/ne_request.c:1009 src/ne_request.c:1019 +#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040 msgid "Error reading response headers" msgstr "读取响应头出错" -#: src/ne_request.c:1037 +#: src/ne_request.c:1058 #, c-format msgid "Response header too long" msgstr "响应头太长" -#: src/ne_request.c:1119 +#: src/ne_request.c:1140 msgid "Response exceeded maximum number of header fields" msgstr "响应头的域数量超出了最大数量" -#: src/ne_request.c:1134 +#: src/ne_request.c:1155 #, c-format msgid "Could not resolve hostname `%s': %s" msgstr "不能解析主机名称 “%s”: %s" -#: src/ne_request.c:1265 +#: src/ne_request.c:1286 msgid "Unknown transfer-coding in response" msgstr "响应中的传输代码未知" -#: src/ne_request.c:1278 +#: src/ne_request.c:1299 msgid "Invalid Content-Length in response" msgstr "非法的 Content-Length 响应域" -#: src/ne_request.c:1351 +#: src/ne_request.c:1372 #, c-format msgid "Could not write to file: %s" msgstr "不能写入文件:%s" -#: src/ne_request.c:1424 +#: src/ne_request.c:1445 #, c-format msgid "Could not create SSL connection through proxy server: %s" msgstr "不能通过代理服务器 “%s” 创建 SSL 连接" -#: src/ne_request.c:1463 +#: src/ne_request.c:1484 #, c-format msgid "Could not create socket" msgstr "不能创建套接字" -#: src/ne_request.c:1496 +#: src/ne_request.c:1518 msgid "Could not connect to server" msgstr "不能连接到服务器" -#: src/ne_request.c:1498 +#: src/ne_request.c:1520 msgid "Could not connect to proxy server" msgstr "不能连接到代理服务器" -#: src/ne_request.c:1541 +#: src/ne_request.c:1563 #, c-format msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy" msgstr "" -#: src/ne_request.c:1599 +#: src/ne_request.c:1621 #, fuzzy, c-format msgid "Could not establish connection from SOCKS proxy (%s:%u): %s" msgstr "不能通过代理服务器 “%s” 创建 SSL 连接" -#: src/ne_session.c:528 src/ne_session.c:539 +#: src/ne_session.c:530 src/ne_session.c:541 msgid "[invalid date]" msgstr "[非法日期]" -#: src/ne_session.c:552 +#: src/ne_session.c:554 msgid "certificate is not yet valid" msgstr "证书还未生效" -#: src/ne_session.c:553 +#: src/ne_session.c:555 msgid "certificate has expired" msgstr "证书已经过时" -#: src/ne_session.c:554 +#: src/ne_session.c:556 msgid "certificate issued for a different hostname" msgstr "此证书是为不同的主机名称颁发" -#: src/ne_session.c:555 +#: src/ne_session.c:557 msgid "issuer is not trusted" msgstr "证书发行者不被信任" -#: src/ne_session.c:556 +#: src/ne_session.c:558 #, fuzzy msgid "bad certificate chain" msgstr "证书已经过时" -#: src/ne_session.c:557 +#: src/ne_session.c:559 #, fuzzy msgid "certificate has been revoked" msgstr "证书已经过时" -#: src/ne_session.c:562 +#: src/ne_session.c:564 msgid "Server certificate verification failed: " msgstr "服务器证书校验失败" diff --git a/src/ne_auth.c b/src/ne_auth.c index ba6f0ec..2038953 100644 --- a/src/ne_auth.c +++ b/src/ne_auth.c @@ -1508,8 +1508,10 @@ static int ah_post_send(ne_request *req, void *cookie, const ne_status *status) sess->protocol && (sess->protocol->flags & AUTH_FLAG_CONN_AUTH)); } + #ifdef HAVE_SSPI - else if (sess->sspi_context) { + /* Whatever happens: clear the SSPI context if it exists. */ + if (sess->sspi_context) { ne_sspi_clear_context(sess->sspi_context); } #endif diff --git a/src/ne_defs.h b/src/ne_defs.h index c02be93..e902e3a 100644 --- a/src/ne_defs.h +++ b/src/ne_defs.h @@ -1,6 +1,6 @@ /* Standard definitions for neon headers - Copyright (C) 2003-2008, Joe Orton <joe@manyfish.co.uk> + Copyright (C) 2003-2008, 2010, Joe Orton <joe@manyfish.co.uk> This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public @@ -51,7 +51,9 @@ typedef off_t ne_off_t; #ifdef __GNUC__ #if __GNUC__ >= 3 +#ifndef NE_PRIVATE #define NE_PRIVATE __attribute__((visibility ("hidden"))) +#endif #define ne_attribute_malloc __attribute__((malloc)) #else #define ne_attribute_malloc diff --git a/src/ne_request.c b/src/ne_request.c index 6eaacde..ae075c2 100644 --- a/src/ne_request.c +++ b/src/ne_request.c @@ -1,6 +1,6 @@ /* HTTP request/response handling - Copyright (C) 1999-2009, Joe Orton <joe@manyfish.co.uk> + Copyright (C) 1999-2010, Joe Orton <joe@manyfish.co.uk> This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public @@ -284,6 +284,8 @@ static ssize_t body_fd_send(void *userdata, char *buffer, size_t count) ne_request *req = userdata; if (count) { + ssize_t ret; + if (req->body.file.remain == 0) return 0; @@ -292,7 +294,26 @@ static ssize_t body_fd_send(void *userdata, char *buffer, size_t count) * and 64-bit off64_t: */ if ((ne_off_t)count > req->body.file.remain) count = (size_t)req->body.file.remain; - return read(req->body.file.fd, buffer, count); + + ret = read(req->body.file.fd, buffer, count); + if (ret > 0) { + req->body.file.remain -= ret; + return ret; + } + else if (ret == 0) { + ne_set_error(req->session, + _("Premature EOF in request body file")); + } + else if (ret < 0) { + char err[200]; + int errnum = errno; + + ne_set_error(req->session, + _("Failed reading request body file: %s"), + ne_strerror(errnum, err, sizeof err)); + } + + return -1; } else { ne_off_t newoff; @@ -1481,8 +1502,9 @@ static int do_connect(ne_session *sess, struct host_info *host) #ifdef NE_DEBUGGING if (ne_debug_mask & NE_DBG_HTTP) { char buf[150]; - NE_DEBUG(NE_DBG_HTTP, "Connecting to %s\n", - ne_iaddr_print(host->current, buf, sizeof buf)); + NE_DEBUG(NE_DBG_HTTP, "req: Connecting to %s:%u\n", + ne_iaddr_print(host->current, buf, sizeof buf), + host->port); } #endif ret = ne_sock_connect(sess->socket, host->current, host->port); @@ -1602,6 +1624,7 @@ static int open_connection(ne_session *sess) sess->nexthop->port, ne_sock_error(sess->socket)); ne_close_connection(sess); + ret = NE_ERROR; } } } diff --git a/src/ne_session.c b/src/ne_session.c index 117c25a..1502140 100644 --- a/src/ne_session.c +++ b/src/ne_session.c @@ -183,8 +183,10 @@ ne_session *ne_session_create(const char *scheme, ia = ne_iaddr_parse(hostname, ne_iaddr_ipv6); if (ia) { - sess->flags[NE_SESSFLAG_TLS_SNI] = 1; ne_iaddr_free(ia); + } + else { + sess->flags[NE_SESSFLAG_TLS_SNI] = 1; } NE_DEBUG(NE_DBG_SSL, "ssl: SNI %s by default.\n", sess->flags[NE_SESSFLAG_TLS_SNI] ? @@ -581,6 +583,25 @@ int ne__ssl_match_hostname(const char *cn, size_t cnlen, const char *hostname) if (strncmp(cn, "*.", 2) == 0 && cnlen > 2 && (dot = strchr(hostname, '.')) != NULL) { + ne_inet_addr *ia; + + /* Prevent wildcard CN matches against anything which can be + * parsed as an IP address (i.e. a CN of "*.1.1.1" should not + * be match 8.1.1.1). draft-saintandre-tls-server-id-check + * will require some more significant changes to cert ID + * verification which will probably obviate this check, but + * this is a desirable policy tightening in the mean time. */ + ia = ne_iaddr_parse(hostname, ne_iaddr_ipv4); + if (ia == NULL) + ia = ne_iaddr_parse(hostname, ne_iaddr_ipv6); + + if (ia) { + NE_DEBUG(NE_DBG_SSL, "ssl: Denying wildcard match for numeric " + "IP address.\n"); + ne_iaddr_free(ia); + return 0; + } + hostname = dot + 1; cn += 2; cnlen -= 2; diff --git a/test/Makefile.in b/test/Makefile.in index 8617a3e..d94a02d 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -18,7 +18,7 @@ LIBS = $(LIBTEST) CC = @CC@ OPENSSL = @OPENSSL@ -HELPERS = @HELPERS@ +HELPERS = @HELPERS@ foobar.txt BASIC_TESTS = uri-tests util-tests string-tests socket \ session request auth basic stubs redirect ZLIB_TESTS = compress @@ -125,6 +125,9 @@ empty.gz: random.txt: $(NEWS) cat $(NEWS) > $@ +foobar.txt: + echo foobar > $@ + # Dummy target to create the CA keys etc. makekeys stderr is redirected # since it changes for every invocation; not helpful for regression # testing. diff --git a/test/makekeys.sh b/test/makekeys.sh index 4e9b39a..1389195 100755 --- a/test/makekeys.sh +++ b/test/makekeys.sh @@ -154,6 +154,9 @@ cat ca/cert.pem ca[1234].pem > calist.pem csr_fields "Wildcard Cert Dept" "*.example.com" | \ ${REQ} -new -key ${srcdir}/server.key -out wildcard.csr +csr_fields "Wildcard IP Cert" "*.0.0.1" | \ +${REQ} -new -key ${srcdir}/server.key -out wildip.csr + csr_fields "Neon Client Cert" ignored.example.com | \ ${REQ} -new -key client.key -out client.csr @@ -184,7 +187,7 @@ First OU Dept" | ${REQ} -new -key ${srcdir}/server.key -out twoou.csr for f in server client clientdsa twocn caseless cnfirst \ t61subj bmpsubj utf8subj \ - missingcn justmail twoou wildcard wrongcn; do + missingcn justmail twoou wildcard wildip wrongcn; do ${CA} -days 900 -in ${f}.csr -out ${f}.cert done diff --git a/test/request.c b/test/request.c index 55f9c8d..ad1a62a 100644 --- a/test/request.c +++ b/test/request.c @@ -1,6 +1,6 @@ /* HTTP request handling tests - Copyright (C) 2001-2009, Joe Orton <joe@manyfish.co.uk> + Copyright (C) 2001-2010, Joe Orton <joe@manyfish.co.uk> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -31,6 +31,7 @@ #include <unistd.h> #endif #include <fcntl.h> +#include <errno.h> #include "ne_request.h" #include "ne_socket.h" @@ -2236,6 +2237,98 @@ static int socks_v4_proxy(void) return await_server(); } +/* Server function which serves the request body back as the response + * body. */ +static int serve_mirror(ne_socket *sock, void *userdata) +{ + char response[1024]; + + CALL(discard_request(sock)); + + ONV(clength == 0 || (size_t)clength > sizeof buffer, + ("C-L out of bounds: %d", clength)); + + ONV(ne_sock_fullread(sock, buffer, clength), + ("read failed: %s", ne_sock_error(sock))); + + ne_snprintf(response, sizeof response, + "HTTP/1.0 200 OK\r\n" + "Content-Length: %d\r\n" + "\r\n", clength); + + ONN("send response header failed", + server_send(sock, response, strlen(response))); + + ONN("send response body failed", + server_send(sock, buffer, clength)); + + ONV(ne_sock_read(sock, buffer, 1) != NE_SOCK_CLOSED, + ("client sent data after request: %c", buffer[0])); + + return OK; +} + +/* Test for ne_set_request_body_fd() bug in <= 0.29.3. */ +static int send_length(void) +{ + ne_session *sess; + ne_request *req; + int fd; + ne_buffer *buf = ne_buffer_create(); + + fd = open("foobar.txt", O_RDONLY); + ONV(fd < 0, ("open random.txt failed: %s", strerror(errno))); + + CALL(make_session(&sess, serve_mirror, NULL)); + + req = ne_request_create(sess, "GET", "/foo"); + + ne_set_request_body_fd(req, fd, 0, 3); + ne_add_response_body_reader(req, ne_accept_2xx, collector, buf); + + ONREQ(ne_request_dispatch(req)); + + ONCMP("foo", buf->data, "response body", "match"); + + ne_request_destroy(req); + ne_session_destroy(sess); + close(fd); + return await_server(); +} + +/* Test for error code for a SOCKS proxy failure, bug in <= 0.29.3. */ +static int socks_fail(void) +{ + ne_session *sess; + struct socks_server srv = {0}; + int ret; + + srv.version = NE_SOCK_SOCKSV5; + srv.failure = fail_init_vers; + srv.expect_port = 4242; + srv.expect_addr = ne_iaddr_parse("127.0.0.1", ne_iaddr_ipv4); + srv.expect_fqdn = "localhost"; + srv.username = "bloggs"; + srv.password = "guessme"; + + CALL(socks_session(&sess, &srv, srv.expect_fqdn, srv.expect_port, + single_serve_string, EMPTY_RESP)); + + ret = any_request(sess, "/blee"); + ONV(ret != NE_ERROR, + ("request failed with %d not NE_ERROR", ret)); + ONV(strstr(ne_get_error(sess), + "Could not establish connection from SOCKS proxy") == NULL + || strstr(ne_get_error(sess), + "Invalid version in proxy response") == NULL, + ("unexpected error string: %s", ne_get_error(sess))); + + ne_iaddr_free(srv.expect_addr); + + ne_session_destroy(sess); + return await_server(); +} + /* TODO: test that ne_set_notifier(, NULL, NULL) DTRT too. */ ne_test tests[] = { @@ -2327,5 +2420,7 @@ ne_test tests[] = { T(addrlist), T(socks_proxy), T(socks_v4_proxy), + T(send_length), + T(socks_fail), T(NULL) }; @@ -960,6 +960,12 @@ static int fail_wildcard(void) "subjaltname not honored", NE_SSL_IDMISMATCH); } +static int fail_wildcard_ip(void) +{ + return fail_ssl_request("wildip.cert", CA_CERT, "127.0.0.1", + "wildcard IP", NE_SSL_IDMISMATCH); +} + static int fail_ca_expired(void) { return fail_ssl_request_with_error("ca1server.cert", "ca1/cert.pem", @@ -1891,6 +1897,7 @@ ne_test tests[] = { T(fail_bad_ipaltname), T(fail_bad_urialtname), T(fail_wildcard), + T(fail_wildcard_ip), T(fail_ca_notyetvalid), T(fail_ca_expired), |