Imported Upstream version 0.30.0 upstream upstream/0.30.0
authorPatrick Ohly <patrick.ohly@intel.com>
Sat, 24 May 2014 18:53:04 +0000 (20:53 +0200)
committerPatrick Ohly <patrick.ohly@intel.com>
Sat, 24 May 2014 18:53:04 +0000 (20:53 +0200)
229 files changed:
.version
ChangeLog
NEWS
aclocal.m4
config.guess
config.h.in
config.hw
config.hw.in
config.sub
configure
configure.in
doc/date.xml
doc/html/api.html
doc/html/biblio.html
doc/html/compliance.html
doc/html/features.html
doc/html/index.html
doc/html/intro.html
doc/html/manual.proc [new file with mode: 0644]
doc/html/ref.html
doc/html/refalloc.html
doc/html/refauth.html
doc/html/refbuf.html
doc/html/refbufapp.html
doc/html/refbufcr.html
doc/html/refbufdest.html
doc/html/refbufutil.html
doc/html/refcert.html
doc/html/refclicert.html
doc/html/refconfig.html
doc/html/referr.html
doc/html/reffeat.html
doc/html/refgetst.html
doc/html/refi18n.html
doc/html/refiaddr.html
doc/html/refneon.html
doc/html/refopts.html
doc/html/refproxy.html [new file with mode: 0644]
doc/html/refreq.html
doc/html/refreqbody.html
doc/html/refreqflags.html
doc/html/refreqhdr.html
doc/html/refresolve.html
doc/html/refresphdr.html
doc/html/refsess.html
doc/html/refsessflags.html
doc/html/refshave.html
doc/html/refsockinit.html
doc/html/refsslca.html
doc/html/refsslcert2.html
doc/html/refsslcertio.html
doc/html/refssldname.html
doc/html/refsslvfy.html
doc/html/refstatus.html
doc/html/reftok.html
doc/html/refvers.html
doc/html/refxml.html
doc/html/security.html
doc/html/using.html
doc/html/xml.html
doc/man/ne_add_request_header.3
doc/man/ne_addr_destroy.3
doc/man/ne_addr_error.3
doc/man/ne_addr_first.3
doc/man/ne_addr_next.3
doc/man/ne_addr_resolve.3
doc/man/ne_addr_result.3
doc/man/ne_buffer.3
doc/man/ne_buffer_altered.3
doc/man/ne_buffer_append.3
doc/man/ne_buffer_clear.3
doc/man/ne_buffer_concat.3
doc/man/ne_buffer_create.3
doc/man/ne_buffer_destroy.3
doc/man/ne_buffer_finish.3
doc/man/ne_buffer_grow.3
doc/man/ne_buffer_ncreate.3
doc/man/ne_buffer_zappend.3
doc/man/ne_calloc.3
doc/man/ne_close_connection.3
doc/man/ne_forget_auth.3
doc/man/ne_get_error.3
doc/man/ne_get_request_flag.3
doc/man/ne_get_response_header.3
doc/man/ne_get_scheme.3
doc/man/ne_get_server_hostport.3
doc/man/ne_get_session_flag.3
doc/man/ne_get_status.3
doc/man/ne_has_support.3
doc/man/ne_i18n_init.3
doc/man/ne_iaddr_cmp.3
doc/man/ne_iaddr_free.3
doc/man/ne_iaddr_make.3
doc/man/ne_iaddr_parse.3
doc/man/ne_iaddr_print.3
doc/man/ne_iaddr_raw.3
doc/man/ne_iaddr_reverse.3
doc/man/ne_iaddr_typeof.3
doc/man/ne_malloc.3
doc/man/ne_oom_callback.3
doc/man/ne_print_request_header.3
doc/man/ne_qtoken.3
doc/man/ne_realloc.3
doc/man/ne_request_create.3
doc/man/ne_request_destroy.3
doc/man/ne_request_dispatch.3
doc/man/ne_response_header_iterate.3
doc/man/ne_session_create.3
doc/man/ne_session_destroy.3
doc/man/ne_session_proxy.3
doc/man/ne_session_socks_proxy.3 [new file with mode: 0644]
doc/man/ne_session_system_proxy.3 [new file with mode: 0644]
doc/man/ne_set_addrlist.3 [new file with mode: 0644]
doc/man/ne_set_connect_timeout.3
doc/man/ne_set_error.3
doc/man/ne_set_proxy_auth.3
doc/man/ne_set_read_timeout.3
doc/man/ne_set_request_body_buffer.3
doc/man/ne_set_request_body_fd.3
doc/man/ne_set_request_body_fd64.3
doc/man/ne_set_request_flag.3
doc/man/ne_set_server_auth.3
doc/man/ne_set_session_flag.3
doc/man/ne_set_useragent.3
doc/man/ne_shave.3
doc/man/ne_sock_exit.3
doc/man/ne_sock_init.3
doc/man/ne_ssl_cert_cmp.3
doc/man/ne_ssl_cert_export.3
doc/man/ne_ssl_cert_free.3
doc/man/ne_ssl_cert_identity.3
doc/man/ne_ssl_cert_import.3
doc/man/ne_ssl_cert_issuer.3
doc/man/ne_ssl_cert_read.3
doc/man/ne_ssl_cert_signedby.3
doc/man/ne_ssl_cert_subject.3
doc/man/ne_ssl_cert_write.3
doc/man/ne_ssl_clicert_decrypt.3
doc/man/ne_ssl_clicert_encrypted.3
doc/man/ne_ssl_clicert_free.3
doc/man/ne_ssl_clicert_name.3
doc/man/ne_ssl_clicert_owner.3
doc/man/ne_ssl_clicert_read.3
doc/man/ne_ssl_dname_cmp.3
doc/man/ne_ssl_readable_dname.3
doc/man/ne_ssl_set_verify.3
doc/man/ne_ssl_trust_cert.3
doc/man/ne_ssl_trust_default_ca.3
doc/man/ne_status.3
doc/man/ne_strdup.3
doc/man/ne_strndup.3
doc/man/ne_token.3
doc/man/ne_version_match.3
doc/man/ne_version_string.3
doc/man/ne_xml_create.3
doc/man/ne_xml_destroy.3
doc/man/neon-config.1
doc/man/neon.3
doc/manual.xml
doc/ref/proxy.xml [new file with mode: 0644]
doc/ref/req.xml
doc/ref/sess.xml
doc/version.xml
install-sh
ltmain.sh [changed mode: 0755->0644]
macros/ld-version-script.m4
macros/neon-test.m4
macros/neon.m4
po/cs.gmo
po/cs.po
po/de.gmo
po/de.po
po/fr.gmo
po/fr.po
po/ja.gmo
po/ja.po
po/neon.pot
po/nn.gmo
po/nn.po
po/pl.gmo
po/pl.po
po/ru.gmo
po/ru.po
po/tr.gmo
po/tr.po
po/zh_CN.gmo
po/zh_CN.po
src/Makefile.in
src/ne_auth.c
src/ne_auth.h
src/ne_basic.c
src/ne_basic.h
src/ne_defs.h
src/ne_gnutls.c
src/ne_md5.c
src/ne_openssl.c
src/ne_privssl.h
src/ne_request.c
src/ne_request.h
src/ne_session.c
src/ne_session.h
src/ne_socket.c
src/ne_socket.h
src/ne_ssl.h
src/ne_sspi.c
src/ne_uri.c
src/ne_utils.c
src/ne_utils.h
src/neon.vers
test/.gdbinit [new file with mode: 0644]
test/auth.c
test/basic.c
test/common/child.c
test/common/child.h
test/common/tests.c
test/compress.c
test/lock.c
test/makekeys.sh
test/props.c
test/redirect.c
test/request.c
test/run-tests.sh
test/session.c
test/socket.c
test/ssl.c
test/stubs.c
test/uri-tests.c
test/utils.c
test/utils.h

index 476163a..c25c8e5 100644 (file)
--- a/.version
+++ b/.version
@@ -1 +1 @@
-0.29.6
+0.30.0
index 9ece279..f4499ef 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 ------------------------------------------------------------------------
-r1843 | joe | 2011-05-03 13:15:08 +0100 (Tue, 03 May 2011) | 1 line
+r1932 | joe | 2013-07-31 17:00:59 +0100 (Wed, 31 Jul 2013) | 2 lines
+
+Tag 0.30, third time lucky.
 
-Tag release 0.29.6.
 ------------------------------------------------------------------------
-r1842 | joe | 2011-05-03 13:14:56 +0100 (Tue, 03 May 2011) | 2 lines
+r1930 | joe | 2013-07-31 16:55:25 +0100 (Wed, 31 Jul 2013) | 3 lines
 
-* macros/neon.m4: Bump to .6.
+* macros/neon.m4, configure.in: Fix ABI versioning for backwards-compat
+  with 0.27.x.
 
 ------------------------------------------------------------------------
-r1841 | joe | 2011-05-03 13:09:46 +0100 (Tue, 03 May 2011) | 2 lines
+r1928 | joe | 2013-07-31 16:48:33 +0100 (Wed, 31 Jul 2013) | 2 lines
 
-* NEWS: Tweak ordering.
+* po/: make update-po.
 
 ------------------------------------------------------------------------
-r1840 | joe | 2011-05-03 13:09:18 +0100 (Tue, 03 May 2011) | 2 lines
+r1925 | joe | 2013-07-31 16:36:53 +0100 (Wed, 31 Jul 2013) | 2 lines
 
-* More news.
+* src/ne_socket.c: Another GnuTLS 3.x deprecation warning fix.
 
 ------------------------------------------------------------------------
-r1839 | joe | 2011-05-03 13:07:08 +0100 (Tue, 03 May 2011) | 22 lines
+r1924 | joe | 2013-07-31 16:35:34 +0100 (Wed, 31 Jul 2013) | 1 line
 
-Merge r1836, r1837, r1838 from trunk:
+Drop -dev.
+------------------------------------------------------------------------
+r1923 | joe | 2013-07-31 16:34:39 +0100 (Wed, 31 Jul 2013) | 1 line
 
-* src/ne_gnutls.c (ne__ssl_init): Fix for GnuTLS with Nettle.
+Note GnuTLS 3.x fixes.
+------------------------------------------------------------------------
+r1922 | joe | 2013-07-31 16:22:20 +0100 (Wed, 31 Jul 2013) | 2 lines
 
-* src/ne_auth.c (get_cnonce): Likewise.
+* src/ne_gnutls.c (provide_client_cert): Avoid segfaults with GnuTLS 3.x.
 
-Submitted by: Arfrever Frehtes Taifersar Arahesis <arfrever.fta gmail.com>
+------------------------------------------------------------------------
+r1921 | joe | 2013-07-31 15:46:50 +0100 (Wed, 31 Jul 2013) | 2 lines
 
-* src/ne_auth.c
-  (ah_post_send): Clear SSPI context only after successful authentication.
+* test/.gdbinit: New file.
 
-Submitted by: Ivan Zhakov <ivan visualsvn.com>
+------------------------------------------------------------------------
+r1920 | joe | 2013-07-31 15:46:37 +0100 (Wed, 31 Jul 2013) | 2 lines
 
-Fix some errors flagged by a Coverity scan:
+* test/common/child.c: More debugging.
 
-* src/ne_auth.c (verify_negotiate_response): Check for NULL pointer.
+------------------------------------------------------------------------
+r1919 | joe | 2013-07-31 15:40:56 +0100 (Wed, 31 Jul 2013) | 6 lines
 
-* src/ne_gnutls.c (check_certificate): Initiatialize 'failures'.
-  (pkcs12_parse): Check for _crt_init failure.
+* test/request.c (status, status_chunked): Revert r1910.  Expect hostname of
+  127.0.0.1.
+
+* test/utils.c (session_server, sessi
 
-* src/ne_session.c (ne__ssl_set_verify_err): Pass size-1 to strncat.
 
 ------------------------------------------------------------------------
-r1835 | joe | 2011-03-01 13:28:28 +0000 (Tue, 01 Mar 2011) | 2 lines
+r1918 | joe | 2013-07-31 15:21:04 +0100 (Wed, 31 Jul 2013) | 3 lines
 
-* NEWS: Update.
+* src/ne_gnutls.c (x509_crt_copy, make_peers_chain): Fix potential segv,
+  patch by Matthias Petschick.
 
 ------------------------------------------------------------------------
-r1834 | joe | 2011-03-01 13:26:04 +0000 (Tue, 01 Mar 2011) | 6 lines
+r1917 | joe | 2013-07-31 15:15:05 +0100 (Wed, 31 Jul 2013) | 3 lines
 
-Merge r1833 from trunk:
+* src/ne_privssl.h, src/ne_gnutls.c, src/ne_socket.c: Avoid olde GnuTLS types,
+  avoiding deprecation warnings.
 
-* src/ne_request.c (ne_request_create): Pass copied method to
-  pre_send hooks to avoid lifetime issues (Patrick Ohly).
+------------------------------------------------------------------------
+r1916 | joe | 2013-07-31 15:08:25 +0100 (Wed, 31 Jul 2013) | 5 lines
+
+Omitted in previous commit:
 
+* src/ne_socket.c: Support build with GnuTLS 3, patch by Bartosz
+  Brachaczek.
 
 ------------------------------------------------------------------------
-r1832 | joe | 2010-11-11 12:32:11 +0000 (Thu, 11 Nov 2010) | 2 lines
+r1915 | joe | 2013-07-31 15:05:23 +0100 (Wed, 31 Jul 2013) | 3 lines
 
-* macros/neon.m4: Really bump to -dev.
+* src/ne_gnutls.c, macros/neon.m4: Support build with GnuTLS 3, patch by
+  Bartosz Brachaczek.
 
 ------------------------------------------------------------------------
-r1831 | joe | 2010-11-11 12:31:39 +0000 (Thu, 11 Nov 2010) | 2 lines
+r1914 | joe | 2013-07-31 14:56:22 +0100 (Wed, 31 Jul 2013) | 2 lines
 
-* macros/neon.m4, NEWS: Bump to .6-dev.
+* macros/ld-version-script.m4: Update from gnulib.
 
 ------------------------------------------------------------------------
-r1830 | joe | 2010-11-11 12:29:51 +0000 (Thu, 11 Nov 2010) | 5 lines
+r1913 | joe | 2013-07-31 14:50:34 +0100 (Wed, 31 Jul 2013) | 2 lines
 
-Merge r1827 from trunk:
+* test/common/tests.c (main): Note fatal errors.
 
-* doc/ref/iaddr.xml: Update ne_iaddr_* docs.
+------------------------------------------------------------------------
+r1912 | joe | 2013-07-31 14:49:58 +0100 (Wed, 31 Jul 2013) | 2 lines
 
+* test/ssl.c: Disable SSLv2 test, redundant with modern SSL libraries.
 
 ------------------------------------------------------------------------
-r1829 | joe | 2010-11-11 12:26:45 +0000 (Thu, 11 Nov 2010) | 7 lines
+r1911 | joe | 2013-07-26 19:33:54 +0100 (Fri, 26 Jul 2013) | 2 lines
 
-Merge r1828 from trunk:
+* src/ne_request.c (send_request_body): Use chunk length without prefix in progress.
 
-* src/ne_gnutls.c (provide_client_cert): Return success with no cert
-  if no cert is available; match behaviour with OpenSSL.  Thanks to
-  Patrick Ohly.
+------------------------------------------------------------------------
+r1910 | joe | 2013-07-26 19:32:08 +0100 (Fri, 26 Jul 2013) | 4 lines
 
+* test/request.c (print_addr, notifier): Factor out from status; fix for
+  multiple mappings from "localhost" addr.
+  (status_plain, status_chunked): Adapt to use notifier.
 
 ------------------------------------------------------------------------
-r1825 | joe | 2010-10-14 16:04:44 +0100 (Thu, 14 Oct 2010) | 2 lines
+r1909 | joe | 2013-07-26 19:25:09 +0100 (Fri, 26 Jul 2013) | 2 lines
 
-* NEWS: Tweak.
+* src/ne_request.c (send_request_body): Fix double counting.
 
 ------------------------------------------------------------------------
-r1824 | joe | 2010-10-14 16:03:02 +0100 (Thu, 14 Oct 2010) | 2 lines
+r1908 | joe | 2013-07-26 19:08:37 +0100 (Fri, 26 Jul 2013) | 3 lines
 
-* NEWS: Update with GnuTLS fix.
+* test/request.c (retry_after_abort): Correctly catch errors.
+  Re-order tests to avoid triggering some weird glibc getaddrinfo issue.
 
 ------------------------------------------------------------------------
-r1823 | joe | 2010-10-14 16:02:41 +0100 (Thu, 14 Oct 2010) | 10 lines
+r1907 | joe | 2013-07-26 18:58:53 +0100 (Fri, 26 Jul 2013) | 2 lines
 
-Merge r1818 from trunk:
+* macros/neon.m4 (NEON_I18N): Check for bindtextdomain with -liconv. (Brad Smith)
 
-* test/socket.c (addr_reverse) [HAVE_GETHOSTNAME]: Accept system
-  hostname as reverse of 127.0.0.1.
+------------------------------------------------------------------------
+r1906 | joe | 2013-07-26 18:57:48 +0100 (Fri, 26 Jul 2013) | 4 lines
 
-* macros/neon-test.m4 (NEON_TEST): Check for gethostname().
+* src/ne_socket.c: Include sys/uio.h for writev(2) (Brad Smith).
 
-Submitted by: joe
-Reviewed by: jorton
+* macros/neon.m4: Check for it.
 
 ------------------------------------------------------------------------
-r1822 | joe | 2010-10-14 16:01:53 +0100 (Thu, 14 Oct 2010) | 2 lines
+r1905 | joe | 2013-07-26 18:51:23 +0100 (Fri, 26 Jul 2013) | 8 lines
+
+Support chunked bodies; patch by Julien Reichel.
 
-* NEWS, macros/neon.m4: Prepare for 0.29.5.
+* src/ne_request.c (send_request_body): Support chunked bodies.
+  (set_body_length): Negative length implies chunked, not C-L.
+  (send_request): Adjust for chunked.
+
+* src/ne_request.h: Update ne_set_request_body_provider API.
 
 ------------------------------------------------------------------------
-r1821 | joe | 2010-10-14 16:00:53 +0100 (Thu, 14 Oct 2010) | 6 lines
+r1904 | joe | 2013-07-26 18:38:05 +0100 (Fri, 26 Jul 2013) | 2 lines
 
-Merge r1797 from trunk:
+* src/ne_basic.h: Update comment.
 
-* src/ne_auth.c: Add handling of 2xx responses in SSPI code.
-(Danil Shopyrin <danil visualsvn.com>)
+------------------------------------------------------------------------
+r1903 | joe | 2013-07-26 17:17:08 +0100 (Fri, 26 Jul 2013) | 1 line
+
+Win32 fixes.
+------------------------------------------------------------------------
+r1902 | joe | 2013-07-26 17:16:21 +0100 (Fri, 26 Jul 2013) | 3 lines
 
+* config.hw.in, src/ne_defs.h: Add LFS support for Win32 (patch by
+Diego Santa Cruz).
 
 ------------------------------------------------------------------------
-r1820 | joe | 2010-10-09 17:07:17 +0100 (Sat, 09 Oct 2010) | 6 lines
+r1901 | joe | 2013-07-26 17:15:19 +0100 (Fri, 26 Jul 2013) | 2 lines
 
-Merge r1819 from trunk:
+* config.hw.in, src/ne_openssl.c: Add thread-safety support for SSL on Windows.
 
-* src/ne_socket.c (ne_sock_connect_ssl): Ignore TLS warnings
-  during handshake (Bryan Cain).
+------------------------------------------------------------------------
+r1900 | joe | 2013-07-26 17:11:57 +0100 (Fri, 26 Jul 2013) | 2 lines
 
+* test/run-tests.sh: Use MALLOC_PERTURB.
 
 ------------------------------------------------------------------------
-r1816 | joe | 2010-10-01 13:00:02 +0100 (Fri, 01 Oct 2010) | 2 lines
+r1899 | joe | 2013-07-26 17:11:35 +0100 (Fri, 26 Jul 2013) | 1 line
 
-* po/: make update-po.
+Changes in trunk.
+------------------------------------------------------------------------
+r1898 | joe | 2013-07-26 17:10:53 +0100 (Fri, 26 Jul 2013) | 2 lines
+
+* test/utils.c (proxied_session_server): Debug more.
 
 ------------------------------------------------------------------------
-r1814 | joe | 2010-09-28 13:02:37 +0100 (Tue, 28 Sep 2010) | 2 lines
+r1897 | joe | 2013-07-26 17:08:57 +0100 (Fri, 26 Jul 2013) | 5 lines
 
-* NEWS: Update.
+* src/ne_session.c (free_proxies): Fix possible double-free. 
+(patch by Diego Santa Cruz)
+
+* test/session.c (proxies): Add test case.
 
 ------------------------------------------------------------------------
-r1813 | joe | 2010-09-28 13:00:48 +0100 (Tue, 28 Sep 2010) | 10 lines
+r1896 | joe | 2013-03-18 10:33:56 +0000 (Mon, 18 Mar 2013) | 4 lines
 
-Merge r1811 from trunk:
+* src/ne_md5.c (md5_finish_ctx): Fix aliasing problem.
 
-* src/ne_session.c (ne__ssl_match_hostname): Deny a wildcard match
-  against anything which parses as an IP address.
+http://permalink.gmane.org/gmane.comp.gnu.binutils/58378
 
-* test/ssl.c (fail_wildcard_ip): Add test case.
+------------------------------------------------------------------------
+r1895 | joe | 2012-07-06 22:23:20 +0100 (Fri, 06 Jul 2012) | 3 lines
 
-* test/makekeys.sh: Generate test wildcard IP cert.
+* src/ne_socket.c (ne_sock_connect_ssl): Drop OpenSSL version check,
+  inappropriate with OpenSSL 1.x; patch by Mike Frysinger.
 
+------------------------------------------------------------------------
+r1894 | joe | 2012-07-06 08:55:32 +0100 (Fri, 06 Jul 2012) | 2 lines
+
+* src/ne_auth.c: Fix build, from Nathanael Rensen.
 
 ------------------------------------------------------------------------
-r1812 | joe | 2010-09-28 12:57:26 +0100 (Tue, 28 Sep 2010) | 8 lines
+r1893 | joe | 2012-07-05 21:46:03 +0100 (Thu, 05 Jul 2012) | 3 lines
 
-Merge r1809 from trunk:
+* src/ne_socket.c (timed_connect, ne_sock_connect): Capture socket
+  error code correctly for Windows.  (Vlad Grachov)
 
-* src/ne_request.c (open_connection): If SOCKS proxy fails, set return
-  value to NE_ERROR.
+------------------------------------------------------------------------
+r1892 | joe | 2012-07-05 21:41:43 +0100 (Thu, 05 Jul 2012) | 7 lines
 
-* test/request.c (socks_fail): Add test case.
+Patch from Nathanael Rensen:
 
+* src/ne_auth.c (ah_post_send): Clear SSPI context for any
+  non-auth-failure response code.
+
+* src/ne_sspi.c (ne_sspi_clear_context): Clear continueNeeded flag.
 
 ------------------------------------------------------------------------
-r1808 | joe | 2010-09-22 21:42:08 +0100 (Wed, 22 Sep 2010) | 2 lines
+r1891 | joe | 2012-07-04 09:41:44 +0100 (Wed, 04 Jul 2012) | 3 lines
 
-* NEWS: Update for 0.29.4.
+* test/makekeys.sh: Use 1024 bit RSA keys to prevent weird OpenSSL
+  test failures.
 
 ------------------------------------------------------------------------
-r1807 | joe | 2010-09-22 20:33:36 +0100 (Wed, 22 Sep 2010) | 9 lines
+r1890 | joe | 2012-06-26 11:13:33 +0100 (Tue, 26 Jun 2012) | 2 lines
 
-Merge r1801 from trunk:
+* test/utils.c (fakeproxied_session_server): New function.
 
-* src/ne_request.c (body_fd_send): Handle read() errors; thanks to Lou
-  Montulli.
+------------------------------------------------------------------------
+r1889 | joe | 2012-06-26 11:12:55 +0100 (Tue, 26 Jun 2012) | 3 lines
 
-* test/request.c (serve_mirror, send_length): Add test case.
+* test/common/child.c (new_spawn_server2): Factored out, return
+  address used.  Fix to ensure local host address is resolved.
 
-* test/Makefile.in (foobar.txt): Create test file.
+------------------------------------------------------------------------
+r1888 | joe | 2012-06-26 11:02:58 +0100 (Tue, 26 Jun 2012) | 6 lines
+
+* src/ne_session.c (ne_set_addrlist2): Factored out of
+  ne_set_addrlist, take port as argument.
+  (ne_set_addrlist): Reimplement using the above.
+
+* src/neon.vers: Add ne_set_addrlist2.
 
 ------------------------------------------------------------------------
-r1806 | joe | 2010-09-22 20:25:52 +0100 (Wed, 22 Sep 2010) | 8 lines
+r1887 | joe | 2012-06-26 09:17:20 +0100 (Tue, 26 Jun 2012) | 7 lines
 
-Merge r1802, r1805 from trunk:
+* src/ne_auth.h: Add NE_AUTH_GSSAPI_ONLY, NE_AUTH_SSPI.
 
-* macros/neon.m4 (NE_CHECK_FUNCS): Fix AI_ADDRCONFIG detection.
+* src/ne_auth.c: Adjust for new constants.
+  (auth_register): Map NE_AUTH_GSSAPI to _GSSAPI_ONLY|_SSPI
 
-* src/ne_auth.c (ah_post_send): Always clear the SSPI context.
-(Danil Shopyrin)
+Patch by Nathanael Rensen <nathanael.rensen zettaserve.com>
+
+------------------------------------------------------------------------
+r1886 | joe | 2012-06-25 12:21:39 +0100 (Mon, 25 Jun 2012) | 3 lines
 
+* test/ssl.c (fail_ssl_request_with_error2): Fix tests with "fake" hostname
+  where localhost maps to multiple addresses.
 
 ------------------------------------------------------------------------
-r1800 | joe | 2010-05-05 09:13:00 +0100 (Wed, 05 May 2010) | 5 lines
+r1885 | joe | 2012-05-22 15:43:58 +0100 (Tue, 22 May 2012) | 2 lines
 
-Merge r1794 from trunk:
+* test/uri-tests.c (cmp): Don't depend on exact magnitude of *cmp.
 
-* src/ne_session.c (ne_session_create): Fix to enable SNI by default again.
-  (Tobias Gruetzmacher)
+------------------------------------------------------------------------
+r1882 | joe | 2012-01-19 22:17:13 +0000 (Thu, 19 Jan 2012) | 2 lines
+
+* test/basic.c (options2): Untabify.
 
 ------------------------------------------------------------------------
-r1796 | joe | 2010-03-29 10:19:04 +0100 (Mon, 29 Mar 2010) | 9 lines
+r1881 | joe | 2012-01-19 22:16:11 +0000 (Thu, 19 Jan 2012) | 6 lines
 
-Merge r1792, r1793, r1795 from trunk:
+* src/ne_basic.h: Add NE_CAP_EXT_MKCOL.
 
-* src/ne_request.c (do_connect): Tweak debugging.
+* src/ne_basic.c (options_map): Add NE_CAP_EXT_MKCOL.
 
-* doc/ref/: Fix some refpurposes.
+* test/basic.c (options2): Add test.
 
-* doc/ref/reqflags.xml: Doc tweak.
+------------------------------------------------------------------------
+r1874 | joe | 2011-12-09 13:43:02 +0000 (Fri, 09 Dec 2011) | 3 lines
 
+* src/ne_socket.c (ne_iaddr_reverse) [!USE_GETADDRINFO]:
+  Fix build with Open Watcom compiler.  (NormW <normanwheeler bigpond.com)
 
 ------------------------------------------------------------------------
-r1790 | joe | 2010-02-08 09:52:54 +0000 (Mon, 08 Feb 2010) | 2 lines
+r1873 | joe | 2011-12-09 13:41:20 +0000 (Fri, 09 Dec 2011) | 2 lines
 
-* macros/neon-test.m4: Test for signal.h
+* src/ne_gnutls.c (ne_ssl_context_get_flag): Add function.
 
 ------------------------------------------------------------------------
-r1787 | joe | 2010-01-11 22:59:31 +0000 (Mon, 11 Jan 2010) | 2 lines
+r1872 | joe | 2011-12-09 13:39:10 +0000 (Fri, 09 Dec 2011) | 5 lines
+
+* src/ne_openssl.c (ne_ssl_context_create): Fail hard with non-SSL
+  build on request for SSLv2 server context
+  (ne_ssl_context_get_flag): Fix build.
 
-* macros/neon.m4, NEWS: Missed a backport :(
 
 ------------------------------------------------------------------------
-r1786 | joe | 2010-01-11 22:57:34 +0000 (Mon, 11 Jan 2010) | 6 lines
+r1871 | joe | 2011-12-09 10:56:12 +0000 (Fri, 09 Dec 2011) | 2 lines
 
-Merge r1777 from trunk:
+* test/common/tests.c (main): Fix grammar.
 
-* src/ne_defs.h: Only define NE_PRIVATE if undefined.
+------------------------------------------------------------------------
+r1866 | joe | 2011-11-25 00:15:10 +0000 (Fri, 25 Nov 2011) | 3 lines
 
-* configure.in: Define NE_PRIVATE to 'extern' for a static build.
+* src/ne_openssl.c (ne_ssl_context_create): Disable TLS ticket support
+  since it inhibits testing of session caching.
 
 ------------------------------------------------------------------------
-r1784 | joe | 2010-01-11 20:21:21 +0000 (Mon, 11 Jan 2010) | 2 lines
+r1865 | joe | 2011-11-25 00:11:34 +0000 (Fri, 25 Nov 2011) | 13 lines
 
-* macros/neon.m4: Bump to 0.29.3.
+Fix build and test suite for OpenSSL without SSLv2 support.
+
+* src/ne_openssl.c (ne_ssl_context_get_flag): New function.
+  (ne_ssl_context_create): Fix compile without SSLv2.
+* src/ne_session.c (ne_set_session_flag): Retrieve SSLv2
+  flag value after setting it.
+
+* src/ne_ssl.h, src/neon.vers: Add ne_ssl_context_get_flag.
+
+* test/ssl.c (simple_sslv2): Retrieve flag setting and skip
+  test if it was not enabled.
 
 ------------------------------------------------------------------------
-r1783 | joe | 2010-01-11 20:21:06 +0000 (Mon, 11 Jan 2010) | 2 lines
+r1864 | joe | 2011-11-22 23:26:30 +0000 (Tue, 22 Nov 2011) | 3 lines
 
-* NEWS: Tweaks.
+* src/ne_uri.c (ne_path_escape): Fix over-allocation of memory.
+  (Pierre Crokaert <pct actl.be>)
 
 ------------------------------------------------------------------------
-r1782 | joe | 2010-01-11 10:40:42 +0000 (Mon, 11 Jan 2010) | 2 lines
+r1863 | joe | 2011-10-03 23:33:52 +0100 (Mon, 03 Oct 2011) | 3 lines
 
-* NEWS: Document ne_sock_close() changes.
+* src/ne_socket.c (ne_addr_resolve): Use a bit-wise 
+  comparison, suggested by Ivan Zhakov.
 
 ------------------------------------------------------------------------
-r1781 | joe | 2010-01-11 10:36:14 +0000 (Mon, 11 Jan 2010) | 8 lines
+r1862 | joe | 2011-10-03 22:48:59 +0100 (Mon, 03 Oct 2011) | 3 lines
 
-Merge r1780 from trunk:
+* src/ne_socket.c (timed_connect): Don't overwrite an error when
+  resetting fd flags.
 
-* src/ne_socket.c (ne_sock_close): Do not wait for the peer's
-  close_notify alert with either GnuTLS or OpenSSL.
-  [HAVE_GNUTLS]: Fix memory leak: free the session object.
+------------------------------------------------------------------------
+r1861 | joe | 2011-10-03 22:41:51 +0100 (Mon, 03 Oct 2011) | 2 lines
 
-* src/ne_socket.h (ne_sock_close): Clarify close_notify handling.
+* src/ne_socket.c: Tweak comment.
 
 ------------------------------------------------------------------------
-r1775 | joe | 2009-12-30 21:31:55 +0000 (Wed, 30 Dec 2009) | 2 lines
+r1860 | joe | 2011-10-03 22:35:49 +0100 (Mon, 03 Oct 2011) | 3 lines
 
-* po/: make update-po.
+* src/ne_request.c (ne_set_request_flag, ne_get_request_flag): Fix 
+  warnings with gcc 4.5 -Wenum-compare.
 
 ------------------------------------------------------------------------
-r1774 | joe | 2009-12-30 21:31:30 +0000 (Wed, 30 Dec 2009) | 2 lines
+r1859 | joe | 2011-09-18 21:05:37 +0100 (Sun, 18 Sep 2011) | 2 lines
 
-* macros/neon.m4: Bump version.
+* test/common/child.c: Better debugging output.
 
 ------------------------------------------------------------------------
-r1773 | joe | 2009-12-30 21:30:55 +0000 (Wed, 30 Dec 2009) | 2 lines
+r1858 | joe | 2011-09-18 21:04:49 +0100 (Sun, 18 Sep 2011) | 2 lines
 
-* NEWS: 0.29.2 news.
+* src/neon.vers: No version 0.31 needed (yet?!).
 
 ------------------------------------------------------------------------
-r1772 | joe | 2009-12-30 21:29:30 +0000 (Wed, 30 Dec 2009) | 10 lines
+r1857 | joe | 2011-09-18 21:04:23 +0100 (Sun, 18 Sep 2011) | 2 lines
 
-Merge r1748 from trunk:
+* src/Makefile.in: Update deps.
 
-Clear sspi_token buffer after each request.
+------------------------------------------------------------------------
+r1856 | joe | 2011-09-18 20:58:06 +0100 (Sun, 18 Sep 2011) | 3 lines
 
-* src/ne_auth.c (request_sspi): Return NULL if sspi_token is not present.
+* src/ne_auth.c (continue_sspi, auth_register): Use the proxy hostname
+  for proxy auth with SSPI.
 
-* src/ne_auth.c (ah_post_send): Clear the buffered sspi_token.
+------------------------------------------------------------------------
+r1855 | joe | 2011-09-14 10:15:08 +0100 (Wed, 14 Sep 2011) | 3 lines
 
-Submitted by: Danil Shopyrin <danil visualsvn.com>
+* test/common/child.c (spawn_server, spawn_server_repeat): Better
+  debugging output.
 
 ------------------------------------------------------------------------
-r1771 | joe | 2009-12-30 21:28:48 +0000 (Wed, 30 Dec 2009) | 7 lines
+r1854 | joe | 2011-09-14 09:53:24 +0100 (Wed, 14 Sep 2011) | 3 lines
 
-Merge r1770 from trunk:
+* test/request.c, test/ssl.c, test/redirect.c: Fix various
+  memory leaks in the test suite, found by --enable-memleak.
 
-* src/ne_openssl.c (verify_callback): Handle OpenSSL error code
-  X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT as an untrusted cert.
+------------------------------------------------------------------------
+r1853 | joe | 2011-09-02 10:52:44 +0100 (Fri, 02 Sep 2011) | 3 lines
 
-Submitted by: Tom C <tomc.neon pnl.gov>
+* src/ne_sspi.c (canonical_hostname): Use NE_ADDR_CANON to determine
+  canonical hostname.
 
 ------------------------------------------------------------------------
-r1767 | joe | 2009-12-15 22:24:26 +0000 (Tue, 15 Dec 2009) | 2 lines
+r1852 | joe | 2011-09-02 10:51:02 +0100 (Fri, 02 Sep 2011) | 11 lines
 
-* po/: make update-po.
+* src/ne_socket.h: Add NE_ADDR_CANON flag, ne_addr_canonical.
+
+* src/ne_socket.c (struct ne_sock_addr_s): Add name field for non-gai.
+  (ne_addr_resolve): Handle NE_ADDR_CANON.
+  (ne_addr_canonical): New function.
+  (ne_addr_destroy): Free name field.
+
+* test/socket.c (addr_canonical): New test.
+
+* src/neon.vers: Add ne_addr_canonical.
 
 ------------------------------------------------------------------------
-r1753 | joe | 2009-12-14 20:45:16 +0000 (Mon, 14 Dec 2009) | 2 lines
+r1851 | joe | 2011-07-10 20:22:13 +0100 (Sun, 10 Jul 2011) | 3 lines
 
-* macros/neon.m4, NEWS: Prepare for 0.29.1.
+* test/ssl.c (cache_verify): Trap errors from request dispatch,
+  remove unused variable.
 
 ------------------------------------------------------------------------
-r1751 | joe | 2009-12-02 21:40:41 +0000 (Wed, 02 Dec 2009) | 4 lines
+r1850 | joe | 2011-07-10 20:19:26 +0100 (Sun, 10 Jul 2011) | 2 lines
 
-Merge r1750 from trunk:
+* test/props.c (unbounded_response): Remove set-but-unused variable.
 
-* src/ne_gnutls.c (map_verify_failures): Fix build for GnuTLS < 2.8.
+------------------------------------------------------------------------
+r1849 | joe | 2011-06-23 14:09:44 +0100 (Thu, 23 Jun 2011) | 2 lines
+
+* src/ne_ssl.h: Tweak wording on ne_ssl_clicert_read,import.
 
 ------------------------------------------------------------------------
-r1749 | joe | 2009-12-02 21:27:34 +0000 (Wed, 02 Dec 2009) | 13 lines
+r1848 | joe | 2011-06-23 13:41:00 +0100 (Thu, 23 Jun 2011) | 2 lines
 
-Merge r1739, r1744, r1746, r1747 from trunk:
+* NEWS: Synch with 0.29.x.
 
-* config.hw.in: Fix socklen_t with recent SDKs, thanks to Stefan Kung.
+------------------------------------------------------------------------
+r1847 | joe | 2011-06-23 13:40:30 +0100 (Thu, 23 Jun 2011) | 18 lines
 
-* src/ne_socket.c: Fixed 'missing symbol' win2k runtime problem.
+* src/ne_ssl.h (ne_ssl_clicert_import): New function.
 
-* src/ne_ntlm.c (ne__ntlm_authenticate)
-* src/ne_auth.c (ntlm_challenge):
-  In case of session timeout, do not call auth callback; use
-  existing credentials.
+* src/ne_openssl.c (parse_client_cert): Factor out from
+  ne_ssl_clicert_read.
+  (ne_ssl_clicert_read): Reimplement using above.
+  (ne_ssl_clicert_import): New function.
 
-* src/ne_ntlm.c (mkhash): Fix buffer overflow (basic@mozdev.org).
+* src/ne_gnutls.c (ne_ssl_clicert_import): Factor out from
+  ne_ssl_clicert_read.
+  (ne_ssl_clicert_import): Reimplement using above.
+
+* test/utils.c (file_to_buffer): Move to here...
+
+* test/compress.c (file2buf): ... from here.    
+  (do_fetch): Use it.
+
+* test/ssl.c (clicert_import): New test.
 
 ------------------------------------------------------------------------
-r1743 | joe | 2009-10-25 11:25:24 +0000 (Sun, 25 Oct 2009) | 5 lines
+r1846 | joe | 2011-06-17 11:54:54 +0100 (Fri, 17 Jun 2011) | 3 lines
 
-Merge r1742 from trunk:
+* doc/ref/proxy.xml, doc/ref/sess.xml, doc/manual.xml: Split out, and
+  complete, documentation of proxy support.
 
-* src/ne_session.c (ne_session_create): Only enable SNI by default if
-  the server hostname does not parse as a numeric IP address.
+------------------------------------------------------------------------
+r1845 | joe | 2011-05-03 16:27:18 +0100 (Tue, 03 May 2011) | 4 lines
+
+* src/ne_socket.c (ne_sock_accept_ssl) [HAVE_GNUTLS]:
+  Require a client cert if necessary, matching behaviour
+  w/ OpenSSL.
 
 ------------------------------------------------------------------------
-r1740 | joe | 2009-09-26 20:58:08 +0100 (Sat, 26 Sep 2009) | 9 lines
+r1844 | joe | 2011-05-03 16:26:03 +0100 (Tue, 03 May 2011) | 2 lines
 
-Merge r1738, r1739 from trunk:
+* src/Makefile.in: Update deps.
 
-* src/ne_socket.c (ne_iaddr_parse): Fix Win32 build for both
-  USE_GETADDRINFO and !USE_GETADDRINFO cases.
+------------------------------------------------------------------------
+r1838 | joe | 2011-05-03 13:04:23 +0100 (Tue, 03 May 2011) | 9 lines
 
-* config.hw.in: Fix socklen_t with recent SDKs, thanks to Stefan Kung.
+Fix some errors flagged by a Coverity scan:
 
-Reviewed by: jorton
+* src/ne_auth.c (verify_negotiate_response): Check for NULL pointer.
+
+* src/ne_gnutls.c (check_certificate): Initiatialize 'failures'.
+  (pkcs12_parse): Check for _crt_init failure.
+
+* src/ne_session.c (ne__ssl_set_verify_err): Pass size-1 to strncat.
 
 ------------------------------------------------------------------------
-r1735 | joe | 2009-09-13 13:12:27 +0100 (Sun, 13 Sep 2009) | 2 lines
+r1837 | joe | 2011-05-03 12:58:24 +0100 (Tue, 03 May 2011) | 5 lines
 
-* macros/neon.m4: Don't ABI-tag LFS builds.
+* src/ne_auth.c
+  (ah_post_send): Clear SSPI context only after successful authentication.
+
+Submitted by: Ivan Zhakov <ivan visualsvn.com>
 
 ------------------------------------------------------------------------
-r1733 | joe | 2009-09-13 12:57:58 +0100 (Sun, 13 Sep 2009) | 2 lines
+r1836 | joe | 2011-05-03 12:57:03 +0100 (Tue, 03 May 2011) | 6 lines
 
-* po/: make update-po.
+* src/ne_gnutls.c (ne__ssl_init): Fix for GnuTLS with Nettle.
+
+* src/ne_auth.c (get_cnonce): Likewise.
+
+Submitted by: Arfrever Frehtes Taifersar Arahesis <arfrever.fta gmail.com>
 
 ------------------------------------------------------------------------
-r1732 | joe | 2009-09-13 12:57:18 +0100 (Sun, 13 Sep 2009) | 2 lines
+r1833 | joe | 2011-03-01 13:23:43 +0000 (Tue, 01 Mar 2011) | 3 lines
 
-* test/ssl.c (simple_sslv2): Skip better.
+* src/ne_request.c (ne_request_create): Pass copied method to
+  pre_send hooks to avoid lifetime issues (Patrick Ohly).
 
 ------------------------------------------------------------------------
-r1731 | joe | 2009-09-13 12:56:25 +0100 (Sun, 13 Sep 2009) | 2 lines
+r1828 | joe | 2010-11-11 12:23:05 +0000 (Thu, 11 Nov 2010) | 4 lines
 
-* test/ssl.c (simple_sslv2): Skip for OpenSSL.
+* src/ne_gnutls.c (provide_client_cert): Return success with no cert
+  if no cert is available; match behaviour with OpenSSL.  Thanks to
+  Patrick Ohly.
 
 ------------------------------------------------------------------------
-r1730 | joe | 2009-09-13 12:56:10 +0100 (Sun, 13 Sep 2009) | 2 lines
+r1827 | joe | 2010-11-07 19:41:27 +0000 (Sun, 07 Nov 2010) | 2 lines
 
-* macros/neon.m4: Prep for 0.29.0.
+* doc/ref/iaddr.xml: Update ne_iaddr_* docs.
 
 ------------------------------------------------------------------------
-r1729 | joe | 2009-09-13 12:43:01 +0100 (Sun, 13 Sep 2009) | 2 lines
+r1819 | joe | 2010-10-09 17:01:29 +0100 (Sat, 09 Oct 2010) | 3 lines
 
-* NEWS: Tweak wording.
+* src/ne_socket.c (ne_sock_connect_ssl): Ignore TLS warnings
+  during handshake (Bryan Cain).
 
 ------------------------------------------------------------------------
-r1728 | joe | 2009-09-13 12:41:22 +0100 (Sun, 13 Sep 2009) | 2 lines
+r1818 | joe | 2010-10-09 16:56:20 +0100 (Sat, 09 Oct 2010) | 5 lines
 
-* NEWS: Note OpenSSL 1.0 beta build fix.
+* test/socket.c (addr_reverse) [HAVE_GETHOSTNAME]: Accept system
+  hostname as reverse of 127.0.0.1.
+
+* macros/neon-test.m4 (NEON_TEST): Check for gethostname().
 
 ------------------------------------------------------------------------
-r1727 | joe | 2009-09-13 12:40:59 +0100 (Sun, 13 Sep 2009) | 5 lines
+r1811 | joe | 2010-09-28 12:55:07 +0100 (Tue, 28 Sep 2010) | 7 lines
 
-Merge r1726 from trunk:
+* src/ne_session.c (ne__ssl_match_hostname): Deny a wildcard match
+  against anything which parses as an IP address.
 
-* src/ne_socket.c (ne_sock_close) [HAVE_OPENSSL]: Ensure SSL
-  connection is shut down cleanly.
+* test/ssl.c (fail_wildcard_ip): Add test case.
+
+* test/makekeys.sh: Generate test wildcard IP cert.
 
 ------------------------------------------------------------------------
-r1725 | joe | 2009-09-13 12:26:52 +0100 (Sun, 13 Sep 2009) | 10 lines
+r1810 | joe | 2010-09-28 09:49:04 +0100 (Tue, 28 Sep 2010) | 2 lines
 
-Merge r1724 from trunk:
+* test/request.c: Adjust to new test API throughout.
 
-* src/ne_openssl.c: Include opensslv.h.
-  (SSL_SESSION_cmp): Define if not available, for OpenSSL >= 1.0.
+------------------------------------------------------------------------
+r1809 | joe | 2010-09-28 09:47:07 +0100 (Tue, 28 Sep 2010) | 5 lines
 
-* src/ne_socket.c (ne_sock_accept_ssl): Add debug log output if
-  session is resumed.
+* src/ne_request.c (open_connection): If SOCKS proxy fails, set return
+  value to NE_ERROR.
 
-* macros/neon.m4 (NEON_SSL): Check for SSL_SESSION_cmp.
+* test/request.c (socks_fail): Add test case.
 
 ------------------------------------------------------------------------
-r1723 | joe | 2009-09-04 08:36:26 +0100 (Fri, 04 Sep 2009) | 6 lines
+r1805 | joe | 2010-09-22 20:23:49 +0100 (Wed, 22 Sep 2010) | 4 lines
+
+* src/ne_auth.c (ah_post_send): Always clear the SSPI context.
+(Danil Shopyrin)
 
-Merge r1722 from trunk:
 
-* Makefile.in, README: Collect copyright notices from po/*.
+------------------------------------------------------------------------
+r1804 | joe | 2010-09-04 14:17:30 +0100 (Sat, 04 Sep 2010) | 2 lines
 
-* po/: Update copyright notices.
+* test/ssl.c (fail_ssl_request_with_error2): Document better.
 
 ------------------------------------------------------------------------
-r1721 | joe | 2009-09-04 08:29:23 +0100 (Fri, 04 Sep 2009) | 2 lines
+r1803 | joe | 2010-09-04 14:16:22 +0100 (Sat, 04 Sep 2010) | 2 lines
 
-* po/pl.po, NEWS: Update Polish translation (Arfrever Frehtes Taifersar Arahesis).
+* src/ne_session.h: Wording tweak.
 
 ------------------------------------------------------------------------
-r1720 | joe | 2009-09-04 08:27:49 +0100 (Fri, 04 Sep 2009) | 2 lines
+r1802 | joe | 2010-09-04 14:15:29 +0100 (Sat, 04 Sep 2010) | 2 lines
 
-* NEWS: Update.
+* macros/neon.m4 (NE_CHECK_FUNCS): Fix AI_ADDRCONFIG detection.
 
 ------------------------------------------------------------------------
-r1717 | joe | 2009-09-02 21:44:08 +0100 (Wed, 02 Sep 2009) | 2 lines
+r1801 | joe | 2010-05-05 09:25:17 +0100 (Wed, 05 May 2010) | 7 lines
 
-* po/: make update-po.
+* 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.
 
 ------------------------------------------------------------------------
-r1716 | joe | 2009-09-02 21:43:09 +0100 (Wed, 02 Sep 2009) | 2 lines
+r1799 | joe | 2010-04-23 10:02:28 +0100 (Fri, 23 Apr 2010) | 2 lines
 
-* NEWS: Update.
+* src/ne_socket.c (raw_poll): Check for execptions in select().
 
 ------------------------------------------------------------------------
-r1715 | joe | 2009-09-02 21:29:42 +0100 (Wed, 02 Sep 2009) | 10 lines
+r1798 | joe | 2010-04-21 21:41:01 +0100 (Wed, 21 Apr 2010) | 3 lines
 
-Merge r1713, r1714 from trunk:
+* test/lock.c (fake_session): New function.
+  (everywhere): Replace use of make_session with fake_session.
 
-* src/ne_request.c (socks_origin_lookup): New function.
-  (open_connection): Use it to fix support for SOCKSv4 servers.
+------------------------------------------------------------------------
+r1797 | joe | 2010-04-21 21:30:46 +0100 (Wed, 21 Apr 2010) | 3 lines
 
-* test/request.c (socks_v4_proxy): Add test case.
+* src/ne_auth.c: Add handling of 2xx responses in SSPI code.
+(Danil Shopyrin <danil visualsvn.com>)
+
+------------------------------------------------------------------------
+r1795 | joe | 2010-03-29 10:14:16 +0100 (Mon, 29 Mar 2010) | 2 lines
+
+* doc/ref/reqflags.xml: Doc tweak.
+
+------------------------------------------------------------------------
+r1794 | joe | 2010-03-29 09:49:56 +0100 (Mon, 29 Mar 2010) | 3 lines
+
+* src/ne_session.c (ne_session_create): Fix to enable SNI by default again.
+  (Tobias Gruetzmacher)
+
+------------------------------------------------------------------------
+r1793 | joe | 2010-03-25 07:57:36 +0000 (Thu, 25 Mar 2010) | 2 lines
+
+* doc/ref/: Fix some refpurposes.
+
+------------------------------------------------------------------------
+r1792 | joe | 2010-03-11 10:03:38 +0000 (Thu, 11 Mar 2010) | 2 lines
+
+* src/ne_request.c (do_connect): Tweak debugging.
+
+------------------------------------------------------------------------
+r1780 | joe | 2010-01-11 10:23:06 +0000 (Mon, 11 Jan 2010) | 3 lines
+
+* test/socket.c (ssl_closure, ssl_truncate): Don't expect clean
+  closure.
+
+------------------------------------------------------------------------
+r1779 | joe | 2010-01-10 22:42:55 +0000 (Sun, 10 Jan 2010) | 3 lines
+
+* test/socket.c (ssl_closure, ssl_truncate): Don't expect clean
+  closure.
+
+------------------------------------------------------------------------
+r1778 | joe | 2010-01-10 21:53:58 +0000 (Sun, 10 Jan 2010) | 2 lines
+
+* src/ne_socket.c (ne_sock_accept): Set the socket error string.
+
+------------------------------------------------------------------------
+r1777 | joe | 2010-01-08 11:09:36 +0000 (Fri, 08 Jan 2010) | 4 lines
+
+* src/ne_defs.h: Only define NE_PRIVATE if undefined.
+
+* configure.in: Define NE_PRIVATE to 'extern' for a static build.
+
+------------------------------------------------------------------------
+r1770 | joe | 2009-12-30 21:26:50 +0000 (Wed, 30 Dec 2009) | 5 lines
+
+* src/ne_openssl.c (verify_callback): Handle OpenSSL error code
+  X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT as an untrusted cert.
+
+Submitted by: Tom C <tomc.neon pnl.gov>
+
+------------------------------------------------------------------------
+r1764 | joe | 2009-12-15 22:19:06 +0000 (Tue, 15 Dec 2009) | 1 line
+
+NEWS: Sync with 0.29.x branch.
+------------------------------------------------------------------------
+r1761 | joe | 2009-12-14 21:43:45 +0000 (Mon, 14 Dec 2009) | 2 lines
+
+* test/session.c: Avoid hard-coded references to port 7777.
+
+------------------------------------------------------------------------
+r1760 | joe | 2009-12-14 21:43:22 +0000 (Mon, 14 Dec 2009) | 3 lines
+
+* test/auth.c: Adjust to use {proxied_,}session_server API, avoid
+  hard-coded use of port 7777.
+
+------------------------------------------------------------------------
+r1759 | joe | 2009-12-14 21:41:24 +0000 (Mon, 14 Dec 2009) | 4 lines
+
+* test/common/child.c (new_spawn_server): Take 'repeat' argument.
+
+* test/socket.c, test/utils.c: Adjust accordingly.
+
+------------------------------------------------------------------------
+r1758 | joe | 2009-12-14 21:01:35 +0000 (Mon, 14 Dec 2009) | 2 lines
+
+* test/utils.c (proxied_session_server): Take scheme argument.
+
+------------------------------------------------------------------------
+r1757 | joe | 2009-12-14 20:56:20 +0000 (Mon, 14 Dec 2009) | 2 lines
+
+* test/socket.c, test/stubs.c: Adapt for {proxied_}session_server.
+
+------------------------------------------------------------------------
+r1756 | joe | 2009-12-14 20:55:43 +0000 (Mon, 14 Dec 2009) | 3 lines
+
+* test/auth.c, test/redirect.c, test/props.c: Adapt to use
+  session_server, proxied_session_server.
+
+------------------------------------------------------------------------
+r1755 | joe | 2009-12-14 20:52:45 +0000 (Mon, 14 Dec 2009) | 3 lines
+
+* test/utils.c (session_server, proxied_session_server): New
+  functions.  (make_session): Use session_server.
+
+------------------------------------------------------------------------
+r1754 | joe | 2009-12-14 20:48:40 +0000 (Mon, 14 Dec 2009) | 2 lines
+
+* test/common/child.c, child.h (new_spawn_server): New function.
+
+------------------------------------------------------------------------
+r1750 | joe | 2009-12-02 21:38:17 +0000 (Wed, 02 Dec 2009) | 2 lines
+
+* src/ne_gnutls.c (map_verify_failures): Fix build for GnuTLS < 2.8.
+
+------------------------------------------------------------------------
+r1748 | joe | 2009-12-02 21:16:17 +0000 (Wed, 02 Dec 2009) | 8 lines
+
+Clear sspi_token buffer after each request.
+
+* src/ne_auth.c (request_sspi): Return NULL if sspi_token is not present.
+
+* src/ne_auth.c (ah_post_send): Clear the buffered sspi_token.
+
+Submitted by: Danil Shopyrin <danil visualsvn.com>
+
+------------------------------------------------------------------------
+r1747 | joe | 2009-12-02 21:15:12 +0000 (Wed, 02 Dec 2009) | 2 lines
+
+* src/ne_ntlm.c (mkhash): Fix buffer overflow (basic@mozdev.org).
+
+------------------------------------------------------------------------
+r1746 | kso | 2009-11-19 22:36:08 +0000 (Thu, 19 Nov 2009) | 5 lines
+
+* src/ne_ntlm.c (ne__ntlm_authenticate)
+* src/ne_auth.c (ntlm_challenge)
+  - in case of session timeout, do not call auth callback; use
+    existing credentials.
+
+------------------------------------------------------------------------
+r1745 | kso | 2009-11-13 09:29:37 +0000 (Fri, 13 Nov 2009) | 1 line
+
+* src/ne_utils.c, src/ne_utils.h : Added NE_FEATURE_SSPI.
+------------------------------------------------------------------------
+r1744 | kso | 2009-11-13 08:56:21 +0000 (Fri, 13 Nov 2009) | 1 line
+
+fixed 'missing symbol' win2k runtime problem.
+------------------------------------------------------------------------
+r1742 | joe | 2009-10-25 10:20:19 +0000 (Sun, 25 Oct 2009) | 3 lines
+
+* src/ne_session.c (ne_session_create): Only enable SNI by default if
+  the server hostname does not parse as a numeric IP address.
+
+------------------------------------------------------------------------
+r1739 | joe | 2009-09-26 20:56:52 +0100 (Sat, 26 Sep 2009) | 2 lines
+
+* config.hw.in: Fix socklen_t with recent SDKs, thanks to Stefan Kung.
+
+------------------------------------------------------------------------
+r1738 | joe | 2009-09-26 20:55:51 +0100 (Sat, 26 Sep 2009) | 3 lines
+
+* src/ne_socket.c (ne_sock_close) [HAVE_OPENSSL]: Ensure SSL
+  connection is shut down cleanly.
+
+------------------------------------------------------------------------
+r1726 | joe | 2009-09-13 12:37:13 +0100 (Sun, 13 Sep 2009) | 3 lines
+
+* src/ne_socket.c (ne_sock_close) [HAVE_OPENSSL]: Ensure SSL
+  connection is shut down cleanly.
+
+------------------------------------------------------------------------
+r1724 | joe | 2009-09-12 21:03:49 +0100 (Sat, 12 Sep 2009) | 8 lines
 
 * macros/neon.m4 (LIBNEON_SOURCE_CHECKS): Require inet_pton for
   getaddrinfo support.
 
+* src/ne_socket.c (ne_sock_accept_ssl): Add debug log output if
+  session is resumed.
+
+* macros/neon.m4 (NEON_SSL): Check for SSL_SESSION_cmp.
+
 ------------------------------------------------------------------------
-r1712 | joe | 2009-09-02 20:43:05 +0100 (Wed, 02 Sep 2009) | 22 lines
+r1722 | joe | 2009-09-04 08:35:11 +0100 (Fri, 04 Sep 2009) | 4 lines
 
-Merge r1709, r1710, r1711 from trunk:
+* Makefile.in, README: Collect copyright notices from po/*.
 
-* test/util-socks.c (read_socks_0string): Pass through context string.
-  (socks_server): Fail for v4 server without expected address.
-  Don't write "ok" message for v4 server without say_hello flag.
+* po/: Update copyright notices.
 
-* src/ne_socket.c (ne_iaddr_parse): New function.
-  
-* test/socket.c (check_is_raw127): Factored out from addr_make_v4.
-  (parse_v4): New function.
-  (addr_make_v6): Test ne_iaddr_parse for IPv6 addresses.
-  (socks_proxy): Fix for non-v6-enabled builds.
+------------------------------------------------------------------------
+r1719 | joe | 2009-09-04 08:14:03 +0100 (Fri, 04 Sep 2009) | 2 lines
 
-* src/ne_socket.c (ne_iaddr_parse) [!USE_GETADDRINFO]: Fail for IPv6
-  addresses.
+* po/pl.po: Update, from Arfrever Frehtes Taifersar Arahesis.
 
-* test/socket.c (addr_make_v6) [!TEST_IPV6]: Test for failure.
+------------------------------------------------------------------------
+r1718 | joe | 2009-09-04 08:12:58 +0100 (Fri, 04 Sep 2009) | 1 line
 
-Also:
+* macros/neon.m4: Bump to 0.30.0-dev.
+------------------------------------------------------------------------
+r1714 | joe | 2009-09-02 21:26:39 +0100 (Wed, 02 Sep 2009) | 3 lines
 
-* src/neon.vers: Add ne_iaddr_parse.
+* macros/neon.m4 (LIBNEON_SOURCE_CHECKS): Require inet_pton for
+  getaddrinfo support.
 
 ------------------------------------------------------------------------
-r1708 | joe | 2009-09-02 15:51:26 +0100 (Wed, 02 Sep 2009) | 2 lines
+r1713 | joe | 2009-09-02 21:25:59 +0100 (Wed, 02 Sep 2009) | 5 lines
 
-* macros/neon.m4: Set libtool versions as backwards-compat to 0.27.x.
+* src/ne_request.c (socks_origin_lookup): New function.
+  (open_connection): Use it to fix support for SOCKSv4 servers.
+
+* test/request.c (socks_v4_proxy): Add test case.
 
 ------------------------------------------------------------------------
-r1707 | joe | 2009-09-02 15:50:59 +0100 (Wed, 02 Sep 2009) | 2 lines
+r1711 | joe | 2009-09-02 18:28:56 +0100 (Wed, 02 Sep 2009) | 5 lines
 
-* po/: make update-po.
+* src/ne_socket.c (ne_iaddr_parse) [!USE_GETADDRINFO]: Fail for IPv6
+  addresses.
+
+* test/socket.c (addr_make_v6) [!TEST_IPV6]: Test for failure.
 
 ------------------------------------------------------------------------
-r1706 | joe | 2009-09-02 15:40:47 +0100 (Wed, 02 Sep 2009) | 2 lines
+r1710 | joe | 2009-09-02 17:06:11 +0100 (Wed, 02 Sep 2009) | 7 lines
 
-Branch for 0.29.x.
+* src/ne_socket.c (ne_iaddr_parse): New function.
+  
+* test/socket.c (check_is_raw127): Factored out from addr_make_v4.
+  (parse_v4): New function.
+  (addr_make_v6): Test ne_iaddr_parse for IPv6 addresses.
+  (socks_proxy): Fix for non-v6-enabled builds.
+
+------------------------------------------------------------------------
+r1709 | joe | 2009-09-02 16:50:05 +0100 (Wed, 02 Sep 2009) | 4 lines
+
+* test/util-socks.c (read_socks_0string): Pass through context string.
+  (socks_server): Fail for v4 server without expected address.
+  Don't write "ok" message for v4 server without say_hello flag.
 
 ------------------------------------------------------------------------
 r1705 | joe | 2009-09-02 15:40:13 +0100 (Wed, 02 Sep 2009) | 2 lines
diff --git a/NEWS b/NEWS
index babeb95..3f5058c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,26 @@
+Changes in release 0.30.0:
+* Interface changes:
+ - none, API and ABI backwards-compatible with 0.27.x and later
+* New interfaces and features:
+ - ne_ssl.h: added ne_ssl_clicert_import, ne_ssl_context_get_flag
+ - ne_session.h: added ne_set_addrlist2
+ - ne_socket.h: added ne_addr_canonical
+ - ne_auth.h: added NE_AUTH_GSSAPI_ONLY, NE_AUTH_SSPI (Nathanael Rensen)
+ - ne_basic.h: added NE_CAP_EXT_MKCOL options test
+ - ne_request.h: support chunked bodies with negative length passed to
+   ne_set_request_body_provider (Julien Reichel)
+* Bug fixes:
+ - ne_path_escape: fix excessive memory allocation (Pierre Crokaert)
+ - SSPI auth: use canonical server hostname, clear SSPI context after
+   successful auth (Nathanael Rensen)
+ - build fixes for Open Watcom compiler (NormW)
+ - fix Win32 error code handling for local ne_sock_prebind bind failure
+ - Win32: support LFS, thread-safe OpenSSL (Diego Santa Cruz)
+ - GnuTLS: fix GnuTLS 3.x support (Matthias Petschick, Bartosz Brachaczek)
+
 Changes in release 0.29.6:
 * Don't abort SSL handshake with GnuTLS if a client cert is requested
   but none is configured/available (thanks to Patrick Ohly)
-* Fix GnuTLS build with Nettle (Arfrever Frehtes Taifersar Arahesis)
-* Win32: Fix handling of SSPI challenges (Ivan Zhakov)
 * Fix the method string passed to create_request hooks to have the same
   lifetime as the request object (Patrick Ohly)
 * Docs updates.
@@ -38,6 +56,7 @@ Changes in release 0.29.1:
 * Fixes for (Unix) NTLM implementation:
  - fix handling of session timeout (Kai Sommerfeld)
  - fix possible crash (basic@mozdev.org)
+* Fix unnecessary re-authentication with SSPI (Danil Shopyrin)
 * Build fixes for Win32:
   - fix use of socklen_t with recent SDKs (Stefan Kung)
   - fix USE_GETADDRINFO on Win2K (Kai Sommerfeld)
index f810d83..4963e5b 100644 (file)
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.13.4 -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-#                 Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -24,8 +25,8 @@
 
 m4_define([_LT_COPYING], [dnl
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-#                 Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -159,6 +160,8 @@ AC_REQUIRE([AC_CANONICAL_BUILD])dnl
 AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
 AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
 
+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
+dnl
 _LT_DECL([], [host_alias], [0], [The host system])dnl
 _LT_DECL([], [host], [0])dnl
 _LT_DECL([], [host_os], [0])dnl
@@ -181,10 +184,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
 dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
 m4_require([_LT_CMD_RELOAD])dnl
 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
 
 _LT_CONFIG_LIBTOOL_INIT([
 # See if we are running on zsh, and set the options which allow our
@@ -641,7 +647,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
 m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
 configured by $[0], generated by m4_PACKAGE_STRING.
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2011 Free Software Foundation, Inc.
 This config.lt script is free software; the Free Software Foundation
 gives unlimited permision to copy, distribute and modify it."
 
@@ -755,15 +761,12 @@ _LT_EOF
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
 
-  _LT_PROG_XSI_SHELLFNS
+  _LT_PROG_REPLACE_SHELLFNS
 
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" ||
+   mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
 ],
@@ -808,6 +811,7 @@ AC_DEFUN([LT_LANG],
 m4_case([$1],
   [C],                 [_LT_LANG(C)],
   [C++],               [_LT_LANG(CXX)],
+  [Go],                        [_LT_LANG(GO)],
   [Java],              [_LT_LANG(GCJ)],
   [Fortran 77],                [_LT_LANG(F77)],
   [Fortran],           [_LT_LANG(FC)],
@@ -829,6 +833,29 @@ m4_defun([_LT_LANG],
 ])# _LT_LANG
 
 
+m4_ifndef([AC_PROG_GO], [
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+m4_defun([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC],     [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
+  fi
+fi
+if test -z "$GOC"; then
+  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
 # _LT_LANG_DEFAULT_CONFIG
 # -----------------------
 m4_defun([_LT_LANG_DEFAULT_CONFIG],
@@ -859,6 +886,10 @@ AC_PROVIDE_IFELSE([AC_PROG_GCJ],
        m4_ifdef([LT_PROG_GCJ],
        [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
 
+AC_PROVIDE_IFELSE([AC_PROG_GO],
+  [LT_LANG(GO)],
+  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
+
 AC_PROVIDE_IFELSE([LT_PROG_RC],
   [LT_LANG(RC)],
   [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
@@ -961,7 +992,13 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
          -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-       if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+       # If there is a non-empty error log, and "single_module"
+       # appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+         cat conftest.err >&AS_MESSAGE_LOG_FD
+       # Otherwise, if the output was created with a 0 exit code from
+       # the compiler, it worked.
+       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
          lt_cv_apple_cc_single_mod=yes
        else
          cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -969,6 +1006,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        rm -rf libconftest.dylib*
        rm -f conftest.*
       fi])
+
     AC_CACHE_CHECK([for -exported_symbols_list linker flag],
       [lt_cv_ld_exported_symbols_list],
       [lt_cv_ld_exported_symbols_list=no
@@ -980,6 +1018,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        [lt_cv_ld_exported_symbols_list=no])
        LDFLAGS="$save_LDFLAGS"
     ])
+
     AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
       [lt_cv_ld_force_load=no
       cat > conftest.c << _LT_EOF
@@ -997,7 +1036,9 @@ _LT_EOF
       echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
       $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
       _lt_result=$?
-      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+      if test -s conftest.err && $GREP force_load conftest.err; then
+       cat conftest.err >&AS_MESSAGE_LOG_FD
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
        lt_cv_ld_force_load=yes
       else
        cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -1042,8 +1083,8 @@ _LT_EOF
 ])
 
 
-# _LT_DARWIN_LINKER_FEATURES
-# --------------------------
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
 # Checks for linker and compiler features on darwin
 m4_defun([_LT_DARWIN_LINKER_FEATURES],
 [
@@ -1054,6 +1095,8 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
   if test "$lt_cv_ld_force_load" = "yes"; then
     _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
+                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
   else
     _LT_TAGVAR(whole_archive_flag_spec, $1)=''
   fi
@@ -1080,30 +1123,41 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   fi
 ])
 
-# _LT_SYS_MODULE_PATH_AIX
-# -----------------------
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
 # Links a minimal program and checks the executable
 # for the system default hardcoded library path. In most cases,
 # this is /usr/lib:/lib, but when the MPI compilers are used
 # the location of the communication and MPI libs are included too.
 # If we don't find anything, use the default library path according
 # to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
 m4_defun([_LT_SYS_MODULE_PATH_AIX],
 [m4_require([_LT_DECL_SED])dnl
-AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+  lt_aix_libpath_sed='[
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }]'
+  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi],[])
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
+  fi
+  ])
+  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
 ])# _LT_SYS_MODULE_PATH_AIX
 
 
@@ -1128,7 +1182,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
 
 AC_MSG_CHECKING([how to print strings])
 # Test print first, because it will be a builtin if present.
-if test "X`print -r -- -n 2>/dev/null`" = X-n && \
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
    test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
   ECHO='print -r --'
 elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
@@ -1172,6 +1226,39 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
 ])# _LT_PROG_ECHO_BACKSLASH
 
 
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[  --with-sysroot[=DIR] Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted.  We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   AC_MSG_RESULT([${with_sysroot}])
+   AC_MSG_ERROR([The sysroot must be an absolute path.])
+   ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and in which our libraries should be installed.])])
+
 # _LT_ENABLE_LOCK
 # ---------------
 m4_defun([_LT_ENABLE_LOCK],
@@ -1293,14 +1380,27 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-sparc*-*solaris*)
+*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
       *)
        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
          LD="${LD-ld} -64"
@@ -1318,14 +1418,47 @@ need_locks="$enable_libtool_lock"
 ])# _LT_ENABLE_LOCK
 
 
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+  [lt_cv_ar_at_file=no
+   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+     [echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+      AC_TRY_EVAL([lt_ar_try])
+      if test "$ac_status" -eq 0; then
+       # Ensure the archiver fails upon bogus file names.
+       rm -f conftest.$ac_objext libconftest.a
+       AC_TRY_EVAL([lt_ar_try])
+       if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+     ])
+  ])
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+  [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
 # _LT_CMD_OLD_ARCHIVE
 # -------------------
 m4_defun([_LT_CMD_OLD_ARCHIVE],
-[AC_CHECK_TOOL(AR, ar, false)
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1])
+[_LT_PROG_AR
 
 AC_CHECK_TOOL(STRIP, strip, :)
 test -z "$STRIP" && STRIP=:
@@ -1344,13 +1477,13 @@ old_postuninstall_cmds=
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
 fi
 
 case $host_os in
@@ -1530,6 +1663,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=196608
     ;;
 
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -1569,7 +1707,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
                 = "X$teststring$teststring"; } >/dev/null 2>&1 &&
              test $i != 17 # 1/2 MB should be enough
       do
@@ -1665,10 +1803,10 @@ else
 /* When -fvisbility=hidden is used, assume the code has been annotated
    correspondingly for the symbols needed.  */
 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-void fnord () __attribute__((visibility("default")));
+int fnord () __attribute__((visibility("default")));
 #endif
 
-void fnord () { int i=42; }
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -2115,7 +2253,7 @@ need_version=unknown
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -2124,7 +2262,7 @@ aix3*)
   ;;
 
 aix[[4-9]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -2189,7 +2327,7 @@ beos*)
   ;;
 
 bsdi[[45]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -2208,8 +2346,9 @@ cygwin* | mingw* | pw32* | cegcc*)
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -2242,13 +2381,71 @@ m4_if([$1], [],[
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
@@ -2269,7 +2466,7 @@ m4_if([$1], [],[
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -2277,10 +2474,6 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -2288,7 +2481,7 @@ freebsd* | dragonfly*)
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[[123]]*) objformat=aout ;;
+    freebsd[[23]].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -2306,7 +2499,7 @@ freebsd* | dragonfly*)
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[[01]]* | freebsdelf3.[[01]]*)
@@ -2326,17 +2519,18 @@ freebsd* | dragonfly*)
   ;;
 
 gnu*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
   ;;
 
 haiku*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
@@ -2397,7 +2591,7 @@ hpux9* | hpux10* | hpux11*)
   ;;
 
 interix[[3-9]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -2413,7 +2607,7 @@ irix5* | irix6* | nonstopux*)
     nonstopux*) version_type=nonstopux ;;
     *)
        if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
+               version_type=linux # correct to gnu/linux during the next big refactor
        else
                version_type=irix
        fi ;;
@@ -2450,9 +2644,9 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2519,7 +2713,7 @@ netbsd*)
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -2588,7 +2782,7 @@ rdos*)
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2613,7 +2807,7 @@ sunos4*)
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -2637,7 +2831,7 @@ sysv4 | sysv4.3*)
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -2668,7 +2862,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2678,7 +2872,7 @@ tpf*)
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -2956,6 +3150,11 @@ case $reload_flag in
 esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
   darwin*)
     if test "$GCC" = yes; then
       reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
@@ -3095,7 +3294,7 @@ irix5* | irix6* | nonstopux*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -3174,6 +3373,21 @@ tpf*)
   ;;
 esac
 ])
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
 test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -3181,7 +3395,11 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
 _LT_DECL([], [deplibs_check_method], [1],
     [Method to check whether dependent libraries are shared objects])
 _LT_DECL([], [file_magic_cmd], [1],
-    [Command to use when deplibs_check_method == "file_magic"])
+    [Command to use when deplibs_check_method = "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+    [How to find potential files when deplibs_check_method = "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
 ])# _LT_CHECK_MAGIC_METHOD
 
 
@@ -3284,6 +3502,67 @@ dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([AM_PROG_NM], [])
 dnl AC_DEFUN([AC_PROG_NM], [])
 
+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+# --------------------------------
+# how to determine the name of the shared library
+# associated with a specific link library.
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+m4_require([_LT_DECL_DLLTOOL])
+AC_CACHE_CHECK([how to associate runtime and link libraries],
+lt_cv_sharedlib_from_linklib_cmd,
+[lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  ;;
+esac
+])
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
+    [Command to associate shared and link libraries])
+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+
+
+# _LT_PATH_MANIFEST_TOOL
+# ----------------------
+# locate the manifest tool
+m4_defun([_LT_PATH_MANIFEST_TOOL],
+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+  [lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*])
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
+])# _LT_PATH_MANIFEST_TOOL
+
 
 # LT_LIB_M
 # --------
@@ -3410,8 +3689,8 @@ esac
 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -3435,6 +3714,7 @@ for ac_symprfx in "" "_"; do
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
@@ -3447,6 +3727,7 @@ for ac_symprfx in "" "_"; do
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[    ]]\($symcode$symcode*\)[[       ]][[    ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -3480,6 +3761,18 @@ _LT_EOF
       if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
        if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
          cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT@&t@_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -3491,7 +3784,7 @@ _LT_EOF
          cat <<_LT_EOF >> conftest.$ac_ext
 
 /* The mapping between symbol names and symbols.  */
-const struct {
+LT@&t@_DLSYM_CONST struct {
   const char *name;
   void       *address;
 }
@@ -3517,15 +3810,15 @@ static const void *lt_preloaded_setup() {
 _LT_EOF
          # Now try linking the two files.
          mv conftest.$ac_objext conftstm.$ac_objext
-         lt_save_LIBS="$LIBS"
-         lt_save_CFLAGS="$CFLAGS"
+         lt_globsym_save_LIBS=$LIBS
+         lt_globsym_save_CFLAGS=$CFLAGS
          LIBS="conftstm.$ac_objext"
          CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
          if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
            pipe_works=yes
          fi
-         LIBS="$lt_save_LIBS"
-         CFLAGS="$lt_save_CFLAGS"
+         LIBS=$lt_globsym_save_LIBS
+         CFLAGS=$lt_globsym_save_CFLAGS
        else
          echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
        fi
@@ -3558,6 +3851,13 @@ else
   AC_MSG_RESULT(ok)
 fi
 
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
     [Take the output of nm and produce a listing of raw symbols and C names])
 _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
@@ -3568,6 +3868,8 @@ _LT_DECL([global_symbol_to_c_name_address],
 _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
     [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
     [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([], [nm_file_list_spec], [1],
+    [Specify filename containing input files for $NM])
 ]) # _LT_CMD_GLOBAL_SYMBOLS
 
 
@@ -3579,7 +3881,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)=
 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
 _LT_TAGVAR(lt_prog_compiler_static, $1)=
 
-AC_MSG_CHECKING([for $compiler option to produce PIC])
 m4_if([$1], [CXX], [
   # C++ specific cases for pic, static, wl, etc.
   if test "$GXX" = yes; then
@@ -3684,6 +3985,12 @@ m4_if([$1], [CXX], [
          ;;
        esac
        ;;
+      mingw* | cygwin* | os2* | pw32* | cegcc*)
+       # This hack is so that the source file can tell whether it is being
+       # built for inclusion in a dll (and should export symbols for example).
+       m4_if([$1], [GCJ], [],
+         [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+       ;;
       dgux*)
        case $cc_basename in
          ec++*)
@@ -3992,7 +4299,9 @@ m4_if([$1], [CXX], [
     case $cc_basename in
     nvcc*) # Cuda Compiler Driver 2.2
       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
+      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
+      fi
       ;;
     esac
   else
@@ -4058,6 +4367,12 @@ m4_if([$1], [CXX], [
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
        _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
        ;;
+      nagfor*)
+       # NAG Fortran compiler
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+       ;;
       pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
        # which looks to be a dead project)
@@ -4078,18 +4393,33 @@ m4_if([$1], [CXX], [
        ;;
       *)
        case `$CC -V 2>&1 | sed 5q` in
-       *Sun\ F* | *Sun*Fortran*)
+       *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
          # Sun Fortran 8.3 passes all unrecognized flags to the linker
          _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
          _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
          _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
          ;;
+       *Sun\ F* | *Sun*Fortran*)
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+         ;;
        *Sun\ C*)
          # Sun C 5.9
          _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
          _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
          _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
          ;;
+        *Intel*\ [[CF]]*Compiler*)
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+         ;;
+       *Portland\ Group*)
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+         ;;
        esac
        ;;
       esac
@@ -4177,9 +4507,11 @@ case $host_os in
     _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
     ;;
 esac
-AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-       [How to pass a linker flag through the compiler])
+
+AC_CACHE_CHECK([for $compiler option to produce PIC],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
 
 #
 # Check to make sure the PIC flag actually works.
@@ -4198,6 +4530,8 @@ fi
 _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
        [Additional compiler flags for building library objects])
 
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+       [How to pass a linker flag through the compiler])
 #
 # Check to make sure the static flag actually works.
 #
@@ -4218,6 +4552,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
 m4_defun([_LT_LINKER_SHLIBS],
 [AC_REQUIRE([LT_PATH_LD])dnl
 AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_DECL_SED])dnl
@@ -4226,6 +4561,7 @@ m4_require([_LT_TAG_COMPILER])dnl
 AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
 m4_if([$1], [CXX], [
   _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
   case $host_os in
   aix[[4-9]]*)
     # If we're using GNU nm, then we don't want the "-C" option.
@@ -4240,15 +4576,22 @@ m4_if([$1], [CXX], [
     ;;
   pw32*)
     _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-  ;;
+    ;;
   cygwin* | mingw* | cegcc*)
-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
+    case $cc_basename in
+    cl*)
+      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+      ;;
+    *)
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+      ;;
+    esac
+    ;;
   *)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
+    ;;
   esac
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
 ], [
   runpath_var=
   _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -4263,7 +4606,6 @@ m4_if([$1], [CXX], [
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_direct_absolute, $1)=no
   _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
   _LT_TAGVAR(hardcode_libdir_separator, $1)=
   _LT_TAGVAR(hardcode_minus_L, $1)=no
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
@@ -4416,7 +4758,8 @@ _LT_EOF
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
       _LT_TAGVAR(always_export_symbols, $1)=no
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -4464,7 +4807,7 @@ _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
         && test "$tmp_diet" = no
       then
-       tmp_addflag=
+       tmp_addflag=' $pic_flag'
        tmp_sharedflag='-shared'
        case $cc_basename,$host_cpu in
         pgcc*)                         # Portland Group C compiler
@@ -4513,8 +4856,7 @@ _LT_EOF
        xlf* | bgf* | bgxlf* | mpixlf*)
          # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
          _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-         _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
          _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
          if test "x$supports_anon_versioning" = xyes; then
            _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
@@ -4534,8 +4876,8 @@ _LT_EOF
        _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
       else
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -4553,8 +4895,8 @@ _LT_EOF
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4600,8 +4942,8 @@ _LT_EOF
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4731,7 +5073,7 @@ _LT_EOF
        _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        _LT_SYS_MODULE_PATH_AIX
+        _LT_SYS_MODULE_PATH_AIX([$1])
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
       else
@@ -4742,7 +5084,7 @@ _LT_EOF
        else
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        _LT_SYS_MODULE_PATH_AIX
+        _LT_SYS_MODULE_PATH_AIX([$1])
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
          # Warning - without using the other run time loading flags,
          # -berok will link without error, but may produce a broken library.
@@ -4786,20 +5128,64 @@ _LT_EOF
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-      # FIXME: Should let the user specify the lib program.
-      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      case $cc_basename in
+      cl*)
+       # Native MSVC
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       _LT_TAGVAR(always_export_symbols, $1)=yes
+       _LT_TAGVAR(file_list_spec, $1)='@'
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+       _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+           sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+         else
+           sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+         fi~
+         $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+         linknames='
+       # The linker will not automatically build a static lib if we build a DLL.
+       # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+       _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+       # Don't use ranlib
+       _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+       _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+         lt_tool_outputfile="@TOOL_OUTPUT@"~
+         case $lt_outputfile in
+           *.exe|*.EXE) ;;
+           *)
+             lt_outputfile="$lt_outputfile.exe"
+             lt_tool_outputfile="$lt_tool_outputfile.exe"
+             ;;
+         esac~
+         if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+           $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+           $RM "$lt_outputfile.manifest";
+         fi'
+       ;;
+      *)
+       # Assume MSVC wrapper
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+       # The linker will automatically build a .lib file if we build a DLL.
+       _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+       # FIXME: Should let the user specify the lib program.
+       _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       ;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -4812,10 +5198,6 @@ _LT_EOF
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
 
-    freebsd1*)
-      _LT_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
     # support.  Future versions do this automatically, but an explicit c++rt0.o
     # does not break anything, and helps significantly (at the cost of a little
@@ -4828,7 +5210,7 @@ _LT_EOF
       ;;
 
     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
+    freebsd2.*)
       _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
@@ -4837,7 +5219,7 @@ _LT_EOF
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
     freebsd* | dragonfly*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -4845,7 +5227,7 @@ _LT_EOF
 
     hpux9*)
       if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       else
        _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       fi
@@ -4861,13 +5243,12 @@ _LT_EOF
 
     hpux10*)
       if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
        _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
       if test "$with_gnu_ld" = no; then
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-       _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
        _LT_TAGVAR(hardcode_direct, $1)=yes
        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
@@ -4885,10 +5266,10 @@ _LT_EOF
          _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        esac
       else
@@ -4935,16 +5316,31 @@ _LT_EOF
 
     irix5* | irix6* | nonstopux*)
       if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        # Try to use the -exported_symbol ld option, if it does not
        # work, assume that -exports_file does not work either and
        # implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        AC_LINK_IFELSE(int foo(void) {},
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-        )
-        LDFLAGS="$save_LDFLAGS"
+       # This should be the same for all languages, so no per-tag cache variable.
+       AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
+         [lt_cv_irix_exported_symbol],
+         [save_LDFLAGS="$LDFLAGS"
+          LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+          AC_LINK_IFELSE(
+            [AC_LANG_SOURCE(
+               [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
+                             [C++], [[int foo (void) { return 0; }]],
+                             [Fortran 77], [[
+      subroutine foo
+      end]],
+                             [Fortran], [[
+      subroutine foo
+      end]])])],
+             [lt_cv_irix_exported_symbol=yes],
+             [lt_cv_irix_exported_symbol=no])
+           LDFLAGS="$save_LDFLAGS"])
+       if test "$lt_cv_irix_exported_symbol" = yes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+       fi
       else
        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
@@ -5029,7 +5425,7 @@ _LT_EOF
     osf4* | osf5*)     # as osf3* with the addition of -msym flag
       if test "$GCC" = yes; then
        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
       else
        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
@@ -5048,9 +5444,9 @@ _LT_EOF
       _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
       if test "$GCC" = yes; then
        wlarc='${wl}'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+         $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
        case `$CC -V 2>&1` in
        *"Compilers 5.0"*)
@@ -5294,9 +5690,6 @@ _LT_TAGDECL([], [no_undefined_flag], [1],
 _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
     [Flag to hardcode $libdir into a binary during linking.
     This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
-    [[If ld is used when linking, flag to hardcode $libdir into a binary
-    during linking.  This must work even if $libdir does not exist]])
 _LT_TAGDECL([], [hardcode_libdir_separator], [1],
     [Whether we need a single "-rpath" flag with a separated argument])
 _LT_TAGDECL([], [hardcode_direct], [0],
@@ -5322,8 +5715,6 @@ _LT_TAGDECL([], [inherit_rpath], [0],
     to runtime path list])
 _LT_TAGDECL([], [link_all_deplibs], [0],
     [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [fix_srcfile_path], [1],
-    [Fix the shell variable $srcfile for the compiler])
 _LT_TAGDECL([], [always_export_symbols], [0],
     [Set to "yes" if exported symbols are required])
 _LT_TAGDECL([], [export_symbols_cmds], [2],
@@ -5334,6 +5725,8 @@ _LT_TAGDECL([], [include_expsyms], [1],
     [Symbols that must always be exported])
 _LT_TAGDECL([], [prelink_cmds], [2],
     [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [postlink_cmds], [2],
+    [Commands necessary for finishing linking programs])
 _LT_TAGDECL([], [file_list_spec], [1],
     [Specify filename containing input files])
 dnl FIXME: Not yet implemented
@@ -5431,6 +5824,7 @@ CC="$lt_save_CC"
 m4_defun([_LT_LANG_CXX_CONFIG],
 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
 if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
     ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
     (test "X$CXX" != "Xg++"))) ; then
@@ -5449,7 +5843,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
@@ -5492,6 +5885,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 
   # Allow CC to be a program name with arguments.
   lt_save_CC=$CC
+  lt_save_CFLAGS=$CFLAGS
   lt_save_LD=$LD
   lt_save_GCC=$GCC
   GCC=$GXX
@@ -5509,6 +5903,7 @@ if test "$_lt_caught_CXX_error" != yes; then
   fi
   test -z "${LDCXX+set}" || LD=$LDCXX
   CC=${CXX-"c++"}
+  CFLAGS=$CXXFLAGS
   compiler=$CC
   _LT_TAGVAR(compiler, $1)=$CC
   _LT_CC_BASENAME([$compiler])
@@ -5530,8 +5925,8 @@ if test "$_lt_caught_CXX_error" != yes; then
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -5672,7 +6067,7 @@ if test "$_lt_caught_CXX_error" != yes; then
           _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
           # Determine the default libpath from the value encoded in an empty
           # executable.
-          _LT_SYS_MODULE_PATH_AIX
+          _LT_SYS_MODULE_PATH_AIX([$1])
           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
 
           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
@@ -5684,7 +6079,7 @@ if test "$_lt_caught_CXX_error" != yes; then
           else
            # Determine the default libpath from the value encoded in an
            # empty executable.
-           _LT_SYS_MODULE_PATH_AIX
+           _LT_SYS_MODULE_PATH_AIX([$1])
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
            # Warning - without using the other run time loading flags,
            # -berok will link without error, but may produce a broken library.
@@ -5726,29 +6121,75 @@ if test "$_lt_caught_CXX_error" != yes; then
         ;;
 
       cygwin* | mingw* | pw32* | cegcc*)
-        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-        # as there is no search path for DLLs.
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
-        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-        _LT_TAGVAR(always_export_symbols, $1)=no
-        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-          # If the export-symbols file already is a .def file (1st line
-          # is EXPORTS), use it as is; otherwise, prepend...
-          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-           cp $export_symbols $output_objdir/$soname.def;
-          else
-           echo EXPORTS > $output_objdir/$soname.def;
-           cat $export_symbols >> $output_objdir/$soname.def;
-          fi~
-          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-        else
-          _LT_TAGVAR(ld_shlibs, $1)=no
-        fi
-        ;;
+       case $GXX,$cc_basename in
+       ,cl* | no,cl*)
+         # Native MSVC
+         # hardcode_libdir_flag_spec is actually meaningless, as there is
+         # no search path for DLLs.
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+         _LT_TAGVAR(always_export_symbols, $1)=yes
+         _LT_TAGVAR(file_list_spec, $1)='@'
+         # Tell ltmain to make .lib files, not .a files.
+         libext=lib
+         # Tell ltmain to make .dll files, not .so files.
+         shrext_cmds=".dll"
+         # FIXME: Setting linknames here is a bad hack.
+         _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+         _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+             $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+           else
+             $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+           fi~
+           $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+           linknames='
+         # The linker will not automatically build a static lib if we build a DLL.
+         # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+         _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+         # Don't use ranlib
+         _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+         _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+           lt_tool_outputfile="@TOOL_OUTPUT@"~
+           case $lt_outputfile in
+             *.exe|*.EXE) ;;
+             *)
+               lt_outputfile="$lt_outputfile.exe"
+               lt_tool_outputfile="$lt_tool_outputfile.exe"
+               ;;
+           esac~
+           func_to_tool_file "$lt_outputfile"~
+           if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+             $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+             $RM "$lt_outputfile.manifest";
+           fi'
+         ;;
+       *)
+         # g++
+         # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+         # as there is no search path for DLLs.
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+         _LT_TAGVAR(always_export_symbols, $1)=no
+         _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+         if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+           # If the export-symbols file already is a .def file (1st line
+           # is EXPORTS), use it as is; otherwise, prepend...
+           _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+             cp $export_symbols $output_objdir/$soname.def;
+           else
+             echo EXPORTS > $output_objdir/$soname.def;
+             cat $export_symbols >> $output_objdir/$soname.def;
+           fi~
+           $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+         else
+           _LT_TAGVAR(ld_shlibs, $1)=no
+         fi
+         ;;
+       esac
+       ;;
       darwin* | rhapsody*)
         _LT_DARWIN_LINKER_FEATURES($1)
        ;;
@@ -5771,7 +6212,7 @@ if test "$_lt_caught_CXX_error" != yes; then
         esac
         ;;
 
-      freebsd[[12]]*)
+      freebsd2.*)
         # C++ shared libraries reported to be fairly broken before
        # switch to ELF
         _LT_TAGVAR(ld_shlibs, $1)=no
@@ -5823,7 +6264,7 @@ if test "$_lt_caught_CXX_error" != yes; then
             ;;
           *)
             if test "$GXX" = yes; then
-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
             else
               # FIXME: insert proper C++ library support
               _LT_TAGVAR(ld_shlibs, $1)=no
@@ -5894,10 +6335,10 @@ if test "$_lt_caught_CXX_error" != yes; then
                    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                  ia64*)
-                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                  *)
-                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                esac
              fi
@@ -5938,9 +6379,9 @@ if test "$_lt_caught_CXX_error" != yes; then
           *)
            if test "$GXX" = yes; then
              if test "$with_gnu_ld" = no; then
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
              else
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
              fi
            fi
            _LT_TAGVAR(link_all_deplibs, $1)=yes
@@ -6218,7 +6659,7 @@ if test "$_lt_caught_CXX_error" != yes; then
                  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
                  ;;
                *)
-                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
                  ;;
              esac
 
@@ -6305,9 +6746,9 @@ if test "$_lt_caught_CXX_error" != yes; then
            if test "$GXX" = yes && test "$with_gnu_ld" = no; then
              _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
              if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
                _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                 $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+                 $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
@@ -6436,6 +6877,7 @@ if test "$_lt_caught_CXX_error" != yes; then
   fi # test -n "$compiler"
 
   CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
   LDCXX=$LD
   LD=$lt_save_LD
   GCC=$lt_save_GCC
@@ -6450,6 +6892,29 @@ AC_LANG_POP
 ])# _LT_LANG_CXX_CONFIG
 
 
+# _LT_FUNC_STRIPNAME_CNF
+# ----------------------
+# func_stripname_cnf prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+#
+# This function is identical to the (non-XSI) version of func_stripname,
+# except this one can be used by m4 code that may be executed by configure,
+# rather than the libtool script.
+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
+AC_REQUIRE([_LT_DECL_SED])
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
+func_stripname_cnf ()
+{
+  case ${2} in
+  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  esac
+} # func_stripname_cnf
+])# _LT_FUNC_STRIPNAME_CNF
+
 # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
 # ---------------------------------
 # Figure out "hidden" library dependencies from verbose
@@ -6458,6 +6923,7 @@ AC_LANG_POP
 # objects, libraries and library flags.
 m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
 # Dependencies to place before and after the object being linked:
 _LT_TAGVAR(predep_objects, $1)=
 _LT_TAGVAR(postdep_objects, $1)=
@@ -6507,7 +6973,20 @@ public class foo {
   }
 };
 _LT_EOF
+], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
+package foo
+func foo() {
+}
+_LT_EOF
 ])
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
+esac
+
 dnl Parse the compiler output and extract the necessary
 dnl objects, libraries and library flags.
 if AC_TRY_EVAL(ac_compile); then
@@ -6519,7 +6998,7 @@ if AC_TRY_EVAL(ac_compile); then
   pre_test_object_deps_done=no
 
   for p in `eval "$output_verbose_link_cmd"`; do
-    case $p in
+    case ${prev}${p} in
 
     -L* | -R* | -l*)
        # Some compilers place space between "-{L,R}" and the path.
@@ -6528,13 +7007,22 @@ if AC_TRY_EVAL(ac_compile); then
           test $p = "-R"; then
         prev=$p
         continue
-       else
-        prev=
        fi
 
+       # Expand the sysroot to ease extracting the directories later.
+       if test -z "$prev"; then
+         case $p in
+         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+         esac
+       fi
+       case $p in
+       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+       esac
        if test "$pre_test_object_deps_done" = no; then
-        case $p in
-        -L* | -R*)
+        case ${prev} in
+        -L | -R)
           # Internal compiler library paths should come after those
           # provided the user.  The postdeps already come after the
           # user supplied libs so there is no need to process them.
@@ -6554,8 +7042,10 @@ if AC_TRY_EVAL(ac_compile); then
           _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
         fi
        fi
+       prev=
        ;;
 
+    *.lto.$objext) ;; # Ignore GCC LTO objects
     *.$objext)
        # This assumes that the test object file only shows up
        # once in the compiler output.
@@ -6591,6 +7081,7 @@ else
 fi
 
 $RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
 
 # PORTME: override above test on systems where it is broken
 m4_if([$1], [CXX],
@@ -6690,7 +7181,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_automatic, $1)=no
@@ -6740,7 +7230,9 @@ if test "$_lt_disable_F77" != yes; then
   # Allow CC to be a program name with arguments.
   lt_save_CC="$CC"
   lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
   CC=${F77-"f77"}
+  CFLAGS=$FFLAGS
   compiler=$CC
   _LT_TAGVAR(compiler, $1)=$CC
   _LT_CC_BASENAME([$compiler])
@@ -6794,6 +7286,7 @@ if test "$_lt_disable_F77" != yes; then
 
   GCC=$lt_save_GCC
   CC="$lt_save_CC"
+  CFLAGS="$lt_save_CFLAGS"
 fi # test "$_lt_disable_F77" != yes
 
 AC_LANG_POP
@@ -6820,7 +7313,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_automatic, $1)=no
@@ -6870,7 +7362,9 @@ if test "$_lt_disable_FC" != yes; then
   # Allow CC to be a program name with arguments.
   lt_save_CC="$CC"
   lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
   CC=${FC-"f95"}
+  CFLAGS=$FCFLAGS
   compiler=$CC
   GCC=$ac_cv_fc_compiler_gnu
 
@@ -6926,7 +7420,8 @@ if test "$_lt_disable_FC" != yes; then
   fi # test -n "$compiler"
 
   GCC=$lt_save_GCC
-  CC="$lt_save_CC"
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
 fi # test "$_lt_disable_FC" != yes
 
 AC_LANG_POP
@@ -6963,10 +7458,12 @@ _LT_COMPILER_BOILERPLATE
 _LT_LINKER_BOILERPLATE
 
 # Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=yes
 CC=${GCJ-"gcj"}
+CFLAGS=$GCJFLAGS
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
 _LT_TAGVAR(LD, $1)="$LD"
@@ -6993,10 +7490,78 @@ fi
 AC_LANG_RESTORE
 
 GCC=$lt_save_GCC
-CC="$lt_save_CC"
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_GCJ_CONFIG
 
 
+# _LT_LANG_GO_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Go compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GO_CONFIG],
+[AC_REQUIRE([LT_PROG_GO])dnl
+AC_LANG_SAVE
+
+# Source file extension for Go test sources.
+ac_ext=go
+
+# Object file extension for compiled Go test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="package main; func main() { }"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='package main; func main() { }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GOC-"gccgo"}
+CFLAGS=$GOFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# Go did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GO_CONFIG
+
+
 # _LT_LANG_RC_CONFIG([TAG])
 # -------------------------
 # Ensure that the configuration variables for the Windows resource compiler
@@ -7028,9 +7593,11 @@ _LT_LINKER_BOILERPLATE
 
 # Allow CC to be a program name with arguments.
 lt_save_CC="$CC"
+lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=
 CC=${RC-"windres"}
+CFLAGS=
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
 _LT_CC_BASENAME([$compiler])
@@ -7043,7 +7610,8 @@ fi
 
 GCC=$lt_save_GCC
 AC_LANG_RESTORE
-CC="$lt_save_CC"
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_RC_CONFIG
 
 
@@ -7063,6 +7631,13 @@ dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
 
 
+# LT_PROG_GO
+# ----------
+AC_DEFUN([LT_PROG_GO],
+[AC_CHECK_TOOL(GOC, gccgo,)
+])
+
+
 # LT_PROG_RC
 # ----------
 AC_DEFUN([LT_PROG_RC],
@@ -7102,6 +7677,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
 AC_SUBST([OBJDUMP])
 ])
 
+# _LT_DECL_DLLTOOL
+# ----------------
+# Ensure DLLTOOL variable is set.
+m4_defun([_LT_DECL_DLLTOOL],
+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
+AC_SUBST([DLLTOOL])
+])
 
 # _LT_DECL_SED
 # ------------
@@ -7193,8 +7777,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES],
 # Try some XSI features
 xsi_shell=no
 ( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,b/c, \
     && eval 'test $(( 1 + 1 )) -eq 2 \
     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
   && xsi_shell=yes
@@ -7233,209 +7817,165 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
 ])# _LT_CHECK_SHELL_FEATURES
 
 
-# _LT_PROG_XSI_SHELLFNS
-# ---------------------
-# Bourne and XSI compatible variants of some useful shell functions.
-m4_defun([_LT_PROG_XSI_SHELLFNS],
-[case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $[*] ))
-}
+# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
+# ------------------------------------------------------
+# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
+# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
+m4_defun([_LT_PROG_FUNCTION_REPLACE],
+[dnl {
+sed -e '/^$1 ()$/,/^} # $1 /c\
+$1 ()\
+{\
+m4_bpatsubsts([$2], [$], [\\], [^\([    ]\)], [\\\1])
+} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+])
 
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
 
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
+# _LT_PROG_REPLACE_SHELLFNS
+# -------------------------
+# Replace existing portable implementations of several shell functions with
+# equivalent extended shell implementations where those features are available..
+m4_defun([_LT_PROG_REPLACE_SHELLFNS],
+[if test x"$xsi_shell" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac])
+
+  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
+    func_basename_result="${1##*/}"])
+
+  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac
+    func_basename_result="${1##*/}"])
 
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
+  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
+    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+    # positional parameters, so assign one to ordinary parameter first.
+    func_stripname_result=${3}
+    func_stripname_result=${func_stripname_result#"${1}"}
+    func_stripname_result=${func_stripname_result%"${2}"}])
 
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
+    func_split_long_opt_name=${1%%=*}
+    func_split_long_opt_arg=${1#*=}])
 
-dnl func_dirname_and_basename
-dnl A portable version of this function is already defined in general.m4sh
-dnl so there is no need for it here.
+  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
+    func_split_short_opt_arg=${1#??}
+    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
 
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-  esac
-}
+  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
+    case ${1} in
+      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+      *)    func_lo2o_result=${1} ;;
+    esac])
 
-# sed scripts:
-my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[[^=]]*=//'
+  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
 
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
 
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
+fi
 
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$[@]"`
-}
+if test x"$lt_shell_append" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
 
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
+    func_quote_for_eval "${2}"
+dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
+    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
 
-_LT_EOF
-esac
+  # Save a `func_append' function call where possible by direct use of '+='
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+else
+  # Save a `func_append' function call even when '+=' is not available
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+fi
 
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
+if test x"$_lt_function_replace_fail" = x":"; then
+  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
+fi
+])
 
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$[1]+=\$[2]"
-}
-_LT_EOF
+# _LT_PATH_CONVERSION_FUNCTIONS
+# -----------------------------
+# Determine which file name conversion functions should be used by
+# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
+# for certain cross-compile configurations and native mingw.
+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_MSG_CHECKING([how to convert $build file names to $host format])
+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
+[case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
     ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$[1]=\$$[1]\$[2]"
-}
-
-_LT_EOF
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
     ;;
-  esac
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+])
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
+         [0], [convert $build file names to $host format])dnl
+
+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
+[#assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
 ])
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
+         [0], [convert $build files to toolchain format])dnl
+])# _LT_PATH_CONVERSION_FUNCTIONS
 
 # Helper functions for option handling.                    -*- Autoconf -*-
 #
@@ -7762,9 +8302,24 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
 # MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
 m4_define([_LT_WITH_PIC],
 [AC_ARG_WITH([pic],
-    [AS_HELP_STRING([--with-pic],
+    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
        [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [pic_mode="$withval"],
+    [lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for lt_pkg in $withval; do
+       IFS="$lt_save_ifs"
+       if test "X$lt_pkg" = "X$lt_p"; then
+         pic_mode=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
     [pic_mode=default])
 
 test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
@@ -7934,17 +8489,17 @@ m4_define([lt_dict_filter],
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# Generated from ltversion.in.
+# @configure_input@
 
-# serial 3175 ltversion.m4
+# serial 3337 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.2.10])
-m4_define([LT_PACKAGE_REVISION], [1.3175])
+m4_define([LT_PACKAGE_VERSION], [2.4.2])
+m4_define([LT_PACKAGE_REVISION], [1.3337])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.2.10'
-macro_revision='1.3175'
+[macro_version='2.4.2'
+macro_revision='1.3337'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
@@ -8048,6 +8603,56 @@ m4_ifndef([_LT_PROG_F77],                [AC_DEFUN([_LT_PROG_F77])])
 m4_ifndef([_LT_PROG_FC],               [AC_DEFUN([_LT_PROG_FC])])
 m4_ifndef([_LT_PROG_CXX],              [AC_DEFUN([_LT_PROG_CXX])])
 
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 2006-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
 m4_include([macros/ld-version-script.m4])
 m4_include([macros/neon-test.m4])
 m4_include([macros/neon-xml-parser.m4])
index dc84c68..1804e9f 100755 (executable)
@@ -1,14 +1,14 @@
 #! /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, 2009
-#   Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+#   2011, 2012, 2013 Free Software Foundation, Inc.
 
-timestamp='2009-11-20'
+timestamp='2012-12-29'
 
 # 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
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful, but
@@ -17,26 +17,22 @@ timestamp='2009-11-20'
 # General Public License for more details.
 #
 # 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., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner.  Please send patches (context
-# diff format) to <config-patches@gnu.org> and include a ChangeLog
-# entry.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 #
-# 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.
+# Originally written by Per Bothner. 
 #
 # 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
+#
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -56,8 +52,9 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
+2012, 2013 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -144,7 +141,7 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     *:NetBSD:*:*)
        # NetBSD (nbsd) targets should (where applicable) match one or
-       # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+       # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
        # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
        # switched to ELF, *-*-netbsd* would select the old
        # object file format.  This provides both forward
@@ -180,7 +177,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                fi
                ;;
            *)
-               os=netbsd
+               os=netbsd
                ;;
        esac
        # The OS release
@@ -201,6 +198,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
        echo "${machine}-${os}${release}"
        exit ;;
+    *:Bitrig:*:*)
+       UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+       echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+       exit ;;
     *:OpenBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
        echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
@@ -223,7 +224,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
                ;;
        *5.*)
-               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
                ;;
        esac
        # According to Compaq, /usr/sbin/psrinfo has been available on
@@ -269,7 +270,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
        echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-       exit ;;
+       # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+       exitcode=$?
+       trap '' 0
+       exit $exitcode ;;
     Alpha\ *:Windows_NT*:*)
        # How do we know it's Interix rather than the generic POSIX subsystem?
        # Should we change UNAME_MACHINE based on the output of uname instead
@@ -295,12 +299,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        echo s390-ibm-zvmoe
        exit ;;
     *:OS400:*:*)
-        echo powerpc-ibm-os400
+       echo powerpc-ibm-os400
        exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
        echo arm-acorn-riscix${UNAME_RELEASE}
        exit ;;
-    arm:riscos:*:*|arm:RISCOS:*:*)
+    arm*:riscos:*:*|arm*:RISCOS:*:*)
        echo arm-unknown-riscos
        exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
@@ -394,23 +398,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     # MiNT.  But MiNT is downward compatible to TOS, so this should
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
+       echo m68k-atari-mint${UNAME_RELEASE}
        exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
        echo m68k-atari-mint${UNAME_RELEASE}
-        exit ;;
+       exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
+       echo m68k-atari-mint${UNAME_RELEASE}
        exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit ;;
+       echo m68k-milan-mint${UNAME_RELEASE}
+       exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit ;;
+       echo m68k-hades-mint${UNAME_RELEASE}
+       exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit ;;
+       echo m68k-unknown-mint${UNAME_RELEASE}
+       exit ;;
     m68k:machten:*:*)
        echo m68k-apple-machten${UNAME_RELEASE}
        exit ;;
@@ -480,8 +484,8 @@ EOF
        echo m88k-motorola-sysv3
        exit ;;
     AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
+       # DG/UX returns AViiON for all architectures
+       UNAME_PROCESSOR=`/usr/bin/uname -p`
        if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
        then
            if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@@ -494,7 +498,7 @@ EOF
        else
            echo i586-dg-dgux${UNAME_RELEASE}
        fi
-       exit ;;
+       exit ;;
     M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
        echo m88k-dolphin-sysv3
        exit ;;
@@ -551,7 +555,7 @@ EOF
                echo rs6000-ibm-aix3.2
        fi
        exit ;;
-    *:AIX:*:[456])
+    *:AIX:*:[4567])
        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
        if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
                IBM_ARCH=rs6000
@@ -594,52 +598,52 @@ EOF
            9000/[678][0-9][0-9])
                if [ -x /usr/bin/getconf ]; then
                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
-                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-                      532)                      # CPU_PA_RISC2_0
-                        case "${sc_kernel_bits}" in
-                          32) HP_ARCH="hppa2.0n" ;;
-                          64) HP_ARCH="hppa2.0w" ;;
+                   sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                   case "${sc_cpu_version}" in
+                     523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                     528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                     532)                      # CPU_PA_RISC2_0
+                       case "${sc_kernel_bits}" in
+                         32) HP_ARCH="hppa2.0n" ;;
+                         64) HP_ARCH="hppa2.0w" ;;
                          '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-                        esac ;;
-                    esac
+                       esac ;;
+                   esac
                fi
                if [ "${HP_ARCH}" = "" ]; then
                    eval $set_cc_for_build
-                   sed 's/^              //' << EOF >$dummy.c
+                   sed 's/^            //' << EOF >$dummy.c
 
-              #define _HPUX_SOURCE
-              #include <stdlib.h>
-              #include <unistd.h>
+               #define _HPUX_SOURCE
+               #include <stdlib.h>
+               #include <unistd.h>
 
-              int main ()
-              {
-              #if defined(_SC_KERNEL_BITS)
-                  long bits = sysconf(_SC_KERNEL_BITS);
-              #endif
-                  long cpu  = sysconf (_SC_CPU_VERSION);
+               int main ()
+               {
+               #if defined(_SC_KERNEL_BITS)
+                   long bits = sysconf(_SC_KERNEL_BITS);
+               #endif
+                   long cpu  = sysconf (_SC_CPU_VERSION);
 
-                  switch (cpu)
-               {
-               case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-               case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-               case CPU_PA_RISC2_0:
-              #if defined(_SC_KERNEL_BITS)
-                   switch (bits)
-                       {
-                       case 64: puts ("hppa2.0w"); break;
-                       case 32: puts ("hppa2.0n"); break;
-                       default: puts ("hppa2.0"); break;
-                       } break;
-              #else  /* !defined(_SC_KERNEL_BITS) */
-                   puts ("hppa2.0"); break;
-              #endif
-               default: puts ("hppa1.0"); break;
-               }
-                  exit (0);
-              }
+                   switch (cpu)
+                       {
+                       case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+                       case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+                       case CPU_PA_RISC2_0:
+               #if defined(_SC_KERNEL_BITS)
+                           switch (bits)
+                               {
+                               case 64: puts ("hppa2.0w"); break;
+                               case 32: puts ("hppa2.0n"); break;
+                               default: puts ("hppa2.0"); break;
+                               } break;
+               #else  /* !defined(_SC_KERNEL_BITS) */
+                           puts ("hppa2.0"); break;
+               #endif
+                       default: puts ("hppa1.0"); break;
+                       }
+                   exit (0);
+               }
 EOF
                    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
                    test -z "$HP_ARCH" && HP_ARCH=hppa
@@ -730,22 +734,22 @@ EOF
        exit ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
        echo c1-convex-bsd
-        exit ;;
+       exit ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
        if getsysinfo -f scalar_acc
        then echo c32-convex-bsd
        else echo c2-convex-bsd
        fi
-        exit ;;
+       exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
        echo c34-convex-bsd
-        exit ;;
+       exit ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
        echo c38-convex-bsd
-        exit ;;
+       exit ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
        echo c4-convex-bsd
-        exit ;;
+       exit ;;
     CRAY*Y-MP:*:*:*)
        echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit ;;
@@ -769,14 +773,14 @@ EOF
        exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
        FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit ;;
+       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+       FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+       echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+       exit ;;
     5000:UNIX_System_V:4.*:*)
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+       FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+       echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
        exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
@@ -788,30 +792,35 @@ EOF
        echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
        exit ;;
     *:FreeBSD:*:*)
-       case ${UNAME_MACHINE} in
-           pc98)
-               echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+       UNAME_PROCESSOR=`/usr/bin/uname -p`
+       case ${UNAME_PROCESSOR} in
            amd64)
                echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
            *)
-               echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+               echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
        esac
        exit ;;
     i*:CYGWIN*:*)
        echo ${UNAME_MACHINE}-pc-cygwin
        exit ;;
+    *:MINGW64*:*)
+       echo ${UNAME_MACHINE}-pc-mingw64
+       exit ;;
     *:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit ;;
+    i*:MSYS*:*)
+       echo ${UNAME_MACHINE}-pc-msys
+       exit ;;
     i*:windows32*:*)
-       # uname -m includes "-pc" on this system.
-       echo ${UNAME_MACHINE}-mingw32
+       # uname -m includes "-pc" on this system.
+       echo ${UNAME_MACHINE}-mingw32
        exit ;;
     i*:PW*:*)
        echo ${UNAME_MACHINE}-pc-pw32
        exit ;;
     *:Interix*:*)
-       case ${UNAME_MACHINE} in
+       case ${UNAME_MACHINE} in
            x86)
                echo i586-pc-interix${UNAME_RELEASE}
                exit ;;
@@ -857,6 +866,13 @@ EOF
     i*86:Minix:*:*)
        echo ${UNAME_MACHINE}-pc-minix
        exit ;;
+    aarch64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    aarch64_be:Linux:*:*)
+       UNAME_MACHINE=aarch64_be
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
     alpha:Linux:*:*)
        case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
          EV5)   UNAME_MACHINE=alphaev5 ;;
@@ -866,7 +882,7 @@ EOF
          EV6)   UNAME_MACHINE=alphaev6 ;;
          EV67)  UNAME_MACHINE=alphaev67 ;;
          EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
+       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}
@@ -878,20 +894,29 @@ EOF
        then
            echo ${UNAME_MACHINE}-unknown-linux-gnu
        else
-           echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+           if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+               | grep -q __ARM_PCS_VFP
+           then
+               echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+           else
+               echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+           fi
        fi
        exit ;;
     avr32*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
        exit ;;
     cris:Linux:*:*)
-       echo cris-axis-linux-gnu
+       echo ${UNAME_MACHINE}-axis-linux-gnu
        exit ;;
     crisv32:Linux:*:*)
-       echo crisv32-axis-linux-gnu
+       echo ${UNAME_MACHINE}-axis-linux-gnu
        exit ;;
     frv:Linux:*:*)
-       echo frv-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
+    hexagon:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
        exit ;;
     i*86:Linux:*:*)
        LIBC=gnu
@@ -933,7 +958,7 @@ EOF
        test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
        ;;
     or32:Linux:*:*)
-       echo or32-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
        exit ;;
     padre:Linux:*:*)
        echo sparc-unknown-linux-gnu
@@ -959,7 +984,7 @@ EOF
        echo ${UNAME_MACHINE}-ibm-linux
        exit ;;
     sh64*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
        exit ;;
     sh*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -967,14 +992,17 @@ EOF
     sparc:Linux:*:* | sparc64:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
        exit ;;
+    tile*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit ;;
     vax:Linux:*:*)
        echo ${UNAME_MACHINE}-dec-linux-gnu
        exit ;;
     x86_64:Linux:*:*)
-       echo x86_64-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
        exit ;;
     xtensa*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
        exit ;;
     i*86:DYNIX/ptx:4*:*)
        # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -983,11 +1011,11 @@ EOF
        echo i386-sequent-sysv4
        exit ;;
     i*86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
+       # Unixware is an offshoot of SVR4, but it has its own version
+       # number series starting with 2...
+       # I am not positive that other SVR4 systems won't match this,
        # I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
+       # Use sysv4.2uw... so that sysv4* matches it.
        echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
        exit ;;
     i*86:OS/2:*:*)
@@ -1019,7 +1047,7 @@ EOF
        fi
        exit ;;
     i*86:*:5:[678]*)
-       # UnixWare 7.x, OpenUNIX and OpenServer 6.
+       # UnixWare 7.x, OpenUNIX and OpenServer 6.
        case `/bin/uname -X | grep "^Machine"` in
            *486*)           UNAME_MACHINE=i486 ;;
            *Pentium)        UNAME_MACHINE=i586 ;;
@@ -1047,13 +1075,13 @@ EOF
        exit ;;
     pc:*:*:*)
        # Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i586.
+       # uname -m prints for DJGPP always 'pc', but it prints nothing about
+       # the processor, so we play safe by assuming i586.
        # Note: whatever this is, it MUST be the same as what config.sub
        # prints for the "djgpp" host, or else GDB configury will decide that
        # this is a cross-build.
        echo i586-pc-msdosdjgpp
-        exit ;;
+       exit ;;
     Intel:Mach:3*:*)
        echo i386-pc-mach3
        exit ;;
@@ -1088,8 +1116,8 @@ EOF
        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
          && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && { echo i486-ncr-sysv4; exit; } ;;
+       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+         && { echo i486-ncr-sysv4; exit; } ;;
     NCR*:*:4.2:* | MPRAS*:*:4.2:*)
        OS_REL='.3'
        test -r /etc/.relid \
@@ -1132,10 +1160,10 @@ EOF
                echo ns32k-sni-sysv
        fi
        exit ;;
-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel@ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit ;;
+    PENTIUM:*:4.0*:*)  # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                       # says <Richard.M.Bartel@ccMail.Census.GOV>
+       echo i586-unisys-sysv4
+       exit ;;
     *:UNIX_System_V:4*:FTX*)
        # From Gerald Hewes <hewes@openmarket.com>.
        # How about differentiating between stratus architectures? -djm
@@ -1161,11 +1189,11 @@ EOF
        exit ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
        if [ -d /usr/nec ]; then
-               echo mips-nec-sysv${UNAME_RELEASE}
+               echo mips-nec-sysv${UNAME_RELEASE}
        else
-               echo mips-unknown-sysv${UNAME_RELEASE}
+               echo mips-unknown-sysv${UNAME_RELEASE}
        fi
-        exit ;;
+       exit ;;
     BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
        echo powerpc-be-beos
        exit ;;
@@ -1178,6 +1206,9 @@ EOF
     BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
        echo i586-pc-haiku
        exit ;;
+    x86_64:Haiku:*:*)
+       echo x86_64-unknown-haiku
+       exit ;;
     SX-4:SUPER-UX:*:*)
        echo sx4-nec-superux${UNAME_RELEASE}
        exit ;;
@@ -1230,7 +1261,10 @@ EOF
     *:QNX:*:4*)
        echo i386-pc-qnx
        exit ;;
-    NSE-?:NONSTOP_KERNEL:*:*)
+    NEO-?:NONSTOP_KERNEL:*:*)
+       echo neo-tandem-nsk${UNAME_RELEASE}
+       exit ;;
+    NSE-*:NONSTOP_KERNEL:*:*)
        echo nse-tandem-nsk${UNAME_RELEASE}
        exit ;;
     NSR-?:NONSTOP_KERNEL:*:*)
@@ -1275,13 +1309,13 @@ EOF
        echo pdp10-unknown-its
        exit ;;
     SEI:*:*:SEIUX)
-        echo mips-sei-seiux${UNAME_RELEASE}
+       echo mips-sei-seiux${UNAME_RELEASE}
        exit ;;
     *:DragonFly:*:*)
        echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
        exit ;;
     *:*VMS:*:*)
-       UNAME_MACHINE=`(uname -p) 2>/dev/null`
+       UNAME_MACHINE=`(uname -p) 2>/dev/null`
        case "${UNAME_MACHINE}" in
            A*) echo alpha-dec-vms ; exit ;;
            I*) echo ia64-dec-vms ; exit ;;
@@ -1299,11 +1333,11 @@ EOF
     i*86:AROS:*:*)
        echo ${UNAME_MACHINE}-pc-aros
        exit ;;
+    x86_64:VMkernel:*:*)
+       echo ${UNAME_MACHINE}-unknown-esx
+       exit ;;
 esac
 
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
 eval $set_cc_for_build
 cat >$dummy.c <<EOF
 #ifdef _SEQUENT_
@@ -1321,11 +1355,11 @@ main ()
 #include <sys/param.h>
   printf ("m68k-sony-newsos%s\n",
 #ifdef NEWSOS4
-          "4"
+       "4"
 #else
-         ""
+       ""
 #endif
-         ); exit (0);
+       ); exit (0);
 #endif
 #endif
 
index 9c5efc1..c28a268 100644 (file)
 /* Define if GnuTLS support is enabled */
 #undef HAVE_GNUTLS
 
+/* Define to 1 if you have the `gnutls_certificate_get_issuer' function. */
+#undef HAVE_GNUTLS_CERTIFICATE_GET_ISSUER
+
 /* Define to 1 if you have the `gnutls_certificate_get_x509_cas' function. */
 #undef HAVE_GNUTLS_CERTIFICATE_GET_X509_CAS
 
-/* Define to 1 if you have the `gnutls_certificate_verify_peers2' function. */
-#undef HAVE_GNUTLS_CERTIFICATE_VERIFY_PEERS2
-
 /* Define to 1 if you have the `gnutls_session_get_data2' function. */
 #undef HAVE_GNUTLS_SESSION_GET_DATA2
 
 /* Define to 1 if you have the `gnutls_sign_callback_set' function. */
 #undef HAVE_GNUTLS_SIGN_CALLBACK_SET
 
+/* Define to 1 if you have the `gnutls_x509_crt_sign2' function. */
+#undef HAVE_GNUTLS_X509_CRT_SIGN2
+
 /* Define to 1 if you have the `gnutls_x509_dn_get_rdn_ava' function. */
 #undef HAVE_GNUTLS_X509_DN_GET_RDN_AVA
 
 /* Define to 1 if you have the <sys/types.h> header file. */
 #undef HAVE_SYS_TYPES_H
 
+/* Define to 1 if you have the <sys/uio.h> header file. */
+#undef HAVE_SYS_UIO_H
+
 /* Define if the timezone global is available */
 #undef HAVE_TIMEZONE
 
index dd8b30e..77a0358 100644 (file)
--- a/config.hw
+++ b/config.hw
@@ -25,9 +25,9 @@
 
 #ifdef WIN32
 
-#define NEON_VERSION "0.29.6"
+#define NEON_VERSION "0.30.0"
 #define NE_VERSION_MAJOR (0)
-#define NE_VERSION_MINOR (29)
+#define NE_VERSION_MINOR (30)
 
 #define HAVE_ERRNO_H
 #define HAVE_LIMITS_H
 
 #define HAVE_SSPI
 
+#define NE_HAVE_TS_SSL 1
+
 /* Define to enable debugging */
 #define NE_DEBUGGING 1
 
 #define NE_FMT_SIZE_T "u"
 #define NE_FMT_SSIZE_T "d"
 #define NE_FMT_OFF_T "ld"
+#define NE_FMT_OFF64_T "I64d"
 #define NE_FMT_NE_OFF_T NE_FMT_OFF_T
 
 #ifndef NE_FMT_XML_SIZE
 #define strcasecmp                     strcmpi
 #define strncasecmp                    strnicmp
 #endif
+#if defined(_MSC_VER) && _MSC_VER >= 1300
+#define HAVE_STRTOLL
+#define strtoll                                _strtoi64
+#endif
 #define ssize_t                                int
 #define inline                          __inline
+#if defined(NE_LFS)
+#define lseek64                                _lseeki64
+#define fstat64                                _fstat64
+#define stat64                         __stat64
+#else
 #define off_t                           _off_t
+#endif
 
 #ifndef USE_GETADDRINFO
 #define in_addr_t                       unsigned int
index c2d7204..5bee759 100644 (file)
 
 #define HAVE_SSPI
 
+#define NE_HAVE_TS_SSL 1
+
 /* Define to enable debugging */
 #define NE_DEBUGGING 1
 
 #define NE_FMT_SIZE_T "u"
 #define NE_FMT_SSIZE_T "d"
 #define NE_FMT_OFF_T "ld"
+#define NE_FMT_OFF64_T "I64d"
 #define NE_FMT_NE_OFF_T NE_FMT_OFF_T
 
 #ifndef NE_FMT_XML_SIZE
 #define strcasecmp                     strcmpi
 #define strncasecmp                    strnicmp
 #endif
+#if defined(_MSC_VER) && _MSC_VER >= 1300
+#define HAVE_STRTOLL
+#define strtoll                                _strtoi64
+#endif
 #define ssize_t                                int
 #define inline                          __inline
+#if defined(NE_LFS)
+#define lseek64                                _lseeki64
+#define fstat64                                _fstat64
+#define stat64                         __stat64
+#else
 #define off_t                           _off_t
+#endif
 
 #ifndef USE_GETADDRINFO
 #define in_addr_t                       unsigned int
index 2a55a50..52f04bc 100755 (executable)
@@ -1,38 +1,33 @@
 #! /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, 2009
-#   Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+#   2011, 2012, 2013 Free Software Foundation, Inc.
 
-timestamp='2009-11-20'
+timestamp='2012-12-29'
 
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# 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
-# the Free Software Foundation; either version 2 of the License, or
+# 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
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
 #
 # 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., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 
 
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
@@ -75,8 +70,9 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
+2012, 2013 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -123,13 +119,18 @@ esac
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
-  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | \
   kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
+  android-linux)
+    os=-linux-android
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+    ;;
   *)
     basic_machine=`echo $1 | sed 's/-[^-]*$//'`
     if [ $basic_machine != $1 ]
@@ -152,12 +153,12 @@ 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 | -microblaze)
+       -apple | -axis | -knuth | -cray | -microblaze*)
                os=
                basic_machine=$1
                ;;
-        -bluegene*)
-               os=-cnk
+       -bluegene*)
+               os=-cnk
                ;;
        -sim | -cisco | -oki | -wec | -winbond)
                os=
@@ -173,10 +174,10 @@ case $os in
                os=-chorusos
                basic_machine=$1
                ;;
-       -chorusrdb)
-               os=-chorusrdb
+       -chorusrdb)
+               os=-chorusrdb
                basic_machine=$1
-               ;;
+               ;;
        -hiux*)
                os=-hiuxwe2
                ;;
@@ -221,6 +222,12 @@ case $os in
        -isc*)
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
+       -lynx*178)
+               os=-lynxos178
+               ;;
+       -lynx*5)
+               os=-lynxos5
+               ;;
        -lynx*)
                os=-lynxos
                ;;
@@ -245,20 +252,27 @@ case $basic_machine in
        # Some are omitted here because they have special meanings below.
        1750a | 580 \
        | a29k \
+       | aarch64 | aarch64_be \
        | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
        | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
        | am33_2.0 \
-       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+       | arc \
+       | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+       | avr | avr32 \
+       | be32 | be64 \
        | bfin \
        | c4x | clipper \
        | d10v | d30v | dlx | dsp16xx \
+       | epiphany \
        | fido | fr30 | frv \
        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+       | hexagon \
        | i370 | i860 | i960 | ia64 \
        | ip2k | iq2000 \
+       | le32 | le64 \
        | lm32 \
        | m32c | m32r | m32rle | m68000 | m68k | m88k \
-       | maxq | mb | microblaze | mcore | mep | metag \
+       | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
        | mips | mipsbe | mipseb | mipsel | mipsle \
        | mips16 \
        | mips64 | mips64el \
@@ -281,29 +295,39 @@ case $basic_machine in
        | moxie \
        | mt \
        | msp430 \
+       | nds32 | nds32le | nds32be \
        | nios | nios2 \
        | ns16k | ns32k \
+       | open8 \
        | or32 \
        | pdp10 | pdp11 | pj | pjl \
-       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+       | powerpc | powerpc64 | powerpc64le | powerpcle \
        | pyramid \
-       | rx \
+       | rl78 | 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 \
        | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
        | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-       | spu | strongarm \
-       | tahoe | thumb | tic4x | tic80 | tron \
+       | spu \
+       | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
        | ubicom32 \
-       | v850 | v850e \
+       | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
        | we32k \
-       | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+       | x86 | xc16x | xstormy16 | xtensa \
        | z8k | z80)
                basic_machine=$basic_machine-unknown
                ;;
-       m6811 | m68hc11 | m6812 | m68hc12 | picochip)
-               # Motorola 68HC11/12.
+       c54x)
+               basic_machine=tic54x-unknown
+               ;;
+       c55x)
+               basic_machine=tic55x-unknown
+               ;;
+       c6x)
+               basic_machine=tic6x-unknown
+               ;;
+       m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
                basic_machine=$basic_machine-unknown
                os=-none
                ;;
@@ -313,6 +337,21 @@ case $basic_machine in
                basic_machine=mt-unknown
                ;;
 
+       strongarm | thumb | xscale)
+               basic_machine=arm-unknown
+               ;;
+       xgate)
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
+       xscaleeb)
+               basic_machine=armeb-unknown
+               ;;
+
+       xscaleel)
+               basic_machine=armel-unknown
+               ;;
+
        # We use `pc' rather than `unknown'
        # because (1) that's what they normally are, and
        # (2) the word "unknown" tends to confuse beginning users.
@@ -327,25 +366,30 @@ case $basic_machine in
        # Recognize the basic CPU types with company name.
        580-* \
        | a29k-* \
+       | aarch64-* | aarch64_be-* \
        | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
        | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
        | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
        | avr-* | avr32-* \
+       | be32-* | be64-* \
        | bfin-* | bs2000-* \
-       | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+       | c[123]* | c30-* | [cjt]90-* | c4x-* \
        | clipper-* | craynv-* | cydra-* \
        | d10v-* | d30v-* | dlx-* \
        | elxsi-* \
        | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
        | h8300-* | h8500-* \
        | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+       | hexagon-* \
        | i*86-* | i860-* | i960-* | ia64-* \
        | ip2k-* | iq2000-* \
+       | le32-* | le64-* \
        | lm32-* \
        | m32c-* | m32r-* | m32rle-* \
        | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+       | microblaze-* | microblazeel-* \
        | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
        | mips16-* \
        | mips64-* | mips64el-* \
@@ -367,25 +411,29 @@ case $basic_machine in
        | mmix-* \
        | mt-* \
        | msp430-* \
+       | nds32-* | nds32le-* | nds32be-* \
        | nios-* | nios2-* \
        | none-* | np1-* | ns16k-* | ns32k-* \
+       | open8-* \
        | orion-* \
        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
        | pyramid-* \
-       | romp-* | rs6000-* | rx-* \
+       | rl78-* | 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-* \
        | sparclite-* \
-       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
-       | tahoe-* | thumb-* \
-       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+       | tahoe-* \
+       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+       | tile*-* \
        | tron-* \
        | ubicom32-* \
-       | v850-* | v850e-* | vax-* \
+       | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+       | vax-* \
        | we32k-* \
-       | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+       | x86-* | x86_64-* | xc16x-* | xps100-* \
        | xstormy16-* | xtensa*-* \
        | ymp-* \
        | z8k-* | z80-*)
@@ -410,7 +458,7 @@ case $basic_machine in
                basic_machine=a29k-amd
                os=-udi
                ;;
-       abacus)
+       abacus)
                basic_machine=abacus-unknown
                ;;
        adobe68k)
@@ -480,11 +528,20 @@ case $basic_machine in
                basic_machine=powerpc-ibm
                os=-cnk
                ;;
+       c54x-*)
+               basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       c55x-*)
+               basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       c6x-*)
+               basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
        c90)
                basic_machine=c90-cray
                os=-unicos
                ;;
-        cegcc)
+       cegcc)
                basic_machine=arm-unknown
                os=-cegcc
                ;;
@@ -516,7 +573,7 @@ case $basic_machine in
                basic_machine=craynv-cray
                os=-unicosmp
                ;;
-       cr16)
+       cr16 | cr16-*)
                basic_machine=cr16-unknown
                os=-elf
                ;;
@@ -674,7 +731,6 @@ case $basic_machine in
        i370-ibm* | ibm*)
                basic_machine=i370-ibm
                ;;
-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
        i*86v32)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv32
@@ -732,9 +788,13 @@ case $basic_machine in
                basic_machine=ns32k-utek
                os=-sysv
                ;;
-        microblaze)
+       microblaze*)
                basic_machine=microblaze-xilinx
                ;;
+       mingw64)
+               basic_machine=x86_64-pc
+               os=-mingw64
+               ;;
        mingw32)
                basic_machine=i386-pc
                os=-mingw32
@@ -771,10 +831,18 @@ case $basic_machine in
        ms1-*)
                basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
                ;;
+       msys)
+               basic_machine=i386-pc
+               os=-msys
+               ;;
        mvs)
                basic_machine=i370-ibm
                os=-mvs
                ;;
+       nacl)
+               basic_machine=le32-unknown
+               os=-nacl
+               ;;
        ncr3000)
                basic_machine=i486-ncr
                os=-sysv4
@@ -839,6 +907,12 @@ case $basic_machine in
        np1)
                basic_machine=np1-gould
                ;;
+       neo-tandem)
+               basic_machine=neo-tandem
+               ;;
+       nse-tandem)
+               basic_machine=nse-tandem
+               ;;
        nsr-tandem)
                basic_machine=nsr-tandem
                ;;
@@ -921,9 +995,10 @@ case $basic_machine in
                ;;
        power)  basic_machine=power-ibm
                ;;
-       ppc)    basic_machine=powerpc-unknown
+       ppc | ppcbe)    basic_machine=powerpc-unknown
                ;;
-       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+       ppc-* | ppcbe-*)
+               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        ppcle | powerpclittle | ppc-le | powerpc-little)
                basic_machine=powerpcle-unknown
@@ -933,7 +1008,7 @@ case $basic_machine in
                ;;
        ppc64)  basic_machine=powerpc64-unknown
                ;;
-       ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+       ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        ppc64le | powerpc64little | ppc64-le | powerpc64-little)
                basic_machine=powerpc64le-unknown
@@ -948,7 +1023,11 @@ case $basic_machine in
                basic_machine=i586-unknown
                os=-pw32
                ;;
-       rdos)
+       rdos | rdos64)
+               basic_machine=x86_64-pc
+               os=-rdos
+               ;;
+       rdos32)
                basic_machine=i386-pc
                os=-rdos
                ;;
@@ -1017,6 +1096,9 @@ case $basic_machine in
                basic_machine=i860-stratus
                os=-sysv4
                ;;
+       strongarm-* | thumb-*)
+               basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
        sun2)
                basic_machine=m68000-sun
                ;;
@@ -1073,20 +1155,8 @@ case $basic_machine in
                basic_machine=t90-cray
                os=-unicos
                ;;
-       tic54x | c54x*)
-               basic_machine=tic54x-unknown
-               os=-coff
-               ;;
-       tic55x | c55x*)
-               basic_machine=tic55x-unknown
-               os=-coff
-               ;;
-       tic6x | c6x*)
-               basic_machine=tic6x-unknown
-               os=-coff
-               ;;
        tile*)
-               basic_machine=tile-unknown
+               basic_machine=$basic_machine-unknown
                os=-linux-gnu
                ;;
        tx39)
@@ -1156,6 +1226,9 @@ case $basic_machine in
        xps | xps100)
                basic_machine=xps100-honeywell
                ;;
+       xscale-* | xscalee[bl]-*)
+               basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+               ;;
        ymp)
                basic_machine=ymp-cray
                os=-unicos
@@ -1253,11 +1326,11 @@ esac
 if [ x"$os" != x"" ]
 then
 case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
+       # 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
+       -auroraux)
+               os=-auroraux
                ;;
        -solaris1 | -solaris1.*)
                os=`echo $os | sed -e 's|solaris1|sunos4|'`
@@ -1287,14 +1360,15 @@ case $os in
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
              | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-             | -openbsd* | -solidbsd* \
+             | -bitrig* | -openbsd* | -solidbsd* \
              | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
              | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
              | -chorusos* | -chorusrdb* | -cegcc* \
-             | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+             | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+             | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+             | -linux-newlib* | -linux-musl* | -linux-uclibc* \
              | -uxpv* | -beos* | -mpeix* | -udk* \
              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1341,7 +1415,7 @@ case $os in
        -opened*)
                os=-openedition
                ;;
-        -os400*)
+       -os400*)
                os=-os400
                ;;
        -wince*)
@@ -1390,7 +1464,7 @@ case $os in
        -sinix*)
                os=-sysv4
                ;;
-        -tpf*)
+       -tpf*)
                os=-tpf
                ;;
        -triton*)
@@ -1435,6 +1509,8 @@ case $os in
        -dicos*)
                os=-dicos
                ;;
+       -nacl*)
+               ;;
        -none)
                ;;
        *)
@@ -1457,10 +1533,10 @@ else
 # system, and we'll never get to this point.
 
 case $basic_machine in
-        score-*)
+       score-*)
                os=-elf
                ;;
-        spu-*)
+       spu-*)
                os=-elf
                ;;
        *-acorn)
@@ -1472,8 +1548,20 @@ case $basic_machine in
        arm*-semi)
                os=-aout
                ;;
-        c4x-* | tic4x-*)
-               os=-coff
+       c4x-* | tic4x-*)
+               os=-coff
+               ;;
+       hexagon-*)
+               os=-elf
+               ;;
+       tic54x-*)
+               os=-coff
+               ;;
+       tic55x-*)
+               os=-coff
+               ;;
+       tic6x-*)
+               os=-coff
                ;;
        # This must come before the *-dec entry.
        pdp10-*)
@@ -1493,14 +1581,11 @@ case $basic_machine in
                ;;
        m68000-sun)
                os=-sunos3
-               # This also exists in the configure program, but was not the
-               # default.
-               # os=-sunos4
                ;;
        m68*-cisco)
                os=-aout
                ;;
-        mep-*)
+       mep-*)
                os=-elf
                ;;
        mips*-cisco)
@@ -1527,7 +1612,7 @@ case $basic_machine in
        *-ibm)
                os=-aix
                ;;
-       *-knuth)
+       *-knuth)
                os=-mmixware
                ;;
        *-wec)
index 0062665..b0a7908 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,13 +1,11 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.66 for neon 0.29.6.
+# Generated by GNU Autoconf 2.69 for neon 0.30.0.
 #
 # Report bugs to <neon@lists.manyfish.co.uk>.
 #
 #
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -96,6 +94,7 @@ fi
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -140,6 +139,31 @@ export LANGUAGE
 # CDPATH.
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
   as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
@@ -173,7 +197,8 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
 else
   exitcode=1; echo positional parameters were not saved.
 fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
   as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -226,14 +251,25 @@ IFS=$as_save_IFS
 
 
       if test "x$CONFIG_SHELL" != x; then :
-  # We cannot yet assume a decent shell, so we have to provide a
-       # neutralization value for shells without unset; and this also
-       # works around shells that cannot unset nonexistent variables.
-       BASH_ENV=/dev/null
-       ENV=/dev/null
-       (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-       export CONFIG_SHELL
-       exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
 fi
 
     if test x$as_have_required = xno; then :
@@ -336,6 +372,14 @@ $as_echo X"$as_dir" |
 
 
 } # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
 # as_fn_append VAR VALUE
 # ----------------------
 # Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -457,6 +501,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
   chmod +x "$as_me.lineno" ||
     { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
   # original and so on.  Autoconf is especially sensitive to this).
@@ -491,16 +539,16 @@ if (echo >conf$$.file) 2>/dev/null; then
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
@@ -512,28 +560,8 @@ else
   as_mkdir_p=false
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-       test -d "$1/.";
-      else
-       case $1 in #(
-       -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -567,8 +595,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='neon'
 PACKAGE_TARNAME='neon'
-PACKAGE_VERSION='0.29.6'
-PACKAGE_STRING='neon 0.29.6'
+PACKAGE_VERSION='0.30.0'
+PACKAGE_STRING='neon 0.30.0'
 PACKAGE_BUGREPORT='neon@lists.manyfish.co.uk'
 PACKAGE_URL=''
 
@@ -618,6 +646,8 @@ top_builddir
 NEON_BUILD_BUNDLED
 NEON_VERSION
 ALL_LINGUAS
+HAVE_LD_VERSION_SCRIPT_FALSE
+HAVE_LD_VERSION_SCRIPT_TRUE
 NEON_PC_LIBS
 TEST_LDFLAGS
 PK12UTIL
@@ -636,10 +666,13 @@ OTOOL
 LIPO
 NMEDIT
 DSYMUTIL
+MANIFEST_TOOL
 AWK
 RANLIB
 STRIP
+ac_ct_AR
 AR
+DLLTOOL
 OBJDUMP
 LN_S
 NM
@@ -741,6 +774,7 @@ enable_static
 with_pic
 enable_fast_install
 with_gnu_ld
+with_sysroot
 enable_libtool_lock
 with_libxml2
 with_expat
@@ -822,8 +856,9 @@ do
   fi
 
   case $ac_option in
-  *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *)   ac_optarg=yes ;;
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
   esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1163,7 +1198,7 @@ Try \`$0 --help' for more information"
     $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
     ;;
 
   esac
@@ -1214,8 +1249,6 @@ target=$target_alias
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
-    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used" >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
   fi
@@ -1301,7 +1334,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.6 to adapt to many kinds of systems.
+\`configure' configures neon 0.30.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1366,7 +1399,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of neon 0.29.6:";;
+     short | recursive ) echo "Configuration of neon 0.30.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1405,9 +1438,11 @@ Optional Packages:
   --with-ca-bundle        specify filename of an SSL CA root bundle
   --without-gssapi        disable GSSAPI support
   --without-libproxy      disable libproxy support
-  --with-pic              try to use only PIC/non-PIC objects [default=use
+  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
                           both]
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-sysroot=DIR Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).
   --with-libxml2          force use of libxml 2.x
   --with-expat            force use of expat
 
@@ -1487,10 +1522,10 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-neon configure 0.29.6
-generated by GNU Autoconf 2.66
+neon configure 0.30.0
+generated by GNU Autoconf 2.69
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 
@@ -1539,7 +1574,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
        ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_compile
@@ -1565,7 +1600,7 @@ $as_echo "$ac_try_echo"; } >&5
     mv -f conftest.er1 conftest.err
   fi
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } >/dev/null && {
+  test $ac_status = 0; } > conftest.i && {
         test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
         test ! -s conftest.err
        }; then :
@@ -1576,7 +1611,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
     ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_cpp
@@ -1589,10 +1624,10 @@ fi
 ac_fn_c_check_header_mongrel ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval "test \"\${$3+set}\"" = set; then :
+  if eval \${$3+:} false; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 fi
 eval ac_res=\$$3
@@ -1628,7 +1663,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
 else
   ac_header_preproc=no
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
 $as_echo "$ac_header_preproc" >&6; }
 
@@ -1659,7 +1694,7 @@ $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
 esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=\$ac_header_compiler"
@@ -1668,7 +1703,7 @@ eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_mongrel
 
@@ -1709,7 +1744,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
        ac_retval=$ac_status
 fi
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_run
@@ -1723,7 +1758,7 @@ ac_fn_c_check_header_compile ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1741,7 +1776,7 @@ fi
 eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_compile
 
@@ -1754,7 +1789,7 @@ ac_fn_c_check_type ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=no"
@@ -1795,7 +1830,7 @@ fi
 eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_type
 
@@ -1816,7 +1851,8 @@ int
 main ()
 {
 static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
 
   ;
   return 0;
@@ -1832,7 +1868,8 @@ int
 main ()
 {
 static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
 
   ;
   return 0;
@@ -1858,7 +1895,8 @@ int
 main ()
 {
 static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
 
   ;
   return 0;
@@ -1874,7 +1912,8 @@ int
 main ()
 {
 static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
 
   ;
   return 0;
@@ -1908,7 +1947,8 @@ int
 main ()
 {
 static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
 
   ;
   return 0;
@@ -1972,7 +2012,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 rm -f conftest.val
 
   fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_compute_int
@@ -1988,7 +2028,7 @@ ac_fn_c_check_decl ()
   as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
 $as_echo_n "checking whether $as_decl_name is declared... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2019,7 +2059,7 @@ fi
 eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_decl
 
@@ -2050,7 +2090,7 @@ $as_echo "$ac_try_echo"; } >&5
         test ! -s conftest.err
        } && test -s conftest$ac_exeext && {
         test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
+        test -x conftest$ac_exeext
        }; then :
   ac_retval=0
 else
@@ -2064,7 +2104,7 @@ fi
   # interfere with the next link command; also delete a directory that is
   # left behind by Apple's compiler.  We do this before executing the actions.
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_link
@@ -2077,7 +2117,7 @@ ac_fn_c_check_func ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2132,7 +2172,7 @@ fi
 eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_func
 
@@ -2145,7 +2185,7 @@ ac_fn_c_check_member ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
 $as_echo_n "checking for $2.$3... " >&6; }
-if eval "test \"\${$4+set}\"" = set; then :
+if eval \${$4+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2189,15 +2229,15 @@ fi
 eval ac_res=\$$4
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_member
 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.6, which was
-generated by GNU Autoconf 2.66.  Invocation command line was
+It was created by neon $as_me 0.30.0, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
 
@@ -2636,7 +2676,7 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
 $as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then :
+if ${ac_cv_path_install+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2656,7 +2696,7 @@ case $as_dir/ in #((
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-       if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+       if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
          if test $ac_prog = install &&
            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
            # AIX install.  It has an incompatible calling convention.
@@ -2741,12 +2781,12 @@ NEON_BUILD_BUNDLED=yes
 
 # Define the current versions.
 NE_VERSION_MAJOR=0
-NE_VERSION_MINOR=29
-NE_VERSION_PATCH=6
+NE_VERSION_MINOR=30
+NE_VERSION_PATCH=0
 NE_VERSION_TAG=
 
-# 0.29.x is backwards-compatible to 0.27.x, so AGE=2
-NE_LIBTOOL_VERSINFO="29:${NE_VERSION_PATCH}:2"
+# 0.30.x is backwards-compatible to 0.27.x, so AGE=3
+NE_LIBTOOL_VERSINFO="30:${NE_VERSION_PATCH}:3"
 
 
 
@@ -2786,7 +2826,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -2798,7 +2838,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2826,7 +2866,7 @@ if test -z "$ac_cv_prog_CC"; then
 set dummy gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -2838,7 +2878,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2879,7 +2919,7 @@ if test -z "$CC"; then
 set dummy ${ac_tool_prefix}cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -2891,7 +2931,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2919,7 +2959,7 @@ if test -z "$CC"; then
 set dummy cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -2932,7 +2972,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
@@ -2978,7 +3018,7 @@ if test -z "$CC"; then
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -2990,7 +3030,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3022,7 +3062,7 @@ do
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -3034,7 +3074,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3305,7 +3345,7 @@ rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
 ac_clean_files=$ac_clean_files_save
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 $as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then :
+if ${ac_cv_objext+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3356,7 +3396,7 @@ OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3393,7 +3433,7 @@ ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
@@ -3471,7 +3511,7 @@ else
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
@@ -3480,8 +3520,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
 struct buf { int x; };
 FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -3579,7 +3618,7 @@ if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then :
+  if ${ac_cv_prog_CPP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
       # Double quotes because CPP needs to be expanded
@@ -3609,7 +3648,7 @@ else
   # Broken: fails on valid input.
 continue
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
@@ -3625,11 +3664,11 @@ else
 ac_preproc_ok=:
 break
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then :
   break
 fi
@@ -3668,7 +3707,7 @@ else
   # Broken: fails on valid input.
 continue
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
@@ -3684,11 +3723,11 @@ else
 ac_preproc_ok=:
 break
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then :
 
 else
@@ -3707,7 +3746,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then :
+if ${ac_cv_path_GREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$GREP"; then
@@ -3721,7 +3760,7 @@ do
     for ac_prog in grep ggrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+      as_fn_executable_p "$ac_path_GREP" || continue
 # Check for GNU ac_path_GREP and select it if it is found.
   # Check for GNU $ac_path_GREP
 case `"$ac_path_GREP" --version 2>&1` in
@@ -3770,7 +3809,7 @@ $as_echo "$ac_cv_path_GREP" >&6; }
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
 $as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
+if ${ac_cv_path_EGREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -3787,7 +3826,7 @@ do
     for ac_prog in egrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+      as_fn_executable_p "$ac_path_EGREP" || continue
 # Check for GNU ac_path_EGREP and select it if it is found.
   # Check for GNU $ac_path_EGREP
 case `"$ac_path_EGREP" --version 2>&1` in
@@ -3837,7 +3876,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; }
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
+if ${ac_cv_header_stdc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3966,7 +4005,7 @@ done
 
 
   ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = x""yes; then :
+if test "x$ac_cv_header_minix_config_h" = xyes; then :
   MINIX=yes
 else
   MINIX=
@@ -3988,14 +4027,14 @@ $as_echo "#define _MINIX 1" >>confdefs.h
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if test "${ac_cv_safe_to_define___extensions__+set}" = set; then :
+if ${ac_cv_safe_to_define___extensions__+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#        define __EXTENSIONS__ 1
-         $ac_includes_default
+#         define __EXTENSIONS__ 1
+          $ac_includes_default
 int
 main ()
 {
@@ -4027,7 +4066,7 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
 $as_echo_n "checking for inline... " >&6; }
-if test "${ac_cv_c_inline+set}" = set; then :
+if ${ac_cv_c_inline+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_c_inline=no
@@ -4069,7 +4108,7 @@ esac
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
 $as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-if test "${ac_cv_c_const+set}" = set; then :
+if ${ac_cv_c_const+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4078,11 +4117,11 @@ else
 int
 main ()
 {
-/* FIXME: Include the comments suggested by Paul. */
+
 #ifndef __cplusplus
-  /* Ultrix mips cc rejects this.  */
+  /* Ultrix mips cc rejects this sort of thing.  */
   typedef int charset[2];
-  const charset cs;
+  const charset cs = { 0, 0 };
   /* SunOS 4.1.1 cc rejects this.  */
   char const *const *pcpcc;
   char **ppc;
@@ -4099,8 +4138,9 @@ main ()
   ++pcpcc;
   ppc = (char**) pcpcc;
   pcpcc = (char const *const *) ppc;
-  { /* SCO 3.2v4 cc rejects this.  */
-    char *t;
+  { /* SCO 3.2v4 cc rejects this sort of thing.  */
+    char tx;
+    char *t = &tx;
     char const *s = 0 ? (char *) 0 : (char const *) 0;
 
     *t++ = 0;
@@ -4116,10 +4156,10 @@ main ()
     iptr p = 0;
     ++p;
   }
-  { /* AIX XL C 1.02.0.0 rejects this saying
+  { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
        "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-    struct s { int j; const int *ap[3]; };
-    struct s *b; b->j = 5;
+    struct s { int j; const int *ap[3]; } bx;
+    struct s *b = &bx; b->j = 5;
   }
   { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
     const int foo = 10;
@@ -4148,7 +4188,7 @@ $as_echo "#define const /**/" >>confdefs.h
 fi
 
 ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = x""yes; then :
+if test "x$ac_cv_type_size_t" = xyes; then :
 
 else
 
@@ -4159,7 +4199,7 @@ _ACEOF
 fi
 
 ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
-if test "x$ac_cv_type_off_t" = x""yes; then :
+if test "x$ac_cv_type_off_t" = xyes; then :
 
 else
 
@@ -4173,7 +4213,7 @@ fi
 # Check for Darwin, which needs extra cpp and linker flags.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uname" >&5
 $as_echo_n "checking for uname... " >&6; }
-if test "${ne_cv_os_uname+set}" = set; then :
+if ${ne_cv_os_uname+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -4196,7 +4236,7 @@ fi
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -4230,7 +4270,7 @@ fi
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
 $as_echo_n "checking size of int... " >&6; }
-if test "${ac_cv_sizeof_int+set}" = set; then :
+if ${ac_cv_sizeof_int+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int"        "$ac_includes_default"; then :
@@ -4263,7 +4303,7 @@ _ACEOF
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
 $as_echo_n "checking size of long... " >&6; }
-if test "${ac_cv_sizeof_long+set}" = set; then :
+if ${ac_cv_sizeof_long+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long"        "$ac_includes_default"; then :
@@ -4296,7 +4336,7 @@ _ACEOF
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
 $as_echo_n "checking size of long long... " >&6; }
-if test "${ac_cv_sizeof_long_long+set}" = set; then :
+if ${ac_cv_sizeof_long_long+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long"        "$ac_includes_default"; then :
@@ -4326,7 +4366,7 @@ _ACEOF
 if test "$GCC" = "yes"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc -Wformat -Werror sanity" >&5
 $as_echo_n "checking for gcc -Wformat -Werror sanity... " >&6; }
-if test "${ne_cv_cc_werror+set}" = set; then :
+if ${ne_cv_cc_werror+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -4378,7 +4418,7 @@ fi
 
 
 
-for ac_header in errno.h stdarg.h string.h stdlib.h
+for ac_header in errno.h stdarg.h string.h stdlib.h sys/uio.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -4402,7 +4442,7 @@ done
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
 $as_echo_n "checking size of size_t... " >&6; }
-if test "${ac_cv_sizeof_size_t+set}" = set; then :
+if ${ac_cv_sizeof_size_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t"        "$ac_includes_default
@@ -4438,7 +4478,7 @@ _ACEOF
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print size_t" >&5
 $as_echo_n "checking how to print size_t... " >&6; }
-if test "${ne_cv_fmt_size_t+set}" = set; then :
+if ${ne_cv_fmt_size_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -4500,7 +4540,7 @@ _ACEOF
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5
 $as_echo_n "checking size of off_t... " >&6; }
-if test "${ac_cv_sizeof_off_t+set}" = set; then :
+if ${ac_cv_sizeof_off_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t"        "$ac_includes_default
@@ -4536,7 +4576,7 @@ _ACEOF
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print off_t" >&5
 $as_echo_n "checking how to print off_t... " >&6; }
-if test "${ne_cv_fmt_off_t+set}" = set; then :
+if ${ne_cv_fmt_off_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -4599,7 +4639,7 @@ _ACEOF
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of ssize_t" >&5
 $as_echo_n "checking size of ssize_t... " >&6; }
-if test "${ac_cv_sizeof_ssize_t+set}" = set; then :
+if ${ac_cv_sizeof_ssize_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (ssize_t))" "ac_cv_sizeof_ssize_t"        "$ac_includes_default
@@ -4635,7 +4675,7 @@ _ACEOF
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print ssize_t" >&5
 $as_echo_n "checking how to print ssize_t... " >&6; }
-if test "${ne_cv_fmt_ssize_t+set}" = set; then :
+if ${ne_cv_fmt_ssize_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -4692,7 +4732,7 @@ _ACEOF
 
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
 $as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if test "${ac_cv_c_bigendian+set}" = set; then :
+if ${ac_cv_c_bigendian+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_c_bigendian=unknown
@@ -4915,7 +4955,7 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
  esac
 
 ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strerror_r" = x""yes; then :
+if test "x$ac_cv_have_decl_strerror_r" = xyes; then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -4928,7 +4968,7 @@ _ACEOF
 for ac_func in strerror_r
 do :
   ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r"
-if test "x$ac_cv_func_strerror_r" = x""yes; then :
+if test "x$ac_cv_func_strerror_r" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_STRERROR_R 1
 _ACEOF
@@ -4938,7 +4978,7 @@ done
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5
 $as_echo_n "checking whether strerror_r returns char *... " >&6; }
-if test "${ac_cv_func_strerror_r_char_p+set}" = set; then :
+if ${ac_cv_func_strerror_r_char_p+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -5022,7 +5062,7 @@ else
    LIBS="$LIBS -lm"    # Always need -lm
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for trio_vsnprintf in -ltrio" >&5
 $as_echo_n "checking for trio_vsnprintf in -ltrio... " >&6; }
-if test "${ac_cv_lib_trio_trio_vsnprintf+set}" = set; then :
+if ${ac_cv_lib_trio_trio_vsnprintf+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -5056,11 +5096,11 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_trio_trio_vsnprintf" >&5
 $as_echo "$ac_cv_lib_trio_trio_vsnprintf" >&6; }
-if test "x$ac_cv_lib_trio_trio_vsnprintf" = x""yes; then :
+if test "x$ac_cv_lib_trio_trio_vsnprintf" = xyes; then :
   for ac_header in trio.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "trio.h" "ac_cv_header_trio_h" "$ac_includes_default"
-if test "x$ac_cv_header_trio_h" = x""yes; then :
+if test "x$ac_cv_header_trio_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_TRIO_H 1
 _ACEOF
@@ -5121,7 +5161,7 @@ done
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for timezone global" >&5
 $as_echo_n "checking for timezone global... " >&6; }
-if test "${ne_cv_cc_timezone+set}" = set; then :
+if ${ne_cv_cc_timezone+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -5205,7 +5245,7 @@ else
    ne_save_CPPFLAGS=$CPPFLAGS
    CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
    ac_fn_c_check_type "$LINENO" "off64_t" "ac_cv_type_off64_t" "$ac_includes_default"
-if test "x$ac_cv_type_off64_t" = x""yes; then :
+if test "x$ac_cv_type_off64_t" = xyes; then :
 
 
 
@@ -5217,7 +5257,7 @@ if test "x$ac_cv_type_off64_t" = x""yes; then :
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off64_t" >&5
 $as_echo_n "checking size of off64_t... " >&6; }
-if test "${ac_cv_sizeof_off64_t+set}" = set; then :
+if ${ac_cv_sizeof_off64_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off64_t))" "ac_cv_sizeof_off64_t"        "$ac_includes_default
@@ -5253,7 +5293,7 @@ _ACEOF
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print off64_t" >&5
 $as_echo_n "checking how to print off64_t... " >&6; }
-if test "${ne_cv_fmt_off64_t+set}" = set; then :
+if ${ne_cv_fmt_off64_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -5373,6 +5413,13 @@ cat >>confdefs.h <<_ACEOF
 #define NE_FMT_NE_OFF_T NE_FMT_OFF64_T
 _ACEOF
 
+
+if test "x${NE_LIBTOOL_RELEASE}y" = "xy"; then
+   NE_LIBTOOL_RELEASE="LFS"
+else
+   NE_LIBTOOL_RELEASE="${NE_LIBTOOL_RELEASE}-LFS"
+fi
+
 else
    cat >>confdefs.h <<_ACEOF
 #define NE_FMT_NE_OFF_T NE_FMT_OFF_T
@@ -5382,7 +5429,7 @@ fi
 
 
 ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp"
-if test "x$ac_cv_func_strcasecmp" = x""yes; then :
+if test "x$ac_cv_func_strcasecmp" = xyes; then :
   $as_echo "#define HAVE_STRCASECMP 1" >>confdefs.h
 
 else
@@ -5417,7 +5464,7 @@ fi
 
 if test "$ac_cv_func_stpcpy" = "yes"; then
   ac_fn_c_check_decl "$LINENO" "stpcpy" "ac_cv_have_decl_stpcpy" "$ac_includes_default"
-if test "x$ac_cv_have_decl_stpcpy" = x""yes; then :
+if test "x$ac_cv_have_decl_stpcpy" = xyes; then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -5441,7 +5488,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5
 $as_echo_n "checking for library containing socket... " >&6; }
-if test "${ne_cv_libsfor_socket+set}" = set; then :
+if ${ne_cv_libsfor_socket+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -5513,7 +5560,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing getaddrinfo" >&5
 $as_echo_n "checking for library containing getaddrinfo... " >&6; }
-if test "${ne_cv_libsfor_getaddrinfo+set}" = set; then :
+if ${ne_cv_libsfor_getaddrinfo+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -5647,7 +5694,7 @@ $as_echo "#define USE_GETADDRINFO 1" >>confdefs.h
 
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working AI_ADDRCONFIG" >&5
 $as_echo_n "checking for working AI_ADDRCONFIG... " >&6; }
-if test "${ne_cv_gai_addrconfig+set}" = set; then :
+if ${ne_cv_gai_addrconfig+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -5696,7 +5743,7 @@ else
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5
 $as_echo_n "checking for library containing gethostbyname... " >&6; }
-if test "${ne_cv_libsfor_gethostbyname+set}" = set; then :
+if ${ne_cv_libsfor_gethostbyname+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -5765,7 +5812,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing hstrerror" >&5
 $as_echo_n "checking for library containing hstrerror... " >&6; }
-if test "${ne_cv_libsfor_hstrerror+set}" = set; then :
+if ${ne_cv_libsfor_hstrerror+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -5834,7 +5881,7 @@ LIBS="$LIBS $NEON_LIBS"
 for ac_func in hstrerror
 do :
   ac_fn_c_check_func "$LINENO" "hstrerror" "ac_cv_func_hstrerror"
-if test "x$ac_cv_func_hstrerror" = x""yes; then :
+if test "x$ac_cv_func_hstrerror" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_HSTRERROR 1
 _ACEOF
@@ -5846,7 +5893,7 @@ LIBS=$ne_cf_save_LIBS
    # Older Unixes don't declare h_errno.
    ac_fn_c_check_decl "$LINENO" "h_errno" "ac_cv_have_decl_h_errno" "#include <netdb.h>
 "
-if test "x$ac_cv_have_decl_h_errno" = x""yes; then :
+if test "x$ac_cv_have_decl_h_errno" = xyes; then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -5865,7 +5912,7 @@ _ACEOF
 #endif
 
 "
-if test "x$ac_cv_type_in_addr_t" = x""yes; then :
+if test "x$ac_cv_type_in_addr_t" = xyes; then :
 
 else
 
@@ -5885,7 +5932,7 @@ ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "
 #endif
 
 "
-if test "x$ac_cv_type_socklen_t" = x""yes; then :
+if test "x$ac_cv_type_socklen_t" = xyes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_SOCKLEN_T 1
@@ -5902,7 +5949,7 @@ fi
 
 ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include <time.h>
 "
-if test "x$ac_cv_member_struct_tm_tm_gmtoff" = x""yes; then :
+if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_TM_TM_GMTOFF 1
@@ -5912,7 +5959,7 @@ _ACEOF
 fi
 ac_fn_c_check_member "$LINENO" "struct tm" "__tm_gmtoff" "ac_cv_member_struct_tm___tm_gmtoff" "#include <time.h>
 "
-if test "x$ac_cv_member_struct_tm___tm_gmtoff" = x""yes; then :
+if test "x$ac_cv_member_struct_tm___tm_gmtoff" = xyes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_TM___TM_GMTOFF 1
@@ -5940,11 +5987,11 @@ fi
 
 if test "$ne_use_zlib" = "yes"; then
     ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_zlib_h" = x""yes; then :
+if test "x$ac_cv_header_zlib_h" = xyes; then :
 
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflate in -lz" >&5
 $as_echo_n "checking for inflate in -lz... " >&6; }
-if test "${ac_cv_lib_z_inflate+set}" = set; then :
+if ${ac_cv_lib_z_inflate+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -5978,7 +6025,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflate" >&5
 $as_echo "$ac_cv_lib_z_inflate" >&6; }
-if test "x$ac_cv_lib_z_inflate" = x""yes; then :
+if test "x$ac_cv_lib_z_inflate" = xyes; then :
 
            NEON_LIBS="$NEON_LIBS -lz"
 
@@ -6074,7 +6121,7 @@ yes|openssl)
 set dummy pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $PKG_CONFIG in
@@ -6088,7 +6135,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6120,7 +6167,7 @@ if test "$PKG_CONFIG" = "no"; then
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing RSA_new" >&5
 $as_echo_n "checking for library containing RSA_new... " >&6; }
-if test "${ne_cv_libsfor_RSA_new+set}" = set; then :
+if ${ne_cv_libsfor_RSA_new+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -6205,7 +6252,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing SSL_library_init" >&5
 $as_echo_n "checking for library containing SSL_library_init... " >&6; }
-if test "${ne_cv_libsfor_SSL_library_init+set}" = set; then :
+if ${ne_cv_libsfor_SSL_library_init+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -6287,7 +6334,7 @@ fi
 else
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openssl pkg-config data" >&5
 $as_echo_n "checking for openssl pkg-config data... " >&6; }
-if test "${ne_cv_pkg_openssl+set}" = set; then :
+if ${ne_cv_pkg_openssl+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if $PKG_CONFIG openssl; then
@@ -6316,7 +6363,7 @@ $as_echo "$as_me: using SSL library configuration from pkg-config" >&6;}
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing RSA_new" >&5
 $as_echo_n "checking for library containing RSA_new... " >&6; }
-if test "${ne_cv_libsfor_RSA_new+set}" = set; then :
+if ${ne_cv_libsfor_RSA_new+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -6401,7 +6448,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing SSL_library_init" >&5
 $as_echo_n "checking for library containing SSL_library_init... " >&6; }
-if test "${ne_cv_libsfor_SSL_library_init+set}" = set; then :
+if ${ne_cv_libsfor_SSL_library_init+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -6506,7 +6553,7 @@ done
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking OpenSSL version is >= 0.9.7" >&5
 $as_echo_n "checking OpenSSL version is >= 0.9.7... " >&6; }
-if test "${ne_cv_lib_ssl097+set}" = set; then :
+if ${ne_cv_lib_ssl097+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -6562,7 +6609,7 @@ LIBS=$ne_cf_save_LIBS
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking OpenSSL version is >= 0.9.6" >&5
 $as_echo_n "checking OpenSSL version is >= 0.9.6... " >&6; }
-if test "${ne_cv_lib_ssl096+set}" = set; then :
+if ${ne_cv_lib_ssl096+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -6609,7 +6656,7 @@ _ACEOF
       *) # Guess whether EGD support is needed
          { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable EGD support" >&5
 $as_echo_n "checking whether to enable EGD support... " >&6; }
-if test "${ne_cv_lib_sslegd+set}" = set; then :
+if ${ne_cv_lib_sslegd+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -r /dev/random || test -r /dev/urandom; then
@@ -6648,7 +6695,7 @@ gnutls)
 set dummy pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $PKG_CONFIG in
@@ -6662,7 +6709,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6693,7 +6740,7 @@ if test "$PKG_CONFIG" = "no"; then
 set dummy libgnutls-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GNUTLS_CONFIG+set}" = set; then :
+if ${ac_cv_path_GNUTLS_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $GNUTLS_CONFIG in
@@ -6707,7 +6754,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_GNUTLS_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6743,7 +6790,7 @@ fi
 else
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls pkg-config data" >&5
 $as_echo_n "checking for gnutls pkg-config data... " >&6; }
-if test "${ne_cv_pkg_gnutls+set}" = set; then :
+if ${ne_cv_pkg_gnutls+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if $PKG_CONFIG gnutls; then
@@ -6774,7 +6821,7 @@ $as_echo "$as_me: using GnuTLS configuration from pkg-config" >&6;}
 set dummy libgnutls-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GNUTLS_CONFIG+set}" = set; then :
+if ${ac_cv_path_GNUTLS_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $GNUTLS_CONFIG in
@@ -6788,7 +6835,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_GNUTLS_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6828,7 +6875,7 @@ fi
 
 
    ac_fn_c_check_header_mongrel "$LINENO" "gnutls/gnutls.h" "ac_cv_header_gnutls_gnutls_h" "$ac_includes_default"
-if test "x$ac_cv_header_gnutls_gnutls_h" = x""yes; then :
+if test "x$ac_cv_header_gnutls_gnutls_h" = xyes; then :
 
 else
   as_fn_error $? "could not find gnutls/gnutls.h in include path" "$LINENO" 5
@@ -6857,8 +6904,9 @@ ne_cf_save_LIBS=$LIBS
 LIBS="$LIBS $NEON_LIBS"
 for ac_func in gnutls_session_get_data2 gnutls_x509_dn_get_rdn_ava \
                   gnutls_sign_callback_set \
+                  gnutls_certificate_get_issuer \
                   gnutls_certificate_get_x509_cas \
-                  gnutls_certificate_verify_peers2
+                  gnutls_x509_crt_sign2
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -6872,9 +6920,9 @@ done
 
 LIBS=$ne_cf_save_LIBS
 
-   # fail if gnutls_certificate_verify_peers2 is not found
-   if test x${ac_cv_func_gnutls_certificate_verify_peers2} != xyes; then
-       as_fn_error $? "GnuTLS version predates gnutls_certificate_verify_peers2, newer version required" "$LINENO" 5
+   # fail if gnutls_x509_crt_sign2 is not found (it was introduced in 1.2.0, which is required)
+   if test x${ac_cv_func_gnutls_x509_crt_sign2} != xyes; then
+       as_fn_error $? "GnuTLS version predates gnutls_x509_crt_sign2, newer version required (at least 1.2.0)" "$LINENO" 5
    fi
 
    # Check for iconv support if using the new RDN access functions:
@@ -6882,7 +6930,7 @@ LIBS=$ne_cf_save_LIBS
       for ac_func in iconv
 do :
   ac_fn_c_check_func "$LINENO" "iconv" "ac_cv_func_iconv"
-if test "x$ac_cv_func_iconv" = x""yes; then :
+if test "x$ac_cv_func_iconv" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_ICONV 1
 _ACEOF
@@ -6995,7 +7043,7 @@ noX*Y*) ;;
 set dummy pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $PKG_CONFIG in
@@ -7009,7 +7057,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7039,7 +7087,7 @@ $as_echo "$as_me: pakchois library not found; no PKCS#11 support" >&6;}
 else
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pakchois pkg-config data" >&5
 $as_echo_n "checking for pakchois pkg-config data... " >&6; }
-if test "${ne_cv_pkg_pakchois+set}" = set; then :
+if ${ne_cv_pkg_pakchois+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if $PKG_CONFIG pakchois; then
@@ -7086,7 +7134,7 @@ if test "$with_gssapi" != "no"; then
 set dummy krb5-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_KRB5_CONFIG+set}" = set; then :
+if ${ac_cv_path_KRB5_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $KRB5_CONFIG in
@@ -7101,7 +7149,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_KRB5_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7148,7 +7196,7 @@ LIBS="$LIBS $NEON_LIBS"
 for ac_func in gss_init_sec_context
 do :
   ac_fn_c_check_func "$LINENO" "gss_init_sec_context" "ac_cv_func_gss_init_sec_context"
-if test "x$ac_cv_func_gss_init_sec_context" = x""yes; then :
+if test "x$ac_cv_func_gss_init_sec_context" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_GSS_INIT_SEC_CONTEXT 1
 _ACEOF
@@ -7163,7 +7211,7 @@ $as_echo "#define HAVE_GSSAPI 1" >>confdefs.h
       for ac_header in gssapi/gssapi_generic.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "gssapi/gssapi_generic.h" "ac_cv_header_gssapi_gssapi_generic_h" "$ac_includes_default"
-if test "x$ac_cv_header_gssapi_gssapi_generic_h" = x""yes; then :
+if test "x$ac_cv_header_gssapi_gssapi_generic_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_GSSAPI_GSSAPI_GENERIC_H 1
 _ACEOF
@@ -7179,7 +7227,7 @@ done
 #include <gssapi.h>
 #endif
 "
-if test "x$ac_cv_have_decl_GSS_C_NT_HOSTBASED_SERVICE" = x""yes; then :
+if test "x$ac_cv_have_decl_GSS_C_NT_HOSTBASED_SERVICE" = xyes; then :
 
 else
 
@@ -7215,7 +7263,7 @@ if test "x$with_libproxy" != "xno"; then
 set dummy pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $PKG_CONFIG in
@@ -7229,7 +7277,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7264,7 +7312,7 @@ $as_echo "$as_me: libproxy support not enabled" >&6;}
 else
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libproxy-1.0 pkg-config data" >&5
 $as_echo_n "checking for libproxy-1.0 pkg-config data... " >&6; }
-if test "${ne_cv_pkg_libproxy_1_0+set}" = set; then :
+if ${ne_cv_pkg_libproxy_1_0+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if $PKG_CONFIG libproxy-1.0; then
@@ -7367,8 +7415,8 @@ esac
 
 
 
-macro_version='2.2.10'
-macro_revision='1.3175'
+macro_version='2.4.2'
+macro_revision='1.3337'
 
 
 
@@ -7390,7 +7438,7 @@ $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 $as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then :
+if ${ac_cv_build+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_build_alias=$build_alias
@@ -7424,7 +7472,7 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
 $as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then :
+if ${ac_cv_host+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test "x$host_alias" = x; then
@@ -7479,7 +7527,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
 $as_echo_n "checking how to print strings... " >&6; }
 # Test print first, because it will be a builtin if present.
-if test "X`print -r -- -n 2>/dev/null`" = X-n && \
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
    test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
   ECHO='print -r --'
 elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
@@ -7526,7 +7574,7 @@ esac
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then :
+if ${ac_cv_path_SED+:} false; then :
   $as_echo_n "(cached) " >&6
 else
             ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
@@ -7546,7 +7594,7 @@ do
     for ac_prog in sed gsed; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
+      as_fn_executable_p "$ac_path_SED" || continue
 # Check for GNU ac_path_SED and select it if it is found.
   # Check for GNU $ac_path_SED
 case `"$ac_path_SED" --version 2>&1` in
@@ -7608,7 +7656,7 @@ Xsed="$SED -e 1s/^X//"
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
 $as_echo_n "checking for fgrep... " >&6; }
-if test "${ac_cv_path_FGREP+set}" = set; then :
+if ${ac_cv_path_FGREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
@@ -7625,7 +7673,7 @@ do
     for ac_prog in fgrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
+      as_fn_executable_p "$ac_path_FGREP" || continue
 # Check for GNU ac_path_FGREP and select it if it is found.
   # Check for GNU $ac_path_FGREP
 case `"$ac_path_FGREP" --version 2>&1` in
@@ -7739,7 +7787,7 @@ else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${lt_cv_path_LD+set}" = set; then :
+if ${lt_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -7779,7 +7827,7 @@ fi
 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then :
+if ${lt_cv_prog_gnu_ld+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
@@ -7806,7 +7854,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if test "${lt_cv_path_NM+set}" = set; then :
+if ${lt_cv_path_NM+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NM"; then
@@ -7869,7 +7917,7 @@ else
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
+if ${ac_cv_prog_DUMPBIN+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DUMPBIN"; then
@@ -7881,7 +7929,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7913,7 +7961,7 @@ do
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DUMPBIN"; then
@@ -7925,7 +7973,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7985,7 +8033,7 @@ test -z "$NM" && NM=nm
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
 $as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if test "${lt_cv_nm_interface+set}" = set; then :
+if ${lt_cv_nm_interface+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_nm_interface="BSD nm"
@@ -8020,7 +8068,7 @@ fi
 # find the maximum length of command line arguments
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
 $as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
+if ${lt_cv_sys_max_cmd_len+:} false; then :
   $as_echo_n "(cached) " >&6
 else
     i=0
@@ -8083,6 +8131,11 @@ else
     lt_cv_sys_max_cmd_len=196608
     ;;
 
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -8122,7 +8175,7 @@ else
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
                 = "X$teststring$teststring"; } >/dev/null 2>&1 &&
              test $i != 17 # 1/2 MB should be enough
       do
@@ -8165,8 +8218,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
 # Try some XSI features
 xsi_shell=no
 ( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,b/c, \
     && eval 'test $(( 1 + 1 )) -eq 2 \
     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
   && xsi_shell=yes
@@ -8215,9 +8268,83 @@ esac
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
+    ;;
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
+    ;;
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
 $as_echo_n "checking for $LD option to reload object files... " >&6; }
-if test "${lt_cv_ld_reload_flag+set}" = set; then :
+if ${lt_cv_ld_reload_flag+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_reload_flag='-r'
@@ -8231,6 +8358,11 @@ case $reload_flag in
 esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
   darwin*)
     if test "$GCC" = yes; then
       reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
@@ -8253,7 +8385,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
+if ${ac_cv_prog_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJDUMP"; then
@@ -8265,7 +8397,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8293,7 +8425,7 @@ if test -z "$ac_cv_prog_OBJDUMP"; then
 set dummy objdump; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJDUMP"; then
@@ -8305,7 +8437,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8352,7 +8484,7 @@ test -z "$OBJDUMP" && OBJDUMP=objdump
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
 $as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if test "${lt_cv_deplibs_check_method+set}" = set; then :
+if ${lt_cv_deplibs_check_method+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_file_magic_cmd='$MAGIC_CMD'
@@ -8472,7 +8604,7 @@ irix5* | irix6* | nonstopux*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -8554,6 +8686,21 @@ esac
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
 $as_echo "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
 test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -8569,12 +8716,165 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
 
 
 
+
+
+
+
+
+
+
+
+
+
 if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
+  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DLLTOOL"; then
+  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+  ac_ct_DLLTOOL=$DLLTOOL
+  # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DLLTOOL"; then
+  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_DLLTOOL" = x; then
+    DLLTOOL="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DLLTOOL=$ac_ct_DLLTOOL
+  fi
+else
+  DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in ar
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then :
+if ${ac_cv_prog_AR+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AR"; then
@@ -8586,8 +8886,8 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -8607,14 +8907,18 @@ $as_echo "no" >&6; }
 fi
 
 
+    test -n "$AR" && break
+  done
 fi
-if test -z "$ac_cv_prog_AR"; then
+if test -z "$AR"; then
   ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
+  for ac_prog in ar
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AR"; then
@@ -8626,8 +8930,8 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AR="ar"
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AR="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -8646,6 +8950,10 @@ else
 $as_echo "no" >&6; }
 fi
 
+
+  test -n "$ac_ct_AR" && break
+done
+
   if test "x$ac_ct_AR" = x; then
     AR="false"
   else
@@ -8657,12 +8965,10 @@ ac_tool_warned=yes ;;
 esac
     AR=$ac_ct_AR
   fi
-else
-  AR="$ac_cv_prog_AR"
 fi
 
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
+: ${AR=ar}
+: ${AR_FLAGS=cru}
 
 
 
@@ -8674,12 +8980,70 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ar_at_file=no
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+      if test "$ac_status" -eq 0; then
+       # Ensure the archiver fails upon bogus file names.
+       rm -f conftest.$ac_objext libconftest.a
+       { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+       if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+
+
+
+
+
+
+
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
+if ${ac_cv_prog_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -8691,7 +9055,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8719,7 +9083,7 @@ if test -z "$ac_cv_prog_STRIP"; then
 set dummy strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -8731,7 +9095,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_STRIP="strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8778,7 +9142,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then :
+if ${ac_cv_prog_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$RANLIB"; then
@@ -8790,7 +9154,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8818,7 +9182,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
 set dummy ranlib; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_RANLIB"; then
@@ -8830,7 +9194,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8880,13 +9244,13 @@ old_postuninstall_cmds=
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
 fi
 
 case $host_os in
@@ -8922,7 +9286,7 @@ do
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
+if ${ac_cv_prog_AWK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -8934,7 +9298,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_AWK="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8989,7 +9353,7 @@ compiler=$CC
 # Check for command to grab the raw symbol name followed by C symbol from nm.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -9050,8 +9414,8 @@ esac
 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -9075,6 +9439,7 @@ for ac_symprfx in "" "_"; do
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK '"\
 "     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
@@ -9087,6 +9452,7 @@ for ac_symprfx in "" "_"; do
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[     ]\($symcode$symcode*\)[         ][      ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -9128,6 +9494,18 @@ _LT_EOF
       if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
        if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
          cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -9139,7 +9517,7 @@ _LT_EOF
          cat <<_LT_EOF >> conftest.$ac_ext
 
 /* The mapping between symbol names and symbols.  */
-const struct {
+LT_DLSYM_CONST struct {
   const char *name;
   void       *address;
 }
@@ -9165,8 +9543,8 @@ static const void *lt_preloaded_setup() {
 _LT_EOF
          # Now try linking the two files.
          mv conftest.$ac_objext conftstm.$ac_objext
-         lt_save_LIBS="$LIBS"
-         lt_save_CFLAGS="$CFLAGS"
+         lt_globsym_save_LIBS=$LIBS
+         lt_globsym_save_CFLAGS=$CFLAGS
          LIBS="conftstm.$ac_objext"
          CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
          if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
@@ -9176,8 +9554,8 @@ _LT_EOF
   test $ac_status = 0; } && test -s conftest${ac_exeext}; then
            pipe_works=yes
          fi
-         LIBS="$lt_save_LIBS"
-         CFLAGS="$lt_save_CFLAGS"
+         LIBS=$lt_globsym_save_LIBS
+         CFLAGS=$lt_globsym_save_CFLAGS
        else
          echo "cannot find nm_test_func in $nlist" >&5
        fi
@@ -9214,6 +9592,19 @@ else
 $as_echo "ok" >&6; }
 fi
 
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
+
+
+
+
+
+
 
 
 
@@ -9234,6 +9625,42 @@ fi
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+
+# Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+  withval=$with_sysroot;
+else
+  with_sysroot=no
+fi
+
+
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
+$as_echo "${with_sysroot}" >&6; }
+   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+   ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+
 
 # Check whether --enable-libtool-lock was given.
 if test "${enable_libtool_lock+set}" = set; then :
@@ -9360,7 +9787,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   CFLAGS="$CFLAGS -belf"
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
 $as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if test "${lt_cv_cc_needs_belf+set}" = set; then :
+if ${lt_cv_cc_needs_belf+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_ext=c
@@ -9401,7 +9828,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-sparc*-*solaris*)
+*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
@@ -9412,7 +9839,20 @@ sparc*-*solaris*)
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
       *)
        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
          LD="${LD-ld} -64"
@@ -9428,7 +9868,124 @@ esac
 
 need_locks="$enable_libtool_lock"
 
-
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$MANIFEST_TOOL"; then
+  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+  # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_MANIFEST_TOOL"; then
+  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_MANIFEST_TOOL" = x; then
+    MANIFEST_TOOL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+  fi
+else
+  MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&5
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+
+
+
+
+
+
   case $host_os in
     rhapsody* | darwin*)
     if test -n "$ac_tool_prefix"; then
@@ -9436,7 +9993,7 @@ need_locks="$enable_libtool_lock"
 set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DSYMUTIL"; then
@@ -9448,7 +10005,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9476,7 +10033,7 @@ if test -z "$ac_cv_prog_DSYMUTIL"; then
 set dummy dsymutil; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DSYMUTIL"; then
@@ -9488,7 +10045,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9528,7 +10085,7 @@ fi
 set dummy ${ac_tool_prefix}nmedit; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_NMEDIT+set}" = set; then :
+if ${ac_cv_prog_NMEDIT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NMEDIT"; then
@@ -9540,7 +10097,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9568,7 +10125,7 @@ if test -z "$ac_cv_prog_NMEDIT"; then
 set dummy nmedit; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_NMEDIT"; then
@@ -9580,7 +10137,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_NMEDIT="nmedit"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9620,7 +10177,7 @@ fi
 set dummy ${ac_tool_prefix}lipo; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_LIPO+set}" = set; then :
+if ${ac_cv_prog_LIPO+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$LIPO"; then
@@ -9632,7 +10189,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9660,7 +10217,7 @@ if test -z "$ac_cv_prog_LIPO"; then
 set dummy lipo; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_LIPO"; then
@@ -9672,7 +10229,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_LIPO="lipo"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9712,7 +10269,7 @@ fi
 set dummy ${ac_tool_prefix}otool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL+set}" = set; then :
+if ${ac_cv_prog_OTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL"; then
@@ -9724,7 +10281,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9752,7 +10309,7 @@ if test -z "$ac_cv_prog_OTOOL"; then
 set dummy otool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL"; then
@@ -9764,7 +10321,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OTOOL="otool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9804,7 +10361,7 @@ fi
 set dummy ${ac_tool_prefix}otool64; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL64+set}" = set; then :
+if ${ac_cv_prog_OTOOL64+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL64"; then
@@ -9816,7 +10373,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9844,7 +10401,7 @@ if test -z "$ac_cv_prog_OTOOL64"; then
 set dummy otool64; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL64"; then
@@ -9856,7 +10413,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OTOOL64="otool64"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9919,7 +10476,7 @@ fi
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
 $as_echo_n "checking for -single_module linker flag... " >&6; }
-if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
+if ${lt_cv_apple_cc_single_mod+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_apple_cc_single_mod=no
@@ -9935,7 +10492,13 @@ else
        $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
          -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-       if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+       # If there is a non-empty error log, and "single_module"
+       # appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+         cat conftest.err >&5
+       # Otherwise, if the output was created with a 0 exit code from
+       # the compiler, it worked.
+       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
          lt_cv_apple_cc_single_mod=yes
        else
          cat conftest.err >&5
@@ -9946,9 +10509,10 @@ else
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_exported_symbols_list=no
@@ -9978,9 +10542,10 @@ rm -f core conftest.err conftest.$ac_objext \
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
 $as_echo_n "checking for -force_load linker flag... " >&6; }
-if test "${lt_cv_ld_force_load+set}" = set; then :
+if ${lt_cv_ld_force_load+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_force_load=no
@@ -9999,7 +10564,9 @@ _LT_EOF
       echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
       $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
       _lt_result=$?
-      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+      if test -s conftest.err && $GREP force_load conftest.err; then
+       cat conftest.err >&5
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
        lt_cv_ld_force_load=yes
       else
        cat conftest.err >&5
@@ -10049,7 +10616,7 @@ for ac_header in dlfcn.h
 do :
   ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_DLFCN_H 1
 _ACEOF
 
 # Check whether --with-pic was given.
 if test "${with_pic+set}" = set; then :
-  withval=$with_pic; pic_mode="$withval"
+  withval=$with_pic; lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for lt_pkg in $withval; do
+       IFS="$lt_save_ifs"
+       if test "X$lt_pkg" = "X$lt_p"; then
+         pic_mode=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
 else
   pic_mode=default
 fi
@@ -10185,6 +10767,10 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool'
 
 
 
+
+
+
+
 test -z "$LN_S" && LN_S="ln -s"
 
 
@@ -10206,7 +10792,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
 $as_echo_n "checking for objdir... " >&6; }
-if test "${lt_cv_objdir+set}" = set; then :
+if ${lt_cv_objdir+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   rm -f .libs 2>/dev/null
@@ -10284,7 +10870,7 @@ file_magic*)
   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -10350,7 +10936,7 @@ if test -z "$lt_cv_path_MAGIC_CMD"; then
   if test -n "$ac_tool_prefix"; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
 $as_echo_n "checking for file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -10488,7 +11074,7 @@ if test "$GCC" = yes; then
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_rtti_exceptions=no
@@ -10541,8 +11127,6 @@ fi
 lt_prog_compiler_pic=
 lt_prog_compiler_static=
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl='-Wl,'
@@ -10642,7 +11226,9 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
     case $cc_basename in
     nvcc*) # Cuda Compiler Driver 2.2
       lt_prog_compiler_wl='-Xlinker '
-      lt_prog_compiler_pic='-Xcompiler -fPIC'
+      if test -n "$lt_prog_compiler_pic"; then
+        lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+      fi
       ;;
     esac
   else
@@ -10707,6 +11293,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
        lt_prog_compiler_pic='--shared'
        lt_prog_compiler_static='--static'
        ;;
+      nagfor*)
+       # NAG Fortran compiler
+       lt_prog_compiler_wl='-Wl,-Wl,,'
+       lt_prog_compiler_pic='-PIC'
+       lt_prog_compiler_static='-Bstatic'
+       ;;
       pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
        # which looks to be a dead project)
@@ -10727,18 +11319,33 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
        ;;
       *)
        case `$CC -V 2>&1 | sed 5q` in
-       *Sun\ F* | *Sun*Fortran*)
+       *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
          # Sun Fortran 8.3 passes all unrecognized flags to the linker
          lt_prog_compiler_pic='-KPIC'
          lt_prog_compiler_static='-Bstatic'
          lt_prog_compiler_wl=''
          ;;
+       *Sun\ F* | *Sun*Fortran*)
+         lt_prog_compiler_pic='-KPIC'
+         lt_prog_compiler_static='-Bstatic'
+         lt_prog_compiler_wl='-Qoption ld '
+         ;;
        *Sun\ C*)
          # Sun C 5.9
          lt_prog_compiler_pic='-KPIC'
          lt_prog_compiler_static='-Bstatic'
          lt_prog_compiler_wl='-Wl,'
          ;;
+        *Intel*\ [CF]*Compiler*)
+         lt_prog_compiler_wl='-Wl,'
+         lt_prog_compiler_pic='-fPIC'
+         lt_prog_compiler_static='-static'
+         ;;
+       *Portland\ Group*)
+         lt_prog_compiler_wl='-Wl,'
+         lt_prog_compiler_pic='-fpic'
+         lt_prog_compiler_static='-Bstatic'
+         ;;
        esac
        ;;
       esac
@@ -10826,13 +11433,17 @@ case $host_os in
     lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
     ;;
 esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
-$as_echo "$lt_prog_compiler_pic" >&6; }
-
-
-
-
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
 
 #
 # Check to make sure the PIC flag actually works.
@@ -10840,7 +11451,7 @@ $as_echo "$lt_prog_compiler_pic" >&6; }
 if test -n "$lt_prog_compiler_pic"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_pic_works=no
 
 
 
+
+
+
+
+
 #
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
+if ${lt_cv_prog_compiler_static_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_static_works=no
@@ -10942,7 +11558,7 @@ fi
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+if ${lt_cv_prog_compiler_c_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -10997,7 +11613,7 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+if ${lt_cv_prog_compiler_c_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -11091,7 +11707,6 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   hardcode_direct=no
   hardcode_direct_absolute=no
   hardcode_libdir_flag_spec=
-  hardcode_libdir_flag_spec_ld=
   hardcode_libdir_separator=
   hardcode_minus_L=no
   hardcode_shlibpath_var=unsupported
@@ -11243,7 +11858,8 @@ _LT_EOF
       allow_undefined_flag=unsupported
       always_export_symbols=no
       enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+      exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
         archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -11291,7 +11907,7 @@ _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
         && test "$tmp_diet" = no
       then
-       tmp_addflag=
+       tmp_addflag=' $pic_flag'
        tmp_sharedflag='-shared'
        case $cc_basename,$host_cpu in
         pgcc*)                         # Portland Group C compiler
@@ -11340,8 +11956,7 @@ _LT_EOF
        xlf* | bgf* | bgxlf* | mpixlf*)
          # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
          whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-         hardcode_libdir_flag_spec=
-         hardcode_libdir_flag_spec_ld='-rpath $libdir'
+         hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
          archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
          if test "x$supports_anon_versioning" = xyes; then
            archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
@@ -11361,8 +11976,8 @@ _LT_EOF
        archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
       else
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -11380,8 +11995,8 @@ _LT_EOF
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        ld_shlibs=no
       fi
@@ -11427,8 +12042,8 @@ _LT_EOF
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        ld_shlibs=no
       fi
@@ -11558,7 +12173,13 @@ _LT_EOF
        allow_undefined_flag='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -11571,22 +12192,29 @@ main ()
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath_
+fi
 
         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
         archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
@@ -11598,7 +12226,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
        else
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -11611,22 +12245,29 @@ main ()
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath_
+fi
 
         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
          # Warning - without using the other run time loading flags,
@@ -11671,20 +12312,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
-      hardcode_libdir_flag_spec=' '
-      allow_undefined_flag=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_from_new_cmds='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes=yes
+      case $cc_basename in
+      cl*)
+       # Native MSVC
+       hardcode_libdir_flag_spec=' '
+       allow_undefined_flag=unsupported
+       always_export_symbols=yes
+       file_list_spec='@'
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+       archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+           sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+         else
+           sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+         fi~
+         $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+         linknames='
+       # The linker will not automatically build a static lib if we build a DLL.
+       # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+       enable_shared_with_static_runtimes=yes
+       exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+       export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+       # Don't use ranlib
+       old_postinstall_cmds='chmod 644 $oldlib'
+       postlink_cmds='lt_outputfile="@OUTPUT@"~
+         lt_tool_outputfile="@TOOL_OUTPUT@"~
+         case $lt_outputfile in
+           *.exe|*.EXE) ;;
+           *)
+             lt_outputfile="$lt_outputfile.exe"
+             lt_tool_outputfile="$lt_tool_outputfile.exe"
+             ;;
+         esac~
+         if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+           $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+           $RM "$lt_outputfile.manifest";
+         fi'
+       ;;
+      *)
+       # Assume MSVC wrapper
+       hardcode_libdir_flag_spec=' '
+       allow_undefined_flag=unsupported
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+       # The linker will automatically build a .lib file if we build a DLL.
+       old_archive_from_new_cmds='true'
+       # FIXME: Should let the user specify the lib program.
+       old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+       enable_shared_with_static_runtimes=yes
+       ;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -11696,6 +12381,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
   hardcode_shlibpath_var=unsupported
   if test "$lt_cv_ld_force_load" = "yes"; then
     whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
   else
     whole_archive_flag_spec=''
   fi
@@ -11724,10 +12410,6 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       hardcode_shlibpath_var=no
       ;;
 
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-
     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
     # support.  Future versions do this automatically, but an explicit c++rt0.o
     # does not break anything, and helps significantly (at the cost of a little
@@ -11740,7 +12422,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
+    freebsd2.*)
       archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       hardcode_direct=yes
       hardcode_minus_L=yes
@@ -11749,7 +12431,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
     freebsd* | dragonfly*)
-      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
       hardcode_libdir_flag_spec='-R$libdir'
       hardcode_direct=yes
       hardcode_shlibpath_var=no
@@ -11757,7 +12439,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     hpux9*)
       if test "$GCC" = yes; then
-       archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+       archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       else
        archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       fi
@@ -11773,13 +12455,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     hpux10*)
       if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-       archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+       archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
        archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
       if test "$with_gnu_ld" = no; then
        hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-       hardcode_libdir_flag_spec_ld='+b $libdir'
        hardcode_libdir_separator=:
        hardcode_direct=yes
        hardcode_direct_absolute=yes
@@ -11797,10 +12478,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
          archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        esac
       else
@@ -11817,7 +12498,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
          # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
          { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
 $as_echo_n "checking if $CC understands -b... " >&6; }
-if test "${lt_cv_prog_compiler__b+set}" = set; then :
+if ${lt_cv_prog_compiler__b+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler__b=no
 
     irix5* | irix6* | nonstopux*)
       if test "$GCC" = yes; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        # Try to use the -exported_symbol ld option, if it does not
        # work, assume that -exports_file does not work either and
        # implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+       # This should be the same for all languages, so no per-tag cache variable.
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  save_LDFLAGS="$LDFLAGS"
+          LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-int foo(void) {}
+int foo (void) { return 0; }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-
+  lt_cv_irix_exported_symbol=yes
+else
+  lt_cv_irix_exported_symbol=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-        LDFLAGS="$save_LDFLAGS"
+           LDFLAGS="$save_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+       if test "$lt_cv_irix_exported_symbol" = yes; then
+          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+       fi
       else
        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
        archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
@@ -11980,7 +12674,7 @@ rm -f core conftest.err conftest.$ac_objext \
     osf4* | osf5*)     # as osf3* with the addition of -msym flag
       if test "$GCC" = yes; then
        allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
       else
        allow_undefined_flag=' -expect_unresolved \*'
@@ -11999,9 +12693,9 @@ rm -f core conftest.err conftest.$ac_objext \
       no_undefined_flag=' -z defs'
       if test "$GCC" = yes; then
        wlarc='${wl}'
-       archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
        archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+         $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
        case `$CC -V 2>&1` in
        *"Compilers 5.0"*)
@@ -12189,7 +12883,7 @@ x|xyes)
       # to ld, don't add -lc before -lgcc.
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if test "${lt_cv_archive_cmds_need_lc+set}" = set; then :
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   $RM conftest*
@@ -12390,11 +13084,6 @@ esac
 
 
 
-
-
-
-
-
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
@@ -12484,7 +13173,7 @@ need_version=unknown
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -12493,7 +13182,7 @@ aix3*)
   ;;
 
 aix[4-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -12558,7 +13247,7 @@ beos*)
   ;;
 
 bsdi[45]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -12577,8 +13266,9 @@ cygwin* | mingw* | pw32* | cegcc*)
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -12611,13 +13301,71 @@ cygwin* | mingw* | pw32* | cegcc*)
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
@@ -12638,7 +13386,7 @@ darwin* | rhapsody*)
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -12646,10 +13394,6 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -12657,7 +13401,7 @@ freebsd* | dragonfly*)
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[123]*) objformat=aout ;;
+    freebsd[23].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -12675,7 +13419,7 @@ freebsd* | dragonfly*)
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[01]* | freebsdelf3.[01]*)
@@ -12695,17 +13439,18 @@ freebsd* | dragonfly*)
   ;;
 
 gnu*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
   ;;
 
 haiku*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
@@ -12766,7 +13511,7 @@ hpux9* | hpux10* | hpux11*)
   ;;
 
 interix[3-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -12782,7 +13527,7 @@ irix5* | irix6* | nonstopux*)
     nonstopux*) version_type=nonstopux ;;
     *)
        if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
+               version_type=linux # correct to gnu/linux during the next big refactor
        else
                version_type=irix
        fi ;;
@@ -12819,9 +13564,9 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -12831,7 +13576,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   shlibpath_overrides_runpath=no
 
   # Some binutils ld are patched to set DT_RUNPATH
-  if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then :
+  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_shlibpath_overrides_runpath=no
@@ -12907,7 +13652,7 @@ netbsd*)
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -12976,7 +13721,7 @@ rdos*)
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -13001,7 +13746,7 @@ sunos4*)
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -13025,7 +13770,7 @@ sysv4 | sysv4.3*)
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -13056,7 +13801,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -13066,7 +13811,7 @@ tpf*)
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -13255,7 +14000,7 @@ else
   # if libdl is installed we need to link against it
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+if ${ac_cv_lib_dl_dlopen+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -13289,7 +14034,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
 
 
   *)
     ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = x""yes; then :
+if test "x$ac_cv_func_shl_load" = xyes; then :
   lt_cv_dlopen="shl_load"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
 $as_echo_n "checking for shl_load in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
+if ${ac_cv_lib_dld_shl_load+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -13342,16 +14087,16 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
 $as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
   lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
 else
   ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = x""yes; then :
+if test "x$ac_cv_func_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+if ${ac_cv_lib_dl_dlopen+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -13385,12 +14130,12 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
 $as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
+if ${ac_cv_lib_svld_dlopen+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -13424,12 +14169,12 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
 $as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
 $as_echo_n "checking for dld_link in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
+if ${ac_cv_lib_dld_dld_link+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -13463,7 +14208,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
 $as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
   lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
 fi
 
@@ -13504,7 +14249,7 @@ fi
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
 $as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then :
+if ${lt_cv_dlopen_self+:} false; then :
   $as_echo_n "(cached) " >&6
 else
          if test "$cross_compiling" = yes; then :
@@ -13557,10 +14302,10 @@ else
 /* When -fvisbility=hidden is used, assume the code has been annotated
    correspondingly for the symbols needed.  */
 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-void fnord () __attribute__((visibility("default")));
+int fnord () __attribute__((visibility("default")));
 #endif
 
-void fnord () { int i=42; }
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -13610,7 +14355,7 @@ $as_echo "$lt_cv_dlopen_self" >&6; }
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then :
+if ${lt_cv_dlopen_self_static+:} false; then :
   $as_echo_n "(cached) " >&6
 else
          if test "$cross_compiling" = yes; then :
@@ -13663,10 +14408,10 @@ else
 /* When -fvisbility=hidden is used, assume the code has been annotated
    correspondingly for the symbols needed.  */
 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-void fnord () __attribute__((visibility("default")));
+int fnord () __attribute__((visibility("default")));
 #endif
 
-void fnord () { int i=42; }
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -13848,6 +14593,8 @@ CC="$lt_save_CC"
 
 
 
+
+
         ac_config_commands="$ac_config_commands libtool"
 
 
@@ -13871,7 +14618,7 @@ CC="$lt_save_CC"
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5
 $as_echo_n "checking size of time_t... " >&6; }
-if test "${ac_cv_sizeof_time_t+set}" = set; then :
+if ${ac_cv_sizeof_time_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t"        "$ac_includes_default
@@ -13910,7 +14657,7 @@ _ACEOF
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print time_t" >&5
 $as_echo_n "checking how to print time_t... " >&6; }
-if test "${ne_cv_fmt_time_t+set}" = set; then :
+if ${ne_cv_fmt_time_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -13968,7 +14715,7 @@ _ACEOF
 
 
 ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
-if test "x$ac_cv_type_pid_t" = x""yes; then :
+if test "x$ac_cv_type_pid_t" = xyes; then :
 
 else
 
@@ -13980,7 +14727,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
-if test "${ac_cv_header_time+set}" = set; then :
+if ${ac_cv_header_time+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14022,7 +14769,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}ar; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_AR+set}" = set; then :
+if ${ac_cv_path_AR+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $AR in
@@ -14036,7 +14783,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -14065,7 +14812,7 @@ if test -z "$ac_cv_path_AR"; then
 set dummy ar; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_ac_pt_AR+set}" = set; then :
+if ${ac_cv_path_ac_pt_AR+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $ac_pt_AR in
@@ -14079,7 +14826,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_ac_pt_AR="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -14123,7 +14870,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_RANLIB+set}" = set; then :
+if ${ac_cv_path_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $RANLIB in
@@ -14137,7 +14884,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_RANLIB="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -14166,7 +14913,7 @@ if test -z "$ac_cv_path_RANLIB"; then
 set dummy ranlib; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_ac_pt_RANLIB+set}" = set; then :
+if ${ac_cv_path_ac_pt_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $ac_pt_RANLIB in
@@ -14180,7 +14927,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_ac_pt_RANLIB="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -14228,7 +14975,7 @@ fi
 
 
 
-for ac_header in sys/time.h stdint.h locale.h signal.h
+for ac_header in sys/time.h stdint.h locale.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -14343,10 +15090,10 @@ if test "$NEON_NEED_XML_PARSER" = "yes"; then
   case $with_expat in
   yes)
 ac_fn_c_check_header_mongrel "$LINENO" "expat.h" "ac_cv_header_expat_h" "$ac_includes_default"
-if test "x$ac_cv_header_expat_h" = x""yes; then :
+if test "x$ac_cv_header_expat_h" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML_SetXmlDeclHandler in -lexpat" >&5
 $as_echo_n "checking for XML_SetXmlDeclHandler in -lexpat... " >&6; }
-if test "${ac_cv_lib_expat_XML_SetXmlDeclHandler+set}" = set; then :
+if ${ac_cv_lib_expat_XML_SetXmlDeclHandler+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -14380,7 +15127,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_expat_XML_SetXmlDeclHandler" >&5
 $as_echo "$ac_cv_lib_expat_XML_SetXmlDeclHandler" >&6; }
-if test "x$ac_cv_lib_expat_XML_SetXmlDeclHandler" = x""yes; then :
+if test "x$ac_cv_lib_expat_XML_SetXmlDeclHandler" = xyes; then :
 
 
 $as_echo "#define HAVE_EXPAT 1" >>confdefs.h
@@ -14390,7 +15137,7 @@ $as_echo "#define HAVE_EXPAT 1" >>confdefs.h
     neon_xml_parser=expat
     ac_fn_c_check_type "$LINENO" "XML_Size" "ac_cv_type_XML_Size" "#include <expat.h>
 "
-if test "x$ac_cv_type_XML_Size" = x""yes; then :
+if test "x$ac_cv_type_XML_Size" = xyes; then :
 
 
 
@@ -14401,7 +15148,7 @@ if test "x$ac_cv_type_XML_Size" = x""yes; then :
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of XML_Size" >&5
 $as_echo_n "checking size of XML_Size... " >&6; }
-if test "${ac_cv_sizeof_XML_Size+set}" = set; then :
+if ${ac_cv_sizeof_XML_Size+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (XML_Size))" "ac_cv_sizeof_XML_Size"        "$ac_includes_default
@@ -14437,7 +15184,7 @@ _ACEOF
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print XML_Size" >&5
 $as_echo_n "checking how to print XML_Size... " >&6; }
-if test "${ne_cv_fmt_XML_Size+set}" = set; then :
+if ${ne_cv_fmt_XML_Size+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -14538,7 +15285,7 @@ _ACEOF
 set dummy xml2-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_XML2_CONFIG+set}" = set; then :
+if ${ac_cv_prog_XML2_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$XML2_CONFIG"; then
@@ -14550,7 +15297,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_XML2_CONFIG="xml2-config"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   if test "${neon_xml_parser}-${with_included_expat}" = "none-no"; then
 
 ac_fn_c_check_header_mongrel "$LINENO" "expat.h" "ac_cv_header_expat_h" "$ac_includes_default"
-if test "x$ac_cv_header_expat_h" = x""yes; then :
+if test "x$ac_cv_header_expat_h" = xyes; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML_SetXmlDeclHandler in -lexpat" >&5
 $as_echo_n "checking for XML_SetXmlDeclHandler in -lexpat... " >&6; }
-if test "${ac_cv_lib_expat_XML_SetXmlDeclHandler+set}" = set; then :
+if ${ac_cv_lib_expat_XML_SetXmlDeclHandler+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -14644,7 +15391,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_expat_XML_SetXmlDeclHandler" >&5
 $as_echo "$ac_cv_lib_expat_XML_SetXmlDeclHandler" >&6; }
-if test "x$ac_cv_lib_expat_XML_SetXmlDeclHandler" = x""yes; then :
+if test "x$ac_cv_lib_expat_XML_SetXmlDeclHandler" = xyes; then :
 
 
 $as_echo "#define HAVE_EXPAT 1" >>confdefs.h
@@ -14654,7 +15401,7 @@ $as_echo "#define HAVE_EXPAT 1" >>confdefs.h
     neon_xml_parser=expat
     ac_fn_c_check_type "$LINENO" "XML_Size" "ac_cv_type_XML_Size" "#include <expat.h>
 "
-if test "x$ac_cv_type_XML_Size" = x""yes; then :
+if test "x$ac_cv_type_XML_Size" = xyes; then :
 
 
 
@@ -14665,7 +15412,7 @@ if test "x$ac_cv_type_XML_Size" = x""yes; then :
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of XML_Size" >&5
 $as_echo_n "checking size of XML_Size... " >&6; }
-if test "${ac_cv_sizeof_XML_Size+set}" = set; then :
+if ${ac_cv_sizeof_XML_Size+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (XML_Size))" "ac_cv_sizeof_XML_Size"        "$ac_includes_default
@@ -14701,7 +15448,7 @@ _ACEOF
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print XML_Size" >&5
 $as_echo_n "checking how to print XML_Size... " >&6; }
-if test "${ne_cv_fmt_XML_Size+set}" = set; then :
+if ${ne_cv_fmt_XML_Size+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -14768,7 +15515,7 @@ else
 set dummy xml2-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_XML2_CONFIG+set}" = set; then :
+if ${ac_cv_prog_XML2_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$XML2_CONFIG"; then
@@ -14780,7 +15527,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_XML2_CONFIG="xml2-config"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -14839,7 +15586,7 @@ else
 set dummy xml2-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_XML2_CONFIG+set}" = set; then :
+if ${ac_cv_prog_XML2_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$XML2_CONFIG"; then
@@ -14851,7 +15598,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_XML2_CONFIG="xml2-config"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -14939,7 +15686,7 @@ if test x${enable_nls} = xyes; then
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing bindtextdomain" >&5
 $as_echo_n "checking for library containing bindtextdomain... " >&6; }
-if test "${ne_cv_libsfor_bindtextdomain+set}" = set; then :
+if ${ne_cv_libsfor_bindtextdomain+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -14984,7 +15731,23 @@ if ac_fn_c_try_link "$LINENO"; then :
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
+                  LIBS="$ne_sl_save_LIBS -l$lib -liconv  $NEON_LIBS"
+               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+int
+main ()
+{
+$ne__code
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ne_cv_libsfor_bindtextdomain="-l$lib -liconv "; break
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 done
 LIBS=$ne_sl_save_LIBS
 fi
@@ -15008,7 +15771,7 @@ LIBS="$LIBS $NEON_LIBS"
 for ac_func in bind_textdomain_codeset
 do :
   ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
-if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then :
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_BIND_TEXTDOMAIN_CODESET 1
 _ACEOF
@@ -15122,7 +15885,7 @@ if test $NE_FLAG_SSL = yes; then
 set dummy openssl; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_OPENSSL+set}" = set; then :
+if ${ac_cv_path_OPENSSL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $OPENSSL in
@@ -15136,7 +15899,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_OPENSSL="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -15171,7 +15934,7 @@ $as_echo "$as_me: WARNING: no openssl binary in \$PATH: SSL tests disabled" >&2;
 set dummy certutil; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_CERTUTIL+set}" = set; then :
+if ${ac_cv_path_CERTUTIL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $CERTUTIL in
@@ -15185,7 +15948,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_CERTUTIL="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -15212,7 +15975,7 @@ fi
 set dummy pk12util; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PK12UTIL+set}" = set; then :
+if ${ac_cv_path_PK12UTIL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $PK12UTIL in
@@ -15226,7 +15989,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PK12UTIL="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -15278,7 +16041,7 @@ fi
 set dummy pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $PKG_CONFIG in
@@ -15292,7 +16055,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
 # Pass the interface version on to libtool when linking libneon.la
 NEON_LINK_FLAGS="-version-info ${NE_LIBTOOL_VERSINFO}"
 # If any non-default ABI variations are used, add them to the SONAME:
-if test "x${NE_LIBTOOL_RELEASE}y" != "xy"; then
-   NEON_LINK_FLAGS="${NEON_LINK_FLAGS} -release ${NE_LIBTOOL_RELEASE}"
-fi
+### disabled for backwards-compat with 0.27.x
+#if test "x${NE_LIBTOOL_RELEASE}y" != "xy"; then
+#   NEON_LINK_FLAGS="${NEON_LINK_FLAGS} -release ${NE_LIBTOOL_RELEASE}"
+#fi
 
 
   # Check whether --enable-ld-version-script was given.
@@ -15344,15 +16108,37 @@ $as_echo_n "checking if LD -Wl,--version-script works... " >&6; }
     save_LDFLAGS="$LDFLAGS"
     LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
     cat > conftest.map <<EOF
+foo
+EOF
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  accepts_syntax_errors=yes
+else
+  accepts_syntax_errors=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    if test "$accepts_syntax_errors" = no; then
+      cat > conftest.map <<EOF
 VERS_1 {
-       global: sym;
+        global: sym;
 };
 
 VERS_2 {
         global: sym;
 } VERS_1;
 EOF
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -15370,11 +16156,22 @@ else
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
+    else
+      have_ld_version_script=no
+    fi
     rm -f conftest.map
     LDFLAGS="$save_LDFLAGS"
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ld_version_script" >&5
 $as_echo "$have_ld_version_script" >&6; }
   fi
+   if test "$have_ld_version_script" = "yes"; then
+  HAVE_LD_VERSION_SCRIPT_TRUE=
+  HAVE_LD_VERSION_SCRIPT_FALSE='#'
+else
+  HAVE_LD_VERSION_SCRIPT_TRUE='#'
+  HAVE_LD_VERSION_SCRIPT_FALSE=
+fi
+
 
 # If ld version scripts are supported, enable symbol versioning.
 # Otherwise, fall back to any libtool-supported symbol export
@@ -15483,10 +16280,21 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
      :end' >>confcache
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
+    if test "x$cache_file" != "x/dev/null"; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
 $as_echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+       cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+         mv -f confcache "$cache_file"$$ &&
+         mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+         mv -f confcache "$cache_file" ;;
+       esac
+      fi
+    fi
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@@ -15518,8 +16326,12 @@ LTLIBOBJS=$ac_ltlibobjs
 
 
 
+if test -z "${HAVE_LD_VERSION_SCRIPT_TRUE}" && test -z "${HAVE_LD_VERSION_SCRIPT_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_LD_VERSION_SCRIPT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 
-: ${CONFIG_STATUS=./config.status}
+: "${CONFIG_STATUS=./config.status}"
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@@ -15620,6 +16432,7 @@ fi
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -15815,16 +16628,16 @@ if (echo >conf$$.file) 2>/dev/null; then
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
@@ -15884,28 +16697,16 @@ else
   as_mkdir_p=false
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-       test -d "$1/.";
-      else
-       case $1 in #(
-       -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -15926,8 +16727,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=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.6, which was
-generated by GNU Autoconf 2.66.  Invocation command line was
+This file was extended by neon $as_me 0.30.0, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -15992,11 +16793,11 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-neon config.status 0.29.6
-configured by $0, generated by GNU Autoconf 2.66,
+neon config.status 0.30.0
+configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -16013,11 +16814,16 @@ ac_need_defaults=:
 while test $# != 0
 do
   case $1 in
-  --*=*)
+  --*=?*)
     ac_option=`expr "X$1" : 'X\([^=]*\)='`
     ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
     ac_shift=:
     ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
   *)
     ac_option=$1
     ac_optarg=$2
@@ -16039,6 +16845,7 @@ do
     $ac_shift
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
     esac
     as_fn_append CONFIG_FILES " '$ac_optarg'"
     ac_need_defaults=false;;
@@ -16080,7 +16887,7 @@ fi
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
-  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
   shift
   \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
   CONFIG_SHELL='$SHELL'
@@ -16121,6 +16928,7 @@ pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
 enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
 SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
 ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
 host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
 host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
 host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
@@ -16141,13 +16949,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
 lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
 lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
 lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
 reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
 reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
 OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
 deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
 file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
 AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
 AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
 STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
 RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
 old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
@@ -16162,14 +16977,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
 lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
 lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
 objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
 MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
 lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
 lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
 lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
 lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
 need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
 DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
 NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
 LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
@@ -16193,7 +17011,6 @@ with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
 allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
 no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
 hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
 hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
 hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
 hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
@@ -16202,12 +17019,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
 hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
 inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
 link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
 always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
 export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
 exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
 include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
 prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
 file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
 variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
 need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -16249,6 +17066,7 @@ _LTECHO_EOF'
 # Quote evaled strings.
 for var in SHELL \
 ECHO \
+PATH_SEPARATOR \
 SED \
 GREP \
 EGREP \
@@ -16262,8 +17080,13 @@ reload_flag \
 OBJDUMP \
 deplibs_check_method \
 file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+DLLTOOL \
+sharedlib_from_linklib_cmd \
 AR \
 AR_FLAGS \
+archiver_list_spec \
 STRIP \
 RANLIB \
 CC \
@@ -16273,12 +17096,14 @@ lt_cv_sys_global_symbol_pipe \
 lt_cv_sys_global_symbol_to_cdecl \
 lt_cv_sys_global_symbol_to_c_name_address \
 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+nm_file_list_spec \
 lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_wl \
 lt_prog_compiler_pic \
+lt_prog_compiler_wl \
 lt_prog_compiler_static \
 lt_cv_prog_compiler_c_o \
 need_locks \
+MANIFEST_TOOL \
 DSYMUTIL \
 NMEDIT \
 LIPO \
@@ -16292,9 +17117,7 @@ with_gnu_ld \
 allow_undefined_flag \
 no_undefined_flag \
 hardcode_libdir_flag_spec \
-hardcode_libdir_flag_spec_ld \
 hardcode_libdir_separator \
-fix_srcfile_path \
 exclude_expsyms \
 include_expsyms \
 file_list_spec \
@@ -16330,6 +17153,7 @@ module_cmds \
 module_expsym_cmds \
 export_symbols_cmds \
 prelink_cmds \
+postlink_cmds \
 postinstall_cmds \
 postuninstall_cmds \
 finish_cmds \
 # after its creation but before its name has been assigned to `$tmp'.
 $debug ||
 {
-  tmp=
+  tmp= ac_tmp=
   trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
 ' 0
   trap 'as_fn_exit 1' 1 2 13 15
 }
@@ -16415,12 +17240,13 @@ $debug ||
 
 {
   tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
+  test -d "$tmp"
 }  ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
 } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -16442,7 +17268,7 @@ else
   ac_cs_awk_cr=$ac_cr
 fi
 
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
 _ACEOF
 
 
@@ -16470,7 +17296,7 @@ done
 rm -f conf$$subs.sh
 
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
 _ACEOF
 sed -n '
 h
@@ -16518,7 +17344,7 @@ t delim
 rm -f conf$$subs.awk
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
   for (key in S) S_is_set[key] = 1
   FS = "\a"
 
@@ -16550,7 +17376,7 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
   sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
 else
   cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
   || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
@@ -16584,7 +17410,7 @@ fi # test -n "$CONFIG_FILES"
 # No need to generate them if there are no CONFIG_HEADERS.
 # This happens for instance with `./config.status Makefile'.
 if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
 BEGIN {
 _ACEOF
 
@@ -16596,8 +17422,8 @@ _ACEOF
 # handling of long lines.
 ac_delim='%!_!# '
 for ac_last_try in false false :; do
-  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_t"; then
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
     break
   elif $ac_last_try; then
     as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
@@ -16717,7 +17543,7 @@ do
     for ac_f
     do
       case $ac_f in
-      -) ac_f="$tmp/stdin";;
+      -) ac_f="$ac_tmp/stdin";;
       *) # Look for the file first in the build tree, then in the source tree
         # (if the path is not absolute).  The absolute path cannot be DOS-style,
         # because $ac_f cannot contain `:'.
@@ -16752,7 +17578,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
     esac
 
     case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin" \
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
       || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
     esac
     ;;
@@ -16883,21 +17709,22 @@ s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
 s&@INSTALL@&$ac_INSTALL&;t t
 $ac_datarootdir_hack
 "
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&5
 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&2;}
 
-  rm -f "$tmp/stdin"
+  rm -f "$ac_tmp/stdin"
   case $ac_file in
-  -) cat "$tmp/out" && rm -f "$tmp/out";;
-  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
   esac \
   || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  ;;
@@ -16908,20 +17735,20 @@ which seems to be undefined.  Please make sure it is defined" >&2;}
   if test x"$ac_file" != x-; then
     {
       $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
-    } >"$tmp/config.h" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
 $as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
-      mv "$tmp/config.h" "$ac_file" \
+      mv "$ac_tmp/config.h" "$ac_file" \
        || as_fn_error $? "could not create $ac_file" "$LINENO" 5
     fi
   else
     $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
       || as_fn_error $? "could not create -" "$LINENO" 5
   fi
  ;;
@@ -16954,8 +17781,8 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-#                 Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -17009,6 +17836,9 @@ SHELL=$lt_SHELL
 # An echo program that protects backslashes.
 ECHO=$lt_ECHO
 
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
 # The host system.
 host_alias=$host_alias
 host=$host
@@ -17058,19 +17888,42 @@ SP2NL=$lt_lt_SP2NL
 # turn newlines into spaces.
 NL2SP=$lt_lt_NL2SP
 
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+
 # An object symbol dumper.
 OBJDUMP=$lt_OBJDUMP
 
 # Method to check whether dependent libraries are shared objects.
 deplibs_check_method=$lt_deplibs_check_method
 
-# Command to use when deplibs_check_method == "file_magic".
+# Command to use when deplibs_check_method = "file_magic".
 file_magic_cmd=$lt_file_magic_cmd
 
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# DLL creation program.
+DLLTOOL=$lt_DLLTOOL
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
 # The archiver.
 AR=$lt_AR
+
+# Flags to create an archive.
 AR_FLAGS=$lt_AR_FLAGS
 
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
 # A symbol stripping program.
 STRIP=$lt_STRIP
 
@@ -17100,6 +17953,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
 # Transform the output of nm in a C name address pair when lib prefix is needed.
 global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
 
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
+
+# The root where to search for dependent libraries,and in which our libraries should be installed.
+lt_sysroot=$lt_sysroot
+
 # The name of the directory that contains temporary libtool files.
 objdir=$objdir
 
@@ -17109,6 +17968,9 @@ MAGIC_CMD=$MAGIC_CMD
 # Must we lock files when doing compilation?
 need_locks=$lt_need_locks
 
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
 # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
 DSYMUTIL=$lt_DSYMUTIL
 
@@ -17223,12 +18085,12 @@ with_gcc=$GCC
 # Compiler flag to turn off builtin functions.
 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
 
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
 # Additional compiler flags for building library objects.
 pic_flag=$lt_lt_prog_compiler_pic
 
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
 # Compiler flag to prevent dynamic linking.
 link_static_flag=$lt_lt_prog_compiler_static
 
@@ -17278,10 +18140,6 @@ no_undefined_flag=$lt_no_undefined_flag
 # This must work even if \$libdir does not exist
 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
 
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator
 
@@ -17315,9 +18173,6 @@ inherit_rpath=$inherit_rpath
 # Whether libtool must link a program against all its dependency libraries.
 link_all_deplibs=$link_all_deplibs
 
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path
-
 # Set to "yes" if exported symbols are required.
 always_export_symbols=$always_export_symbols
 
@@ -17333,6 +18188,9 @@ include_expsyms=$lt_include_expsyms
 # Commands necessary for linking programs (against libraries) with templates.
 prelink_cmds=$lt_prelink_cmds
 
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
 # Specify filename containing input files.
 file_list_spec=$lt_file_list_spec
 
@@ -17365,210 +18223,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $* ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
-
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-}
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-  esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[^=]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$@"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1+=\$2"
-}
-_LT_EOF
-    ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1=\$$1\$2"
-}
-
-_LT_EOF
-    ;;
-  esac
-
-
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" ||
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
+
+  if test x"$xsi_shell" = xyes; then
+  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
+func_dirname ()\
+{\
+\    case ${1} in\
+\      */*) func_dirname_result="${1%/*}${2}" ;;\
+\      *  ) func_dirname_result="${3}" ;;\
+\    esac\
+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_basename ()$/,/^} # func_basename /c\
+func_basename ()\
+{\
+\    func_basename_result="${1##*/}"\
+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
+func_dirname_and_basename ()\
+{\
+\    case ${1} in\
+\      */*) func_dirname_result="${1%/*}${2}" ;;\
+\      *  ) func_dirname_result="${3}" ;;\
+\    esac\
+\    func_basename_result="${1##*/}"\
+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
+func_stripname ()\
+{\
+\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
+\    # positional parameters, so assign one to ordinary parameter first.\
+\    func_stripname_result=${3}\
+\    func_stripname_result=${func_stripname_result#"${1}"}\
+\    func_stripname_result=${func_stripname_result%"${2}"}\
+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
+func_split_long_opt ()\
+{\
+\    func_split_long_opt_name=${1%%=*}\
+\    func_split_long_opt_arg=${1#*=}\
+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
+func_split_short_opt ()\
+{\
+\    func_split_short_opt_arg=${1#??}\
+\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
+func_lo2o ()\
+{\
+\    case ${1} in\
+\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
+\      *)    func_lo2o_result=${1} ;;\
+\    esac\
+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_xform ()$/,/^} # func_xform /c\
+func_xform ()\
+{\
+    func_xform_result=${1%.*}.lo\
+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_arith ()$/,/^} # func_arith /c\
+func_arith ()\
+{\
+    func_arith_result=$(( $* ))\
+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_len ()$/,/^} # func_len /c\
+func_len ()\
+{\
+    func_len_result=${#1}\
+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+fi
+
+if test x"$lt_shell_append" = xyes; then
+  sed -e '/^func_append ()$/,/^} # func_append /c\
+func_append ()\
+{\
+    eval "${1}+=\\${2}"\
+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
+func_append_quoted ()\
+{\
+\    func_quote_for_eval "${2}"\
+\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  # Save a `func_append' function call where possible by direct use of '+='
+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+else
+  # Save a `func_append' function call even when '+=' is not available
+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+fi
+
+if test x"$_lt_function_replace_fail" = x":"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
+fi
+
+
+   mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
 
@@ -17617,7 +18434,7 @@ fi
 # for VPATH builds:
 test -d test/common || mkdir test/common
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Configured to build neon 0.29.6:
+{ $as_echo "$as_me:${as_lineno-$LINENO}: Configured to build neon 0.30.0:
 
   Install prefix:  ${prefix}
   Compiler:        ${CC}
@@ -17626,7 +18443,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.6:
+$as_echo "$as_me: Configured to build neon 0.30.0:
 
   Install prefix:  ${prefix}
   Compiler:        ${CC}
index 65985ce..37b14ec 100644 (file)
@@ -143,9 +143,10 @@ AC_SUBST(NEON_PC_LIBS)
 # Pass the interface version on to libtool when linking libneon.la
 NEON_LINK_FLAGS="-version-info ${NE_LIBTOOL_VERSINFO}"
 # If any non-default ABI variations are used, add them to the SONAME:
-if test "x${NE_LIBTOOL_RELEASE}y" != "xy"; then
-   NEON_LINK_FLAGS="${NEON_LINK_FLAGS} -release ${NE_LIBTOOL_RELEASE}"
-fi
+### disabled for backwards-compat with 0.27.x
+#if test "x${NE_LIBTOOL_RELEASE}y" != "xy"; then
+#   NEON_LINK_FLAGS="${NEON_LINK_FLAGS} -release ${NE_LIBTOOL_RELEASE}"
+#fi
 
 gl_LD_VERSION_SCRIPT
 # If ld version scripts are supported, enable symbol versioning.
index c605157..13861d2 100644 (file)
@@ -1 +1 @@
- 3 May 2011
\ No newline at end of file
+31 July 2013
\ No newline at end of file
index 3ef1a3e..aa5bb8c 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 2. The neon C language interface</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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="security.html" title="HTTP Client Security"><link rel="next" href="xml.html" title="Parsing XML"></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 2. The neon C language interface</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="security.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="xml.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 2. The neon C language interface"><div class="titlepage"><div><div><h2 class="title"><a name="api"></a>Chapter 2. The neon C language interface</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><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></div><p>The documentation for the neon interface is split between
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 2. The neon C language interface</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><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="security.html" title="HTTP Client Security"><link rel="next" href="xml.html" title="Parsing XML"></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 2. The neon C language interface</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="security.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="xml.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="api"></a>Chapter 2. The neon C language interface</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><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></div><p>The documentation for the neon interface is split between
     this chapter, which gives a broad introduction to the abstractions
     exposed by the library, and <a class="xref" href="ref.html" title="neon API reference">neon API reference</a>, which gives a
     function-by-function breakdown of the interface.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="security.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="xml.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">HTTP Client Security </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Parsing XML</td></tr></table></div></body></html>
index 6f563c4..b336e00 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Bibliography</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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="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">Bibliography</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refxml.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> </td></tr></table><hr></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a name="biblio"></a>Bibliography</h2></div></div></div><div class="biblioentry" title="SSL and TLS: Designing and Building Secure Systems"><a name="bib.ssltls"></a><p>[<abbr class="abbrev">SSL-and-TLS</abbr>] <span class="title"><i><a class="ulink" href="http://www.rtfm.com/sslbook/" target="_top">SSL and
-  TLS: Designing and Building Secure Systems</a></i>. </span><span class="author"><span class="firstname">Eric</span> <span class="surname">Rescorla</span>. </span><span class="isbn">0-201-62598-3. </span><span class="publisher"><span class="publishername">Addison-Wesley. </span></span><span class="pubdate">March 2001. </span></p></div><div class="biblioentry" title="Namespaces in XML"><a name="bib.xmlnames"></a><p>[<abbr class="abbrev">REC-XML-names</abbr>] <span class="corpauthor">World Wide Web Consortium. </span><span class="title"><i><a class="ulink" href="http://www.w3.org/TR/REC-xml-names" target="_top">Namespaces in XML</a></i>. </span><span class="pubdate">January 1999. </span></p></div><div class="biblioentry" title="Hypertext Transfer Protocol—HTTP/1.1"><a name="bib.rfc2616"></a><p>[<abbr class="abbrev">RFC2616</abbr>] <span class="title"><i><a class="ulink" href="http://www.ietf.org/rfc/rfc2616.txt" target="_top">Hypertext Transfer 
-  Protocol—HTTP/1.1</a></i>. </span><span class="authorgroup"><span class="firstname">Roy</span> <span class="surname">Fielding</span>, <span class="firstname">Jim</span> <span class="surname">Gettys</span>, <span class="firstname">Jeff</span> <span class="surname">Mogul</span>, <span class="firstname">Henrik</span> <span class="surname">Frystyk</span>, <span class="firstname">Larry</span> <span class="surname">Masinter</span>, <span class="firstname">Paul</span> <span class="surname">Leach</span>, and <span class="firstname">Tim</span> <span class="surname">Berners-Lee</span>. </span><span class="publishername">IETF. </span><span class="pubdate">June 1999. </span></p></div><div class="biblioentry" title="HTTP Extensions for Distributed Authoring—WEBDAV"><a name="bib.rfc2518"></a><p>[<abbr class="abbrev">RFC2518</abbr>] <span class="title"><i><a class="ulink" href="http://www.ietf.org/rfc/rfc2518.txt" target="_top">HTTP Extensions for Distributed Authoring—WEBDAV</a></i>. </span><span class="authorgroup"><span class="firstname">Yaron</span> <span class="surname">Goland</span>, <span class="firstname">Jim</span> <span class="surname">Whitehead</span>, <span class="firstname">Asad</span> <span class="surname">Faizi</span>, <span class="firstname">Steve</span> <span class="surname">Carter</span>, and <span class="firstname">Del</span> <span class="surname">Jensen</span>. </span><span class="publishername">IETF. </span><span class="pubdate">February 1999. </span></p></div><div class="biblioentry" title="Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile"><a name="bib.rfc3280"></a><p>[<abbr class="abbrev">RFC3280</abbr>] <span class="title"><i><a class="ulink" href="http://www.ietf.org/rfc/rfc3280.txt" target="_top">Internet X.509 Public Key Infrastructure
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Bibliography</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><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="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">Bibliography</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refxml.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> </td></tr></table><hr></div><div class="bibliography"><div class="titlepage"><div><div><h1 class="title"><a name="biblio"></a>Bibliography</h1></div></div></div><div class="biblioentry"><a name="bib.ssltls"></a><p>[<abbr class="abbrev">SSL-and-TLS</abbr>] <span class="title"><i><a class="ulink" href="http://www.rtfm.com/sslbook/" target="_top">SSL and
+  TLS: Designing and Building Secure Systems</a></i>. </span><span class="author"><span class="firstname">Eric</span> <span class="surname">Rescorla</span>. </span><span class="isbn">0-201-62598-3. </span><span class="publisher"><span class="publishername">Addison-Wesley. </span></span><span class="pubdate">March 2001. </span></p></div><div class="biblioentry"><a name="bib.xmlnames"></a><p>[<abbr class="abbrev">REC-XML-names</abbr>] <span class="corpauthor">World Wide Web Consortium. </span><span class="title"><i><a class="ulink" href="http://www.w3.org/TR/REC-xml-names" target="_top">Namespaces in XML</a></i>. </span><span class="pubdate">January 1999. </span></p></div><div class="biblioentry"><a name="bib.rfc2616"></a><p>[<abbr class="abbrev">RFC2616</abbr>] <span class="title"><i><a class="ulink" href="http://www.ietf.org/rfc/rfc2616.txt" target="_top">Hypertext Transfer 
+  Protocol—HTTP/1.1</a></i>. </span><span class="authorgroup"><span class="firstname">Roy</span> <span class="surname">Fielding</span>, <span class="firstname">Jim</span> <span class="surname">Gettys</span>, <span class="firstname">Jeff</span> <span class="surname">Mogul</span>, <span class="firstname">Henrik</span> <span class="surname">Frystyk</span>, <span class="firstname">Larry</span> <span class="surname">Masinter</span>, <span class="firstname">Paul</span> <span class="surname">Leach</span>, and <span class="firstname">Tim</span> <span class="surname">Berners-Lee</span>. </span><span class="publishername">IETF. </span><span class="pubdate">June 1999. </span></p></div><div class="biblioentry"><a name="bib.rfc2518"></a><p>[<abbr class="abbrev">RFC2518</abbr>] <span class="title"><i><a class="ulink" href="http://www.ietf.org/rfc/rfc2518.txt" target="_top">HTTP Extensions for Distributed Authoring—WEBDAV</a></i>. </span><span class="authorgroup"><span class="firstname">Yaron</span> <span class="surname">Goland</span>, <span class="firstname">Jim</span> <span class="surname">Whitehead</span>, <span class="firstname">Asad</span> <span class="surname">Faizi</span>, <span class="firstname">Steve</span> <span class="surname">Carter</span>, and <span class="firstname">Del</span> <span class="surname">Jensen</span>. </span><span class="publishername">IETF. </span><span class="pubdate">February 1999. </span></p></div><div class="biblioentry"><a name="bib.rfc3280"></a><p>[<abbr class="abbrev">RFC3280</abbr>] <span class="title"><i><a class="ulink" href="http://www.ietf.org/rfc/rfc3280.txt" target="_top">Internet X.509 Public Key Infrastructure
        Certificate and Certificate Revocation List (CRL) Profile</a></i>. </span><span class="authorgroup"><span class="firstname">Russel</span> <span class="surname">Housley</span>, <span class="firstname">Warwick</span> <span class="surname">Ford</span>, <span class="firstname">Tim</span> <span class="surname">Polk</span>, and <span class="firstname">David</span> <span class="surname">Solo</span>. </span><span class="publishername">IETF. </span><span class="pubdate">April 2002. </span></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refxml.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top">ne_xml_create </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>
index 1694ad5..94a33ca 100644 (file)
@@ -1,12 +1,12 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Standards compliance</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Standards compliance</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="intro.html" title="Chapter 1. Introduction"><link rel="prev" href="using.html" title="How to use neon from your application"><link rel="next" href="security.html" title="HTTP Client Security"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Standards compliance</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Introduction</th><td width="20%" align="right"> <a accesskey="n" href="security.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="compliance"></a>Standards compliance</h2></div></div></div><p>neon is intended to be compliant with the IETF and W3C
        standards which it implements, with a few exceptions due to
        practical necessity or interoperability issues.  These
-       exceptions are documented in this section.</p><div class="sect2" title="RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV"><div class="titlepage"><div><div><h3 class="title"><a name="id444621"></a>RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV</h3></div></div></div><p>neon is deliberately not compliant with section
+       exceptions are documented in this section.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm140368851661440"></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="id444637"></a>RFC 2616, Hypertext Transfer Protocol—HTTP/1.1</h3></div></div></div><p>There is some confusion in this specification about the
+       revision of the specification.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm140368851659456"></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="id444676"></a>RFC 2617, HTTP Authentication: Basic and Digest Access Authentication</h3></div></div></div><p>neon is not strictly compliant with the quoting rules
+        <span class="quote">“<span class="quote">chunked</span>”</span>.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm140368851654848"></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="id444704"></a>Namespaces in XML</h3></div></div></div><p>The neon XML parser interface will accept and parse
+        other server implementations.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm140368851651408"></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
index 132f613..a5605f3 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Feature list</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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="intro.html" title="Chapter 1. Introduction"><link rel="next" href="using.html" title="How to use neon from your application"></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">Feature list</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="intro.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Introduction</th><td width="20%" align="right"> <a accesskey="n" href="using.html">Next</a></td></tr></table><hr></div><div class="sect1" title="Feature list"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="features"></a>Feature list</h2></div></div></div><p>The major features of the neon library are as follows:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>A high-level interface to common HTTP and WebDAV
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Feature list</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><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="intro.html" title="Chapter 1. Introduction"><link rel="next" href="using.html" title="How to use neon from your application"></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">Feature list</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="intro.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Introduction</th><td width="20%" align="right"> <a accesskey="n" href="using.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="features"></a>Feature list</h2></div></div></div><p>The major features of the neon library are as follows:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>A high-level interface to common HTTP and WebDAV
 methods.  This allows you to easily dispatch a GET or a MKCOL request
 against a resource with a single function call.</p></li><li class="listitem"><p>A low-level interface for HTTP request
 handling; allowing you to implement requests using arbitrary methods
index ae93f50..9445b69 100644 (file)
@@ -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" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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="id402328"></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">&lt;<a class="email" href="mailto:neon@lists.manyfish.co.uk">neon@lists.manyfish.co.uk</a>&gt;</code></div></div><div><p class="copyright">Copyright © 2001-2008 Joe Orton</p></div><div><div class="legalnotice" title="Legal Notice"><a name="id402927"></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" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><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"><div class="titlepage"><div><div><h1 class="title"><a name="idm140368856725360"></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">&lt;<a class="email" href="mailto:neon@lists.manyfish.co.uk">neon@lists.manyfish.co.uk</a>&gt;</code></div></div><div><p class="copyright">Copyright © 2001-2008 Joe Orton</p></div><div><div class="legalnotice"><a name="idm140368856465888"></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#id444621">RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV</a></span></dt><dt><span class="sect2"><a href="compliance.html#id444637">RFC 2616, Hypertext Transfer Protocol—HTTP/1.1</a></span></dt><dt><span class="sect2"><a href="compliance.html#id444676">RFC 2617, HTTP Authentication: Basic and Digest Access Authentication</a></span></dt><dt><span class="sect2"><a href="compliance.html#id444704">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#id444512">CPU or memory consumption attacks</a></span></dt><dt><span class="sect2"><a href="security.html#id444586">SSL/TLS connection security</a></span></dt><dt><span class="sect2"><a href="security.html#id445137">Control character insertion in error messages</a></span></dt><dt><span class="sect2"><a href="security.html#id445154">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 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 class="toc"><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#idm140368851661440">RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV</a></span></dt><dt><span class="sect2"><a href="compliance.html#idm140368851659456">RFC 2616, Hypertext Transfer Protocol—HTTP/1.1</a></span></dt><dt><span class="sect2"><a href="compliance.html#idm140368851654848">RFC 2617, HTTP Authentication: Basic and Digest Access Authentication</a></span></dt><dt><span class="sect2"><a href="compliance.html#idm140368851651408">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#idm140368851674016">CPU or memory consumption attacks</a></span></dt><dt><span class="sect2"><a href="security.html#idm140368851664720">SSL/TLS connection security</a></span></dt><dt><span class="sect2"><a href="security.html#idm140368851598880">Control character insertion in error messages</a></span></dt><dt><span class="sect2"><a href="security.html#idm140368851596832">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 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="refproxy.html">ne_session_proxy</a></span><span class="refpurpose"> — configure proxy servers</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>
index cbda5fc..a2a1901 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 1. Introduction</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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#id444621">RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV</a></span></dt><dt><span class="sect2"><a href="compliance.html#id444637">RFC 2616, Hypertext Transfer Protocol—HTTP/1.1</a></span></dt><dt><span class="sect2"><a href="compliance.html#id444676">RFC 2617, HTTP Authentication: Basic and Digest Access Authentication</a></span></dt><dt><span class="sect2"><a href="compliance.html#id444704">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#id444512">CPU or memory consumption attacks</a></span></dt><dt><span class="sect2"><a href="security.html#id444586">SSL/TLS connection security</a></span></dt><dt><span class="sect2"><a href="security.html#id445137">Control character insertion in error messages</a></span></dt><dt><span class="sect2"><a href="security.html#id445154">Attacks against authentication credentials</a></span></dt></dl></dd></dl></div><p>This chapter provides an introduction to neon, giving an
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 1. Introduction</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="index.html" title="neon HTTP/WebDAV client library"><link rel="prev" href="index.html" title="neon HTTP/WebDAV client library"><link rel="next" href="features.html" title="Feature list"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Introduction</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="features.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="intro"></a>Chapter 1. Introduction</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="features.html">Feature list</a></span></dt><dt><span class="sect1"><a href="using.html">How to use neon from your application</a></span></dt><dt><span class="sect1"><a href="compliance.html">Standards compliance</a></span></dt><dd><dl><dt><span class="sect2"><a href="compliance.html#idm140368851661440">RFC 2518, HTTP Extensions for Distributed Authoring—WebDAV</a></span></dt><dt><span class="sect2"><a href="compliance.html#idm140368851659456">RFC 2616, Hypertext Transfer Protocol—HTTP/1.1</a></span></dt><dt><span class="sect2"><a href="compliance.html#idm140368851654848">RFC 2617, HTTP Authentication: Basic and Digest Access Authentication</a></span></dt><dt><span class="sect2"><a href="compliance.html#idm140368851651408">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#idm140368851674016">CPU or memory consumption attacks</a></span></dt><dt><span class="sect2"><a href="security.html#idm140368851664720">SSL/TLS connection security</a></span></dt><dt><span class="sect2"><a href="security.html#idm140368851598880">Control character insertion in error messages</a></span></dt><dt><span class="sect2"><a href="security.html#idm140368851596832">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/manual.proc b/doc/html/manual.proc
new file mode 100644 (file)
index 0000000..e69de29
index 37245e0..253b00d 100644 (file)
@@ -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" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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"> — 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 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>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>neon API reference</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><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"><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 class="toc"><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 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="refproxy.html">ne_session_proxy</a></span><span class="refpurpose"> — configure proxy servers</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>
index 656d4e0..96ab4ab 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_malloc</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_alloc.h&gt;</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="id453795"></a><h2>Description</h2><p>The functions <code class="function">ne_malloc</code>,
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_malloc</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refiaddr.html" title="ne_iaddr_make"><link rel="next" href="refsess.html" title="ne_session_create"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_malloc</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refiaddr.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsess.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refalloc"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_malloc, ne_calloc, ne_realloc, ne_strdup, ne_strndup, ne_oom_callback — memory allocation wrappers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_alloc.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void *<b class="fsfunc">ne_malloc</b>(</code></td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void *<b class="fsfunc">ne_calloc</b>(</code></td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void *<b class="fsfunc">ne_realloc</b>(</code></td><td>void *<var class="pdparam">size</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">len</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_strdup</b>(</code></td><td>const char *<var class="pdparam">s</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_strndup</b>(</code></td><td>const char *<var class="pdparam">s</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_oom_callback</b>(</code></td><td>void (*<var class="pdparam">callback</var>)(void)<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368850556000"></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="id453851"></a><h2>Notes</h2><p>If the operating system uses optimistic memory
+which will be invoked if an out of memory error is detected.</p></div><div class="refsect1"><a name="idm140368850549216"></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>
index ae34116..aecd6ab 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_server_auth</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_auth.h&gt;</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="id459199"></a><h2>Description</h2><p>The <em class="type">ne_auth_creds</em> function type defines a
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_server_auth</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refreqbody.html" title="ne_set_request_body_buffer"><link rel="next" href="refshave.html" title="ne_shave"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_set_server_auth</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refreqbody.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refshave.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refauth"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_server_auth, ne_set_proxy_auth, ne_forget_auth — register authentication callbacks</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_auth.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">typedef int (*<b class="fsfunc">ne_auth_creds</b>)(</code></td><td>void *<var class="pdparam">userdata</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">realm</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">attempt</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">username</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">password</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_server_auth</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>ne_auth_creds <var class="pdparam">callback</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_proxy_auth</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>ne_auth_creds <var class="pdparam">callback</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_forget_auth</b>(</code></td><td>ne_session *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368849787040"></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
@@ -9,13 +9,13 @@ credentials, the callback should return zero, and the
 <code class="parameter">username</code> and <code class="parameter">password</code>
 buffers must contain <code class="literal">NUL</code>-terminated strings.  The
 <code class="literal">NE_ABUFSIZ</code> constant gives the size of these
-buffers.</p><div class="tip" title="Tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>If you only wish to allow the user one attempt to enter
+buffers.</p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>If you only wish to allow the user one attempt to enter
 credentials, use the value of the <code class="parameter">attempt</code>
 parameter as the return value of the callback.</p></div><p>To abort the request, the callback should return a
 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="id459294"></a><h2>Examples</h2><pre class="programlisting">
+used to discard the cached authentication credentials.</p></div><div class="refsect1"><a name="idm140368849775776"></a><h2>Examples</h2><pre class="programlisting">
 /* Function which prompts for a line of user input: */
 extern char *prompt_for(const char *prompt);
 
index 568c359..1dc3353 100644 (file)
@@ -1,10 +1,10 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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="refresolve.html" title="ne_addr_resolve"><link rel="next" href="refbufapp.html" title="ne_buffer_append"></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</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refresolve.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refbufapp.html">Next</a></td></tr></table><hr></div><div class="refentry" title="ne_buffer"><a name="refbuf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer — string buffer handling</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_string.h&gt;
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><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="refresolve.html" title="ne_addr_resolve"><link rel="next" href="refbufapp.html" title="ne_buffer_append"></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</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refresolve.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refbufapp.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refbuf"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer — string buffer handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_string.h&gt;
 
 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="id449192"></a><h2>Description</h2><p>The <em class="type">ne_buffer</em> type represents an expandable
+} <em class="type">ne_buffer</em>;</pre></div></div><div class="refsect1"><a name="idm140368851109776"></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
index ab503d4..4c48c6a 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_append</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_string.h&gt;</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="id449573"></a><h2>Description</h2><p>The <code class="function">ne_buffer_append</code> and
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_append</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refbuf.html" title="ne_buffer"><link rel="next" href="refbufutil.html" title="ne_buffer_clear"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_buffer_append</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refbuf.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refbufutil.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refbufapp"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer_append, ne_buffer_zappend, ne_buffer_concat — append data to a string buffer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_string.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_append</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">string</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">len</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_zappend</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">string</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_concat</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">str</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368851063664"></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="id449666"></a><h2>Examples</h2><p>The following code will output "<code class="literal">Hello, world.
+<code class="function">ne_buffer_concat</code> are modified.</p></div><div class="refsect1"><a name="idm140368851052608"></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-&gt;data);
-ne_buffer_destroy(buf);</pre></div><div class="refsect1" title="See also"><a name="id449687"></a><h2>See also</h2><p><a class="xref" href="refbuf.html#ne_buffer">ne_buffer</a>, <a class="xref" href="refbufcr.html#ne_buffer_create">ne_buffer_create</a>,
+ne_buffer_destroy(buf);</pre></div><div class="refsect1"><a name="idm140368851050016"></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>
index 1626895..16c449e 100644 (file)
@@ -1,7 +1,7 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_create</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_alloc.h&gt;</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="id450487"></a><h2>Description</h2><p><code class="function">ne_buffer_create</code> creates a new
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_create</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refbufutil.html" title="ne_buffer_clear"><link rel="next" href="refbufdest.html" title="ne_buffer_destroy"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_buffer_create</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refbufutil.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refbufdest.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refbufcr"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer_create, ne_buffer_ncreate — create a string buffer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_alloc.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_buffer *<b class="fsfunc">ne_buffer_create</b>(</code></td><td><code>void)</code>;</td><td> </td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_buffer *<b class="fsfunc">ne_buffer_ncreate</b>(</code></td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368850954256"></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="id450519"></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="id450535"></a><h2>See also</h2><p><a class="xref" href="refbuf.html#ne_buffer">ne_buffer</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refbufutil.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refbufdest.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_buffer_clear </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_buffer_destroy</td></tr></table></div></body></html>
+contain the empty string (<code class="literal">""</code>).</p></div><div class="refsect1"><a name="idm140368850950256"></a><h2>Return value</h2><p>Both functions return a pointer to a new buffer object,
+and never <code class="literal">NULL</code>.</p></div><div class="refsect1"><a name="idm140368850948400"></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>
index 71d2771..b02f4c7 100644 (file)
@@ -1,10 +1,10 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_destroy</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_string.h&gt;</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="id450787"></a><h2>Description</h2><p><code class="function">ne_buffer_destroy</code> frees all memory
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_destroy</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refbufcr.html" title="ne_buffer_create"><link rel="next" href="referr.html" title="ne_get_error"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_buffer_destroy</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refbufcr.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="referr.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refbufdest"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer_destroy, ne_buffer_finish — destroy a buffer object</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_string.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_destroy</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_buffer_finish</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368850917856"></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="id450816"></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="id450835"></a><h2>Examples</h2><p>An example use of <code class="function">ne_buffer_finish</code>;
+functions gives undefined behaviour.</p></div><div class="refsect1"><a name="idm140368850914336"></a><h2>Return value</h2><p><code class="function">ne_buffer_finish</code> returns the
+<code class="function">malloc</code>-allocated string stored in the buffer.</p></div><div class="refsect1"><a name="idm140368850912064"></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="id450872"></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"><a name="idm140368850907600"></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>
index 4f0bcf2..78be8d0 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_clear</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_string.h&gt;</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="id450133"></a><h2>Description</h2><p>The <code class="function">ne_buffer_clear</code> function sets
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_buffer_clear</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refbufapp.html" title="ne_buffer_append"><link rel="next" href="refbufcr.html" title="ne_buffer_create"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_buffer_clear</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refbufapp.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refbufcr.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refbufutil"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_buffer_clear, ne_buffer_grow, ne_buffer_altered — clear, grow, or mark as altered a string buffer</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_string.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_clear</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_altered</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_buffer_grow</b>(</code></td><td>ne_buffer *<var class="pdparam">buf</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">size</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368850996656"></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
index 5290e13..85d7472 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_cert_identity</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_ssl.h&gt;</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="id460591"></a><h2>Description</h2><p>The function <code class="function">ne_ssl_cert_identity</code>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_cert_identity</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refsockinit.html" title="ne_sock_init"><link rel="next" href="refsslcert2.html" title="ne_ssl_cert_cmp"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_ssl_cert_identity</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsockinit.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsslcert2.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refcert"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_cert_identity, ne_ssl_cert_signedby, ne_ssl_cert_issuer, ne_ssl_cert_subject — functions to access certificate properties</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_ssl.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_ssl_cert_identity</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_ssl_certificate *<b class="fsfunc">ne_ssl_cert_signedby</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_ssl_dname *<b class="fsfunc">ne_ssl_cert_subject</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_ssl_dname *<b class="fsfunc">ne_ssl_cert_issuer</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368849620128"></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
     <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="id460645"></a><h2>Return value</h2><p><code class="function">ne_ssl_cert_issuer</code> and
+    is not available, this function will return <code class="literal">NULL</code>.</p></div><div class="refsect1"><a name="idm140368849613760"></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="id460694"></a><h2>Examples</h2><p>The following function could be used to display information
+    may return <code class="literal">NULL</code> as covered above.</p></div><div class="refsect1"><a name="idm140368849607984"></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="id460712"></a><h2>See also</h2><p><a class="xref" href="refsslcert2.html#ne_ssl_cert_cmp">ne_ssl_cert_cmp</a>, <a class="xref" href="refssldname.html#ne_ssl_readable_dname">ne_ssl_readable_dname</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsockinit.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refsslcert2.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_sock_init </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_ssl_cert_cmp</td></tr></table></div></body></html>
+}</pre></div><div class="refsect1"><a name="idm140368849605712"></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>
index 41e05af..f7535d5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_client_cert</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_ssl.h&gt;</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="id463433"></a><h2>Description</h2><p>The <code class="function">ne_ssl_clicert_read</code> function reads
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_client_cert</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refsslvfy.html" title="ne_ssl_set_verify"><link rel="next" href="refstatus.html" title="ne_status"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_ssl_client_cert</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsslvfy.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refstatus.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refclicert"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_clicert_read, ne_ssl_clicert_name, ne_ssl_clicert_encrypted, ne_ssl_clicert_decrypt, ne_ssl_clicert_owner, ne_ssl_clicert_free — SSL client certificate handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_ssl.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_ssl_client_cert *<b class="fsfunc">ne_ssl_clicert_read</b>(</code></td><td>const char *<var class="pdparam">filename</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_ssl_clicert_name</b>(</code></td><td>const ne_ssl_client_cert *<var class="pdparam">ccert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_ssl_clicert_encrypted</b>(</code></td><td>const ne_ssl_client_cert *<var class="pdparam">ccert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_ssl_clicert_decrypt</b>(</code></td><td>ne_ssl_client_cert *<var class="pdparam">ccert</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">password</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_ssl_certificate *<b class="fsfunc">ne_ssl_clicert_owner</b>(</code></td><td>const ne_ssl_client_cert *<var class="pdparam">ccert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_ssl_clicert_free</b>(</code></td><td>ne_ssl_client_cert *<var class="pdparam">ccert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368849278752"></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
     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="id463544"></a><h2>Return value</h2><p><code class="function">ne_ssl_clicert_read</code> returns a client
+    to destroy the object.</p></div><div class="refsect1"><a name="idm140368849265552"></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="id463590"></a><h2>Examples</h2><p>The following code reads a client certificate and decrypts
+    object.</p></div><div class="refsect1"><a name="idm140368849260032"></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="id463609"></a><h2>See also</h2><p><a class="xref" href="refsslcertio.html#ne_ssl_cert_read">ne_ssl_cert_read</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsslvfy.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refstatus.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_ssl_set_verify </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_status</td></tr></table></div></body></html>
+</pre></div><div class="refsect1"><a name="idm140368849257760"></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>
index 10171fe..ef7ed17 100644 (file)
@@ -1,11 +1,11 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>neon-config</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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="id447774"></a><h2>Description</h2><p>The <span class="command"><strong>neon-config</strong></span> script provides
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>neon-config</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refneon.html" title="neon"><link rel="next" href="refresolve.html" title="ne_addr_resolve"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">neon-config</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refneon.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refresolve.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refconfig"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>neon-config — script providing information about installed copy
+       of neon library</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">neon-config</code>  [<code class="option">--prefix</code>] [[<code class="option">--cflags</code>] |  [<code class="option">--libs</code>] |  [<code class="option">--la-file</code>] |  [<code class="option">--support</code> <em class="replaceable"><code>feature</code></em>] |  [<code class="option">--help</code>] |  [<code class="option">--version</code>]]</p></div></div><div class="refsect1"><a name="idm140368851280528"></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="id447804"></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"><a name="idm140368851276928"></a><h2>Options</h2><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="option">--cflags</code></span></p></td><td>Print the flags which should be passed to
 the C compiler when compiling object files, when the object files use
 neon header files.</td></tr><tr><td><p><span class="term"><code class="option">--libs</code></span></p></td><td>Print the flags which should be passed to
 the linker when linking an application which uses the neon
@@ -17,7 +17,7 @@ installed in given prefix directory.  Otherwise, print the
 installation prefix of the library.</td></tr><tr><td><p><span class="term"><code class="option">--support</code> <em class="replaceable"><code>feature</code></em></span></p></td><td>The script exits with success if
 <em class="replaceable"><code>feature</code></em> is supported by the
 library.</td></tr><tr><td><p><span class="term"><code class="option">--help</code></span></p></td><td>Print help message; includes list of known
-           features and whether they are supported or not.</td></tr></tbody></table></div></div><div class="refsect1" title="Example"><a name="example"></a><h2>Example</h2><p>Below is a Makefile fragment which could be used to
+           features and whether they are supported or not.</td></tr></tbody></table></div></div><div class="refsect1"><a name="example"></a><h2>Example</h2><p>Below is a Makefile fragment which could be used to
 build an application against an installed neon library, when the
 <span class="command"><strong>neon-config</strong></span> script can be found in
 <code class="envar">$PATH</code>.</p><pre class="programlisting">CFLAGS = `neon-config --cflags`
index da86b00..33c13c2 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_get_error</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_session.h&gt;</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="id451200"></a><h2>Description</h2><p>The session error string is used to store any
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_get_error</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refbufdest.html" title="ne_buffer_destroy"><link rel="next" href="refgetst.html" title="ne_get_status"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_get_error</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refbufdest.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refgetst.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="referr"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_get_error, ne_set_error — error handling for HTTP sessions</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_session.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_get_error</b>(</code></td><td>ne_sesssion *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_error</b>(</code></td><td>ne_sesssion *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368850867888"></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="id451241"></a><h2>Return value</h2><p><code class="function">ne_set_error</code> returns a constant
+        interface.</p></div><div class="refsect1"><a name="idm140368850863184"></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="id451267"></a><h2>Examples</h2><p>Retrieve the current error string:</p><pre class="programlisting">ne_session *sess = ne_session_create(...);
+        terminating <span class="quote">“<span class="quote">.</span>”</span> period character.</p></div><div class="refsect1"><a name="idm140368850860048"></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(...);
 ...
index 6e11669..8f118c7 100644 (file)
@@ -1,10 +1,10 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_has_support</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_utils.h&gt;</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="id451844"></a><h2>Description</h2><p>The <code class="function">ne_has_support</code> function can be used
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_has_support</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refgetst.html" title="ne_get_status"><link rel="next" href="refi18n.html" title="ne_i18n_init"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_has_support</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refgetst.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refi18n.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="reffeat"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_has_support — determine feature support status</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_utils.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_has_support</b>(</code></td><td>int <var class="pdparam">feature</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368850791104"></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:
 
-    </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
+    </p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="constant">NE_FEATURE_SSL</code></span></p></td><td>Indicates support for SSL/TLS</td></tr><tr><td><p><span class="term"><code class="constant">NE_FEATURE_ZLIB</code></span></p></td><td>Indicates support for compressed responses</td></tr><tr><td><p><span class="term"><code class="constant">NE_FEATURE_IPV6</code></span></p></td><td>Indicates support for IPv6</td></tr><tr><td><p><span class="term"><code class="constant">NE_FEATURE_LFS</code></span></p></td><td>Indicates support for large files</td></tr><tr><td><p><span class="term"><code class="constant">NE_FEATURE_SOCKS</code></span></p></td><td>Indicates support for SOCKSv5</td></tr><tr><td><p><span class="term"><code class="constant">NE_FEATURE_TS_SSL</code></span></p></td><td>Indicates support for thread-safe SSL
           initialization — see <a class="xref" href="refsockinit.html#ne_sock_init">ne_sock_init</a></td></tr></tbody></table></div><p>
 
-    </p></div><div class="refsect1" title="Return value"><a name="id451955"></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="id451969"></a><h2>See also</h2><p><a class="xref" href="refvers.html" title="ne_version_match"><span class="refentrytitle">ne_version_match</span></a>, <a class="xref" href="refsockinit.html" title="ne_sock_init"><span class="refentrytitle">ne_sock_init</span></a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refgetst.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refi18n.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_get_status </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_i18n_init</td></tr></table></div></body></html>
+    </p></div><div class="refsect1"><a name="idm140368850777840"></a><h2>Return value</h2><p><code class="function">ne_has_support</code> returns non-zero if 
+    the given feature is supported, or zero otherwise.</p></div><div class="refsect1"><a name="idm140368850776096"></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>
index 76f3c83..6f1c955 100644 (file)
@@ -1,10 +1,10 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_get_status</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_request.h&gt;</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="id451137"></a><h2>Description</h2><p>The <code class="function">ne_get_status</code> function returns
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_get_status</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="referr.html" title="ne_get_error"><link rel="next" href="reffeat.html" title="ne_has_support"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_get_status</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="referr.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="reffeat.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refgetst"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_get_status — retrieve HTTP response status for request</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_request.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_status *<b class="fsfunc">ne_get_status</b>(</code></td><td>const ne_request *<var class="pdparam">request</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368850876304"></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="id451600"></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="id451616"></a><h2>Example</h2><p>Display the response status code of applying the
+valid until the associated request object is destroyed.</p></div><div class="refsect1"><a name="idm140368850820464"></a><h2>See also</h2><p><a class="xref" href="refstatus.html#ne_status">ne_status</a>, <a class="xref" href="refreq.html#ne_request_create">ne_request_create</a></p></div><div class="refsect1"><a name="idm140368850818576"></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... */
index fe7bb26..691828f 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_i18n_init</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_i18n.h&gt;</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="id452273"></a><h2>Description</h2><p>The <code class="function">ne_i18n_init</code> function can be used
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_i18n_init</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="reffeat.html" title="ne_has_support"><link rel="next" href="refiaddr.html" title="ne_iaddr_make"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_i18n_init</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="reffeat.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refiaddr.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refi18n"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_i18n_init — functions to initialize internationalization support</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_i18n.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_i18n_init</b>(</code></td><td>const char *<var class="pdparam">encoding</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368850739712"></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="id452354"></a><h2>See also</h2><p><a class="xref" href="refsockinit.html#ne_sock_init">ne_sock_init</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="reffeat.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refiaddr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_has_support </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_iaddr_make</td></tr></table></div></body></html>
+    encoding parameter.</p></div><div class="refsect1"><a name="idm140368850730176"></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>
index b497adb..55d3f78 100644 (file)
@@ -1,9 +1,9 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_iaddr_make</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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="refi18n.html" title="ne_i18n_init"><link rel="next" href="refalloc.html" title="ne_malloc"></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_iaddr_make</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refi18n.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refalloc.html">Next</a></td></tr></table><hr></div><div class="refentry" title="ne_iaddr_make"><a name="refiaddr"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_iaddr_make, ne_iaddr_cmp, ne_iaddr_print, ne_iaddr_typeof, ne_iaddr_parse, ne_iaddr_raw, ne_iaddr_reverse, ne_iaddr_free — functions to manipulate network addresses</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_socket.h&gt;
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_iaddr_make</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><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="refi18n.html" title="ne_i18n_init"><link rel="next" href="refalloc.html" title="ne_malloc"></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_iaddr_make</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refi18n.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refalloc.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refiaddr"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_iaddr_make, ne_iaddr_cmp, ne_iaddr_print, ne_iaddr_typeof, ne_iaddr_parse, ne_iaddr_raw, ne_iaddr_reverse, ne_iaddr_free — functions to manipulate network addresses</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_socket.h&gt;
 
 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">ne_inet_addr *<b class="fsfunc">ne_iaddr_parse</b>(</code></td><td>const char *<var class="pdparam">address</var>, </td></tr><tr><td> </td><td>ne_iaddr_type <var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">unsigned char *<b class="fsfunc">ne_iaddr_raw</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var>, </td></tr><tr><td> </td><td>unsigned char *<var class="pdparam">buffer</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">int <b class="fsfunc">ne_iaddr_reverse</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">buffer</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">buflen</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" 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="id452819"></a><h2>Description</h2><p><code class="function">ne_iaddr_make</code> creates an
+} <em class="type">ne_iaddr_type</em>;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_inet_addr *<b class="fsfunc">ne_iaddr_make</b>(</code></td><td>ne_iaddr_type <var class="pdparam">type</var>, </td></tr><tr><td> </td><td>const unsigned char *<var class="pdparam">raw</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_iaddr_cmp</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia1</var>, </td></tr><tr><td> </td><td>const ne_inet_addr *<var class="pdparam">ia2</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_iaddr_print</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">buffer</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">bufsiz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_iaddr_type <b class="fsfunc">ne_iaddr_typeof</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_inet_addr *<b class="fsfunc">ne_iaddr_parse</b>(</code></td><td>const char *<var class="pdparam">address</var>, </td></tr><tr><td> </td><td>ne_iaddr_type <var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">unsigned char *<b class="fsfunc">ne_iaddr_raw</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var>, </td></tr><tr><td> </td><td>unsigned char *<var class="pdparam">buffer</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_iaddr_reverse</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">buffer</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">buflen</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_iaddr_free</b>(</code></td><td>const ne_inet_addr *<var class="pdparam">ia</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368850673184"></a><h2>Description</h2><p><code class="function">ne_iaddr_make</code> creates an
     <em class="type">ne_inet_addr</em> object from a raw binary network
     address; for instance the four bytes <code class="literal">0x7f 0x00 0x00
     0x01</code> represent the IPv4 address
@@ -31,7 +31,7 @@ typedef enum {
     hostname is longer than the buffer it will be silently truncated;
     on success the string written to the buffer is always
     <code class="literal">NUL</code>-terminated.</p><p><code class="function">ne_iaddr_free</code> releases the memory
-    associated with a network address object.</p></div><div class="refsect1" title="Return value"><a name="id452931"></a><h2>Return value</h2><p><code class="function">ne_iaddr_make</code> returns <code class="literal">NULL</code> if the
+    associated with a network address object.</p></div><div class="refsect1"><a name="idm140368850659840"></a><h2>Return value</h2><p><code class="function">ne_iaddr_make</code> returns <code class="literal">NULL</code> if the
     address type passed is not supported (for instance on a platform
     which does not support IPv6).</p><p><code class="function">ne_iaddr_print</code> returns the
     <code class="parameter">buffer</code> pointer, and never <code class="literal">NULL</code>.</p><p><code class="function">ne_iaddr_parse</code> returns a network
@@ -39,7 +39,7 @@ typedef enum {
     <code class="parameter">address</code> parameter.</p><p><code class="function">ne_iaddr_reverse</code> returns zero on
     success or non-zero if no hostname is associated with the
     address.</p><p><code class="function">ne_iaddr_raw</code> returns the
-    <code class="parameter">buffer</code> parameter, and never <code class="literal">NULL</code>.</p></div><div class="refsect1" title="Examples"><a name="id453012"></a><h2>Examples</h2><p>The following example connects a socket to port 80 at the
+    <code class="parameter">buffer</code> parameter, and never <code class="literal">NULL</code>.</p></div><div class="refsect1"><a name="idm140368850650064"></a><h2>Examples</h2><p>The following example connects a socket to port 80 at the
     address <code class="literal">127.0.0.1</code>.</p><pre class="programlisting">unsigned char addr[] = "\0x7f\0x00\0x00\0x01";
 ne_inet_addr *ia;
 
@@ -50,4 +50,4 @@ if (ia != NULL) {
     /* ... */
 } else {
     /* ... */
-}</pre></div><div class="refsect1" title="See also"><a name="id453035"></a><h2>See also</h2><p><a class="xref" href="refresolve.html#ne_addr_resolve">ne_addr_resolve</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refi18n.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refalloc.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_i18n_init </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_malloc</td></tr></table></div></body></html>
+}</pre></div><div class="refsect1"><a name="idm140368850647328"></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>
index e1a2e40..5f844ff 100644 (file)
@@ -1,11 +1,11 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>neon</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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="id446181"></a><h2>Description</h2><p>neon is an HTTP and WebDAV client library.  The major
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>neon</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="ref.html" title="neon API reference"><link rel="next" href="refconfig.html" title="neon-config"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">neon</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ref.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refconfig.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refneon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>neon — HTTP and WebDAV client library</p></div><div class="refsect1"><a name="idm140368851469392"></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="id446521"></a><h2>Conventions</h2><p>Some conventions are used throughout the neon API, to
+    included, see <a class="xref" href="refsslvfy.html#ne_ssl_set_verify">ne_ssl_set_verify</a>.</p></div><div class="refsect1"><a name="idm140368851464416"></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="id446602"></a><h3>Thread-safeness and global initialization</h3><p>neon itself is implemented to be thread-safe (avoiding any
+    below.</p><div class="refsect2"><a name="idm140368851463248"></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
@@ -19,7 +19,7 @@
     OpenSSL or GnuTLS.</p><p>Some platforms and libraries used by neon require global
     initialization before use; notably:
 
-    </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">The <code class="literal">SIGPIPE</code> signal
+    </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">The <code class="literal">SIGPIPE</code> signal
       disposition must be set to <span class="emphasis"><em>ignored</em></span> or
       otherwise handled to avoid process termination when writing to a
       socket which has been shutdown by the peer.</li><li class="listitem">OpenSSL and GnuTLS require global
     (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="id446695"></a><h3>Asynchronous signal safety</h3><p>No function in neon is defined to be <span class="quote">“<span class="quote">async-signal safe</span>”</span> -
+    for internationalization in neon.</p></div><div class="refsect2"><a name="idm140368851410560"></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="id446711"></a><h3>Functions using global state</h3><p>Any function in neon may modify the
+    process.</p></div><div class="refsect2"><a name="idm140368851408688"></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
     functions which use or modify process-global state in neon are
     as follows:
 
-    </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><a class="xref" href="refsockinit.html#ne_sock_init">ne_sock_init</a>, <a class="xref" href="refi18n.html#ne_i18n_init">ne_i18n_init</a>, and <a class="xref" href="refsockinit.html#ne_sock_exit">ne_sock_exit</a>, as
+    </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><a class="xref" href="refsockinit.html#ne_sock_init">ne_sock_init</a>, <a class="xref" href="refi18n.html#ne_i18n_init">ne_i18n_init</a>, and <a class="xref" href="refsockinit.html#ne_sock_exit">ne_sock_exit</a>, as
       described above</li><li class="listitem"><code class="function">ne_debug_init</code> and
       <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="id446785"></a><h3>Namespaces</h3><p>To avoid possible collisions between names used for symbols
+      <code class="function">malloc</code> failure</li></ul></div></div><div class="refsect2"><a name="idm140368851399744"></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
@@ -65,7 +65,7 @@
     collisions can only be detected at link time, when the linker
     attempts to resolve symbols.  The following list documents some of
     the namespaces claimed by libraries used by neon; this list may
-    be incomplete.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term">SSL, ssl, TLS, tls, ERR_, BIO_, d2i_, i2d_, ASN1_</span></p></td><td>Some of the many prefixes used by the OpenSSL
+    be incomplete.</p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term">SSL, ssl, TLS, tls, ERR_, BIO_, d2i_, i2d_, ASN1_</span></p></td><td>Some of the many prefixes used by the OpenSSL
        library; little attempt has been made to keep exported symbols
        within any particular prefixes for this
        library.</td></tr><tr><td><p><span class="term">gnutls_, gcry_, gpg_</span></p></td><td>Namespaces used by the GnuTLS library (and
         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="id446915"></a><h3>Argument validation</h3><p>neon does not attempt to validate that the parameters
+         library.</td></tr></tbody></table></div></div><div class="refsect2"><a name="idm140368851384144"></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="id446928"></a><h3>URI paths, WebDAV metadata</h3><p>The path strings passed to any function must be
+    likely that neon will segfault under these conditions.</p></div><div class="refsect2"><a name="idm140368851380992"></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="id446952"></a><h3>User interaction</h3><p>As a pure library interface, neon will never produce
+    strings.</p></div><div class="refsect2"><a name="idm140368851379200"></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="id446973"></a><h3>Memory handling</h3><p>neon does not attempt to cope gracefully with an
+    responsibilty of the application.</p></div><div class="refsect2"><a name="idm140368851376816"></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="id447001"></a><h3>Callbacks and userdata</h3><p>Whenever a callback is registered, a
+    such a situation; see <a class="xref" href="refalloc.html#ne_oom_callback">ne_oom_callback</a>.</p></div><div class="refsect2"><a name="idm140368851373296"></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="id447021"></a><h3>Large File Support</h3><p>Since version 0.27.0, neon transparently uses the "LFS
+    be used.</p></div><div class="refsect2"><a name="idm140368851370848"></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
     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="id447067"></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"><a name="idm140368851365408"></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>
index a7eff48..c07bec5 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_useragent</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_session.h&gt;</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="id457624"></a><h2>Description</h2><p>The <code class="literal">User-Agent</code> request header is used
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_useragent</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refresphdr.html" title="ne_get_response_header"><link rel="next" href="refreqflags.html" title="ne_set_request_flag"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_set_useragent</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refresphdr.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refreqflags.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refopts"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_useragent, ne_set_read_timeout, ne_set_connect_timeout, ne_get_scheme, ne_get_server_hostport — common properties for HTTP sessions</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_session.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_useragent</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">product</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_read_timeout</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">timeout</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_connect_timeout</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">timeout</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_get_scheme</b>(</code></td><td>ne_sesssion *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_get_server_hostport</b>(</code></td><td>ne_sesssion *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368849976592"></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="id457734"></a><h2>Examples</h2><p>Set a user-agent string:</p><pre class="programlisting">ne_session *sess = ne_session_create(...);
+         for the scheme is used.</p></div><div class="refsect1"><a name="idm140368849963552"></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="id457759"></a><h2>See also</h2><p><a class="xref" href="refsess.html#ne_session_create">ne_session_create</a>, <a class="xref" href="refsessflags.html#ne_set_session_flag">ne_set_session_flag</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refresphdr.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refreqflags.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_get_response_header </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_set_request_flag</td></tr></table></div></body></html>
+ne_set_read_timeout(sess, 30);</pre></div><div class="refsect1"><a name="idm140368849960576"></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/refproxy.html b/doc/html/refproxy.html
new file mode 100644 (file)
index 0000000..ed127bc
--- /dev/null
@@ -0,0 +1,53 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_session_proxy</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refsess.html" title="ne_session_create"><link rel="next" href="refsessflags.html" title="ne_set_session_flag"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_session_proxy</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsess.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsessflags.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refproxy"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_session_proxy, ne_session_socks_proxy, ne_session_system_proxy, ne_set_addrlist — configure proxy servers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_session.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_session_proxy</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">hostname</var>, </td></tr><tr><td> </td><td>unsigned int <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_session_system_proxy</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_session_socks_proxy</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>enum ne_sock_sversion <var class="pdparam">version</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">hostname</var>, </td></tr><tr><td> </td><td>unsigned int <var class="pdparam">port</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">username</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">password</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_addrlist</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const ne_inet_addr **<var class="pdparam">addrlist</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">count</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368850403408"></a><h2>Description</h2><p>One (and no more than one) of the functions
+       <code class="function">ne_session_proxy</code>,
+       <code class="function">ne_session_system_proxy</code>,
+       <code class="function">ne_session_socks_proxy</code>,
+       <code class="function">ne_set_addrlist</code> can be used to configure
+       a proxy server for a given session object.  If more than one
+       function is invoked for any given session object, only the
+       last call has effect.  If one of the functions is to be used,
+       it must be used before the creation of any request object for
+       the session.</p><div class="refsect2"><a name="idm140368850399584"></a><h3>HTTP proxy specification</h3><p>The <code class="function">ne_session_proxy</code> function
+          configures use of an HTTP proxy server for the session, the
+          location of which is given by the
+          <code class="parameter">hostname</code> and
+          <code class="parameter">port</code> paramters.  If the proxy
+          requires authentication, <a class="xref" href="refauth.html#ne_set_proxy_auth">ne_set_proxy_auth</a>
+          should be used.</p></div><div class="refsect2"><a name="idm140368850395840"></a><h3>System proxy configuration</h3><p>The <code class="function">ne_session_system_proxy</code>
+          function configures the session to use any proxy servers
+          specified by the system configuration.  Support for this
+          function is platform-specific; if unsupported, the function
+          has no effect.</p></div><div class="refsect2"><a name="idm140368850393824"></a><h3>SOCKS proxy configuration</h3><p>The <code class="function">ne_session_socks_proxy</code>
+          function configures the session to use a SOCKS proxy.  The
+          <code class="parameter">version</code> indicates which version of
+          the SOCKS protocol should be used.  The
+          <code class="parameter">hostname</code> and
+          <code class="parameter">port</code> parameters specify the SOCKS
+          proxy location.  Note that a server with only an IPv6
+          address cannot be used with SOCKS v4 or v4A.  The
+          interpretation of the other arguments depends on the version
+          specified:</p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="constant">NE_SOCK_SOCKSV4</code> (version 4)</span></p></td><td>The <code class="parameter">username</code> parameter
+              must be non-<code class="literal">NULL</code>; the <code class="parameter">password</code>
+              parameter is ignored.</td></tr><tr><td><p><span class="term"><code class="constant">NE_SOCK_SOCKSV4A</code> (version 4A)</span></p></td><td>The <code class="parameter">username</code> parameter
+             must be non-<code class="literal">NULL</code>; the <code class="parameter">password</code>
+             parameter is ignored.</td></tr><tr><td><p><span class="term"><code class="constant">NE_SOCK_SOCKSV5</code> (version 5)</span></p></td><td>The <code class="parameter">username</code> parameter
+             may be <code class="literal">NULL</code>; if it is non-<code class="literal">NULL</code>,
+             the <code class="parameter">password</code> parameter must also
+             be non-<code class="literal">NULL</code>; otherwise, it is ignored..</td></tr></tbody></table></div></div><div class="refsect2"><a name="idm140368850377472"></a><h3>Origin server address override</h3><p>The <code class="function">ne_set_addrlist</code> function
+          forces use of an address and port the a specified list when
+          establishing a TCP connection, ignoring the "real" hostname
+          and port identifying the origin server for the session (as
+          passed to <code class="function">ne_session_create</code>).  The
+          origin server's "real" hostname and port will still be used
+          in the <code class="literal">Host</code> header in HTTP requests.
+          When a connection is required, the library will iterate
+          through the <code class="parameter">addrlist</code> list, attempting
+          to connect to the address <code class="parameter">addrlist[0]</code>
+          through to <code class="parameter">addrlist[count-1]</code> in turn,
+          until a connection can be established.</p></div></div><div class="refsect1"><a name="idm140368850371872"></a><h2>Return Values</h2><p>None of the functions described here has a return
+       value.</p></div><div class="refsect1"><a name="idm140368850370640"></a><h2>Examples</h2><p>Create and destroy a session:</p><pre class="programlisting">ne_session *sess;
+sess = ne_session_create("http", "host.example.com", 80);
+ne_session_proxy(sess, "proxy.example.com", 3128);
+/* ... use sess ... */
+ne_session_destroy(sess);
+</pre></div><div class="refsect1"><a name="idm140368850368672"></a><h2>See Also</h2><p><a class="xref" href="refsslvfy.html#ne_ssl_set_verify">ne_ssl_set_verify</a>, <a class="xref" href="refsslca.html#ne_ssl_trust_cert">ne_ssl_trust_cert</a>, <a class="xref" href="refsockinit.html#ne_sock_init">ne_sock_init</a>, <a class="xref" href="refsessflags.html#ne_set_session_flag">ne_set_session_flag</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsess.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refsessflags.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_session_create </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_set_session_flag</td></tr></table></div></body></html>
index 0b9ea74..3b1be6e 100644 (file)
@@ -1,11 +1,11 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_request_create</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_request.h&gt;</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="id455639"></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
-object, specifying the operation in the <code class="parameter">method</code>
-parameter. The location of the resource is determined by the server in
-use for the session given by the <code class="parameter">sess</code>
-parameter, combined with the <code class="parameter">path</code> parameter.</p><p>The <code class="parameter">path</code> string used must conform to the
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_request_create</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refsessflags.html" title="ne_set_session_flag"><link rel="next" href="refreqhdr.html" title="ne_add_request_header"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_request_create</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsessflags.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refreqhdr.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refreq"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_request_create, ne_request_dispatch, ne_request_destroy — low-level HTTP request handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_request.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_request *<b class="fsfunc">ne_request_create</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">method</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">path</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_request_dispatch</b>(</code></td><td>ne_request *<var class="pdparam">req</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_request_destroy</b>(</code></td><td>ne_request *<var class="pdparam">req</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368850214640"></a><h2>Description</h2><p>The <em class="type">ne_request</em> object represents an HTTP
+        request and the associated response.
+        The <code class="function">ne_request_create</code> function creates a
+        new request object for the
+        given <code class="parameter">session</code>.  The target resource for
+        the request is identified by the <code class="parameter">path</code>,
+        and the method to be performed on that resource via
+        the <code class="parameter">method</code> parameter.</p><p>The <code class="parameter">path</code> string used must conform to the
 <code class="literal">abs_path</code> definition given in RFC2396, with an
 optional "?query" part, and must be URI-escaped by the caller (for
 instance, using <code class="function">ne_path_escape</code>).  If the string
@@ -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="id455805"></a><h2>Return value</h2><p>The <code class="function">ne_request_create</code> function
+        disabled; see <a class="xref" href="refreqflags.html#ne_set_request_flag">ne_set_request_flag</a>.</p></div><div class="refsect1"><a name="idm140368850194736"></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="id455837"></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="id455936"></a><h2>Example</h2><p>An example of applying a <code class="literal">MKCOL</code>
+non-zero error code otherwise.</p></div><div class="refsect1"><a name="idm140368850190880"></a><h2>Errors</h2><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><span class="errorcode">NE_ERROR</span></span></p></td><td>Request failed (see session error string)</td></tr><tr><td><p><span class="term"><span class="errorcode">NE_LOOKUP</span></span></p></td><td>The DNS lookup for the server (or proxy server) failed.</td></tr><tr><td><p><span class="term"><span class="errorcode">NE_AUTH</span></span></p></td><td>Authentication failed on the server.</td></tr><tr><td><p><span class="term"><span class="errorcode">NE_PROXYAUTH</span></span></p></td><td>Authentication failed on the proxy server.</td></tr><tr><td><p><span class="term"><span class="errorcode">NE_CONNECT</span></span></p></td><td>A connection to the server could not be established.</td></tr><tr><td><p><span class="term"><span class="errorcode">NE_TIMEOUT</span></span></p></td><td>A timeout occurred while waiting for the server to respond.</td></tr></tbody></table></div></div><div class="refsect1"><a name="idm140368850178992"></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="id455963"></a><h2>See also</h2><p><a class="xref" href="referr.html#ne_get_error">ne_get_error</a>, <a class="xref" href="referr.html#ne_set_error">ne_set_error</a>, <a class="xref" href="refgetst.html#ne_get_status">ne_get_status</a>, <a class="xref" href="refreqhdr.html#ne_add_request_header">ne_add_request_header</a>, <a class="xref" href="refreqbody.html#ne_set_request_body_buffer">ne_set_request_body_buffer</a>, <a class="xref" href="refreqflags.html#ne_set_request_flag">ne_set_request_flag</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsessflags.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refreqhdr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_set_session_flag </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_add_request_header</td></tr></table></div></body></html>
+ne_request_destroy(req);</pre></div><div class="refsect1"><a name="idm140368850175712"></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>
index a5b8735..d0bb247 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_request_body_buffer</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_request.h&gt;</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="id458690"></a><h2>Description</h2><p>The <code class="function">ne_set_request_body_buffer</code>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_request_body_buffer</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refreqflags.html" title="ne_set_request_flag"><link rel="next" href="refauth.html" title="ne_set_server_auth"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_set_request_body_buffer</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refreqflags.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refauth.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refreqbody"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_request_body_buffer, ne_set_request_body_fd, ne_set_request_body_fd64 — include a message body with a request</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_request.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_request_body_buffer</b>(</code></td><td>ne_request *<var class="pdparam">req</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">buf</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">count</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_set_request_body_fd</b>(</code></td><td>ne_request *<var class="pdparam">req</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">fd</var>, </td></tr><tr><td> </td><td>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"><a name="idm140368849848704"></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="id458764"></a><h2>See also</h2><p><a class="xref" href="refreq.html#ne_request_create">ne_request_create</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refreqflags.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refauth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_set_request_flag </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_set_server_auth</td></tr></table></div></body></html>
+        internally.</p></div><div class="refsect1"><a name="idm140368849839904"></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>
index 88b7f79..fb25671 100644 (file)
@@ -1,7 +1,7 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_request_flag</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_request.h&gt;</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="id458246"></a><h2>Description</h2><p>The <code class="function">ne_set_request_flag</code> function
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_request_flag</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refopts.html" title="ne_set_useragent"><link rel="next" href="refreqbody.html" title="ne_set_request_body_buffer"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_set_request_flag</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refopts.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refreqbody.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refreqflags"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_request_flag, ne_get_request_flag — set and retrieve per-request flags</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_request.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_request_flag</b>(</code></td><td>ne_request *<var class="pdparam">req</var>, </td></tr><tr><td> </td><td>ne_request_flag <var class="pdparam">flag</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">value</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_get_request_flag</b>(</code></td><td>ne_request *<var class="pdparam">req</var>, </td></tr><tr><td> </td><td>ne_request_flag <var class="pdparam">flag</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368849902080"></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>enable this flag to use the "Expect:
+    disables it.</p><p>The following flags are defined:</p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="constant">NE_REQFLAG_EXPECT100</code></span></p></td><td>enable this flag to use the "Expect:
              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
@@ -9,6 +9,6 @@
              the request to be resent), but has interoperability
              problems with some older servers.</td></tr><tr><td><p><span class="term"><code class="constant">NE_REQFLAG_IDEMPOTENT</code></span></p></td><td>disable this flag if the request uses a
              non-idempotent method such as
-             <code class="literal">POST</code></td></tr></tbody></table></div></div><div class="refsect1" title="Return value"><a name="id458309"></a><h2>Return value</h2><p>The <code class="function">ne_get_request_flag</code> function returns
+             <code class="literal">POST</code></td></tr></tbody></table></div></div><div class="refsect1"><a name="idm140368849894496"></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="id458325"></a><h2>See also</h2><p><a class="xref" href="refreq.html#ne_request_create">ne_request_create</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refopts.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refreqbody.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_set_useragent </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_set_request_body_buffer</td></tr></table></div></body></html>
+    supported, or greater than zero if the flag is enabled.</p></div><div class="refsect1"><a name="idm140368849892560"></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>
index 8da242f..1255a40 100644 (file)
@@ -1,8 +1,8 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_add_request_header</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_request.h&gt;</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="id456632"></a><h2>Description</h2><p>The functions <code class="function">ne_add_request_header</code>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_add_request_header</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refreq.html" title="ne_request_create"><link rel="next" href="refresphdr.html" title="ne_get_response_header"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_add_request_header</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refreq.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refresphdr.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refreqhdr"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_add_request_header, ne_print_request_header — add headers to a request</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_request.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_add_request_header</b>(</code></td><td>ne_request *<var class="pdparam">request</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">value</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_print_request_header</b>(</code></td><td>ne_request *<var class="pdparam">request</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">format</var>, </td></tr><tr><td> </td><td>...<code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368850095456"></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="id456694"></a><h2>See also</h2><p><a class="xref" href="refreq.html#ne_request_create">ne_request_create</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refreq.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refresphdr.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_request_create </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_get_response_header</td></tr></table></div></body></html>
+parameter and subsequent variable-length argument list.</p></div><div class="refsect1"><a name="idm140368850088016"></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>
index 5845b70..fb7d609 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_addr_resolve</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_socket.h&gt;</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="id448486"></a><h2>Description</h2><p>The <code class="function">ne_addr_resolve</code> function resolves
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_addr_resolve</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refconfig.html" title="neon-config"><link rel="next" href="refbuf.html" title="ne_buffer"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_addr_resolve</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refconfig.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refbuf.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refresolve"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_addr_resolve, ne_addr_result, ne_addr_first, ne_addr_next, ne_addr_error, ne_addr_destroy — functions to resolve hostnames to addresses</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_socket.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_sock_addr *<b class="fsfunc">ne_addr_resolve</b>(</code></td><td>const char *<var class="pdparam">hostname</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">flags</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_addr_result</b>(</code></td><td>const ne_sock_addr *<var class="pdparam">addr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_inet_addr *<b class="fsfunc">ne_addr_first</b>(</code></td><td>ne_sock_addr *<var class="pdparam">addr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const ne_inet_addr *<b class="fsfunc">ne_addr_next</b>(</code></td><td>ne_sock_addr *<var class="pdparam">addr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_addr_error</b>(</code></td><td>const ne_sock_addr *<var class="pdparam">addr</var>, </td></tr><tr><td> </td><td>char *<var class="pdparam">buffer</var>, </td></tr><tr><td> </td><td>size_t <var class="pdparam">bufsiz</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_addr_destroy</b>(</code></td><td>ne_sock_addr *<var class="pdparam">addr</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368851194688"></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
     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="id448631"></a><h2>Return value</h2><p><code class="function">ne_addr_resolve</code> returns a pointer to an
+    destroyed using <code class="function">ne_addr_destroy</code>.</p></div><div class="refsect1"><a name="idm140368851177200"></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="id448661"></a><h2>Examples</h2><p>The code below prints out the set of addresses associated
+    <code class="parameter">buffer</code> parameter .</p></div><div class="refsect1"><a name="idm140368851173680"></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="id448685"></a><h2>See also</h2><p><a class="xref" href="refiaddr.html#ne_iaddr_print">ne_iaddr_print</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refconfig.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refbuf.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">neon-config </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_buffer</td></tr></table></div></body></html>
+</pre></div><div class="refsect1"><a name="idm140368851170704"></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>
index 15d4095..dcae007 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_get_response_header</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_request.h&gt;</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="id457036"></a><h2>Description</h2><p>To retrieve the value of a response header field, the
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_get_response_header</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refreqhdr.html" title="ne_add_request_header"><link rel="next" href="refopts.html" title="ne_set_useragent"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_get_response_header</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refreqhdr.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refopts.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refresphdr"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_get_response_header, ne_response_header_iterate — functions to access response headers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_request.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_get_response_header</b>(</code></td><td>ne_request *<var class="pdparam">request</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">name</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void *<b class="fsfunc">ne_response_header_iterate</b>(</code></td><td>ne_request *<var class="pdparam">request</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">cursor</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">name</var>, </td></tr><tr><td> </td><td>const char **<var class="pdparam">value</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368850046912"></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="id457088"></a><h2>Return value</h2><p><code class="function">ne_get_response_header</code> returns a
+    next header.</p></div><div class="refsect1"><a name="idm140368850040688"></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="id457128"></a><h2>Examples</h2><p>The following code will output the value of the
+    until the request object is destroyed.</p></div><div class="refsect1"><a name="idm140368850035920"></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="id457150"></a><h2>See also</h2><p><a class="xref" href="refreq.html#ne_request_create">ne_request_create</a>, <a class="xref" href="refreq.html#ne_request_destroy">ne_request_destroy</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refreqhdr.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refopts.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_add_request_header </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_set_useragent</td></tr></table></div></body></html>
+ne_request_destroy(req);</pre></div><div class="refsect1"><a name="idm140368850033216"></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>
index c12034e..74d7733 100644 (file)
@@ -1,36 +1,40 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_session_create</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_session.h&gt;</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="id454329"></a><h2>Description</h2><p>An <em class="type">ne_session</em> object represents an HTTP
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_session_create</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refalloc.html" title="ne_malloc"><link rel="next" href="refproxy.html" title="ne_session_proxy"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_session_create</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refalloc.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refproxy.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsess"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_session_create, ne_close_connection, ne_session_destroy — set up HTTP sessions</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_session.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_session *<b class="fsfunc">ne_session_create</b>(</code></td><td>const char *<var class="pdparam">scheme</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">hostname</var>, </td></tr><tr><td> </td><td>unsigned int <var class="pdparam">port</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_close_connection</b>(</code></td><td>ne_session *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_session_destroy</b>(</code></td><td>ne_session *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368850496016"></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
-other common attributes.</p><p>A new HTTP session is created using
-<code class="function">ne_session_create</code>, giving the
-<code class="parameter">hostname</code> and <code class="parameter">port</code> of the
-server to use, along with the <code class="parameter">scheme</code> used to
-contact the server (usually <code class="literal">"http"</code>).  Before the
-first use of <code class="function">ne_session_create</code> in a process,
-<a class="xref" href="refsockinit.html#ne_sock_init">ne_sock_init</a> must have been called to perform any
-global initialization needed by any libraries used by neon.</p><p>To enable SSL/TLS for the session, pass the string
+other common attributes.</p><p>A new HTTP session is created using the
+<code class="function">ne_session_create</code> function; the 
+<code class="parameter">hostname</code> and <code class="parameter">port</code>
+parameters specify the origin server to use, along with
+the <code class="parameter">scheme</code> (usually <code class="literal">"http"</code>).
+Before the first use of <code class="function">ne_session_create</code> in a
+process, <a class="xref" href="refsockinit.html#ne_sock_init">ne_sock_init</a> must have been called to
+perform any global initialization needed by any libraries used by
+neon.</p><p>To enable SSL/TLS for the session, pass the string
 <code class="literal">"https"</code> as the <code class="parameter">scheme</code>
 parameter, and either register a certificate verification function
 (see <a class="xref" href="refsslvfy.html#ne_ssl_set_verify">ne_ssl_set_verify</a>) or trust the appropriate 
-certificate (see <a class="xref" href="refsslca.html#ne_ssl_trust_cert">ne_ssl_trust_cert</a>, <a class="xref" href="refsslca.html#ne_ssl_trust_default_ca">ne_ssl_trust_default_ca</a>).</p><p>If an HTTP proxy server should be used for the session,
-       <code class="function">ne_session_proxy</code> must be called giving
-       the hostname and port on which to contact the proxy.</p><p>Further per-session options may be changed using the
-        <a class="xref" href="refreqflags.html#ne_set_request_flag">ne_set_request_flag</a> interface.</p><p>If it is known that the session will not be used for a
+certificate (see <a class="xref" href="refsslca.html#ne_ssl_trust_cert">ne_ssl_trust_cert</a>, <a class="xref" href="refsslca.html#ne_ssl_trust_default_ca">ne_ssl_trust_default_ca</a>).</p><p>To use a proxy server for the session, it must be
+       configured (see <a class="xref" href="refproxy.html#ne_session_proxy">ne_session_proxy</a>) before any
+       requests are created from session object.</p><p>Further per-session options may be changed using the
+        <a class="xref" href="refsessflags.html#ne_set_session_flag">ne_set_session_flag</a> interface.</p><p>If it is known that the session will not be used for a
 significant period of time, <code class="function">ne_close_connection</code>
 can be called to close the connection, if one remains open.  Use of
 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="id454449"></a><h2>Notes</h2><p>The hostname passed to
+       <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.  The session object must not be destroyed until
+       after all associated request objects have been
+       destroyed.</p></div><div class="refsect1"><a name="idm140368850481840"></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="id454474"></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="id454494"></a><h2>Examples</h2><p>Create and destroy a session:</p><pre class="programlisting">ne_session *sess;
+details.</p></div><div class="refsect1"><a name="idm140368850478784"></a><h2>Return Values</h2><p><code class="function">ne_session_create</code> will return
+       a pointer to a new session object (and never <code class="literal">NULL</code>).</p></div><div class="refsect1"><a name="idm140368850476432"></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="id454510"></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"><a name="idm140368850474512"></a><h2>See Also</h2><p><a class="xref" href="refsslvfy.html#ne_ssl_set_verify">ne_ssl_set_verify</a>, <a class="xref" href="refsslca.html#ne_ssl_trust_cert">ne_ssl_trust_cert</a>, <a class="xref" href="refsockinit.html#ne_sock_init">ne_sock_init</a>, <a class="xref" href="refsessflags.html#ne_set_session_flag">ne_set_session_flag</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refalloc.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refproxy.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_malloc </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_session_proxy</td></tr></table></div></body></html>
index 9380734..d2aa270 100644 (file)
@@ -1,7 +1,7 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_session_flag</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_request.h&gt;</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="id455042"></a><h2>Description</h2><p>The <code class="function">ne_set_session_flag</code> function
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_set_session_flag</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refproxy.html" title="ne_session_proxy"><link rel="next" href="refreq.html" title="ne_request_create"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_set_session_flag</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refproxy.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refreq.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsessflags"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_set_session_flag, ne_get_session_flag — set and retrieve session flags</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_request.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_set_session_flag</b>(</code></td><td>ne_session *<var class="pdparam">sess</var>, </td></tr><tr><td> </td><td>ne_session_flag <var class="pdparam">flag</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">value</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_get_session_flag</b>(</code></td><td>ne_session *<var class="pdparam">sess</var>, </td></tr><tr><td> </td><td>ne_session_flag <var class="pdparam">flag</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368850286208"></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
+    disables it.</p><p>The following flags are defined:</p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="constant">NE_SESSFLAG_PERSIST</code></span></p></td><td>disable this flag to prevent use of persistent
              connections</td></tr><tr><td><p><span class="term"><code class="constant">NE_SESSFLAG_ICYPROTO</code></span></p></td><td>enable this flag to enable support for non-HTTP
              ShoutCast-style "ICY" responses</td></tr><tr><td><p><span class="term"><code class="constant">NE_SESSFLAG_SSLv2</code></span></p></td><td>disable this flag to disable support for the SSLv2
              protocol</td></tr><tr><td><p><span class="term"><code class="constant">NE_SESSFLAG_RFC4918</code></span></p></td><td>enable this flag to enable support for
@@ -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="id455175"></a><h2>Return value</h2><p>The <code class="function">ne_get_session_flag</code> function
+             requests</td></tr></tbody></table></div></div><div class="refsect1"><a name="idm140368850270240"></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="id455191"></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"><a name="idm140368850268304"></a><h2>See also</h2><p><a class="xref" href="refsess.html#ne_session_create">ne_session_create</a>, <a class="xref" href="refreqflags.html#ne_set_request_flag">ne_set_request_flag</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refproxy.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refreq.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_session_proxy </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_request_create</td></tr></table></div></body></html>
index 1a6c2d0..411d39d 100644 (file)
@@ -1,7 +1,7 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_shave</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_string.h&gt;</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="id459710"></a><h2>Description</h2><p><code class="function">ne_shave</code> returns a portion of
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_shave</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refauth.html" title="ne_set_server_auth"><link rel="next" href="refsockinit.html" title="ne_sock_init"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_shave</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refauth.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsockinit.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refshave"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_shave — trim whitespace from a string</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_string.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_shave</b>(</code></td><td>char *<var class="pdparam">str</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">whitespace</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368849726080"></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="id459745"></a><h2>Examples</h2><p>The following code segment will output
+value may not be equal to <code class="parameter">str</code>.</p></div><div class="refsect1"><a name="idm140368849721936"></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>
index f447134..cafa572 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_sock_init</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_socket.h&gt;</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="id459975"></a><h2>Description</h2><p>In some platforms and configurations, neon may be using
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_sock_init</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refshave.html" title="ne_shave"><link rel="next" href="refcert.html" title="ne_ssl_cert_identity"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_sock_init</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refshave.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refcert.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsockinit"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_sock_init, ne_sock_exit — perform library initialization</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_socket.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_sock_init</b>(</code></td><td><code>void)</code>;</td><td> </td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_sock_exit</b>(</code></td><td><code>void)</code>;</td><td> </td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368849694320"></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
     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="id460070"></a><h3>Thread-safe SSL with OpenSSL</h3><p>neon follows two simple rules when dealing with the
+    enable thread-safety support in the SSL library.</p><div class="refsect2"><a name="idm140368849682864"></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
+      </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><code class="function">ne_sock_init</code> will set
         thread-safety locking callbacks if and only if no locking
         callbacks are already registered.</li><li class="listitem"><code class="function">ne_sock_exit</code> will
         unset the thread-safety locking callbacks if and only if the
@@ -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="id460109"></a><h3>Thread-safe SSL with GnuTLS</h3><p>The cryptography library used by GnuTLS, libgcrypt, only
+      always followed.</p></div><div class="refsect2"><a name="idm140368849678112"></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="id460135"></a><h2>Return value</h2><p><code class="function">ne_sock_init</code> returns zero on success,
+      is unloaded).</p></div></div><div class="refsect1"><a name="idm140368849674976"></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="id460150"></a><h2>See also</h2><p><a class="xref" href="refneon.html" title="neon"><span class="refentrytitle">neon</span></a>, <a class="xref" href="reffeat.html" title="ne_has_support"><span class="refentrytitle">ne_has_support</span></a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refshave.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refcert.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_shave </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_ssl_cert_identity</td></tr></table></div></body></html>
+    neon library should be attempted.</p></div><div class="refsect1"><a name="idm140368849673072"></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>
index 73ecfe0..e85ff6a 100644 (file)
@@ -1,10 +1,10 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_trust_cert</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_session.h&gt;</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="id462349"></a><h2>Description</h2><p>To indicate that a given certificate is trusted by the
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_trust_cert</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refssldname.html" title="ne_ssl_dname"><link rel="next" href="refsslvfy.html" title="ne_ssl_set_verify"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_ssl_trust_cert</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refssldname.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsslvfy.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsslca"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_trust_cert, ne_ssl_trust_default_ca — functions to indicate that certificates are trusted</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_session.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_ssl_trust_cert</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_ssl_trust_default_ca</b>(</code></td><td>ne_session *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368849409168"></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="id462374"></a><h2>Examples</h2><p>Load the CA certificate stored in <code class="filename">/path/to/cacert.pem</code>:</p><pre class="programlisting">ne_session *sess = ne_session_create(...);
+that these CAs are trusted by the user.</p></div><div class="refsect1"><a name="idm140368849406064"></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="id462396"></a><h2>See also</h2><p><a class="xref" href="refsslcertio.html#ne_ssl_cert_read">ne_ssl_cert_read</a>, <a class="xref" href="refsslcertio.html#ne_ssl_cert_import">ne_ssl_cert_import</a>, <a class="xref" href="refsslcert2.html#ne_ssl_cert_free">ne_ssl_cert_free</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refssldname.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refsslvfy.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_ssl_dname </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_ssl_set_verify</td></tr></table></div></body></html>
+}</pre></div><div class="refsect1"><a name="idm140368849403392"></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>
index 1c0d4fb..7c79f8e 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_cert_cmp</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_header.h&gt;</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="id461119"></a><h2>Description</h2><p>The <code class="function">ne_ssl_cert_cmp</code> function can be
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_cert_cmp</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refcert.html" title="ne_ssl_cert_identity"><link rel="next" href="refsslcertio.html" title="ne_ssl_cert_read"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_ssl_cert_cmp</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refcert.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsslcertio.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsslcert2"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_cert_cmp, ne_ssl_cert_free — functions to operate on certificate objects</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_header.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_ssl_cert_cmp</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">c1</var>, </td></tr><tr><td> </td><td>const ne_ssl_certificate *<var class="pdparam">c2</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_ssl_cert_free</b>(</code></td><td>ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368849556976"></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
index c4bd596..f818fc8 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_cert_read</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_ssl.h&gt;</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="id461415"></a><h2>Description</h2><p>The <code class="function">ne_ssl_cert_write</code> function writes a
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_cert_read</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refsslcert2.html" title="ne_ssl_cert_cmp"><link rel="next" href="refssldname.html" title="ne_ssl_dname"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_ssl_cert_read</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsslcert2.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refssldname.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsslcertio"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_cert_read, ne_ssl_cert_write, ne_ssl_cert_import, ne_ssl_cert_export — functions to read or write certificates to and from files or strings</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_ssl.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_ssl_certificate *<b class="fsfunc">ne_ssl_cert_read</b>(</code></td><td>const char *<var class="pdparam">filename</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_ssl_cert_write</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">filename</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_ssl_certificate *<b class="fsfunc">ne_ssl_cert_import</b>(</code></td><td>const char *<var class="pdparam">data</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_ssl_cert_export</b>(</code></td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368849521520"></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="id461477"></a><h2>Return value</h2><p><code class="function">ne_ssl_cert_read</code> returns <code class="literal">NULL</code> if a
+    returned by these functions should be destroyed using <a class="xref" href="refsslcert2.html#ne_ssl_cert_free">ne_ssl_cert_free</a> after use.</p></div><div class="refsect1"><a name="idm140368849513952"></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="id461529"></a><h2>Encoding Formats</h2><p>The string produced by
+    string was not a valid base64-encoded certificate.</p></div><div class="refsect1"><a name="idm140368849507840"></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
index dd341a0..64d685e 100644 (file)
@@ -1,9 +1,9 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_dname</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_ssl.h&gt;</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="id461952"></a><h2>Description</h2><p>The <code class="function">ne_ssl_readable_dname</code> function
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_dname</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refsslcertio.html" title="ne_ssl_cert_read"><link rel="next" href="refsslca.html" title="ne_ssl_trust_cert"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_ssl_dname</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsslcertio.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refsslca.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refssldname"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_readable_dname, ne_ssl_dname_cmp — SSL distinguished name handling</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_ssl.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_ssl_readable_dname</b>(</code></td><td>const ne_ssl_dname *<var class="pdparam">dname</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_ssl_dname_cmp</b>(</code></td><td>const ne_ssl_dname *<var class="pdparam">dn1</var>, </td></tr><tr><td> </td><td>const ne_ssl_dname *<var class="pdparam">dn2</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368849456720"></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="id461990"></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="id462015"></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="id462034"></a><h2>See also</h2><p><a class="xref" href="refcert.html#ne_ssl_cert_subject">ne_ssl_cert_subject</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsslcertio.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refsslca.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_ssl_cert_read </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_ssl_trust_cert</td></tr></table></div></body></html>
+       equal, or non-zero otherwise.</p></div><div class="refsect1"><a name="idm140368849452176"></a><h2>Return value</h2><p><code class="function">ne_ssl_readable_dname</code> returns a <code class="function">malloc</code>-allocated
+        string, and never <code class="literal">NULL</code>.</p></div><div class="refsect1"><a name="idm140368849449280"></a><h2>Examples</h2><p>See <a class="xref" href="refcert.html#ne_ssl_cert_subject">ne_ssl_cert_subject</a> for an example
+        use of <code class="function">ne_ssl_readable_dname</code>.</p></div><div class="refsect1"><a name="idm140368849447008"></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>
index 4d4fbd9..3a61c1a 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_set_verify</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_session.h&gt;</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="id462711"></a><h2>Description</h2><p>To enable manual SSL certificate verification, a
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_ssl_set_verify</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refsslca.html" title="ne_ssl_trust_cert"><link rel="next" href="refclicert.html" title="ne_ssl_client_cert"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_ssl_set_verify</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refsslca.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refclicert.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refsslvfy"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_ssl_set_verify — register an SSL certificate verification callback</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_session.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">typedef int <b class="fsfunc">ne_ssl_verify_fn</b>(</code></td><td>void *<var class="pdparam">userdata</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">failures</var>, </td></tr><tr><td> </td><td>const ne_ssl_certificate *<var class="pdparam">cert</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_ssl_set_verify</b>(</code></td><td>ne_session *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>ne_ssl_verify_fn <var class="pdparam">verify_fn</var>, </td></tr><tr><td> </td><td>void *<var class="pdparam">userdata</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368849365584"></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
@@ -7,7 +7,7 @@ some way, the connection will fail.</p><p>When the callback is invoked, the
 <code class="parameter">failures</code> parameter gives a bitmask indicating
 in what way the automatic certificate verification failed.  The value
 is equal to the bit-wise OR of one or more of the following
-constants (and is guaranteed to be non-zero):</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><code class="constant">NE_SSL_NOTYETVALID</code></span></p></td><td>The certificate is not yet valid.</td></tr><tr><td><p><span class="term"><code class="constant">NE_SSL_EXPIRED</code></span></p></td><td>The certificate has expired.</td></tr><tr><td><p><span class="term"><code class="constant">NE_SSL_IDMISMATCH</code></span></p></td><td>The hostname used for the session does not match
+constants (and is guaranteed to be non-zero):</p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="constant">NE_SSL_NOTYETVALID</code></span></p></td><td>The certificate is not yet valid.</td></tr><tr><td><p><span class="term"><code class="constant">NE_SSL_EXPIRED</code></span></p></td><td>The certificate has expired.</td></tr><tr><td><p><span class="term"><code class="constant">NE_SSL_IDMISMATCH</code></span></p></td><td>The hostname used for the session does not match
 the hostname to which the certificate was issued.</td></tr><tr><td><p><span class="term"><code class="constant">NE_SSL_UNTRUSTED</code></span></p></td><td>The Certificate Authority which signed the certificate
 is not trusted.</td></tr></tbody></table></div><p>Note that if either of the
        <code class="constant">NE_SSL_IDMISMATCH</code> or
@@ -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="id462833"></a><h2>Return value</h2><p>The verification callback must return zero to indicate
+callback returns.</p></div><div class="refsect1"><a name="idm140368849351088"></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="id462844"></a><h2>Examples</h2><p>The following code implements an example verification
+which case, the connection will fail).</p></div><div class="refsect1"><a name="idm140368849349760"></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="id462889"></a><h2>See also</h2><p><a class="xref" href="refsslca.html#ne_ssl_trust_cert">ne_ssl_trust_cert</a>, <a class="xref" href="refssldname.html#ne_ssl_readable_dname">ne_ssl_readable_dname</a>, <a class="xref" href="refcert.html#ne_ssl_cert_subject">ne_ssl_cert_subject</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refsslca.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="refclicert.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_ssl_trust_cert </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_ssl_client_cert</td></tr></table></div></body></html>
+}</pre></div><div class="refsect1"><a name="idm140368849344336"></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>
index d86fb98..a79f763 100644 (file)
@@ -1,10 +1,10 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_status</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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="refclicert.html" title="ne_ssl_client_cert"><link rel="next" href="reftok.html" title="ne_token"></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_status</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refclicert.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="reftok.html">Next</a></td></tr></table><hr></div><div class="refentry" title="ne_status"><a name="refstatus"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_status — HTTP status structure</p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_utils.h&gt;
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_status</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><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="refclicert.html" title="ne_ssl_client_cert"><link rel="next" href="reftok.html" title="ne_token"></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_status</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refclicert.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="reftok.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refstatus"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_status — HTTP status structure</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_utils.h&gt;
 
 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="id464077"></a><h2>Description</h2><p>An <em class="type">ne_status</em> type represents an HTTP
+} <em class="type">ne_status</em>;</pre></div></div><div class="refsect1"><a name="idm140368849201776"></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="id464102" href="#ftn.id464102" class="footnote">2</a>]</sup>, which is equal to the most significant digit
+class<a href="#ftn.idm140368849198752" class="footnote" name="idm140368849198752"><sup class="footnote">[2]</sup></a>, which is equal to the most significant digit
 of the status.</p><p>There are five classes of HTTP status code defined by
-       RFC2616:</p><div class="variablelist"><table border="0"><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
+       RFC2616:</p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top"><col></colgroup><tbody><tr><td><p><span class="term"><code class="literal">1xx</code></span></p></td><td>Informational response.</td></tr><tr><td><p><span class="term"><code class="literal">2xx</code></span></p></td><td>Success: the operation was successful</td></tr><tr><td><p><span class="term"><code class="literal">3xx</code></span></p></td><td>Redirection</td></tr><tr><td><p><span class="term"><code class="literal">4xx</code></span></p></td><td>Client
            error: the request made was incorrect in some
-           manner.</td></tr><tr><td><p><span class="term"><code class="literal">5xx</code></span></p></td><td>Server error</td></tr></tbody></table></div></div><div class="refsect1" title="See also"><a name="id464196"></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 id="ftn.id464102" href="#id464102" 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"><a name="idm140368849187584"></a><h2>See also</h2><p><a class="xref" href="refgetst.html#ne_get_status">ne_get_status</a>.</p></div><div class="footnotes"><br><hr style="width:100; text-align:left;margin-left: 0"><div id="ftn.idm140368849198752" class="footnote"><p><a href="#idm140368849198752" class="para"><sup class="para">[2] </sup></a>the field is named <span class="quote">“<span class="quote">klass</span>”</span> not
 <span class="quote">“<span class="quote">class</span>”</span> so that the header can be used from a C++
 program, in which <span class="quote">“<span class="quote">class</span>”</span> is a reserved
 word)</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refclicert.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="reftok.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_ssl_client_cert </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> ne_token</td></tr></table></div></body></html>
index 06f660d..6923c6a 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_token</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_string.h&gt;</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="id464512"></a><h2>Description</h2><p><code class="function">ne_token</code> and
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_token</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refstatus.html" title="ne_status"><link rel="next" href="refvers.html" title="ne_version_match"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_token</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refstatus.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refvers.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="reftok"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_token, ne_qtoken — string tokenizers</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_string.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_token</b>(</code></td><td>char **<var class="pdparam">str</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">sep</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">char *<b class="fsfunc">ne_qtoken</b>(</code></td><td>char **<var class="pdparam">str</var>, </td></tr><tr><td> </td><td>char <var class="pdparam">sep</var>, </td></tr><tr><td> </td><td>const char *<var class="pdparam">quotes</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368849149616"></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="id464578"></a><h2>Examples</h2><p>The following function prints out each token in a
+character with a <code class="literal">NUL</code> terminator.</p></div><div class="refsect1"><a name="idm140368849141808"></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)
 {
index 5f1ac87..aa3efa1 100644 (file)
@@ -1,10 +1,10 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_version_match</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_utils.h&gt;</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="id464894"></a><h2>Description</h2><p>The <code class="function">ne_version_match</code> function returns
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_version_match</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="reftok.html" title="ne_token"><link rel="next" href="refxml.html" title="ne_xml_create"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_version_match</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="reftok.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="refxml.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refvers"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_version_match, ne_version_string — library versioning</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_utils.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">ne_version_match</b>(</code></td><td>int <var class="pdparam">major</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">minor</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">const char *<b class="fsfunc">ne_version_string</b>(</code></td><td><code>void)</code>;</td><td> </td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368849103568"></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="id464932"></a><h2>Examples</h2><p>To require neon 1.x, version 1.2 or later:</p><pre class="programlisting">if (ne_version_match(1, 2)) {
+    a string giving the library version.</p></div><div class="refsect1"><a name="idm140368849099152"></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);
index 711ead8..280f625 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_xml_create</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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 &lt;ne_xml.h&gt;</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="id465180"></a><h2>Description</h2><p>The <code class="function">ne_xml_create</code> function creates an
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ne_xml_create</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="ref.html" title="neon API reference"><link rel="prev" href="refvers.html" title="ne_version_match"><link rel="next" href="biblio.html" title="Bibliography"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ne_xml_create</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="refvers.html">Prev</a> </td><th width="60%" align="center">neon API reference</th><td width="20%" align="right"> <a accesskey="n" href="biblio.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="refxml"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ne_xml_create, ne_xml_destroy — create and destroy an XML parser</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;ne_xml.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">ne_xml_parser *<b class="fsfunc">ne_xml_create</b>(</code></td><td><code>void)</code>;</td><td> </td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <b class="fsfunc">ne_xml_destroy</b>(</code></td><td>ne_xml_parser *<var class="pdparam">parser</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm140368849069472"></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="id465196"></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="id465214"></a><h2>See also</h2><p>XXX</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="refvers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ref.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="biblio.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ne_version_match </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Bibliography</td></tr></table></div></body></html>
+    using stacked SAX handlers.</p></div><div class="refsect1"><a name="idm140368849067568"></a><h2>Return value</h2><p><code class="function">ne_xml_create</code> returns a pointer to an
+    XML parser object, and never <code class="literal">NULL</code></p></div><div class="refsect1"><a name="idm140368849065360"></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>
index c2f1803..02c3fe6 100644 (file)
@@ -1,11 +1,11 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>HTTP Client Security</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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="compliance.html" title="Standards compliance"><link rel="next" href="api.html" title="Chapter 2. The neon C language interface"></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">HTTP Client Security</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="compliance.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Introduction</th><td width="20%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr></table><hr></div><div class="sect1" title="HTTP Client Security"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="security"></a>HTTP Client Security</h2></div></div></div><p>neon is intended to be secure against a specific threat
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>HTTP Client Security</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><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="compliance.html" title="Standards compliance"><link rel="next" href="api.html" title="Chapter 2. The neon C language interface"></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">HTTP Client Security</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="compliance.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Introduction</th><td width="20%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="security"></a>HTTP Client Security</h2></div></div></div><p>neon is intended to be secure against a specific threat
   model: use of a malicious HTTP server.  Under this threat model, a
   range of attacks are possible against a client when the user (or
   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="id444512"></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
+  neon.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm140368851674016"></a>CPU or memory consumption attacks</h3></div></div></div><p>neon uses fixed resource limits to prevent the following
+    attacks:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>memory/CPU consumption attack using an unbounded number
         of response header fields</p></li><li class="listitem"><p>memory consumption attack using an unbounded length of
         individual response header lines (or continuation
         headers)</p></li><li class="listitem"><p>memory consumption attack against the PROPFIND code
     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="id444586"></a>SSL/TLS connection security</h3></div></div></div><p>When using a connection secured by SSL/TLS, it is necessary
+    neon test suite.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm140368851664720"></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,
-    and is implemented by neon in the following manner:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>the hostname argument passed to <a class="xref" href="refsess.html#ne_session_create">ne_session_create</a> is the expected identity of the
+    and is implemented by neon in the following manner:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>the hostname argument passed to <a class="xref" href="refsess.html#ne_session_create">ne_session_create</a> is the expected identity of the
         server</p></li><li class="listitem"><p>the subjectAltName extension of the certificate is used
         for comparision against the expected identity, in preference
         to the Subject name's commonName attribute.</p></li><li class="listitem"><p>the dNSName, iPAddress, and uniformResourceIdentifier
     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="id445137"></a>Control character insertion in error messages</h3></div></div></div><p>Where error messages (as returned by
+    suite.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm140368851598880"></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="id445154"></a>Attacks against authentication credentials</h3></div></div></div><p>Authentication credentials can be compromised by a
+    user interface).</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="idm140368851596832"></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
index 8b53c2a..bf0975b 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How to use neon from your application</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><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="features.html" title="Feature list"><link rel="next" href="compliance.html" title="Standards compliance"></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">How to use neon from your application</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="features.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Introduction</th><td width="20%" align="right"> <a accesskey="n" href="compliance.html">Next</a></td></tr></table><hr></div><div class="sect1" title="How to use neon from your application"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="using"></a>How to use neon from your application</h2></div></div></div><p>This section describes how to add neon support to an
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How to use neon from your application</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><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="features.html" title="Feature list"><link rel="next" href="compliance.html" title="Standards compliance"></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">How to use neon from your application</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="features.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Introduction</th><td width="20%" align="right"> <a accesskey="n" href="compliance.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="using"></a>How to use neon from your application</h2></div></div></div><p>This section describes how to add neon support to an
       application.  If you just want to quickly try out neon, use
       the <a class="xref" href="refconfig.html" title="neon-config"><span class="refentrytitle">neon-config</span></a> script.</p><p>The neon source code is designed to be easily embedded
       into an application source tree.  neon has no dependencies on
@@ -6,7 +6,7 @@
       source tree can be configured to have no support for SSL or XML
       if desired.  To configure the neon source code some <a class="ulink" href="http://www.gnu.org/software/autoconf/" target="_top">GNU autoconf</a>
       macros are supplied, which can be used in a number of ways, as
-      follows:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>autoconf macros are distributed in the 'macros'
+      follows:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>autoconf macros are distributed in the 'macros'
          subdirectory of the neon distribution.  Use the NEON_LIBRARY
          macro from your configure.in to check for the presence of
          the neon library installed on the system.  The macro adds an
index e466f46..3b33c66 100644 (file)
@@ -1,8 +1,8 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Parsing XML</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="api.html" title="Chapter 2. The neon C language interface"><link rel="prev" href="api.html" title="Chapter 2. The neon C language interface"><link rel="next" href="ref.html" title="neon API reference"></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">Parsing XML</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><th width="60%" align="center">Chapter 2. The neon C language interface</th><td width="20%" align="right"> <a accesskey="n" href="ref.html">Next</a></td></tr></table><hr></div><div class="sect1" title="Parsing XML"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xml"></a>Parsing XML</h2></div></div></div><p>The neon XML interface is exposed by the
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Parsing XML</title><link rel="stylesheet" type="text/css" href="../manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="neon HTTP/WebDAV client library"><link rel="up" href="api.html" title="Chapter 2. The neon C language interface"><link rel="prev" href="api.html" title="Chapter 2. The neon C language interface"><link rel="next" href="ref.html" title="neon API reference"></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">Parsing XML</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><th width="60%" align="center">Chapter 2. The neon C language interface</th><td width="20%" align="right"> <a accesskey="n" href="ref.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="xml"></a>Parsing XML</h2></div></div></div><p>The neon XML interface is exposed by the
   <code class="filename">ne_xml.h</code> header file.  This interface gives a
   wrapper around the standard <a class="ulink" href="http://www.saxproject.org/" target="_top">SAX</a> API used by XML
   parsers, with an additional abstraction, <em class="firstterm">stacked SAX
-  handlers</em>, and also giving consistent <a class="ulink" href="http://www.w3.org/TR/REC-xml-names" target="_top">XML Namespace</a> support.</p><div class="sect2" title="Introduction to SAX"><div class="titlepage"><div><div><h3 class="title"><a name="xml-sax"></a>Introduction to SAX</h3></div></div></div><p>A SAX-based parser works by emitting a sequence of
+  handlers</em>, and also giving consistent <a class="ulink" href="http://www.w3.org/TR/REC-xml-names" target="_top">XML Namespace</a> support.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="xml-sax"></a>Introduction to SAX</h3></div></div></div><p>A SAX-based parser works by emitting a sequence of
   <em class="firstterm">events</em> to reflect the tokens being parsed
   from the XML document.  For example, parsing the following document
   fragment:
   subset of SAX exposed by the neon XML interface: <span class="emphasis"><em>start-element</em></span>,
   <span class="emphasis"><em>character-data</em></span> and <span class="emphasis"><em>end-element</em></span>.  In a C API, an <span class="quote">“<span class="quote">event</span>”</span> is
   implemented as a function callback; three callback types are used in
-  neon, one for each type of event.</p></div><div class="sect2" title="Stacked SAX handlers"><div class="titlepage"><div><div><h3 class="title"><a name="xml-stacked"></a>Stacked SAX handlers</h3></div></div></div><p>WebDAV property values are represented as fragments of XML,
+  neon, one for each type of event.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="xml-stacked"></a>Stacked SAX handlers</h3></div></div></div><p>WebDAV property values are represented as fragments of XML,
   transmitted as parts of larger XML documents over HTTP (notably in
   the body of the response to a <code class="literal">PROPFIND</code> request).
   When neon parses such documents, the SAX events generated for
   these property value fragments may need to be handled by the
   application, since neon has no knowledge of the structure of
-  properties used by the application.</p><p>To solve this problem<sup>[<a name="foot.xml.sax" href="#ftn.foot.xml.sax" class="footnote">1</a>]</sup> the neon XML interface introduces
+  properties used by the application.</p><p>To solve this problem<a href="#ftn.foot.xml.sax" class="footnote" name="foot.xml.sax"><sup class="footnote">[1]</sup></a> the neon XML interface introduces
   the concept of a <em class="firstterm">SAX handler</em>.  A SAX handler
   comprises a <span class="emphasis"><em>start-element</em></span>, <span class="emphasis"><em>character-data</em></span> and <span class="emphasis"><em>end-element</em></span> callback; the
   <span class="emphasis"><em>start-element</em></span> callback being defined such that each handler may
@@ -58,7 +58,7 @@
   the stack.  In the above example, handler A is at the base, and
   handler B at the top; if the <code class="literal">name</code> element had any
   children, only B's <span class="emphasis"><em>start-element</em></span> would be invoked to accept
-  them.</p></div><div class="sect2" title="Maintaining state"><div class="titlepage"><div><div><h3 class="title"><a name="xml-state"></a>Maintaining state</h3></div></div></div><p>To facilitate communication between independent handlers, a
+  them.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="xml-state"></a>Maintaining state</h3></div></div></div><p>To facilitate communication between independent handlers, a
   <em class="firstterm">state integer</em> is associated with each element
   being parsed.  This integer is returned by <span class="emphasis"><em>start-element</em></span> callback and
   is passed to the subsequent <span class="emphasis"><em>character-data</em></span> and <span class="emphasis"><em>end-element</em></span> callbacks
       <span class="emphasis"><em>decline</em></span></li><li class="listitem">B <span class="emphasis"><em>start-element</em></span> (parent = 42, "name") →
       <span class="emphasis"><em>accept</em></span>, state = 99</li><li class="listitem">B <span class="emphasis"><em>character-data</em></span> (state = 99, "Bob")</li><li class="listitem">B <span class="emphasis"><em>end-element</em></span> (state = 99, "name")</li><li class="listitem">A <span class="emphasis"><em>end-element</em></span> (state = 42, "cat")</li></ol></div><p>To avoid collisions between state integers used by different
   handlers, the interface definition of any handler includes the range
-  of integers it will use.</p></div><div class="sect2" title="XML namespaces"><div class="titlepage"><div><div><h3 class="title"><a name="xml-ns"></a>XML namespaces</h3></div></div></div><p>To support XML namespaces, every element name is represented
+  of integers it will use.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="xml-ns"></a>XML namespaces</h3></div></div></div><p>To support XML namespaces, every element name is represented
   as a <span class="emphasis"><em>(namespace, name)</em></span> pair.  The <span class="emphasis"><em>start-element</em></span>
   and <span class="emphasis"><em>end-element</em></span> callbacks are passed namespace and name strings
   accordingly.  If an element in the XML document has no declared
   namespace, the namespace given will be the empty string,
-  <code class="literal">""</code>.</p></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a id="ftn.foot.xml.sax" href="#foot.xml.sax" class="para">1</a>] </sup>This
+  <code class="literal">""</code>.</p></div><div class="footnotes"><br><hr style="width:100; text-align:left;margin-left: 0"><div id="ftn.foot.xml.sax" class="footnote"><p><a href="#foot.xml.sax" class="para"><sup class="para">[1] </sup></a>This
   <span class="quote">“<span class="quote">problem</span>”</span> only needs solving because the SAX interface
   is so inflexible when implemented as C function callbacks; a better
   approach would be to use an XML parser interface which is not based
index 7d34773..7536dda 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_add_request_header
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_ADD_REQUEST_HEADE" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_ADD_REQUEST_HEADE" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 156ac74..ecf8e86 100644 (file)
@@ -1 +1 @@
-.so ne_addr_resolve.3
+.so man3/ne_addr_resolve.3
index 156ac74..ecf8e86 100644 (file)
@@ -1 +1 @@
-.so ne_addr_resolve.3
+.so man3/ne_addr_resolve.3
index 156ac74..ecf8e86 100644 (file)
@@ -1 +1 @@
-.so ne_addr_resolve.3
+.so man3/ne_addr_resolve.3
index 156ac74..ecf8e86 100644 (file)
@@ -1 +1 @@
-.so ne_addr_resolve.3
+.so man3/ne_addr_resolve.3
index ec5618c..9edf8e0 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_addr_resolve
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_ADDR_RESOLVE" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_ADDR_RESOLVE" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 156ac74..ecf8e86 100644 (file)
@@ -1 +1 @@
-.so ne_addr_resolve.3
+.so man3/ne_addr_resolve.3
index 07e3f05..5dbf1d5 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_buffer
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_BUFFER" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_BUFFER" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 705808a..b0bbe5e 100644 (file)
@@ -1 +1 @@
-.so ne_buffer_clear.3
+.so man3/ne_buffer_clear.3
index 37c815b..df205db 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_buffer_append
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_BUFFER_APPEND" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_BUFFER_APPEND" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index ad1bd2e..3cea77d 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_buffer_clear
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_BUFFER_CLEAR" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_BUFFER_CLEAR" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 8dedb2e..d0f5b8f 100644 (file)
@@ -1 +1 @@
-.so ne_buffer_append.3
+.so man3/ne_buffer_append.3
index 710c7c2..bb143c2 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_buffer_create
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_BUFFER_CREATE" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_BUFFER_CREATE" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 7affb2c..9652986 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_buffer_destroy
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_BUFFER_DESTROY" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_BUFFER_DESTROY" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 8384801..5aac296 100644 (file)
@@ -1 +1 @@
-.so ne_buffer_destroy.3
+.so man3/ne_buffer_destroy.3
index 705808a..b0bbe5e 100644 (file)
@@ -1 +1 @@
-.so ne_buffer_clear.3
+.so man3/ne_buffer_clear.3
index d4120e1..628991b 100644 (file)
@@ -1 +1 @@
-.so ne_buffer_create.3
+.so man3/ne_buffer_create.3
index 8dedb2e..d0f5b8f 100644 (file)
@@ -1 +1 @@
-.so ne_buffer_append.3
+.so man3/ne_buffer_append.3
index 1ce5ecc..8564fc1 100644 (file)
@@ -1 +1 @@
-.so ne_malloc.3
+.so man3/ne_malloc.3
index 952fe78..2a71e06 100644 (file)
@@ -1 +1 @@
-.so ne_session_create.3
+.so man3/ne_session_create.3
index fc9de3c..a6f0398 100644 (file)
@@ -1 +1 @@
-.so ne_set_server_auth.3
+.so man3/ne_set_server_auth.3
index 68532d9..c5832e0 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_get_error
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_GET_ERROR" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_GET_ERROR" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 6b65f01..11b05bd 100644 (file)
@@ -1 +1 @@
-.so ne_set_request_flag.3
+.so man3/ne_set_request_flag.3
index 8c5f207..050bbff 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_get_response_header
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_GET_RESPONSE_HEAD" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_GET_RESPONSE_HEAD" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 84ebba9..06ef4ae 100644 (file)
@@ -1 +1 @@
-.so ne_set_useragent.3
+.so man3/ne_set_useragent.3
index 84ebba9..06ef4ae 100644 (file)
@@ -1 +1 @@
-.so ne_set_useragent.3
+.so man3/ne_set_useragent.3
index f6e0f2f..16dfb0e 100644 (file)
@@ -1 +1 @@
-.so ne_set_session_flag.3
+.so man3/ne_set_session_flag.3
index f7cef8e..f38d3cf 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_get_status
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_GET_STATUS" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_GET_STATUS" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 3ef5f42..e4b0307 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_has_support
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_HAS_SUPPORT" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_HAS_SUPPORT" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 13df5a5..1adff48 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_i18n_init
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_I18N_INIT" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_I18N_INIT" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 10660b8..0964908 100644 (file)
@@ -1 +1 @@
-.so ne_iaddr_make.3
+.so man3/ne_iaddr_make.3
index 10660b8..0964908 100644 (file)
@@ -1 +1 @@
-.so ne_iaddr_make.3
+.so man3/ne_iaddr_make.3
index 9500597..9fbecb0 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_iaddr_make
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_IADDR_MAKE" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_IADDR_MAKE" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 10660b8..0964908 100644 (file)
@@ -1 +1 @@
-.so ne_iaddr_make.3
+.so man3/ne_iaddr_make.3
index 10660b8..0964908 100644 (file)
@@ -1 +1 @@
-.so ne_iaddr_make.3
+.so man3/ne_iaddr_make.3
index 10660b8..0964908 100644 (file)
@@ -1 +1 @@
-.so ne_iaddr_make.3
+.so man3/ne_iaddr_make.3
index 10660b8..0964908 100644 (file)
@@ -1 +1 @@
-.so ne_iaddr_make.3
+.so man3/ne_iaddr_make.3
index 10660b8..0964908 100644 (file)
@@ -1 +1 @@
-.so ne_iaddr_make.3
+.so man3/ne_iaddr_make.3
index c77df9a..d37c471 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_malloc
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_MALLOC" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_MALLOC" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 1ce5ecc..8564fc1 100644 (file)
@@ -1 +1 @@
-.so ne_malloc.3
+.so man3/ne_malloc.3
index 616e34f..a9ed2f7 100644 (file)
@@ -1 +1 @@
-.so ne_add_request_header.3
+.so man3/ne_add_request_header.3
index b76d290..b24c574 100644 (file)
@@ -1 +1 @@
-.so ne_token.3
+.so man3/ne_token.3
index 1ce5ecc..8564fc1 100644 (file)
@@ -1 +1 @@
-.so ne_malloc.3
+.so man3/ne_malloc.3
index caa01ec..982ea8f 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_request_create
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_REQUEST_CREATE" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_REQUEST_CREATE" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -44,16 +44,14 @@ ne_request_create, ne_request_dispatch, ne_request_destroy \- low\-level HTTP re
 .BI "void ne_request_destroy(ne_request\ *" "req" ");"
 .SH "DESCRIPTION"
 .PP
-An HTTP request, represented by the
+The
 \fBne_request\fR
-type, specifies that some operation is to be performed on some resource\&. The
+object represents an HTTP request and the associated response\&. The
 \fBne_request_create\fR
-function creates a request object, specifying the operation in the
+function creates a new request object for the given
+\fIsession\fR\&. The target resource for the request is identified by the
+\fIpath\fR, and the method to be performed on that resource via the
 \fImethod\fR
-parameter\&. The location of the resource is determined by the server in use for the session given by the
-\fIsess\fR
-parameter, combined with the
-\fIpath\fR
 parameter\&.
 .PP
 The
index 12adee9..9c211a4 100644 (file)
@@ -1 +1 @@
-.so ne_request_create.3
+.so man3/ne_request_create.3
index 12adee9..9c211a4 100644 (file)
@@ -1 +1 @@
-.so ne_request_create.3
+.so man3/ne_request_create.3
index 30a56c3..ac6864b 100644 (file)
@@ -1 +1 @@
-.so ne_get_response_header.3
+.so man3/ne_get_response_header.3
index a3bfd52..2e05a35 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_session_create
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_SESSION_CREATE" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_SESSION_CREATE" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -28,7 +28,7 @@
 .\" * MAIN CONTENT STARTS HERE *
 .\" -----------------------------------------------------------------
 .SH "NAME"
-ne_session_create, ne_close_connection, ne_session_proxy, ne_session_destroy \- set up HTTP sessions
+ne_session_create, ne_close_connection, ne_session_destroy \- set up HTTP sessions
 .SH "SYNOPSIS"
 .sp
 .ft B
@@ -38,8 +38,6 @@ ne_session_create, ne_close_connection, ne_session_proxy, ne_session_destroy \-
 .ft
 .HP \w'ne_session\ *ne_session_create('u
 .BI "ne_session *ne_session_create(const\ char\ *" "scheme" ", const\ char\ *" "hostname" ", unsigned\ int\ " "port" ");"
-.HP \w'void\ ne_session_proxy('u
-.BI "void ne_session_proxy(ne_session\ *" "session" ", const\ char\ *" "hostname" ", unsigned\ int\ " "port" ");"
 .HP \w'void\ ne_close_connection('u
 .BI "void ne_close_connection(ne_session\ *" "session" ");"
 .HP \w'void\ ne_session_destroy('u
@@ -50,14 +48,15 @@ An
 \fBne_session\fR
 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 other common attributes\&.
 .PP
-A new HTTP session is created using
-\fBne_session_create\fR, giving the
+A new HTTP session is created using the
+\fBne_session_create\fR
+function; the
 \fIhostname\fR
 and
 \fIport\fR
-of the server to use, along with the
+parameters specify the origin server to use, along with the
 \fIscheme\fR
-used to contact the server (usually
+(usually
 "http")\&. Before the first use of
 \fBne_session_create\fR
 in a process,
@@ -73,12 +72,11 @@ ne_ssl_set_verify) or trust the appropriate certificate (see
 ne_ssl_trust_cert,
 ne_ssl_trust_default_ca)\&.
 .PP
-If an HTTP proxy server should be used for the session,
-\fBne_session_proxy\fR
-must be called giving the hostname and port on which to contact the proxy\&.
+To use a proxy server for the session, it must be configured (see
+ne_session_proxy) before any requests are created from session object\&.
 .PP
 Further per\-session options may be changed using the
-ne_set_request_flag
+ne_set_session_flag
 interface\&.
 .PP
 If it is known that the session will not be used for a significant period of time,
@@ -87,7 +85,7 @@ can be called to close the connection, if one remains open\&. Use of this functi
 .PP
 Once a session has been completed,
 \fBne_session_destroy\fR
-must be called to destroy the resources associated with the session\&. Any subsequent use of the session pointer produces undefined behaviour\&.
+must be called to destroy the resources associated with the session\&. Any subsequent use of the session pointer produces undefined behaviour\&. The session object must not be destroyed until after all associated request objects have been destroyed\&.
 .SH "NOTES"
 .PP
 The hostname passed to
index 952fe78..2a71e06 100644 (file)
@@ -1 +1 @@
-.so ne_session_create.3
+.so man3/ne_session_create.3
index 952fe78..46897f6 100644 (file)
@@ -1 +1,157 @@
-.so ne_session_create.3
+'\" t
+.\"     Title: ne_session_proxy
+.\"    Author: 
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
+.\"    Manual: neon API reference
+.\"    Source: neon 0.30.0
+.\"  Language: English
+.\"
+.TH "NE_SESSION_PROXY" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+ne_session_proxy, ne_session_socks_proxy, ne_session_system_proxy, ne_set_addrlist \- configure proxy servers
+.SH "SYNOPSIS"
+.sp
+.ft B
+.nf
+#include <ne_session\&.h>
+.fi
+.ft
+.HP \w'void\ ne_session_proxy('u
+.BI "void ne_session_proxy(ne_session\ *" "session" ", const\ char\ *" "hostname" ", unsigned\ int\ " "port" ");"
+.HP \w'void\ ne_session_system_proxy('u
+.BI "void ne_session_system_proxy(ne_session\ *" "session" ", unsigned\ int\ " "flags" ");"
+.HP \w'void\ ne_session_socks_proxy('u
+.BI "void ne_session_socks_proxy(ne_session\ *" "session" ", enum\ ne_sock_sversion\ " "version" ", const\ char\ *" "hostname" ", unsigned\ int\ " "port" ", const\ char\ *" "username" ", const\ char\ *" "password" ");"
+.HP \w'void\ ne_set_addrlist('u
+.BI "void ne_set_addrlist(ne_session\ *" "session" ", const\ ne_inet_addr\ **" "addrlist" ", size_t\ " "count" ");"
+.SH "DESCRIPTION"
+.PP
+One (and no more than one) of the functions
+\fBne_session_proxy\fR,
+\fBne_session_system_proxy\fR,
+\fBne_session_socks_proxy\fR,
+\fBne_set_addrlist\fR
+can be used to configure a proxy server for a given session object\&. If more than one function is invoked for any given session object, only the last call has effect\&. If one of the functions is to be used, it must be used before the creation of any request object for the session\&.
+.SS "HTTP proxy specification"
+.PP
+The
+\fBne_session_proxy\fR
+function configures use of an HTTP proxy server for the session, the location of which is given by the
+\fIhostname\fR
+and
+\fIport\fR
+paramters\&. If the proxy requires authentication,
+ne_set_proxy_auth
+should be used\&.
+.SS "System proxy configuration"
+.PP
+The
+\fBne_session_system_proxy\fR
+function configures the session to use any proxy servers specified by the system configuration\&. Support for this function is platform\-specific; if unsupported, the function has no effect\&.
+.SS "SOCKS proxy configuration"
+.PP
+The
+\fBne_session_socks_proxy\fR
+function configures the session to use a SOCKS proxy\&. The
+\fIversion\fR
+indicates which version of the SOCKS protocol should be used\&. The
+\fIhostname\fR
+and
+\fIport\fR
+parameters specify the SOCKS proxy location\&. Note that a server with only an IPv6 address cannot be used with SOCKS v4 or v4A\&. The interpretation of the other arguments depends on the version specified:
+.PP
+\fBNE_SOCK_SOCKSV4\fR (version 4)
+.RS 4
+The
+\fIusername\fR
+parameter must be non\-NULL; the
+\fIpassword\fR
+parameter is ignored\&.
+.RE
+.PP
+\fBNE_SOCK_SOCKSV4A\fR (version 4A)
+.RS 4
+The
+\fIusername\fR
+parameter must be non\-NULL; the
+\fIpassword\fR
+parameter is ignored\&.
+.RE
+.PP
+\fBNE_SOCK_SOCKSV5\fR (version 5)
+.RS 4
+The
+\fIusername\fR
+parameter may be
+NULL; if it is non\-NULL, the
+\fIpassword\fR
+parameter must also be non\-NULL; otherwise, it is ignored\&.\&.
+.RE
+.SS "Origin server address override"
+.PP
+The
+\fBne_set_addrlist\fR
+function forces use of an address and port the a specified list when establishing a TCP connection, ignoring the "real" hostname and port identifying the origin server for the session (as passed to
+\fBne_session_create\fR)\&. The origin server\*(Aqs "real" hostname and port will still be used in the
+Host
+header in HTTP requests\&. When a connection is required, the library will iterate through the
+\fIaddrlist\fR
+list, attempting to connect to the address
+\fIaddrlist[0]\fR
+through to
+\fIaddrlist[count\-1]\fR
+in turn, until a connection can be established\&.
+.SH "RETURN VALUES"
+.PP
+None of the functions described here has a return value\&.
+.SH "EXAMPLES"
+.PP
+Create and destroy a session:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+ne_session *sess;
+sess = ne_session_create("http", "host\&.example\&.com", 80);
+ne_session_proxy(sess, "proxy\&.example\&.com", 3128);
+/* \&.\&.\&. use sess \&.\&.\&. */
+ne_session_destroy(sess);
+.fi
+.if n \{\
+.RE
+.\}
+.SH "SEE ALSO"
+.PP
+ne_ssl_set_verify,
+ne_ssl_trust_cert,
+ne_sock_init,
+ne_set_session_flag
+.SH "AUTHOR"
+.PP
+\fBJoe Orton\fR <\&neon@lists.manyfish.co.uk\&>
+.RS 4
+Author.
+.RE
+.SH "COPYRIGHT"
+.br
diff --git a/doc/man/ne_session_socks_proxy.3 b/doc/man/ne_session_socks_proxy.3
new file mode 100644 (file)
index 0000000..923f8e0
--- /dev/null
@@ -0,0 +1 @@
+.so man3/ne_session_proxy.3
diff --git a/doc/man/ne_session_system_proxy.3 b/doc/man/ne_session_system_proxy.3
new file mode 100644 (file)
index 0000000..923f8e0
--- /dev/null
@@ -0,0 +1 @@
+.so man3/ne_session_proxy.3
diff --git a/doc/man/ne_set_addrlist.3 b/doc/man/ne_set_addrlist.3
new file mode 100644 (file)
index 0000000..923f8e0
--- /dev/null
@@ -0,0 +1 @@
+.so man3/ne_session_proxy.3
index 84ebba9..06ef4ae 100644 (file)
@@ -1 +1 @@
-.so ne_set_useragent.3
+.so man3/ne_set_useragent.3
index e031e07..c317579 100644 (file)
@@ -1 +1 @@
-.so ne_get_error.3
+.so man3/ne_get_error.3
index fc9de3c..a6f0398 100644 (file)
@@ -1 +1 @@
-.so ne_set_server_auth.3
+.so man3/ne_set_server_auth.3
index 84ebba9..06ef4ae 100644 (file)
@@ -1 +1 @@
-.so ne_set_useragent.3
+.so man3/ne_set_useragent.3
index 4669165..d3c67c4 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_set_request_body_buffer
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_SET_REQUEST_BODY_" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_SET_REQUEST_BODY_" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 07a18fd..42452be 100644 (file)
@@ -1 +1 @@
-.so ne_set_request_body_buffer.3
+.so man3/ne_set_request_body_buffer.3
index 07a18fd..42452be 100644 (file)
@@ -1 +1 @@
-.so ne_set_request_body_buffer.3
+.so man3/ne_set_request_body_buffer.3
index 23bdfa2..c6e9e3d 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_set_request_flag
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_SET_REQUEST_FLAG" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_SET_REQUEST_FLAG" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index cf08a65..81dd054 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_set_server_auth
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_SET_SERVER_AUTH" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_SET_SERVER_AUTH" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index fe38fcf..1765312 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_set_session_flag
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_SET_SESSION_FLAG" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_SET_SESSION_FLAG" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index b70cd66..2e91238 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_set_useragent
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_SET_USERAGENT" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_SET_USERAGENT" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 230837c..36c59fe 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_shave
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_SHAVE" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_SHAVE" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 33cc4ce..e866695 100644 (file)
@@ -1 +1 @@
-.so ne_sock_init.3
+.so man3/ne_sock_init.3
index 70dde78..c07f401 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_sock_init
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_SOCK_INIT" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_SOCK_INIT" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 67a8df6..53fd3e0 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_ssl_cert_cmp
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_SSL_CERT_CMP" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_SSL_CERT_CMP" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 709cc08..9c92144 100644 (file)
@@ -1 +1 @@
-.so ne_ssl_cert_read.3
+.so man3/ne_ssl_cert_read.3
index 60a5e59..208e0df 100644 (file)
@@ -1 +1 @@
-.so ne_ssl_cert_cmp.3
+.so man3/ne_ssl_cert_cmp.3
index eb18ff2..fe66cf1 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_ssl_cert_identity
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_SSL_CERT_IDENTITY" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_SSL_CERT_IDENTITY" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 709cc08..9c92144 100644 (file)
@@ -1 +1 @@
-.so ne_ssl_cert_read.3
+.so man3/ne_ssl_cert_read.3
index ff5e757..e752f38 100644 (file)
@@ -1 +1 @@
-.so ne_ssl_cert_identity.3
+.so man3/ne_ssl_cert_identity.3
index b9b2598..406bcab 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_ssl_cert_read
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_SSL_CERT_READ" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_SSL_CERT_READ" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index ff5e757..e752f38 100644 (file)
@@ -1 +1 @@
-.so ne_ssl_cert_identity.3
+.so man3/ne_ssl_cert_identity.3
index ff5e757..e752f38 100644 (file)
@@ -1 +1 @@
-.so ne_ssl_cert_identity.3
+.so man3/ne_ssl_cert_identity.3
index 709cc08..9c92144 100644 (file)
@@ -1 +1 @@
-.so ne_ssl_cert_read.3
+.so man3/ne_ssl_cert_read.3
index 71f6307..f9f7d9c 100644 (file)
@@ -1 +1 @@
-.so ne_ssl_clicert_read.3
+.so man3/ne_ssl_clicert_read.3
index 71f6307..f9f7d9c 100644 (file)
@@ -1 +1 @@
-.so ne_ssl_clicert_read.3
+.so man3/ne_ssl_clicert_read.3
index 71f6307..f9f7d9c 100644 (file)
@@ -1 +1 @@
-.so ne_ssl_clicert_read.3
+.so man3/ne_ssl_clicert_read.3
index 71f6307..f9f7d9c 100644 (file)
@@ -1 +1 @@
-.so ne_ssl_clicert_read.3
+.so man3/ne_ssl_clicert_read.3
index 71f6307..f9f7d9c 100644 (file)
@@ -1 +1 @@
-.so ne_ssl_clicert_read.3
+.so man3/ne_ssl_clicert_read.3
index fb730ac..540ece4 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_ssl_client_cert
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_SSL_CLIENT_CERT" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_SSL_CLIENT_CERT" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 79c41ba..d2a16c2 100644 (file)
@@ -1 +1 @@
-.so ne_ssl_readable_dname.3
+.so man3/ne_ssl_readable_dname.3
index 07f78e2..86694e8 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_ssl_dname
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_SSL_DNAME" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_SSL_DNAME" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 008a22d..ddaba51 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_ssl_set_verify
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_SSL_SET_VERIFY" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_SSL_SET_VERIFY" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index d261a4b..685eca5 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_ssl_trust_cert
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_SSL_TRUST_CERT" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_SSL_TRUST_CERT" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 107af47..49af8c5 100644 (file)
@@ -1 +1 @@
-.so ne_ssl_trust_cert.3
+.so man3/ne_ssl_trust_cert.3
index 3ee01f4..59c9f49 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_status
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_STATUS" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_STATUS" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 1ce5ecc..8564fc1 100644 (file)
@@ -1 +1 @@
-.so ne_malloc.3
+.so man3/ne_malloc.3
index 1ce5ecc..8564fc1 100644 (file)
@@ -1 +1 @@
-.so ne_malloc.3
+.so man3/ne_malloc.3
index 463e779..144c5b3 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_token
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_TOKEN" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_TOKEN" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 7cf212b..e992d56 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_version_match
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_VERSION_MATCH" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_VERSION_MATCH" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index d5d7354..4f3447d 100644 (file)
@@ -1 +1 @@
-.so ne_version_match.3
+.so man3/ne_version_match.3
index 3eefd7b..6134bec 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: ne_xml_create
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NE_XML_CREATE" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NE_XML_CREATE" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 57fdc72..e601ac3 100644 (file)
@@ -1 +1 @@
-.so ne_xml_create.3
+.so man3/ne_xml_create.3
index fdbcb9c..5575a43 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: neon-config
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NEON\-CONFIG" "1" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NEON\-CONFIG" "1" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index b1f6682..a6b005f 100644 (file)
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: neon
 .\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
-.\"      Date:  3 May 2011
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 31 July 2013
 .\"    Manual: neon API reference
-.\"    Source: neon 0.29.6
+.\"    Source: neon 0.30.0
 .\"  Language: English
 .\"
-.TH "NEON" "3" "3 May 2011" "neon 0.29.6" "neon API reference"
+.TH "NEON" "3" "31 July 2013" "neon 0.30.0" "neon API reference"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
index 82f669c..a6bb531 100644 (file)
@@ -44,6 +44,7 @@
 <!ENTITY refsessflags SYSTEM "ref/sessflags.xml">
 <!ENTITY referr SYSTEM "ref/err.xml">
 <!ENTITY refopts SYSTEM "ref/opts.xml">
+<!ENTITY refproxy SYSTEM "ref/proxy.xml">
 <!ENTITY refsslvfy SYSTEM "ref/sslvfy.xml">
 <!ENTITY refsslcert SYSTEM "ref/sslcert.xml">
 <!ENTITY refsslcert2 SYSTEM "ref/sslcert2.xml">
@@ -176,6 +177,7 @@ ignoring the WebDAV support if desired.</para>
     &refiaddr; <!-- ne_iaddr_make -->
     &refalloc; <!-- ne_malloc -->
     &refsess; <!-- ne_session_create -->
+    &refproxy; <!-- ne_session_proxy -->
     &refsessflags; <!-- ne_set_session_flag -->
     &refreq; <!-- ne_request_create -->
     &refreqhdr; <!-- ne_add_request_header -->
diff --git a/doc/ref/proxy.xml b/doc/ref/proxy.xml
new file mode 100644 (file)
index 0000000..7a410c7
--- /dev/null
@@ -0,0 +1,176 @@
+     <refentry id="refproxy">
+      
+      <refmeta>
+       <refentrytitle>ne_session_proxy</refentrytitle>
+       <manvolnum>3</manvolnum>
+      </refmeta>
+
+      <refnamediv>
+       <refname id="ne_session_proxy">ne_session_proxy</refname>
+       <refname id="ne_session_socks_proxy">ne_session_socks_proxy</refname>
+       <refname id="ne_session_system_proxy">ne_session_system_proxy</refname>
+       <refname id="ne_set_addrlist">ne_set_addrlist</refname>
+       <refpurpose>configure proxy servers</refpurpose>
+      </refnamediv>
+      
+      <refsynopsisdiv>
+       
+       <funcsynopsis>
+         <funcsynopsisinfo>#include &lt;ne_session.h&gt;</funcsynopsisinfo>
+
+         <funcprototype>
+           <funcdef>void <function>ne_session_proxy</function></funcdef>
+           <paramdef>ne_session *<parameter>session</parameter></paramdef>
+           <paramdef>const char *<parameter>hostname</parameter></paramdef>
+           <paramdef>unsigned int <parameter>port</parameter></paramdef>
+         </funcprototype>
+
+         <funcprototype>
+           <funcdef>void <function>ne_session_system_proxy</function></funcdef>
+           <paramdef>ne_session *<parameter>session</parameter></paramdef>
+           <paramdef>unsigned int <parameter>flags</parameter></paramdef>
+         </funcprototype>
+
+         <funcprototype>
+           <funcdef>void <function>ne_session_socks_proxy</function></funcdef>
+           <paramdef>ne_session *<parameter>session</parameter></paramdef>
+           <paramdef>enum ne_sock_sversion <parameter>version</parameter></paramdef>
+           <paramdef>const char *<parameter>hostname</parameter></paramdef>
+           <paramdef>unsigned int <parameter>port</parameter></paramdef>
+           <paramdef>const char *<parameter>username</parameter></paramdef>
+           <paramdef>const char *<parameter>password</parameter></paramdef>
+         </funcprototype>
+
+         <funcprototype>
+           <funcdef>void <function>ne_set_addrlist</function></funcdef>
+           <paramdef>ne_session *<parameter>session</parameter></paramdef>
+           <paramdef>const ne_inet_addr **<parameter>addrlist</parameter></paramdef>
+           <paramdef>size_t <parameter>count</parameter></paramdef>
+         </funcprototype>
+
+       </funcsynopsis>
+      </refsynopsisdiv>
+
+      <refsect1>
+       <title>Description</title>
+
+       <para>One (and no more than one) of the functions
+       <function>ne_session_proxy</function>,
+       <function>ne_session_system_proxy</function>,
+       <function>ne_session_socks_proxy</function>,
+       <function>ne_set_addrlist</function> can be used to configure
+       a proxy server for a given session object.  If more than one
+       function is invoked for any given session object, only the
+       last call has effect.  If one of the functions is to be used,
+       it must be used before the creation of any request object for
+       the session.</para>
+        
+        <refsect2>
+          <title>HTTP proxy specification</title>
+          
+          <para>The <function>ne_session_proxy</function> function
+          configures use of an HTTP proxy server for the session, the
+          location of which is given by the
+          <parameter>hostname</parameter> and
+          <parameter>port</parameter> paramters.  If the proxy
+          requires authentication, <xref linkend="ne_set_proxy_auth"/>
+          should be used.</para>
+        </refsect2>
+          
+        <refsect2>
+          <title>System proxy configuration</title>
+          
+          <para>The <function>ne_session_system_proxy</function>
+          function configures the session to use any proxy servers
+          specified by the system configuration.  Support for this
+          function is platform-specific; if unsupported, the function
+          has no effect.</para>
+        </refsect2>
+
+        <refsect2>
+          <title>SOCKS proxy configuration</title>
+          
+          <para>The <function>ne_session_socks_proxy</function>
+          function configures the session to use a SOCKS proxy.  The
+          <parameter>version</parameter> indicates which version of
+          the SOCKS protocol should be used.  The
+          <parameter>hostname</parameter> and
+          <parameter>port</parameter> parameters specify the SOCKS
+          proxy location.  Note that a server with only an IPv6
+          address cannot be used with SOCKS v4 or v4A.  The
+          interpretation of the other arguments depends on the version
+          specified:</para>
+          
+          <variablelist>
+            <varlistentry><term><constant>NE_SOCK_SOCKSV4</constant> (version 4)</term>
+           <listitem>
+             <simpara>The <parameter>username</parameter> parameter
+              must be non-&null;; the <parameter>password</parameter>
+              parameter is ignored.</simpara>
+           </listitem>
+            </varlistentry>
+
+            <varlistentry><term><constant>NE_SOCK_SOCKSV4A</constant> (version 4A)</term>
+           <listitem>
+             <simpara>The <parameter>username</parameter> parameter
+             must be non-&null;; the <parameter>password</parameter>
+             parameter is ignored.</simpara>
+           </listitem>
+            </varlistentry>
+
+            <varlistentry><term><constant>NE_SOCK_SOCKSV5</constant> (version 5)</term>
+           <listitem>
+             <simpara>The <parameter>username</parameter> parameter
+             may be &null;; if it is non-&null;,
+             the <parameter>password</parameter> parameter must also
+             be non-&null;; otherwise, it is ignored..</simpara>
+           </listitem>
+            </varlistentry>
+          </variablelist>
+
+        </refsect2>
+
+        <refsect2>
+          <title>Origin server address override</title>
+          
+          <para>The <function>ne_set_addrlist</function> function
+          forces use of an address and port the a specified list when
+          establishing a TCP connection, ignoring the "real" hostname
+          and port identifying the origin server for the session (as
+          passed to <function>ne_session_create</function>).  The
+          origin server's "real" hostname and port will still be used
+          in the <literal>Host</literal> header in HTTP requests.
+          When a connection is required, the library will iterate
+          through the <parameter>addrlist</parameter> list, attempting
+          to connect to the address <parameter>addrlist[0]</parameter>
+          through to <parameter>addrlist[count-1]</parameter> in turn,
+          until a connection can be established.</para>
+
+        </refsect2>
+
+      </refsect1>
+
+      <refsect1>
+       <title>Return Values</title>
+       <para>None of the functions described here has a return
+       value.</para>
+      </refsect1>
+
+      <refsect1>
+       <title>Examples</title>
+       <para>Create and destroy a session:</para>
+       <programlisting>ne_session *sess;
+sess = ne_session_create("http", "host.example.com", 80);
+ne_session_proxy(sess, "proxy.example.com", 3128);
+/* ... use sess ... */
+ne_session_destroy(sess);
+</programlisting>
+      </refsect1>
+
+      <refsect1>
+       <title>See Also</title>
+
+       <para><xref linkend="ne_ssl_set_verify"/>, <xref linkend="ne_ssl_trust_cert"/>, <xref linkend="ne_sock_init"/>, <xref linkend="ne_set_session_flag"/></para>
+      </refsect1>
+
+    </refentry>
index cfcd456..b2d754d 100644 (file)
       <refsect1>
        <title>Description</title>
 
-       <para>An HTTP request, represented by the
-<type>ne_request</type> type, specifies that some operation is to be
-performed on some resource.  The
-<function>ne_request_create</function> function creates a request
-object, specifying the operation in the <parameter>method</parameter>
-parameter. The location of the resource is determined by the server in
-use for the session given by the <parameter>sess</parameter>
-parameter, combined with the <parameter>path</parameter> parameter.</para>
+       <para>The <type>ne_request</type> object represents an HTTP
+        request and the associated response.
+        The <function>ne_request_create</function> function creates a
+        new request object for the
+        given <parameter>session</parameter>.  The target resource for
+        the request is identified by the <parameter>path</parameter>,
+        and the method to be performed on that resource via
+        the <parameter>method</parameter> parameter.</para>
 
 <para>The <parameter>path</parameter> string used must conform to the
 <literal>abs_path</literal> definition given in RFC2396, with an
index 8c407ab..8ff6358 100644 (file)
@@ -8,7 +8,6 @@
       <refnamediv>
        <refname id="ne_session_create">ne_session_create</refname>
        <refname id="ne_close_connection">ne_close_connection</refname>
-       <refname id="ne_session_proxy">ne_session_proxy</refname>
        <refname id="ne_session_destroy">ne_session_destroy</refname>
        <refpurpose>set up HTTP sessions</refpurpose>
       </refnamediv>
          </funcprototype>
 
          <funcprototype>
-           <funcdef>void <function>ne_session_proxy</function></funcdef>
-           <paramdef>ne_session *<parameter>session</parameter></paramdef>
-           <paramdef>const char *<parameter>hostname</parameter></paramdef>
-           <paramdef>unsigned int <parameter>port</parameter></paramdef>
-         </funcprototype>
-
-         <funcprototype>
            <funcdef>void <function>ne_close_connection</function></funcdef>
            <paramdef>ne_session *<parameter>session</parameter></paramdef>
          </funcprototype>
@@ -53,14 +45,15 @@ certain server. Any requests made using the session can use a
 persistent connection, share cached authentication credentials and any
 other common attributes.</para>
 
-       <para>A new HTTP session is created using
-<function>ne_session_create</function>, giving the
-<parameter>hostname</parameter> and <parameter>port</parameter> of the
-server to use, along with the <parameter>scheme</parameter> used to
-contact the server (usually <literal>"http"</literal>).  Before the
-first use of <function>ne_session_create</function> in a process,
-<xref linkend="ne_sock_init"/> must have been called to perform any
-global initialization needed by any libraries used by &neon;.</para>
+       <para>A new HTTP session is created using the
+<function>ne_session_create</function> function; the 
+<parameter>hostname</parameter> and <parameter>port</parameter>
+parameters specify the origin server to use, along with
+the <parameter>scheme</parameter> (usually <literal>"http"</literal>).
+Before the first use of <function>ne_session_create</function> in a
+process, <xref linkend="ne_sock_init"/> must have been called to
+perform any global initialization needed by any libraries used by
+&neon;.</para>
 
        <para>To enable SSL/TLS for the session, pass the string
 <literal>"https"</literal> as the <parameter>scheme</parameter>
@@ -69,12 +62,12 @@ parameter, and either register a certificate verification function
 certificate (see <xref linkend="ne_ssl_trust_cert"/>, <xref
 linkend="ne_ssl_trust_default_ca"/>).</para>
 
-       <para>If an HTTP proxy server should be used for the session,
-       <function>ne_session_proxy</function> must be called giving
-       the hostname and port on which to contact the proxy.</para>
+       <para>To use a proxy server for the session, it must be
+       configured (see <xref linkend="ne_session_proxy"/>) before any
+       requests are created from session object.</para>
 
         <para>Further per-session options may be changed using the
-        <xref linkend="ne_set_request_flag"/> interface.</para>
+        <xref linkend="ne_set_session_flag"/> interface.</para>
 
        <para>If it is known that the session will not be used for a
 significant period of time, <function>ne_close_connection</function>
@@ -83,9 +76,12 @@ this function is entirely optional, but it must not be called if there
 is a request active using the session.</para>
 
        <para>Once a session has been completed,
-<function>ne_session_destroy</function> must be called to destroy the
-resources associated with the session.  Any subsequent use of the
-session pointer produces undefined behaviour.</para>
+       <function>ne_session_destroy</function> must be called to
+       destroy the resources associated with the session.  Any
+       subsequent use of the session pointer produces undefined
+       behaviour.  The session object must not be destroyed until
+       after all associated request objects have been
+       destroyed.</para>
 
       </refsect1>
 
index 9c2255d..065d469 100644 (file)
@@ -1 +1 @@
-0.29.6
\ No newline at end of file
+0.30.0
\ No newline at end of file
index 6781b98..a9244eb 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2011-01-19.21; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -156,6 +156,10 @@ while test $# -ne 0; do
     -s) stripcmd=$stripprog;;
 
     -t) dst_arg=$2
+       # Protect names problematic for `test' and other utilities.
+       case $dst_arg in
+         -* | [=\(\)!]) dst_arg=./$dst_arg;;
+       esac
        shift;;
 
     -T) no_target_directory=true;;
@@ -186,6 +190,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
     fi
     shift # arg
     dst_arg=$arg
+    # Protect names problematic for `test' and other utilities.
+    case $dst_arg in
+      -* | [=\(\)!]) dst_arg=./$dst_arg;;
+    esac
   done
 fi
 
@@ -200,7 +208,11 @@ if test $# -eq 0; then
 fi
 
 if test -z "$dir_arg"; then
-  trap '(exit $?); exit' 1 2 13 15
+  do_exit='(exit $ret); exit $ret'
+  trap "ret=129; $do_exit" 1
+  trap "ret=130; $do_exit" 2
+  trap "ret=141; $do_exit" 13
+  trap "ret=143; $do_exit" 15
 
   # Set umask so as not to create temps with too-generous modes.
   # However, 'strip' requires both read and write access to temps.
@@ -228,9 +240,9 @@ fi
 
 for src
 do
-  # Protect names starting with `-'.
+  # Protect names problematic for `test' and other utilities.
   case $src in
-    -*) src=./$src;;
+    -* | [=\(\)!]) src=./$src;;
   esac
 
   if test -n "$dir_arg"; then
@@ -252,12 +264,7 @@ do
       echo "$0: no destination specified." >&2
       exit 1
     fi
-
     dst=$dst_arg
-    # Protect names starting with `-'.
-    case $dst in
-      -*) dst=./$dst;;
-    esac
 
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
@@ -385,7 +392,7 @@ do
 
       case $dstdir in
        /*) prefix='/';;
-       -*) prefix='./';;
+       [-=\(\)!]*) prefix='./';;
        *)  prefix='';;
       esac
 
@@ -403,7 +410,7 @@ do
 
       for d
       do
-       test -z "$d" && continue
+       test X"$d" = X && continue
 
        prefix=$prefix$d
        if test -d "$prefix"; then
old mode 100755 (executable)
new mode 100644 (file)
index d8efb57..63ae69d
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -1,10 +1,9 @@
-# Generated from ltmain.m4sh.
 
-# libtool (GNU libtool) 2.2.10
+# libtool (GNU libtool) 2.4.2
 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
@@ -42,6 +41,7 @@
 #       --quiet, --silent    don't print informational messages
 #       --no-quiet, --no-silent
 #                            print informational messages (default)
+#       --no-warn            don't display warning messages
 #       --tag=TAG            use configuration variables from tag TAG
 #   -v, --verbose            print more informational messages than default
 #       --no-verbose         don't print the extra informational messages
 #         compiler:            $LTCC
 #         compiler flags:              $LTCFLAGS
 #         linker:              $LD (gnu? $with_gnu_ld)
-#         $progname:   (GNU libtool) 2.2.10
+#         $progname:   (GNU libtool) 2.4.2
 #         automake:    $automake_version
 #         autoconf:    $autoconf_version
 #
 # Report bugs to <bug-libtool@gnu.org>.
+# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+# General help using GNU software: <http://www.gnu.org/gethelp/>.
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION=2.2.10
+VERSION=2.4.2
 TIMESTAMP=""
-package_revision=1.3175
+package_revision=1.3337
 
 # Be Bourne compatible
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -135,15 +137,10 @@ progpath="$0"
 
 : ${CP="cp -f"}
 test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
-: ${EGREP="/bin/grep -E"}
-: ${FGREP="/bin/grep -F"}
-: ${GREP="/bin/grep"}
-: ${LN_S="ln -s"}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="/bin/sed"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
@@ -163,6 +160,27 @@ IFS="      $lt_nl"
 dirname="s,/[^/]*$,,"
 basename="s,^.*/,,"
 
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+    if test "X$func_dirname_result" = "X${1}"; then
+      func_dirname_result="${3}"
+    else
+      func_dirname_result="$func_dirname_result${2}"
+    fi
+} # func_dirname may be replaced by extended shell implementation
+
+
+# func_basename file
+func_basename ()
+{
+    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+} # func_basename may be replaced by extended shell implementation
+
+
 # func_dirname_and_basename file append nondir_replacement
 # perform func_basename and func_dirname in a single function
 # call:
@@ -177,17 +195,31 @@ basename="s,^.*/,,"
 # those functions but instead duplicate the functionality here.
 func_dirname_and_basename ()
 {
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-  func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
-}
+    # Extract subdirectory from the argument.
+    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
+    if test "X$func_dirname_result" = "X${1}"; then
+      func_dirname_result="${3}"
+    else
+      func_dirname_result="$func_dirname_result${2}"
+    fi
+    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
+} # func_dirname_and_basename may be replaced by extended shell implementation
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+    case ${2} in
+      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+    esac
+} # func_stripname may be replaced by extended shell implementation
 
-# Generated shell functions inserted here.
 
 # These SED scripts presuppose an absolute path with a trailing slash.
 pathcar='s,^/\([^/]*\).*$,\1,'
@@ -351,7 +383,7 @@ case $progpath in
      ;;
   *)
      save_IFS="$IFS"
-     IFS=:
+     IFS=${PATH_SEPARATOR-:}
      for progdir in $PATH; do
        IFS="$save_IFS"
        test -x "$progdir/$progname" && break
@@ -370,6 +402,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
 # Same as above, but do not quote variable references.
 double_quote_subst='s/\(["`\\]\)/\\\1/g'
 
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
+
+# Sed substitution that converts a w32 file name or path
+# which contains forward slashes, into one that contains
+# (escaped) backslashes.  A very naive implementation.
+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
 # Re-`\' parameter expansions in output of double_quote_subst that were
 # `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
 # in input to double_quote_subst, that '$' was protected from expansion.
@@ -398,7 +439,7 @@ opt_warning=:
 # name if it has been set yet.
 func_echo ()
 {
-    $ECHO "$progname${mode+: }$mode: $*"
+    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
 }
 
 # func_verbose arg...
@@ -424,14 +465,14 @@ func_echo_all ()
 # Echo program name prefixed message to standard error.
 func_error ()
 {
-    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
+    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
 }
 
 # func_warning arg...
 # Echo program name prefixed warning message to standard error.
 func_warning ()
 {
-    $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
+    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
 
     # bash bug again:
     :
@@ -650,11 +691,30 @@ func_show_eval_locale ()
     fi
 }
 
+# func_tr_sh
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result.  All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+  case $1 in
+  [0-9]* | *[!a-zA-Z0-9_]*)
+    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
+    ;;
+  * )
+    func_tr_sh_result=$1
+    ;;
+  esac
+}
+
 
 # func_version
 # Echo version message to standard output and exit.
 func_version ()
 {
+    $opt_debug
+
     $SED -n '/(C)/!b go
        :more
        /\./!{
@@ -676,6 +736,8 @@ func_version ()
 # Echo short help message to standard output and exit.
 func_usage ()
 {
+    $opt_debug
+
     $SED -n '/^# Usage:/,/^#  *.*--help/ {
         s/^# //
        s/^# *$//
@@ -692,7 +754,10 @@ func_usage ()
 # unless 'noexit' is passed as argument.
 func_help ()
 {
+    $opt_debug
+
     $SED -n '/^# Usage:/,/# Report bugs to/ {
+       :print
         s/^# //
        s/^# *$//
        s*\$progname*'$progname'*
@@ -702,10 +767,14 @@ func_help ()
        s*\$LTCFLAGS*'"$LTCFLAGS"'*
        s*\$LD*'"$LD"'*
        s/\$with_gnu_ld/'"$with_gnu_ld"'/
-       s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
-       s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
+       s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
+       s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
        p
-     }' < "$progpath"
+       d
+     }
+     /^# .* home page:/b print
+     /^# General help using/b print
+     ' < "$progpath"
     ret=$?
     if test -z "$1"; then
       exit $ret
@@ -717,12 +786,39 @@ func_help ()
 # exit_cmd.
 func_missing_arg ()
 {
+    $opt_debug
+
     func_error "missing argument for $1."
     exit_cmd=exit
 }
 
-exit_cmd=:
 
+# func_split_short_opt shortopt
+# Set func_split_short_opt_name and func_split_short_opt_arg shell
+# variables after splitting SHORTOPT after the 2nd character.
+func_split_short_opt ()
+{
+    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
+    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
+
+    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
+    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
+} # func_split_short_opt may be replaced by extended shell implementation
+
+
+# func_split_long_opt longopt
+# Set func_split_long_opt_name and func_split_long_opt_arg shell
+# variables after splitting LONGOPT at the `=' sign.
+func_split_long_opt ()
+{
+    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
+    my_sed_long_arg='1s/^--[^=]*=//'
+
+    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
+    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
+} # func_split_long_opt may be replaced by extended shell implementation
+
+exit_cmd=:
 
 
 
@@ -732,25 +828,64 @@ magic="%%%MAGIC variable%%%"
 magic_exe="%%%MAGIC EXE variable%%%"
 
 # Global variables.
-# $mode is unset
 nonopt=
-execute_dlfiles=
 preserve_args=
 lo2o="s/\\.lo\$/.${objext}/"
 o2lo="s/\\.${objext}\$/.lo/"
 extracted_archives=
 extracted_serial=0
 
-opt_dry_run=false
-opt_duplicate_deps=false
-opt_silent=false
-opt_debug=:
-
 # If this variable is set in any of the actions, the command in it
 # will be execed at the end.  This prevents here-documents from being
 # left over by shells.
 exec_cmd=
 
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+    eval "${1}=\$${1}\${2}"
+} # func_append may be replaced by extended shell implementation
+
+# func_append_quoted var value
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+func_append_quoted ()
+{
+    func_quote_for_eval "${2}"
+    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
+} # func_append_quoted may be replaced by extended shell implementation
+
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+    func_arith_result=`expr "${@}"`
+} # func_arith may be replaced by extended shell implementation
+
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
+} # func_len may be replaced by extended shell implementation
+
+
+# func_lo2o object
+func_lo2o ()
+{
+    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+} # func_lo2o may be replaced by extended shell implementation
+
+
+# func_xform libobj-or-source
+func_xform ()
+{
+    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+} # func_xform may be replaced by extended shell implementation
+
+
 # func_fatal_configuration arg...
 # Echo program name prefixed message to standard error, followed by
 # a configuration failure hint, and exit.
@@ -840,129 +975,209 @@ func_enable_tag ()
   esac
 }
 
-# Parse options once, thoroughly.  This comes as soon as possible in
-# the script to make things like `libtool --version' happen quickly.
+# func_check_version_match
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
 {
+  if test "$package_revision" != "$macro_revision"; then
+    if test "$VERSION" != "$macro_version"; then
+      if test -z "$macro_version"; then
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      else
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      fi
+    else
+      cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+    fi
+
+    exit $EXIT_MISMATCH
+  fi
+}
+
+
+# Shorthand for --mode=foo, only valid as the first argument
+case $1 in
+clean|clea|cle|cl)
+  shift; set dummy --mode clean ${1+"$@"}; shift
+  ;;
+compile|compil|compi|comp|com|co|c)
+  shift; set dummy --mode compile ${1+"$@"}; shift
+  ;;
+execute|execut|execu|exec|exe|ex|e)
+  shift; set dummy --mode execute ${1+"$@"}; shift
+  ;;
+finish|finis|fini|fin|fi|f)
+  shift; set dummy --mode finish ${1+"$@"}; shift
+  ;;
+install|instal|insta|inst|ins|in|i)
+  shift; set dummy --mode install ${1+"$@"}; shift
+  ;;
+link|lin|li|l)
+  shift; set dummy --mode link ${1+"$@"}; shift
+  ;;
+uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+  shift; set dummy --mode uninstall ${1+"$@"}; shift
+  ;;
+esac
+
+
+
+# Option defaults:
+opt_debug=:
+opt_dry_run=false
+opt_config=false
+opt_preserve_dup_deps=false
+opt_features=false
+opt_finish=false
+opt_help=false
+opt_help_all=false
+opt_silent=:
+opt_warning=:
+opt_verbose=:
+opt_silent=false
+opt_verbose=false
 
-  # Shorthand for --mode=foo, only valid as the first argument
-  case $1 in
-  clean|clea|cle|cl)
-    shift; set dummy --mode clean ${1+"$@"}; shift
-    ;;
-  compile|compil|compi|comp|com|co|c)
-    shift; set dummy --mode compile ${1+"$@"}; shift
-    ;;
-  execute|execut|execu|exec|exe|ex|e)
-    shift; set dummy --mode execute ${1+"$@"}; shift
-    ;;
-  finish|finis|fini|fin|fi|f)
-    shift; set dummy --mode finish ${1+"$@"}; shift
-    ;;
-  install|instal|insta|inst|ins|in|i)
-    shift; set dummy --mode install ${1+"$@"}; shift
-    ;;
-  link|lin|li|l)
-    shift; set dummy --mode link ${1+"$@"}; shift
-    ;;
-  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
-    shift; set dummy --mode uninstall ${1+"$@"}; shift
-    ;;
-  esac
 
-  # Parse non-mode specific arguments:
-  while test "$#" -gt 0; do
+# Parse options once, thoroughly.  This comes as soon as possible in the
+# script to make things like `--version' happen as quickly as we can.
+{
+  # this just eases exit handling
+  while test $# -gt 0; do
     opt="$1"
     shift
-
     case $opt in
-      --config)                func_config                                     ;;
-
-      --debug)         preserve_args="$preserve_args $opt"
+      --debug|-x)      opt_debug='set -x'
                        func_echo "enabling shell trace mode"
-                       opt_debug='set -x'
                        $opt_debug
                        ;;
-
-      -dlopen)         test "$#" -eq 0 && func_missing_arg "$opt" && break
-                       execute_dlfiles="$execute_dlfiles $1"
-                       shift
+      --dry-run|--dryrun|-n)
+                       opt_dry_run=:
                        ;;
-
-      --dry-run | -n)  opt_dry_run=:                                   ;;
-      --features)       func_features                                  ;;
-      --finish)                mode="finish"                                   ;;
-
-      --mode)          test "$#" -eq 0 && func_missing_arg "$opt" && break
-                       case $1 in
-                         # Valid mode arguments:
-                         clean)        ;;
-                         compile)      ;;
-                         execute)      ;;
-                         finish)       ;;
-                         install)      ;;
-                         link)         ;;
-                         relink)       ;;
-                         uninstall)    ;;
-
-                         # Catch anything else as an error
-                         *) func_error "invalid argument for $opt"
-                            exit_cmd=exit
-                            break
-                            ;;
-                       esac
-
-                       mode="$1"
+      --config)
+                       opt_config=:
+func_config
+                       ;;
+      --dlopen|-dlopen)
+                       optarg="$1"
+                       opt_dlopen="${opt_dlopen+$opt_dlopen
+}$optarg"
                        shift
                        ;;
-
       --preserve-dup-deps)
-                       opt_duplicate_deps=:                            ;;
-
-      --quiet|--silent)        preserve_args="$preserve_args $opt"
-                       opt_silent=:
-                       opt_verbose=false
+                       opt_preserve_dup_deps=:
                        ;;
-
-      --no-quiet|--no-silent)
-                       preserve_args="$preserve_args $opt"
-                       opt_silent=false
+      --features)
+                       opt_features=:
+func_features
                        ;;
-
-      --verbose| -v)   preserve_args="$preserve_args $opt"
+      --finish)
+                       opt_finish=:
+set dummy --mode finish ${1+"$@"}; shift
+                       ;;
+      --help)
+                       opt_help=:
+                       ;;
+      --help-all)
+                       opt_help_all=:
+opt_help=': help-all'
+                       ;;
+      --mode)
+                       test $# = 0 && func_missing_arg $opt && break
+                       optarg="$1"
+                       opt_mode="$optarg"
+case $optarg in
+  # Valid mode arguments:
+  clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+  # Catch anything else as an error
+  *) func_error "invalid argument for $opt"
+     exit_cmd=exit
+     break
+     ;;
+esac
+                       shift
+                       ;;
+      --no-silent|--no-quiet)
                        opt_silent=false
-                       opt_verbose=:
+func_append preserve_args " $opt"
                        ;;
-
-      --no-verbose)    preserve_args="$preserve_args $opt"
+      --no-warning|--no-warn)
+                       opt_warning=false
+func_append preserve_args " $opt"
+                       ;;
+      --no-verbose)
                        opt_verbose=false
+func_append preserve_args " $opt"
                        ;;
-
-      --tag)           test "$#" -eq 0 && func_missing_arg "$opt" && break
-                       preserve_args="$preserve_args $opt $1"
-                       func_enable_tag "$1"    # tagname is set here
+      --silent|--quiet)
+                       opt_silent=:
+func_append preserve_args " $opt"
+        opt_verbose=false
+                       ;;
+      --verbose|-v)
+                       opt_verbose=:
+func_append preserve_args " $opt"
+opt_silent=false
+                       ;;
+      --tag)
+                       test $# = 0 && func_missing_arg $opt && break
+                       optarg="$1"
+                       opt_tag="$optarg"
+func_append preserve_args " $opt $optarg"
+func_enable_tag "$optarg"
                        shift
                        ;;
 
+      -\?|-h)          func_usage                              ;;
+      --help)          func_help                               ;;
+      --version)       func_version                            ;;
+
       # Separate optargs to long options:
-      -dlopen=*|--mode=*|--tag=*)
-                       func_opt_split "$opt"
-                       set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
+      --*=*)
+                       func_split_long_opt "$opt"
+                       set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
                        shift
                        ;;
 
-      -\?|-h)          func_usage                                      ;;
-      --help)          opt_help=:                                      ;;
-      --help-all)      opt_help=': help-all'                           ;;
-      --version)       func_version                                    ;;
-
-      -*)              func_fatal_help "unrecognized option \`$opt'"   ;;
-
-      *)               nonopt="$opt"
-                       break
+      # Separate non-argument short options:
+      -\?*|-h*|-n*|-v*)
+                       func_split_short_opt "$opt"
+                       set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
+                       shift
                        ;;
+
+      --)              break                                   ;;
+      -*)              func_fatal_help "unrecognized option \`$opt'" ;;
+      *)               set dummy "$opt" ${1+"$@"};     shift; break  ;;
     esac
   done
 
+  # Validate options:
+
+  # save first non-option argument
+  if test "$#" -gt 0; then
+    nonopt="$opt"
+    shift
+  fi
+
+  # preserve --debug
+  test "$opt_debug" = : || func_append preserve_args " --debug"
 
   case $host in
     *cygwin* | *mingw* | *pw32* | *cegcc*)
@@ -970,82 +1185,44 @@ func_enable_tag ()
       opt_duplicate_compiler_generated_deps=:
       ;;
     *)
-      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
+      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
       ;;
   esac
 
-  # Having warned about all mis-specified options, bail out if
-  # anything was wrong.
-  $exit_cmd $EXIT_FAILURE
-}
+  $opt_help || {
+    # Sanity checks first:
+    func_check_version_match
 
-# func_check_version_match
-# Ensure that we are using m4 macros, and libtool script from the same
-# release of libtool.
-func_check_version_match ()
-{
-  if test "$package_revision" != "$macro_revision"; then
-    if test "$VERSION" != "$macro_version"; then
-      if test -z "$macro_version"; then
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from an older release.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      else
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      fi
-    else
-      cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-$progname: of $PACKAGE $VERSION and run autoconf again.
-_LT_EOF
+    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+      func_fatal_configuration "not configured to build any kind of library"
     fi
 
-    exit $EXIT_MISMATCH
-  fi
-}
+    # Darwin sucks
+    eval std_shrext=\"$shrext_cmds\"
 
+    # Only execute mode is allowed to have -dlopen flags.
+    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
+      func_error "unrecognized option \`-dlopen'"
+      $ECHO "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
 
-## ----------- ##
-##    Main.    ##
-## ----------- ##
-
-$opt_help || {
-  # Sanity checks first:
-  func_check_version_match
-
-  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-    func_fatal_configuration "not configured to build any kind of library"
-  fi
-
-  test -z "$mode" && func_fatal_error "error: you must specify a MODE."
+    # Change the help message to a mode-specific one.
+    generic_help="$help"
+    help="Try \`$progname --help --mode=$opt_mode' for more information."
+  }
 
 
-  # Darwin sucks
-  eval std_shrext=\"$shrext_cmds\"
+  # Bail if the options were screwed
+  $exit_cmd $EXIT_FAILURE
+}
 
 
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    func_error "unrecognized option \`-dlopen'"
-    $ECHO "$help" 1>&2
-    exit $EXIT_FAILURE
-  fi
 
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$progname --help --mode=$mode' for more information."
-}
 
+## ----------- ##
+##    Main.    ##
+## ----------- ##
 
 # func_lalib_p file
 # True iff FILE is a libtool `.la' library or `.lo' object file.
@@ -1110,12 +1287,9 @@ func_ltwrapper_executable_p ()
 # temporary ltwrapper_script.
 func_ltwrapper_scriptname ()
 {
-    func_ltwrapper_scriptname_result=""
-    if func_ltwrapper_executable_p "$1"; then
-       func_dirname_and_basename "$1" "" "."
-       func_stripname '' '.exe' "$func_basename_result"
-       func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-    fi
+    func_dirname_and_basename "$1" "" "."
+    func_stripname '' '.exe' "$func_basename_result"
+    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
 }
 
 # func_ltwrapper_p file
@@ -1161,6 +1335,37 @@ func_source ()
 }
 
 
+# func_resolve_sysroot PATH
+# Replace a leading = in PATH with a sysroot.  Store the result into
+# func_resolve_sysroot_result
+func_resolve_sysroot ()
+{
+  func_resolve_sysroot_result=$1
+  case $func_resolve_sysroot_result in
+  =*)
+    func_stripname '=' '' "$func_resolve_sysroot_result"
+    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
+    ;;
+  esac
+}
+
+# func_replace_sysroot PATH
+# If PATH begins with the sysroot, replace it with = and
+# store the result into func_replace_sysroot_result.
+func_replace_sysroot ()
+{
+  case "$lt_sysroot:$1" in
+  ?*:"$lt_sysroot"*)
+    func_stripname "$lt_sysroot" '' "$1"
+    func_replace_sysroot_result="=$func_stripname_result"
+    ;;
+  *)
+    # Including no sysroot.
+    func_replace_sysroot_result=$1
+    ;;
+  esac
+}
+
 # func_infer_tag arg
 # Infer tagged configuration to use if any are available and
 # if one wasn't chosen via the "--tag" command line option.
@@ -1173,8 +1378,7 @@ func_infer_tag ()
     if test -n "$available_tags" && test -z "$tagname"; then
       CC_quoted=
       for arg in $CC; do
-        func_quote_for_eval "$arg"
-       CC_quoted="$CC_quoted $func_quote_for_eval_result"
+       func_append_quoted CC_quoted "$arg"
       done
       CC_expanded=`func_echo_all $CC`
       CC_quoted_expanded=`func_echo_all $CC_quoted`
@@ -1193,8 +1397,7 @@ func_infer_tag ()
            CC_quoted=
            for arg in $CC; do
              # Double-quote args containing other shell metacharacters.
-             func_quote_for_eval "$arg"
-             CC_quoted="$CC_quoted $func_quote_for_eval_result"
+             func_append_quoted CC_quoted "$arg"
            done
            CC_expanded=`func_echo_all $CC`
            CC_quoted_expanded=`func_echo_all $CC_quoted`
@@ -1225,43 +1428,523 @@ func_infer_tag ()
 }
 
 
-
-# func_write_libtool_object output_name pic_name nonpic_name
-# Create a libtool object file (analogous to a ".la" file),
-# but don't create it if we're doing a dry run.
-func_write_libtool_object ()
+
+# func_write_libtool_object output_name pic_name nonpic_name
+# Create a libtool object file (analogous to a ".la" file),
+# but don't create it if we're doing a dry run.
+func_write_libtool_object ()
+{
+    write_libobj=${1}
+    if test "$build_libtool_libs" = yes; then
+      write_lobj=\'${2}\'
+    else
+      write_lobj=none
+    fi
+
+    if test "$build_old_libs" = yes; then
+      write_oldobj=\'${3}\'
+    else
+      write_oldobj=none
+    fi
+
+    $opt_dry_run || {
+      cat >${write_libobj}T <<EOF
+# $write_libobj - a libtool object file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object=$write_lobj
+
+# Name of the non-PIC object
+non_pic_object=$write_oldobj
+
+EOF
+      $MV "${write_libobj}T" "${write_libobj}"
+    }
+}
+
+
+##################################################
+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
+##################################################
+
+# func_convert_core_file_wine_to_w32 ARG
+# Helper function used by file name conversion functions when $build is *nix,
+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
+# correctly configured wine environment available, with the winepath program
+# in $build's $PATH.
+#
+# ARG is the $build file name to be converted to w32 format.
+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
+# be empty on error (or when ARG is empty)
+func_convert_core_file_wine_to_w32 ()
+{
+  $opt_debug
+  func_convert_core_file_wine_to_w32_result="$1"
+  if test -n "$1"; then
+    # Unfortunately, winepath does not exit with a non-zero error code, so we
+    # are forced to check the contents of stdout. On the other hand, if the
+    # command is not found, the shell will set an exit code of 127 and print
+    # *an error message* to stdout. So we must check for both error code of
+    # zero AND non-empty stdout, which explains the odd construction:
+    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
+    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
+      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
+        $SED -e "$lt_sed_naive_backslashify"`
+    else
+      func_convert_core_file_wine_to_w32_result=
+    fi
+  fi
+}
+# end: func_convert_core_file_wine_to_w32
+
+
+# func_convert_core_path_wine_to_w32 ARG
+# Helper function used by path conversion functions when $build is *nix, and
+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
+# configured wine environment available, with the winepath program in $build's
+# $PATH. Assumes ARG has no leading or trailing path separator characters.
+#
+# ARG is path to be converted from $build format to win32.
+# Result is available in $func_convert_core_path_wine_to_w32_result.
+# Unconvertible file (directory) names in ARG are skipped; if no directory names
+# are convertible, then the result may be empty.
+func_convert_core_path_wine_to_w32 ()
+{
+  $opt_debug
+  # unfortunately, winepath doesn't convert paths, only file names
+  func_convert_core_path_wine_to_w32_result=""
+  if test -n "$1"; then
+    oldIFS=$IFS
+    IFS=:
+    for func_convert_core_path_wine_to_w32_f in $1; do
+      IFS=$oldIFS
+      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
+      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
+        if test -z "$func_convert_core_path_wine_to_w32_result"; then
+          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
+        else
+          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
+        fi
+      fi
+    done
+    IFS=$oldIFS
+  fi
+}
+# end: func_convert_core_path_wine_to_w32
+
+
+# func_cygpath ARGS...
+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
+# (2), returns the Cygwin file name or path in func_cygpath_result (input
+# file name or path is assumed to be in w32 format, as previously converted
+# from $build's *nix or MSYS format). In case (3), returns the w32 file name
+# or path in func_cygpath_result (input file name or path is assumed to be in
+# Cygwin format). Returns an empty string on error.
+#
+# ARGS are passed to cygpath, with the last one being the file name or path to
+# be converted.
+#
+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
+# environment variable; do not put it in $PATH.
+func_cygpath ()
+{
+  $opt_debug
+  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
+    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
+    if test "$?" -ne 0; then
+      # on failure, ensure result is empty
+      func_cygpath_result=
+    fi
+  else
+    func_cygpath_result=
+    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
+  fi
+}
+#end: func_cygpath
+
+
+# func_convert_core_msys_to_w32 ARG
+# Convert file name or path ARG from MSYS format to w32 format.  Return
+# result in func_convert_core_msys_to_w32_result.
+func_convert_core_msys_to_w32 ()
+{
+  $opt_debug
+  # awkward: cmd appends spaces to result
+  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
+    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
+}
+#end: func_convert_core_msys_to_w32
+
+
+# func_convert_file_check ARG1 ARG2
+# Verify that ARG1 (a file name in $build format) was converted to $host
+# format in ARG2. Otherwise, emit an error message, but continue (resetting
+# func_to_host_file_result to ARG1).
+func_convert_file_check ()
+{
+  $opt_debug
+  if test -z "$2" && test -n "$1" ; then
+    func_error "Could not determine host file name corresponding to"
+    func_error "  \`$1'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback:
+    func_to_host_file_result="$1"
+  fi
+}
+# end func_convert_file_check
+
+
+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
+# Verify that FROM_PATH (a path in $build format) was converted to $host
+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
+# func_to_host_file_result to a simplistic fallback value (see below).
+func_convert_path_check ()
+{
+  $opt_debug
+  if test -z "$4" && test -n "$3"; then
+    func_error "Could not determine the host path corresponding to"
+    func_error "  \`$3'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback.  This is a deliberately simplistic "conversion" and
+    # should not be "improved".  See libtool.info.
+    if test "x$1" != "x$2"; then
+      lt_replace_pathsep_chars="s|$1|$2|g"
+      func_to_host_path_result=`echo "$3" |
+        $SED -e "$lt_replace_pathsep_chars"`
+    else
+      func_to_host_path_result="$3"
+    fi
+  fi
+}
+# end func_convert_path_check
+
+
+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
+# and appending REPL if ORIG matches BACKPAT.
+func_convert_path_front_back_pathsep ()
+{
+  $opt_debug
+  case $4 in
+  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
+    ;;
+  esac
+  case $4 in
+  $2 ) func_append func_to_host_path_result "$3"
+    ;;
+  esac
+}
+# end func_convert_path_front_back_pathsep
+
+
+##################################################
+# $build to $host FILE NAME CONVERSION FUNCTIONS #
+##################################################
+# invoked via `$to_host_file_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# Result will be available in $func_to_host_file_result.
+
+
+# func_to_host_file ARG
+# Converts the file name ARG from $build format to $host format. Return result
+# in func_to_host_file_result.
+func_to_host_file ()
+{
+  $opt_debug
+  $to_host_file_cmd "$1"
+}
+# end func_to_host_file
+
+
+# func_to_tool_file ARG LAZY
+# converts the file name ARG from $build format to toolchain format. Return
+# result in func_to_tool_file_result.  If the conversion in use is listed
+# in (the comma separated) LAZY, no conversion takes place.
+func_to_tool_file ()
+{
+  $opt_debug
+  case ,$2, in
+    *,"$to_tool_file_cmd",*)
+      func_to_tool_file_result=$1
+      ;;
+    *)
+      $to_tool_file_cmd "$1"
+      func_to_tool_file_result=$func_to_host_file_result
+      ;;
+  esac
+}
+# end func_to_tool_file
+
+
+# func_convert_file_noop ARG
+# Copy ARG to func_to_host_file_result.
+func_convert_file_noop ()
+{
+  func_to_host_file_result="$1"
+}
+# end func_convert_file_noop
+
+
+# func_convert_file_msys_to_w32 ARG
+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_file_result.
+func_convert_file_msys_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_w32
+
+
+# func_convert_file_cygwin_to_w32 ARG
+# Convert file name ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_file_cygwin_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
+    # LT_CYGPATH in this case.
+    func_to_host_file_result=`cygpath -m "$1"`
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_cygwin_to_w32
+
+
+# func_convert_file_nix_to_w32 ARG
+# Convert file name ARG from *nix to w32 format.  Requires a wine environment
+# and a working winepath. Returns result in func_to_host_file_result.
+func_convert_file_nix_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_file_wine_to_w32 "$1"
+    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_w32
+
+
+# func_convert_file_msys_to_cygwin ARG
+# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_file_msys_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_msys_to_w32_result"
+    func_to_host_file_result="$func_cygpath_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_cygwin
+
+
+# func_convert_file_nix_to_cygwin ARG
+# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
+# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
+# in func_to_host_file_result.
+func_convert_file_nix_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
+    func_convert_core_file_wine_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
+    func_to_host_file_result="$func_cygpath_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_cygwin
+
+
+#############################################
+# $build to $host PATH CONVERSION FUNCTIONS #
+#############################################
+# invoked via `$to_host_path_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# The result will be available in $func_to_host_path_result.
+#
+# Path separators are also converted from $build format to $host format.  If
+# ARG begins or ends with a path separator character, it is preserved (but
+# converted to $host format) on output.
+#
+# All path conversion functions are named using the following convention:
+#   file name conversion function    : func_convert_file_X_to_Y ()
+#   path conversion function         : func_convert_path_X_to_Y ()
+# where, for any given $build/$host combination the 'X_to_Y' value is the
+# same.  If conversion functions are added for new $build/$host combinations,
+# the two new functions must follow this pattern, or func_init_to_host_path_cmd
+# will break.
+
+
+# func_init_to_host_path_cmd
+# Ensures that function "pointer" variable $to_host_path_cmd is set to the
+# appropriate value, based on the value of $to_host_file_cmd.
+to_host_path_cmd=
+func_init_to_host_path_cmd ()
+{
+  $opt_debug
+  if test -z "$to_host_path_cmd"; then
+    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
+    to_host_path_cmd="func_convert_path_${func_stripname_result}"
+  fi
+}
+
+
+# func_to_host_path ARG
+# Converts the path ARG from $build format to $host format. Return result
+# in func_to_host_path_result.
+func_to_host_path ()
+{
+  $opt_debug
+  func_init_to_host_path_cmd
+  $to_host_path_cmd "$1"
+}
+# end func_to_host_path
+
+
+# func_convert_path_noop ARG
+# Copy ARG to func_to_host_path_result.
+func_convert_path_noop ()
+{
+  func_to_host_path_result="$1"
+}
+# end func_convert_path_noop
+
+
+# func_convert_path_msys_to_w32 ARG
+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_path_result.
+func_convert_path_msys_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from ARG.  MSYS
+    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
+    # and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_msys_to_w32
+
+
+# func_convert_path_cygwin_to_w32 ARG
+# Convert path ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_path_cygwin_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_cygwin_to_w32
+
+
+# func_convert_path_nix_to_w32 ARG
+# Convert path ARG from *nix to w32 format.  Requires a wine environment and
+# a working winepath.  Returns result in func_to_host_file_result.
+func_convert_path_nix_to_w32 ()
 {
-    write_libobj=${1}
-    if test "$build_libtool_libs" = yes; then
-      write_lobj=\'${2}\'
-    else
-      write_lobj=none
-    fi
-
-    if test "$build_old_libs" = yes; then
-      write_oldobj=\'${3}\'
-    else
-      write_oldobj=none
-    fi
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_nix_to_w32
 
-    $opt_dry_run || {
-      cat >${write_libobj}T <<EOF
-# $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
 
-# Name of the PIC object.
-pic_object=$write_lobj
+# func_convert_path_msys_to_cygwin ARG
+# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_path_msys_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
+    func_to_host_path_result="$func_cygpath_result"
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_msys_to_cygwin
 
-# Name of the non-PIC object
-non_pic_object=$write_oldobj
 
-EOF
-      $MV "${write_libobj}T" "${write_libobj}"
-    }
+# func_convert_path_nix_to_cygwin ARG
+# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
+# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
+# func_to_host_file_result.
+func_convert_path_nix_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from
+    # ARG. msys behavior is inconsistent here, cygpath turns them
+    # into '.;' and ';.', and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
+    func_to_host_path_result="$func_cygpath_result"
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
 }
+# end func_convert_path_nix_to_cygwin
+
 
 # func_mode_compile arg...
 func_mode_compile ()
@@ -1303,12 +1986,12 @@ func_mode_compile ()
          ;;
 
        -pie | -fpie | -fPIE)
-          pie_flag="$pie_flag $arg"
+          func_append pie_flag " $arg"
          continue
          ;;
 
        -shared | -static | -prefer-pic | -prefer-non-pic)
-         later="$later $arg"
+         func_append later " $arg"
          continue
          ;;
 
@@ -1329,15 +2012,14 @@ func_mode_compile ()
          save_ifs="$IFS"; IFS=','
          for arg in $args; do
            IFS="$save_ifs"
-           func_quote_for_eval "$arg"
-           lastarg="$lastarg $func_quote_for_eval_result"
+           func_append_quoted lastarg "$arg"
          done
          IFS="$save_ifs"
          func_stripname ' ' '' "$lastarg"
          lastarg=$func_stripname_result
 
          # Add the arguments to base_compile.
-         base_compile="$base_compile $lastarg"
+         func_append base_compile " $lastarg"
          continue
          ;;
 
@@ -1353,8 +2035,7 @@ func_mode_compile ()
       esac    #  case $arg_mode
 
       # Aesthetically quote the previous argument.
-      func_quote_for_eval "$lastarg"
-      base_compile="$base_compile $func_quote_for_eval_result"
+      func_append_quoted base_compile "$lastarg"
     done # for arg
 
     case $arg_mode in
@@ -1379,7 +2060,7 @@ func_mode_compile ()
     *.[cCFSifmso] | \
     *.ada | *.adb | *.ads | *.asm | \
     *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
-    *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup)
+    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
       func_xform "$libobj"
       libobj=$func_xform_result
       ;;
@@ -1485,17 +2166,16 @@ compiler."
        $opt_dry_run || $RM $removelist
        exit $EXIT_FAILURE
       fi
-      removelist="$removelist $output_obj"
+      func_append removelist " $output_obj"
       $ECHO "$srcfile" > "$lockfile"
     fi
 
     $opt_dry_run || $RM $removelist
-    removelist="$removelist $lockfile"
+    func_append removelist " $lockfile"
     trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
 
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
+    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
+    srcfile=$func_to_tool_file_result
     func_quote_for_eval "$srcfile"
     qsrcfile=$func_quote_for_eval_result
 
@@ -1515,7 +2195,7 @@ compiler."
 
       if test -z "$output_obj"; then
        # Place PIC objects in $objdir
-       command="$command -o $lobj"
+       func_append command " -o $lobj"
       fi
 
       func_show_eval_locale "$command" \
@@ -1562,11 +2242,11 @@ compiler."
        command="$base_compile $qsrcfile $pic_flag"
       fi
       if test "$compiler_c_o" = yes; then
-       command="$command -o $obj"
+       func_append command " -o $obj"
       fi
 
       # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
+      func_append command "$suppress_output"
       func_show_eval_locale "$command" \
         '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
 
@@ -1611,13 +2291,13 @@ compiler."
 }
 
 $opt_help || {
-  test "$mode" = compile && func_mode_compile ${1+"$@"}
+  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
 }
 
 func_mode_help ()
 {
     # We need to display help for each of the modes.
-    case $mode in
+    case $opt_mode in
       "")
         # Generic help is extracted from the usage comments
         # at the start of this file.
@@ -1793,7 +2473,7 @@ Otherwise, only FILE itself is deleted using RM."
         ;;
 
       *)
-        func_fatal_help "invalid operation mode \`$mode'"
+        func_fatal_help "invalid operation mode \`$opt_mode'"
         ;;
     esac
 
@@ -1808,13 +2488,13 @@ if $opt_help; then
   else
     {
       func_help noexit
-      for mode in compile link execute install finish uninstall clean; do
+      for opt_mode in compile link execute install finish uninstall clean; do
        func_mode_help
       done
     } | sed -n '1p; 2,$s/^Usage:/  or: /p'
     {
       func_help noexit
-      for mode in compile link execute install finish uninstall clean; do
+      for opt_mode in compile link execute install finish uninstall clean; do
        echo
        func_mode_help
       done
@@ -1843,13 +2523,16 @@ func_mode_execute ()
       func_fatal_help "you must specify a COMMAND"
 
     # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
+    for file in $opt_dlopen; do
       test -f "$file" \
        || func_fatal_help "\`$file' is not a file"
 
       dir=
       case $file in
       *.la)
+       func_resolve_sysroot "$file"
+       file=$func_resolve_sysroot_result
+
        # Check to see that this really is a libtool archive.
        func_lalib_unsafe_p "$file" \
          || func_fatal_help "\`$lib' is not a valid libtool archive"
@@ -1871,7 +2554,7 @@ func_mode_execute ()
        dir="$func_dirname_result"
 
        if test -f "$dir/$objdir/$dlname"; then
-         dir="$dir/$objdir"
+         func_append dir "/$objdir"
        else
          if test ! -f "$dir/$dlname"; then
            func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
@@ -1928,8 +2611,7 @@ func_mode_execute ()
        ;;
       esac
       # Quote arguments (to preserve shell metacharacters).
-      func_quote_for_eval "$file"
-      args="$args $func_quote_for_eval_result"
+      func_append_quoted args "$file"
     done
 
     if test "X$opt_dry_run" = Xfalse; then
@@ -1961,22 +2643,59 @@ func_mode_execute ()
     fi
 }
 
-test "$mode" = execute && func_mode_execute ${1+"$@"}
+test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
 
 
 # func_mode_finish arg...
 func_mode_finish ()
 {
     $opt_debug
-    libdirs="$nonopt"
+    libs=
+    libdirs=
     admincmds=
 
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-       libdirs="$libdirs $dir"
-      done
+    for opt in "$nonopt" ${1+"$@"}
+    do
+      if test -d "$opt"; then
+       func_append libdirs " $opt"
+
+      elif test -f "$opt"; then
+       if func_lalib_unsafe_p "$opt"; then
+         func_append libs " $opt"
+       else
+         func_warning "\`$opt' is not a valid libtool archive"
+       fi
+
+      else
+       func_fatal_error "invalid argument \`$opt'"
+      fi
+    done
+
+    if test -n "$libs"; then
+      if test -n "$lt_sysroot"; then
+        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
+        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
+      else
+        sysroot_cmd=
+      fi
+
+      # Remove sysroot references
+      if $opt_dry_run; then
+        for lib in $libs; do
+          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
+        done
+      else
+        tmpdir=`func_mktempdir`
+        for lib in $libs; do
+         sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+           > $tmpdir/tmp-la
+         mv -f $tmpdir/tmp-la $lib
+       done
+        ${RM}r "$tmpdir"
+      fi
+    fi
 
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
       for libdir in $libdirs; do
        if test -n "$finish_cmds"; then
          # Do each command in the finish commands.
@@ -1986,7 +2705,7 @@ func_mode_finish ()
        if test -n "$finish_eval"; then
          # Do the single finish_eval.
          eval cmds=\"$finish_eval\"
-         $opt_dry_run || eval "$cmds" || admincmds="$admincmds
+         $opt_dry_run || eval "$cmds" || func_append admincmds "
        $cmds"
        fi
       done
@@ -1995,53 +2714,55 @@ func_mode_finish ()
     # Exit here if they wanted silent mode.
     $opt_silent && exit $EXIT_SUCCESS
 
-    echo "----------------------------------------------------------------------"
-    echo "Libraries have been installed in:"
-    for libdir in $libdirs; do
-      $ECHO "   $libdir"
-    done
-    echo
-    echo "If you ever happen to want to link against installed libraries"
-    echo "in a given directory, LIBDIR, you must either use libtool, and"
-    echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
-    echo "flag during linking and do at least one of the following:"
-    if test -n "$shlibpath_var"; then
-      echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-      echo "     during execution"
-    fi
-    if test -n "$runpath_var"; then
-      echo "   - add LIBDIR to the \`$runpath_var' environment variable"
-      echo "     during linking"
-    fi
-    if test -n "$hardcode_libdir_flag_spec"; then
-      libdir=LIBDIR
-      eval flag=\"$hardcode_libdir_flag_spec\"
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      echo "----------------------------------------------------------------------"
+      echo "Libraries have been installed in:"
+      for libdir in $libdirs; do
+       $ECHO "   $libdir"
+      done
+      echo
+      echo "If you ever happen to want to link against installed libraries"
+      echo "in a given directory, LIBDIR, you must either use libtool, and"
+      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+      echo "flag during linking and do at least one of the following:"
+      if test -n "$shlibpath_var"; then
+       echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+       echo "     during execution"
+      fi
+      if test -n "$runpath_var"; then
+       echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+       echo "     during linking"
+      fi
+      if test -n "$hardcode_libdir_flag_spec"; then
+       libdir=LIBDIR
+       eval flag=\"$hardcode_libdir_flag_spec\"
 
-      $ECHO "   - use the \`$flag' linker flag"
-    fi
-    if test -n "$admincmds"; then
-      $ECHO "   - have your system administrator run these commands:$admincmds"
-    fi
-    if test -f /etc/ld.so.conf; then
-      echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-    fi
-    echo
+       $ECHO "   - use the \`$flag' linker flag"
+      fi
+      if test -n "$admincmds"; then
+       $ECHO "   - have your system administrator run these commands:$admincmds"
+      fi
+      if test -f /etc/ld.so.conf; then
+       echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+      fi
+      echo
 
-    echo "See any operating system documentation about shared libraries for"
-    case $host in
-      solaris2.[6789]|solaris2.1[0-9])
-        echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
-       echo "pages."
-       ;;
-      *)
-        echo "more information, such as the ld(1) and ld.so(8) manual pages."
-        ;;
-    esac
-    echo "----------------------------------------------------------------------"
+      echo "See any operating system documentation about shared libraries for"
+      case $host in
+       solaris2.[6789]|solaris2.1[0-9])
+         echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+         echo "pages."
+         ;;
+       *)
+         echo "more information, such as the ld(1) and ld.so(8) manual pages."
+         ;;
+      esac
+      echo "----------------------------------------------------------------------"
+    fi
     exit $EXIT_SUCCESS
 }
 
-test "$mode" = finish && func_mode_finish ${1+"$@"}
+test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
 
 
 # func_mode_install arg...
@@ -2066,7 +2787,7 @@ func_mode_install ()
     # The real first argument should be the name of the installation program.
     # Aesthetically quote it.
     func_quote_for_eval "$arg"
-    install_prog="$install_prog$func_quote_for_eval_result"
+    func_append install_prog "$func_quote_for_eval_result"
     install_shared_prog=$install_prog
     case " $install_prog " in
       *[\\\ /]cp\ *) install_cp=: ;;
@@ -2086,7 +2807,7 @@ func_mode_install ()
     do
       arg2=
       if test -n "$dest"; then
-       files="$files $dest"
+       func_append files " $dest"
        dest=$arg
        continue
       fi
@@ -2124,11 +2845,11 @@ func_mode_install ()
 
       # Aesthetically quote the argument.
       func_quote_for_eval "$arg"
-      install_prog="$install_prog $func_quote_for_eval_result"
+      func_append install_prog " $func_quote_for_eval_result"
       if test -n "$arg2"; then
        func_quote_for_eval "$arg2"
       fi
-      install_shared_prog="$install_shared_prog $func_quote_for_eval_result"
+      func_append install_shared_prog " $func_quote_for_eval_result"
     done
 
     test -z "$install_prog" && \
@@ -2140,7 +2861,7 @@ func_mode_install ()
     if test -n "$install_override_mode" && $no_mode; then
       if $install_cp; then :; else
        func_quote_for_eval "$install_override_mode"
-       install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result"
+       func_append install_shared_prog " -m $func_quote_for_eval_result"
       fi
     fi
 
@@ -2198,10 +2919,13 @@ func_mode_install ()
       case $file in
       *.$libext)
        # Do the static libraries later.
-       staticlibs="$staticlibs $file"
+       func_append staticlibs " $file"
        ;;
 
       *.la)
+       func_resolve_sysroot "$file"
+       file=$func_resolve_sysroot_result
+
        # Check to see that this really is a libtool archive.
        func_lalib_unsafe_p "$file" \
          || func_fatal_help "\`$file' is not a valid libtool archive"
@@ -2215,19 +2939,19 @@ func_mode_install ()
        if test "X$destdir" = "X$libdir"; then
          case "$current_libdirs " in
          *" $libdir "*) ;;
-         *) current_libdirs="$current_libdirs $libdir" ;;
+         *) func_append current_libdirs " $libdir" ;;
          esac
        else
          # Note the libdir as a future libdir.
          case "$future_libdirs " in
          *" $libdir "*) ;;
-         *) future_libdirs="$future_libdirs $libdir" ;;
+         *) func_append future_libdirs " $libdir" ;;
          esac
        fi
 
        func_dirname "$file" "/" ""
        dir="$func_dirname_result"
-       dir="$dir$objdir"
+       func_append dir "$objdir"
 
        if test -n "$relink_command"; then
          # Determine the prefix the user has applied to our future dir.
@@ -2304,7 +3028,7 @@ func_mode_install ()
        func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
 
        # Maybe install the static library, too.
-       test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+       test -n "$old_library" && func_append staticlibs " $dir/$old_library"
        ;;
 
       *.lo)
@@ -2478,11 +3202,13 @@ func_mode_install ()
 
       # Set up the ranlib parameters.
       oldlib="$destdir/$name"
+      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+      tool_oldlib=$func_to_tool_file_result
 
       func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
 
       if test -n "$stripme" && test -n "$old_striplib"; then
-       func_show_eval "$old_striplib $oldlib" 'exit $?'
+       func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
       fi
 
       # Do each command in the postinstall commands.
@@ -2501,7 +3227,7 @@ func_mode_install ()
     fi
 }
 
-test "$mode" = install && func_mode_install ${1+"$@"}
+test "$opt_mode" = install && func_mode_install ${1+"$@"}
 
 
 # func_generate_dlsyms outputname originator pic_p
@@ -2548,6 +3274,18 @@ extern \"C\" {
 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
 #endif
 
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
 /* External symbol declarations for the compiler. */\
 "
 
@@ -2559,8 +3297,9 @@ extern \"C\" {
          # Add our own program objects to the symbol list.
          progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
          for progfile in $progfiles; do
-           func_verbose "extracting global C symbols from \`$progfile'"
-           $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
+           func_to_tool_file "$progfile" func_convert_file_msys_to_w32
+           func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
+           $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
          done
 
          if test -n "$exclude_expsyms"; then
@@ -2609,10 +3348,52 @@ extern \"C\" {
          func_verbose "extracting global C symbols from \`$dlprefile'"
          func_basename "$dlprefile"
          name="$func_basename_result"
-         $opt_dry_run || {
-           eval '$ECHO ": $name " >> "$nlist"'
-           eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-         }
+          case $host in
+           *cygwin* | *mingw* | *cegcc* )
+             # if an import library, we need to obtain dlname
+             if func_win32_import_lib_p "$dlprefile"; then
+               func_tr_sh "$dlprefile"
+               eval "curr_lafile=\$libfile_$func_tr_sh_result"
+               dlprefile_dlbasename=""
+               if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
+                 # Use subshell, to avoid clobbering current variable values
+                 dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
+                 if test -n "$dlprefile_dlname" ; then
+                   func_basename "$dlprefile_dlname"
+                   dlprefile_dlbasename="$func_basename_result"
+                 else
+                   # no lafile. user explicitly requested -dlpreopen <import library>.
+                   $sharedlib_from_linklib_cmd "$dlprefile"
+                   dlprefile_dlbasename=$sharedlib_from_linklib_result
+                 fi
+               fi
+               $opt_dry_run || {
+                 if test -n "$dlprefile_dlbasename" ; then
+                   eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
+                 else
+                   func_warning "Could not compute DLL name from $name"
+                   eval '$ECHO ": $name " >> "$nlist"'
+                 fi
+                 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+                 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
+                   $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
+               }
+             else # not an import lib
+               $opt_dry_run || {
+                 eval '$ECHO ": $name " >> "$nlist"'
+                 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+                 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+               }
+             fi
+           ;;
+           *)
+             $opt_dry_run || {
+               eval '$ECHO ": $name " >> "$nlist"'
+               func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+               eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+             }
+           ;;
+          esac
        done
 
        $opt_dry_run || {
@@ -2650,26 +3431,9 @@ typedef struct {
   const char *name;
   void *address;
 } lt_dlsymlist;
-"
-         case $host in
-         *cygwin* | *mingw* | *cegcc* )
-           echo >> "$output_objdir/$my_dlsyms" "\
-/* DATA imports from DLLs on WIN32 con't be const, because
-   runtime relocations are performed -- see ld's documentation
-   on pseudo-relocs.  */"
-           lt_dlsym_const= ;;
-         *osf5*)
-           echo >> "$output_objdir/$my_dlsyms" "\
-/* This system does not cope well with relocations in const data */"
-           lt_dlsym_const= ;;
-         *)
-           lt_dlsym_const=const ;;
-         esac
-
-         echo >> "$output_objdir/$my_dlsyms" "\
-extern $lt_dlsym_const lt_dlsymlist
+extern LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[];
-$lt_dlsym_const lt_dlsymlist
+LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[] =
 {\
   { \"$my_originator\", (void *) 0 },"
@@ -2709,7 +3473,7 @@ static const void *lt_preloaded_setup() {
          # linked before any other PIC object.  But we must not use
          # pic_flag when linking with -static.  The problem exists in
          # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-         *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+         *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
            pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
          *-*-hpux*)
            pic_flag_for_symtable=" $pic_flag"  ;;
@@ -2725,7 +3489,7 @@ static const void *lt_preloaded_setup() {
        for arg in $LTCFLAGS; do
          case $arg in
          -pie | -fpie | -fPIE) ;;
-         *) symtab_cflags="$symtab_cflags $arg" ;;
+         *) func_append symtab_cflags " $arg" ;;
          esac
        done
 
@@ -2788,7 +3552,8 @@ func_win32_libid ()
     # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
        $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
-      win32_nmres=`eval $NM -f posix -A $1 |
+      func_to_tool_file "$1" func_convert_file_msys_to_w32
+      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
        $SED -n -e '
            1,100{
                / I /{
@@ -2817,6 +3582,131 @@ func_win32_libid ()
   $ECHO "$win32_libid_type"
 }
 
+# func_cygming_dll_for_implib ARG
+#
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib ()
+{
+  $opt_debug
+  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
+}
+
+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
+#
+# The is the core of a fallback implementation of a
+# platform-specific function to extract the name of the
+# DLL associated with the specified import library LIBNAME.
+#
+# SECTION_NAME is either .idata$6 or .idata$7, depending
+# on the platform and compiler that created the implib.
+#
+# Echos the name of the DLL associated with the
+# specified import library.
+func_cygming_dll_for_implib_fallback_core ()
+{
+  $opt_debug
+  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
+  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
+    $SED '/^Contents of section '"$match_literal"':/{
+      # Place marker at beginning of archive member dllname section
+      s/.*/====MARK====/
+      p
+      d
+    }
+    # These lines can sometimes be longer than 43 characters, but
+    # are always uninteresting
+    /:[         ]*file format pe[i]\{,1\}-/d
+    /^In archive [^:]*:/d
+    # Ensure marker is printed
+    /^====MARK====/p
+    # Remove all lines with less than 43 characters
+    /^.\{43\}/!d
+    # From remaining lines, remove first 43 characters
+    s/^.\{43\}//' |
+    $SED -n '
+      # Join marker and all lines until next marker into a single line
+      /^====MARK====/ b para
+      H
+      $ b para
+      b
+      :para
+      x
+      s/\n//g
+      # Remove the marker
+      s/^====MARK====//
+      # Remove trailing dots and whitespace
+      s/[\. \t]*$//
+      # Print
+      /./p' |
+    # we now have a list, one entry per line, of the stringified
+    # contents of the appropriate section of all members of the
+    # archive which possess that section. Heuristic: eliminate
+    # all those which have a first or second character that is
+    # a '.' (that is, objdump's representation of an unprintable
+    # character.) This should work for all archives with less than
+    # 0x302f exports -- but will fail for DLLs whose name actually
+    # begins with a literal '.' or a single character followed by
+    # a '.'.
+    #
+    # Of those that remain, print the first one.
+    $SED -e '/^\./d;/^.\./d;q'
+}
+
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+  $opt_debug
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+  test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+  $opt_debug
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+  test -n "$func_cygming_ms_implib_tmp"
+}
+
+# func_cygming_dll_for_implib_fallback ARG
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+#
+# This fallback implementation is for use when $DLLTOOL
+# does not support the --identify-strict option.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib_fallback ()
+{
+  $opt_debug
+  if func_cygming_gnu_implib_p "$1" ; then
+    # binutils import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
+  elif func_cygming_ms_implib_p "$1" ; then
+    # ms-generated import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
+  else
+    # unknown
+    sharedlib_from_linklib_result=""
+  fi
+}
 
 
 # func_extract_an_archive dir oldlib
@@ -3095,14 +3985,17 @@ func_exec_program_core ()
 # launches target application with the remaining arguments.
 func_exec_program ()
 {
-  for lt_wr_arg
-  do
-    case \$lt_wr_arg in
-    --lt-*) ;;
-    *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
-    esac
-    shift
-  done
+  case \" \$* \" in
+  *\\ --lt-*)
+    for lt_wr_arg
+    do
+      case \$lt_wr_arg in
+      --lt-*) ;;
+      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+      esac
+      shift
+    done ;;
+  esac
   func_exec_program_core \${1+\"\$@\"}
 }
 
@@ -3195,6 +4088,18 @@ func_exec_program ()
 
   if test -f \"\$progdir/\$program\"; then"
 
+       # fixup the dll searchpath if we need to.
+       #
+       # Fix the DLL searchpath if we need to.  Do this before prepending
+       # to shlibpath, because on Windows, both are PATH and uninstalled
+       # libraries must come first.
+       if test -n "$dllsearchpath"; then
+         $ECHO "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+       fi
+
        # Export our shlibpath_var if we have one.
        if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
          $ECHO "\
@@ -3209,14 +4114,6 @@ func_exec_program ()
 "
        fi
 
-       # fixup the dll searchpath if we need to.
-       if test -n "$dllsearchpath"; then
-         $ECHO "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-       fi
-
        $ECHO "\
     if test \"\$libtool_execute_magic\" != \"$magic\"; then
       # Run the actual program with our arguments.
@@ -3234,166 +4131,6 @@ fi\
 }
 
 
-# func_to_host_path arg
-#
-# Convert paths to host format when used with build tools.
-# Intended for use with "native" mingw (where libtool itself
-# is running under the msys shell), or in the following cross-
-# build environments:
-#    $build          $host
-#    mingw (msys)    mingw  [e.g. native]
-#    cygwin          mingw
-#    *nix + wine     mingw
-# where wine is equipped with the `winepath' executable.
-# In the native mingw case, the (msys) shell automatically
-# converts paths for any non-msys applications it launches,
-# but that facility isn't available from inside the cwrapper.
-# Similar accommodations are necessary for $host mingw and
-# $build cygwin.  Calling this function does no harm for other
-# $host/$build combinations not listed above.
-#
-# ARG is the path (on $build) that should be converted to
-# the proper representation for $host. The result is stored
-# in $func_to_host_path_result.
-func_to_host_path ()
-{
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    case $host in
-      *mingw* )
-        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-        case $build in
-          *mingw* ) # actually, msys
-            # awkward: cmd appends spaces to result
-            func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null |
-              $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
-            ;;
-          *cygwin* )
-            func_to_host_path_result=`cygpath -w "$1" |
-             $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          * )
-            # Unfortunately, winepath does not exit with a non-zero
-            # error code, so we are forced to check the contents of
-            # stdout. On the other hand, if the command is not
-            # found, the shell will set an exit code of 127 and print
-            # *an error message* to stdout. So we must check for both
-            # error code of zero AND non-empty stdout, which explains
-            # the odd construction:
-            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
-            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
-              func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" |
-                $SED -e "$lt_sed_naive_backslashify"`
-            else
-              # Allow warning below.
-              func_to_host_path_result=
-            fi
-            ;;
-        esac
-        if test -z "$func_to_host_path_result" ; then
-          func_error "Could not determine host path corresponding to"
-          func_error "  \`$1'"
-          func_error "Continuing, but uninstalled executables may not work."
-          # Fallback:
-          func_to_host_path_result="$1"
-        fi
-        ;;
-    esac
-  fi
-}
-# end: func_to_host_path
-
-# func_to_host_pathlist arg
-#
-# Convert pathlists to host format when used with build tools.
-# See func_to_host_path(), above. This function supports the
-# following $build/$host combinations (but does no harm for
-# combinations not listed here):
-#    $build          $host
-#    mingw (msys)    mingw  [e.g. native]
-#    cygwin          mingw
-#    *nix + wine     mingw
-#
-# Path separators are also converted from $build format to
-# $host format. If ARG begins or ends with a path separator
-# character, it is preserved (but converted to $host format)
-# on output.
-#
-# ARG is a pathlist (on $build) that should be converted to
-# the proper representation on $host. The result is stored
-# in $func_to_host_pathlist_result.
-func_to_host_pathlist ()
-{
-  func_to_host_pathlist_result="$1"
-  if test -n "$1"; then
-    case $host in
-      *mingw* )
-        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-        # Remove leading and trailing path separator characters from
-        # ARG. msys behavior is inconsistent here, cygpath turns them
-        # into '.;' and ';.', and winepath ignores them completely.
-       func_stripname : : "$1"
-        func_to_host_pathlist_tmp1=$func_stripname_result
-        case $build in
-          *mingw* ) # Actually, msys.
-            # Awkward: cmd appends spaces to result.
-            func_to_host_pathlist_result=`
-             ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null |
-             $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
-            ;;
-          *cygwin* )
-            func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" |
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          * )
-            # unfortunately, winepath doesn't convert pathlists
-            func_to_host_pathlist_result=""
-            func_to_host_pathlist_oldIFS=$IFS
-            IFS=:
-            for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
-              IFS=$func_to_host_pathlist_oldIFS
-              if test -n "$func_to_host_pathlist_f" ; then
-                func_to_host_path "$func_to_host_pathlist_f"
-                if test -n "$func_to_host_path_result" ; then
-                  if test -z "$func_to_host_pathlist_result" ; then
-                    func_to_host_pathlist_result="$func_to_host_path_result"
-                  else
-                    func_append func_to_host_pathlist_result ";$func_to_host_path_result"
-                  fi
-                fi
-              fi
-            done
-            IFS=$func_to_host_pathlist_oldIFS
-            ;;
-        esac
-        if test -z "$func_to_host_pathlist_result"; then
-          func_error "Could not determine the host path(s) corresponding to"
-          func_error "  \`$1'"
-          func_error "Continuing, but uninstalled executables may not work."
-          # Fallback. This may break if $1 contains DOS-style drive
-          # specifications. The fix is not to complicate the expression
-          # below, but for the user to provide a working wine installation
-          # with winepath so that path translation in the cross-to-mingw
-          # case works properly.
-          lt_replace_pathsep_nix_to_dos="s|:|;|g"
-          func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
-            $SED -e "$lt_replace_pathsep_nix_to_dos"`
-        fi
-        # Now, add the leading and trailing path separators back
-        case "$1" in
-          :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
-            ;;
-        esac
-        case "$1" in
-          *: ) func_append func_to_host_pathlist_result ";"
-            ;;
-        esac
-        ;;
-    esac
-  fi
-}
-# end: func_to_host_pathlist
-
 # func_emit_cwrapperexe_src
 # emit the source code for a wrapper executable on stdout
 # Must ONLY be called from within func_mode_link because
@@ -3563,14 +4300,14 @@ void lt_dump_script (FILE *f);
 EOF
 
            cat <<EOF
-const char * MAGIC_EXE = "$magic_exe";
+volatile const char * MAGIC_EXE = "$magic_exe";
 const char * LIB_PATH_VARNAME = "$shlibpath_var";
 EOF
 
            if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-              func_to_host_pathlist "$temp_rpath"
+              func_to_host_path "$temp_rpath"
              cat <<EOF
-const char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";
+const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
 EOF
            else
              cat <<"EOF"
@@ -3579,10 +4316,10 @@ EOF
            fi
 
            if test -n "$dllsearchpath"; then
-              func_to_host_pathlist "$dllsearchpath:"
+              func_to_host_path "$dllsearchpath:"
              cat <<EOF
 const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";
+const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
 EOF
            else
              cat <<"EOF"
@@ -3765,8 +4502,12 @@ EOF
 
   lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
   lt_setenv ("DUALCASE", "1");  /* for MSK sh */
-  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
+     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
+     because on Windows, both *_VARNAMEs are PATH but uninstalled
+     libraries must come first. */
   lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
 
   lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
                  nonnull (lt_argv_zero));
@@ -4322,9 +5063,15 @@ void lt_dump_script (FILE* f)
 {
 EOF
            func_emit_wrapper yes |
-              $SED -e 's/\([\\"]\)/\\\1/g' \
-                  -e 's/^/  fputs ("/' -e 's/$/\\n", f);/'
-
+             $SED -n -e '
+s/^\(.\{79\}\)\(..*\)/\1\
+\2/
+h
+s/\([\\"]\)/\\\1/g
+s/$/\\n/
+s/\([^\n]*\).*/  fputs ("\1", f);/p
+g
+D'
             cat <<"EOF"
 }
 EOF
@@ -4515,9 +5262,9 @@ func_mode_link ()
            ;;
          *)
            if test "$prev" = dlfiles; then
-             dlfiles="$dlfiles $arg"
+             func_append dlfiles " $arg"
            else
-             dlprefiles="$dlprefiles $arg"
+             func_append dlprefiles " $arg"
            fi
            prev=
            continue
@@ -4541,7 +5288,7 @@ func_mode_link ()
            *-*-darwin*)
              case "$deplibs " in
                *" $qarg.ltframework "*) ;;
-               *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
+               *) func_append deplibs " $qarg.ltframework" # this is fixed later
                   ;;
              esac
              ;;
@@ -4560,7 +5307,7 @@ func_mode_link ()
            moreargs=
            for fil in `cat "$save_arg"`
            do
-#            moreargs="$moreargs $fil"
+#            func_append moreargs " $fil"
              arg=$fil
              # A libtool-controlled object.
 
@@ -4589,7 +5336,7 @@ func_mode_link ()
 
                  if test "$prev" = dlfiles; then
                    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-                     dlfiles="$dlfiles $pic_object"
+                     func_append dlfiles " $pic_object"
                      prev=
                      continue
                    else
@@ -4601,7 +5348,7 @@ func_mode_link ()
                  # CHECK ME:  I think I busted this.  -Ossama
                  if test "$prev" = dlprefiles; then
                    # Preload the old-style object.
-                   dlprefiles="$dlprefiles $pic_object"
+                   func_append dlprefiles " $pic_object"
                    prev=
                  fi
 
@@ -4671,12 +5418,12 @@ func_mode_link ()
          if test "$prev" = rpath; then
            case "$rpath " in
            *" $arg "*) ;;
-           *) rpath="$rpath $arg" ;;
+           *) func_append rpath " $arg" ;;
            esac
          else
            case "$xrpath " in
            *" $arg "*) ;;
-           *) xrpath="$xrpath $arg" ;;
+           *) func_append xrpath " $arg" ;;
            esac
          fi
          prev=
@@ -4688,28 +5435,28 @@ func_mode_link ()
          continue
          ;;
        weak)
-         weak_libs="$weak_libs $arg"
+         func_append weak_libs " $arg"
          prev=
          continue
          ;;
        xcclinker)
-         linker_flags="$linker_flags $qarg"
-         compiler_flags="$compiler_flags $qarg"
+         func_append linker_flags " $qarg"
+         func_append compiler_flags " $qarg"
          prev=
          func_append compile_command " $qarg"
          func_append finalize_command " $qarg"
          continue
          ;;
        xcompiler)
-         compiler_flags="$compiler_flags $qarg"
+         func_append compiler_flags " $qarg"
          prev=
          func_append compile_command " $qarg"
          func_append finalize_command " $qarg"
          continue
          ;;
        xlinker)
-         linker_flags="$linker_flags $qarg"
-         compiler_flags="$compiler_flags $wl$qarg"
+         func_append linker_flags " $qarg"
+         func_append compiler_flags " $wl$qarg"
          prev=
          func_append compile_command " $wl$qarg"
          func_append finalize_command " $wl$qarg"
@@ -4800,15 +5547,16 @@ func_mode_link ()
        ;;
 
       -L*)
-       func_stripname '-L' '' "$arg"
-       dir=$func_stripname_result
-       if test -z "$dir"; then
+       func_stripname "-L" '' "$arg"
+       if test -z "$func_stripname_result"; then
          if test "$#" -gt 0; then
            func_fatal_error "require no space between \`-L' and \`$1'"
          else
            func_fatal_error "need path for \`-L' option"
          fi
        fi
+       func_resolve_sysroot "$func_stripname_result"
+       dir=$func_resolve_sysroot_result
        # We need an absolute path.
        case $dir in
        [\\/]* | [A-Za-z]:[\\/]*) ;;
@@ -4820,10 +5568,16 @@ func_mode_link ()
          ;;
        esac
        case "$deplibs " in
-       *" -L$dir "*) ;;
+       *" -L$dir "* | *" $arg "*)
+         # Will only happen for absolute or sysroot arguments
+         ;;
        *)
-         deplibs="$deplibs -L$dir"
-         lib_search_path="$lib_search_path $dir"
+         # Preserve sysroot, but never include relative directories
+         case $dir in
+           [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
+           *) func_append deplibs " -L$dir" ;;
+         esac
+         func_append lib_search_path " $dir"
          ;;
        esac
        case $host in
@@ -4832,12 +5586,12 @@ func_mode_link ()
          case :$dllsearchpath: in
          *":$dir:"*) ;;
          ::) dllsearchpath=$dir;;
-         *) dllsearchpath="$dllsearchpath:$dir";;
+         *) func_append dllsearchpath ":$dir";;
          esac
          case :$dllsearchpath: in
          *":$testbindir:"*) ;;
          ::) dllsearchpath=$testbindir;;
-         *) dllsearchpath="$dllsearchpath:$testbindir";;
+         *) func_append dllsearchpath ":$testbindir";;
          esac
          ;;
        esac
@@ -4861,7 +5615,7 @@ func_mode_link ()
            ;;
          *-*-rhapsody* | *-*-darwin1.[012])
            # Rhapsody C and math libraries are in the System framework
-           deplibs="$deplibs System.ltframework"
+           func_append deplibs " System.ltframework"
            continue
            ;;
          *-*-sco3.2v5* | *-*-sco5v6*)
@@ -4881,7 +5635,7 @@ func_mode_link ()
           ;;
         esac
        fi
-       deplibs="$deplibs $arg"
+       func_append deplibs " $arg"
        continue
        ;;
 
@@ -4893,21 +5647,22 @@ func_mode_link ()
       # Tru64 UNIX uses -model [arg] to determine the layout of C++
       # classes, name mangling, and exception handling.
       # Darwin uses the -arch flag to determine output architecture.
-      -model|-arch|-isysroot)
-       compiler_flags="$compiler_flags $arg"
+      -model|-arch|-isysroot|--sysroot)
+       func_append compiler_flags " $arg"
        func_append compile_command " $arg"
        func_append finalize_command " $arg"
        prev=xcompiler
        continue
        ;;
 
-      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
-       compiler_flags="$compiler_flags $arg"
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+       func_append compiler_flags " $arg"
        func_append compile_command " $arg"
        func_append finalize_command " $arg"
        case "$new_inherited_linker_flags " in
            *" $arg "*) ;;
-           * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
+           * ) func_append new_inherited_linker_flags " $arg" ;;
        esac
        continue
        ;;
@@ -4974,13 +5729,17 @@ func_mode_link ()
        # We need an absolute path.
        case $dir in
        [\\/]* | [A-Za-z]:[\\/]*) ;;
+       =*)
+         func_stripname '=' '' "$dir"
+         dir=$lt_sysroot$func_stripname_result
+         ;;
        *)
          func_fatal_error "only absolute run-paths are allowed"
          ;;
        esac
        case "$xrpath " in
        *" $dir "*) ;;
-       *) xrpath="$xrpath $dir" ;;
+       *) func_append xrpath " $dir" ;;
        esac
        continue
        ;;
@@ -5033,8 +5792,8 @@ func_mode_link ()
        for flag in $args; do
          IFS="$save_ifs"
           func_quote_for_eval "$flag"
-         arg="$arg $func_quote_for_eval_result"
-         compiler_flags="$compiler_flags $func_quote_for_eval_result"
+         func_append arg " $func_quote_for_eval_result"
+         func_append compiler_flags " $func_quote_for_eval_result"
        done
        IFS="$save_ifs"
        func_stripname ' ' '' "$arg"
@@ -5049,9 +5808,9 @@ func_mode_link ()
        for flag in $args; do
          IFS="$save_ifs"
           func_quote_for_eval "$flag"
-         arg="$arg $wl$func_quote_for_eval_result"
-         compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
-         linker_flags="$linker_flags $func_quote_for_eval_result"
+         func_append arg " $wl$func_quote_for_eval_result"
+         func_append compiler_flags " $wl$func_quote_for_eval_result"
+         func_append linker_flags " $func_quote_for_eval_result"
        done
        IFS="$save_ifs"
        func_stripname ' ' '' "$arg"
@@ -5090,13 +5849,16 @@ func_mode_link ()
       # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
       # @file                GCC response files
       # -tp=*                Portland pgcc target processor selection
+      # --sysroot=*          for sysroot support
+      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*)
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
         func_quote_for_eval "$arg"
        arg="$func_quote_for_eval_result"
         func_append compile_command " $arg"
         func_append finalize_command " $arg"
-        compiler_flags="$compiler_flags $arg"
+        func_append compiler_flags " $arg"
         continue
         ;;
 
@@ -5108,7 +5870,7 @@ func_mode_link ()
 
       *.$objext)
        # A standard object.
-       objs="$objs $arg"
+       func_append objs " $arg"
        ;;
 
       *.lo)
@@ -5139,7 +5901,7 @@ func_mode_link ()
 
            if test "$prev" = dlfiles; then
              if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-               dlfiles="$dlfiles $pic_object"
+               func_append dlfiles " $pic_object"
                prev=
                continue
              else
@@ -5151,7 +5913,7 @@ func_mode_link ()
            # CHECK ME:  I think I busted this.  -Ossama
            if test "$prev" = dlprefiles; then
              # Preload the old-style object.
-             dlprefiles="$dlprefiles $pic_object"
+             func_append dlprefiles " $pic_object"
              prev=
            fi
 
@@ -5196,24 +5958,25 @@ func_mode_link ()
 
       *.$libext)
        # An archive.
-       deplibs="$deplibs $arg"
-       old_deplibs="$old_deplibs $arg"
+       func_append deplibs " $arg"
+       func_append old_deplibs " $arg"
        continue
        ;;
 
       *.la)
        # A libtool-controlled library.
 
+       func_resolve_sysroot "$arg"
        if test "$prev" = dlfiles; then
          # This library was specified with -dlopen.
-         dlfiles="$dlfiles $arg"
+         func_append dlfiles " $func_resolve_sysroot_result"
          prev=
        elif test "$prev" = dlprefiles; then
          # The library was specified with -dlpreopen.
-         dlprefiles="$dlprefiles $arg"
+         func_append dlprefiles " $func_resolve_sysroot_result"
          prev=
        else
-         deplibs="$deplibs $arg"
+         func_append deplibs " $func_resolve_sysroot_result"
        fi
        continue
        ;;
@@ -5260,6 +6023,8 @@ func_mode_link ()
 
     func_dirname "$output" "/" ""
     output_objdir="$func_dirname_result$objdir"
+    func_to_tool_file "$output_objdir/"
+    tool_output_objdir=$func_to_tool_file_result
     # Create the object directory.
     func_mkdir_p "$output_objdir"
 
@@ -5280,12 +6045,12 @@ func_mode_link ()
     # Find all interdependent deplibs by searching for libraries
     # that are linked more than once (e.g. -la -lb -la)
     for deplib in $deplibs; do
-      if $opt_duplicate_deps ; then
+      if $opt_preserve_dup_deps ; then
        case "$libs " in
-       *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+       *" $deplib "*) func_append specialdeplibs " $deplib" ;;
        esac
       fi
-      libs="$libs $deplib"
+      func_append libs " $deplib"
     done
 
     if test "$linkmode" = lib; then
@@ -5298,9 +6063,9 @@ func_mode_link ()
       if $opt_duplicate_compiler_generated_deps; then
        for pre_post_dep in $predeps $postdeps; do
          case "$pre_post_deps " in
-         *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+         *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
          esac
-         pre_post_deps="$pre_post_deps $pre_post_dep"
+         func_append pre_post_deps " $pre_post_dep"
        done
       fi
       pre_post_deps=
@@ -5367,8 +6132,9 @@ func_mode_link ()
        for lib in $dlprefiles; do
          # Ignore non-libtool-libs
          dependency_libs=
+         func_resolve_sysroot "$lib"
          case $lib in
-         *.la) func_source "$lib" ;;
+         *.la) func_source "$func_resolve_sysroot_result" ;;
          esac
 
          # Collect preopened libtool deplibs, except any this library
@@ -5378,7 +6144,7 @@ func_mode_link ()
             deplib_base=$func_basename_result
            case " $weak_libs " in
            *" $deplib_base "*) ;;
-           *) deplibs="$deplibs $deplib" ;;
+           *) func_append deplibs " $deplib" ;;
            esac
          done
        done
@@ -5394,16 +6160,17 @@ func_mode_link ()
        lib=
        found=no
        case $deplib in
-       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
          if test "$linkmode,$pass" = "prog,link"; then
            compile_deplibs="$deplib $compile_deplibs"
            finalize_deplibs="$deplib $finalize_deplibs"
          else
-           compiler_flags="$compiler_flags $deplib"
+           func_append compiler_flags " $deplib"
            if test "$linkmode" = lib ; then
                case "$new_inherited_linker_flags " in
                    *" $deplib "*) ;;
-                   * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+                   * ) func_append new_inherited_linker_flags " $deplib" ;;
                esac
            fi
          fi
@@ -5488,7 +6255,7 @@ func_mode_link ()
            if test "$linkmode" = lib ; then
                case "$new_inherited_linker_flags " in
                    *" $deplib "*) ;;
-                   * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+                   * ) func_append new_inherited_linker_flags " $deplib" ;;
                esac
            fi
          fi
@@ -5501,7 +6268,8 @@ func_mode_link ()
            test "$pass" = conv && continue
            newdependency_libs="$deplib $newdependency_libs"
            func_stripname '-L' '' "$deplib"
-           newlib_search_path="$newlib_search_path $func_stripname_result"
+           func_resolve_sysroot "$func_stripname_result"
+           func_append newlib_search_path " $func_resolve_sysroot_result"
            ;;
          prog)
            if test "$pass" = conv; then
@@ -5515,7 +6283,8 @@ func_mode_link ()
              finalize_deplibs="$deplib $finalize_deplibs"
            fi
            func_stripname '-L' '' "$deplib"
-           newlib_search_path="$newlib_search_path $func_stripname_result"
+           func_resolve_sysroot "$func_stripname_result"
+           func_append newlib_search_path " $func_resolve_sysroot_result"
            ;;
          *)
            func_warning "\`-L' is ignored for archives/objects"
@@ -5526,17 +6295,21 @@ func_mode_link ()
        -R*)
          if test "$pass" = link; then
            func_stripname '-R' '' "$deplib"
-           dir=$func_stripname_result
+           func_resolve_sysroot "$func_stripname_result"
+           dir=$func_resolve_sysroot_result
            # Make sure the xrpath contains only unique directories.
            case "$xrpath " in
            *" $dir "*) ;;
-           *) xrpath="$xrpath $dir" ;;
+           *) func_append xrpath " $dir" ;;
            esac
          fi
          deplibs="$deplib $deplibs"
          continue
          ;;
-       *.la) lib="$deplib" ;;
+       *.la)
+         func_resolve_sysroot "$deplib"
+         lib=$func_resolve_sysroot_result
+         ;;
        *.$libext)
          if test "$pass" = conv; then
            deplibs="$deplib $deplibs"
@@ -5599,11 +6372,11 @@ func_mode_link ()
            if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
              # If there is no dlopen support or we're linking statically,
              # we need to preload.
-             newdlprefiles="$newdlprefiles $deplib"
+             func_append newdlprefiles " $deplib"
              compile_deplibs="$deplib $compile_deplibs"
              finalize_deplibs="$deplib $finalize_deplibs"
            else
-             newdlfiles="$newdlfiles $deplib"
+             func_append newdlfiles " $deplib"
            fi
          fi
          continue
@@ -5649,7 +6422,7 @@ func_mode_link ()
          for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
            case " $new_inherited_linker_flags " in
              *" $tmp_inherited_linker_flag "*) ;;
-             *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
+             *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
            esac
          done
        fi
@@ -5657,8 +6430,8 @@ func_mode_link ()
        if test "$linkmode,$pass" = "lib,link" ||
           test "$linkmode,$pass" = "prog,scan" ||
           { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-         test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-         test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+         test -n "$dlopen" && func_append dlfiles " $dlopen"
+         test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
        fi
 
        if test "$pass" = conv; then
@@ -5669,20 +6442,20 @@ func_mode_link ()
              func_fatal_error "cannot find name of link library for \`$lib'"
            fi
            # It is a libtool convenience library, so add in its objects.
-           convenience="$convenience $ladir/$objdir/$old_library"
-           old_convenience="$old_convenience $ladir/$objdir/$old_library"
+           func_append convenience " $ladir/$objdir/$old_library"
+           func_append old_convenience " $ladir/$objdir/$old_library"
          elif test "$linkmode" != prog && test "$linkmode" != lib; then
            func_fatal_error "\`$lib' is not a convenience library"
          fi
          tmp_libs=
          for deplib in $dependency_libs; do
            deplibs="$deplib $deplibs"
-           if $opt_duplicate_deps ; then
+           if $opt_preserve_dup_deps ; then
              case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             *" $deplib "*) func_append specialdeplibs " $deplib" ;;
              esac
            fi
-           tmp_libs="$tmp_libs $deplib"
+           func_append tmp_libs " $deplib"
          done
          continue
        fi # $pass = conv
@@ -5690,9 +6463,15 @@ func_mode_link ()
 
        # Get the name of the library we link against.
        linklib=
-       for l in $old_library $library_names; do
-         linklib="$l"
-       done
+       if test -n "$old_library" &&
+          { test "$prefer_static_libs" = yes ||
+            test "$prefer_static_libs,$installed" = "built,no"; }; then
+         linklib=$old_library
+       else
+         for l in $old_library $library_names; do
+           linklib="$l"
+         done
+       fi
        if test -z "$linklib"; then
          func_fatal_error "cannot find name of link library for \`$lib'"
        fi
@@ -5709,9 +6488,9 @@ func_mode_link ()
            # statically, we need to preload.  We also need to preload any
            # dependent libraries so libltdl's deplib preloader doesn't
            # bomb out in the load deplibs phase.
-           dlprefiles="$dlprefiles $lib $dependency_libs"
+           func_append dlprefiles " $lib $dependency_libs"
          else
-           newdlfiles="$newdlfiles $lib"
+           func_append newdlfiles " $lib"
          fi
          continue
        fi # $pass = dlopen
@@ -5733,14 +6512,14 @@ func_mode_link ()
 
        # Find the relevant object directory and library name.
        if test "X$installed" = Xyes; then
-         if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+         if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
            func_warning "library \`$lib' was moved."
            dir="$ladir"
            absdir="$abs_ladir"
            libdir="$abs_ladir"
          else
-           dir="$libdir"
-           absdir="$libdir"
+           dir="$lt_sysroot$libdir"
+           absdir="$lt_sysroot$libdir"
          fi
          test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
        else
@@ -5748,12 +6527,12 @@ func_mode_link ()
            dir="$ladir"
            absdir="$abs_ladir"
            # Remove this search path later
-           notinst_path="$notinst_path $abs_ladir"
+           func_append notinst_path " $abs_ladir"
          else
            dir="$ladir/$objdir"
            absdir="$abs_ladir/$objdir"
            # Remove this search path later
-           notinst_path="$notinst_path $abs_ladir"
+           func_append notinst_path " $abs_ladir"
          fi
        fi # $installed = yes
        func_stripname 'lib' '.la' "$laname"
@@ -5764,20 +6543,46 @@ func_mode_link ()
          if test -z "$libdir" && test "$linkmode" = prog; then
            func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
          fi
-         # Prefer using a static library (so that no silly _DYNAMIC symbols
-         # are required to link).
-         if test -n "$old_library"; then
-           newdlprefiles="$newdlprefiles $dir/$old_library"
-           # Keep a list of preopened convenience libraries to check
-           # that they are being used correctly in the link pass.
-           test -z "$libdir" && \
-               dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
-         # Otherwise, use the dlname, so that lt_dlopen finds it.
-         elif test -n "$dlname"; then
-           newdlprefiles="$newdlprefiles $dir/$dlname"
-         else
-           newdlprefiles="$newdlprefiles $dir/$linklib"
-         fi
+         case "$host" in
+           # special handling for platforms with PE-DLLs.
+           *cygwin* | *mingw* | *cegcc* )
+             # Linker will automatically link against shared library if both
+             # static and shared are present.  Therefore, ensure we extract
+             # symbols from the import library if a shared library is present
+             # (otherwise, the dlopen module name will be incorrect).  We do
+             # this by putting the import library name into $newdlprefiles.
+             # We recover the dlopen module name by 'saving' the la file
+             # name in a special purpose variable, and (later) extracting the
+             # dlname from the la file.
+             if test -n "$dlname"; then
+               func_tr_sh "$dir/$linklib"
+               eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
+               func_append newdlprefiles " $dir/$linklib"
+             else
+               func_append newdlprefiles " $dir/$old_library"
+               # Keep a list of preopened convenience libraries to check
+               # that they are being used correctly in the link pass.
+               test -z "$libdir" && \
+                 func_append dlpreconveniencelibs " $dir/$old_library"
+             fi
+           ;;
+           * )
+             # Prefer using a static library (so that no silly _DYNAMIC symbols
+             # are required to link).
+             if test -n "$old_library"; then
+               func_append newdlprefiles " $dir/$old_library"
+               # Keep a list of preopened convenience libraries to check
+               # that they are being used correctly in the link pass.
+               test -z "$libdir" && \
+                 func_append dlpreconveniencelibs " $dir/$old_library"
+             # Otherwise, use the dlname, so that lt_dlopen finds it.
+             elif test -n "$dlname"; then
+               func_append newdlprefiles " $dir/$dlname"
+             else
+               func_append newdlprefiles " $dir/$linklib"
+             fi
+           ;;
+         esac
        fi # $pass = dlpreopen
 
        if test -z "$libdir"; then
@@ -5795,7 +6600,7 @@ func_mode_link ()
 
 
        if test "$linkmode" = prog && test "$pass" != link; then
-         newlib_search_path="$newlib_search_path $ladir"
+         func_append newlib_search_path " $ladir"
          deplibs="$lib $deplibs"
 
          linkalldeplibs=no
@@ -5808,7 +6613,8 @@ func_mode_link ()
          for deplib in $dependency_libs; do
            case $deplib in
            -L*) func_stripname '-L' '' "$deplib"
-                newlib_search_path="$newlib_search_path $func_stripname_result"
+                func_resolve_sysroot "$func_stripname_result"
+                func_append newlib_search_path " $func_resolve_sysroot_result"
                 ;;
            esac
            # Need to link against all dependency_libs?
@@ -5819,12 +6625,12 @@ func_mode_link ()
              # or/and link against static libraries
              newdependency_libs="$deplib $newdependency_libs"
            fi
-           if $opt_duplicate_deps ; then
+           if $opt_preserve_dup_deps ; then
              case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             *" $deplib "*) func_append specialdeplibs " $deplib" ;;
              esac
            fi
-           tmp_libs="$tmp_libs $deplib"
+           func_append tmp_libs " $deplib"
          done # for deplib
          continue
        fi # $linkmode = prog...
@@ -5839,7 +6645,7 @@ func_mode_link ()
              # Make sure the rpath contains only unique directories.
              case "$temp_rpath:" in
              *"$absdir:"*) ;;
-             *) temp_rpath="$temp_rpath$absdir:" ;;
+             *) func_append temp_rpath "$absdir:" ;;
              esac
            fi
 
@@ -5851,7 +6657,7 @@ func_mode_link ()
            *)
              case "$compile_rpath " in
              *" $absdir "*) ;;
-             *) compile_rpath="$compile_rpath $absdir"
+             *) func_append compile_rpath " $absdir" ;;
              esac
              ;;
            esac
@@ -5860,7 +6666,7 @@ func_mode_link ()
            *)
              case "$finalize_rpath " in
              *" $libdir "*) ;;
-             *) finalize_rpath="$finalize_rpath $libdir"
+             *) func_append finalize_rpath " $libdir" ;;
              esac
              ;;
            esac
@@ -5885,12 +6691,12 @@ func_mode_link ()
          case $host in
          *cygwin* | *mingw* | *cegcc*)
              # No point in relinking DLLs because paths are not encoded
-             notinst_deplibs="$notinst_deplibs $lib"
+             func_append notinst_deplibs " $lib"
              need_relink=no
            ;;
          *)
            if test "$installed" = no; then
-             notinst_deplibs="$notinst_deplibs $lib"
+             func_append notinst_deplibs " $lib"
              need_relink=yes
            fi
            ;;
@@ -5925,7 +6731,7 @@ func_mode_link ()
            *)
              case "$compile_rpath " in
              *" $absdir "*) ;;
-             *) compile_rpath="$compile_rpath $absdir"
+             *) func_append compile_rpath " $absdir" ;;
              esac
              ;;
            esac
@@ -5934,7 +6740,7 @@ func_mode_link ()
            *)
              case "$finalize_rpath " in
              *" $libdir "*) ;;
-             *) finalize_rpath="$finalize_rpath $libdir"
+             *) func_append finalize_rpath " $libdir" ;;
              esac
              ;;
            esac
@@ -5988,7 +6794,7 @@ func_mode_link ()
            linklib=$newlib
          fi # test -n "$old_archive_from_expsyms_cmds"
 
-         if test "$linkmode" = prog || test "$mode" != relink; then
+         if test "$linkmode" = prog || test "$opt_mode" != relink; then
            add_shlibpath=
            add_dir=
            add=
@@ -6039,12 +6845,12 @@ func_mode_link ()
                 test "$hardcode_direct_absolute" = no; then
                add="$dir/$linklib"
              elif test "$hardcode_minus_L" = yes; then
-               add_dir="-L$dir"
+               add_dir="-L$absdir"
                # Try looking first in the location we're being installed to.
                if test -n "$inst_prefix_dir"; then
                  case $libdir in
                    [\\/]*)
-                     add_dir="$add_dir -L$inst_prefix_dir$libdir"
+                     func_append add_dir " -L$inst_prefix_dir$libdir"
                      ;;
                  esac
                fi
@@ -6066,7 +6872,7 @@ func_mode_link ()
            if test -n "$add_shlibpath"; then
              case :$compile_shlibpath: in
              *":$add_shlibpath:"*) ;;
-             *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+             *) func_append compile_shlibpath "$add_shlibpath:" ;;
              esac
            fi
            if test "$linkmode" = prog; then
@@ -6080,13 +6886,13 @@ func_mode_link ()
                 test "$hardcode_shlibpath_var" = yes; then
                case :$finalize_shlibpath: in
                *":$libdir:"*) ;;
-               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+               *) func_append finalize_shlibpath "$libdir:" ;;
                esac
              fi
            fi
          fi
 
-         if test "$linkmode" = prog || test "$mode" = relink; then
+         if test "$linkmode" = prog || test "$opt_mode" = relink; then
            add_shlibpath=
            add_dir=
            add=
@@ -6100,7 +6906,7 @@ func_mode_link ()
            elif test "$hardcode_shlibpath_var" = yes; then
              case :$finalize_shlibpath: in
              *":$libdir:"*) ;;
-             *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+             *) func_append finalize_shlibpath "$libdir:" ;;
              esac
              add="-l$name"
            elif test "$hardcode_automatic" = yes; then
@@ -6117,7 +6923,7 @@ func_mode_link ()
              if test -n "$inst_prefix_dir"; then
                case $libdir in
                  [\\/]*)
-                   add_dir="$add_dir -L$inst_prefix_dir$libdir"
+                   func_append add_dir " -L$inst_prefix_dir$libdir"
                    ;;
                esac
              fi
@@ -6194,27 +7000,33 @@ func_mode_link ()
                   temp_xrpath=$func_stripname_result
                   case " $xrpath " in
                   *" $temp_xrpath "*) ;;
-                  *) xrpath="$xrpath $temp_xrpath";;
+                  *) func_append xrpath " $temp_xrpath";;
                   esac;;
-             *) temp_deplibs="$temp_deplibs $libdir";;
+             *) func_append temp_deplibs " $libdir";;
              esac
            done
            dependency_libs="$temp_deplibs"
          fi
 
-         newlib_search_path="$newlib_search_path $absdir"
+         func_append newlib_search_path " $absdir"
          # Link against this library
          test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
          # ... and its dependency_libs
          tmp_libs=
          for deplib in $dependency_libs; do
            newdependency_libs="$deplib $newdependency_libs"
-           if $opt_duplicate_deps ; then
+           case $deplib in
+              -L*) func_stripname '-L' '' "$deplib"
+                   func_resolve_sysroot "$func_stripname_result";;
+              *) func_resolve_sysroot "$deplib" ;;
+            esac
+           if $opt_preserve_dup_deps ; then
              case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             *" $func_resolve_sysroot_result "*)
+                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
              esac
            fi
-           tmp_libs="$tmp_libs $deplib"
+           func_append tmp_libs " $func_resolve_sysroot_result"
          done
 
          if test "$link_all_deplibs" != no; then
@@ -6224,8 +7036,10 @@ func_mode_link ()
              case $deplib in
              -L*) path="$deplib" ;;
              *.la)
+               func_resolve_sysroot "$deplib"
+               deplib=$func_resolve_sysroot_result
                func_dirname "$deplib" "" "."
-               dir="$func_dirname_result"
+               dir=$func_dirname_result
                # We need an absolute path.
                case $dir in
                [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
@@ -6252,8 +7066,8 @@ func_mode_link ()
                       if test -z "$darwin_install_name"; then
                           darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
                       fi
-                     compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-                     linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
+                     func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+                     func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
                      path=
                    fi
                  fi
@@ -6303,7 +7117,7 @@ func_mode_link ()
          for dir in $newlib_search_path; do
            case "$lib_search_path " in
            *" $dir "*) ;;
-           *) lib_search_path="$lib_search_path $dir" ;;
+           *) func_append lib_search_path " $dir" ;;
            esac
          done
          newlib_search_path=
@@ -6361,10 +7175,10 @@ func_mode_link ()
            -L*)
              case " $tmp_libs " in
              *" $deplib "*) ;;
-             *) tmp_libs="$tmp_libs $deplib" ;;
+             *) func_append tmp_libs " $deplib" ;;
              esac
              ;;
-           *) tmp_libs="$tmp_libs $deplib" ;;
+           *) func_append tmp_libs " $deplib" ;;
            esac
          done
          eval $var=\"$tmp_libs\"
@@ -6380,7 +7194,7 @@ func_mode_link ()
          ;;
        esac
        if test -n "$i" ; then
-         tmp_libs="$tmp_libs $i"
+         func_append tmp_libs " $i"
        fi
       done
       dependency_libs=$tmp_libs
@@ -6421,7 +7235,7 @@ func_mode_link ()
       # Now set the variables for building old libraries.
       build_libtool_libs=no
       oldlibs="$output"
-      objs="$objs$old_deplibs"
+      func_append objs "$old_deplibs"
       ;;
 
     lib)
@@ -6457,7 +7271,7 @@ func_mode_link ()
          echo
          $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
          $ECHO "*** objects $objs is not portable!"
-         libobjs="$libobjs $objs"
+         func_append libobjs " $objs"
        fi
       fi
 
@@ -6516,6 +7330,7 @@ func_mode_link ()
          # which has an extra 1 added just for fun
          #
          case $version_type in
+         # correct linux to gnu/linux during the next big refactor
          darwin|linux|osf|windows|none)
            func_arith $number_major + $number_minor
            current=$func_arith_result
@@ -6632,7 +7447,7 @@ func_mode_link ()
          versuffix="$major.$revision"
          ;;
 
-       linux)
+       linux) # correct to gnu/linux during the next big refactor
          func_arith $current - $age
          major=.$func_arith_result
          versuffix="$major.$age.$revision"
@@ -6655,7 +7470,7 @@ func_mode_link ()
          done
 
          # Make executables depend on our current version.
-         verstring="$verstring:${current}.0"
+         func_append verstring ":${current}.0"
          ;;
 
        qnx)
@@ -6723,10 +7538,10 @@ func_mode_link ()
       fi
 
       func_generate_dlsyms "$libname" "$libname" "yes"
-      libobjs="$libobjs $symfileobj"
+      func_append libobjs " $symfileobj"
       test "X$libobjs" = "X " && libobjs=
 
-      if test "$mode" != relink; then
+      if test "$opt_mode" != relink; then
        # Remove our outputs, but don't remove object files since they
        # may have been created when compiling PIC objects.
        removelist=
@@ -6742,7 +7557,7 @@ func_mode_link ()
                   continue
                 fi
               fi
-              removelist="$removelist $p"
+              func_append removelist " $p"
               ;;
            *) ;;
          esac
@@ -6753,7 +7568,7 @@ func_mode_link ()
 
       # Now set the variables for building old libraries.
       if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-       oldlibs="$oldlibs $output_objdir/$libname.$libext"
+       func_append oldlibs " $output_objdir/$libname.$libext"
 
        # Transform .lo files to .o files.
        oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
@@ -6770,10 +7585,11 @@ func_mode_link ()
        # If the user specified any rpath flags, then add them.
        temp_xrpath=
        for libdir in $xrpath; do
-         temp_xrpath="$temp_xrpath -R$libdir"
+         func_replace_sysroot "$libdir"
+         func_append temp_xrpath " -R$func_replace_sysroot_result"
          case "$finalize_rpath " in
          *" $libdir "*) ;;
-         *) finalize_rpath="$finalize_rpath $libdir" ;;
+         *) func_append finalize_rpath " $libdir" ;;
          esac
        done
        if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
@@ -6787,7 +7603,7 @@ func_mode_link ()
       for lib in $old_dlfiles; do
        case " $dlprefiles $dlfiles " in
        *" $lib "*) ;;
-       *) dlfiles="$dlfiles $lib" ;;
+       *) func_append dlfiles " $lib" ;;
        esac
       done
 
@@ -6797,7 +7613,7 @@ func_mode_link ()
       for lib in $old_dlprefiles; do
        case "$dlprefiles " in
        *" $lib "*) ;;
-       *) dlprefiles="$dlprefiles $lib" ;;
+       *) func_append dlprefiles " $lib" ;;
        esac
       done
 
@@ -6809,7 +7625,7 @@ func_mode_link ()
            ;;
          *-*-rhapsody* | *-*-darwin1.[012])
            # Rhapsody C library is in the System framework
-           deplibs="$deplibs System.ltframework"
+           func_append deplibs " System.ltframework"
            ;;
          *-*-netbsd*)
            # Don't link with libc until the a.out ld.so is fixed.
@@ -6826,7 +7642,7 @@ func_mode_link ()
          *)
            # Add libc to deplibs on all other systems if necessary.
            if test "$build_libtool_need_lc" = "yes"; then
-             deplibs="$deplibs -lc"
+             func_append deplibs " -lc"
            fi
            ;;
          esac
@@ -6875,7 +7691,7 @@ EOF
                if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                  case " $predeps $postdeps " in
                  *" $i "*)
-                   newdeplibs="$newdeplibs $i"
+                   func_append newdeplibs " $i"
                    i=""
                    ;;
                  esac
@@ -6886,7 +7702,7 @@ EOF
                  set dummy $deplib_matches; shift
                  deplib_match=$1
                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                   newdeplibs="$newdeplibs $i"
+                   func_append newdeplibs " $i"
                  else
                    droppeddeps=yes
                    echo
@@ -6900,7 +7716,7 @@ EOF
                fi
                ;;
              *)
-               newdeplibs="$newdeplibs $i"
+               func_append newdeplibs " $i"
                ;;
              esac
            done
@@ -6918,7 +7734,7 @@ EOF
                  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                    case " $predeps $postdeps " in
                    *" $i "*)
-                     newdeplibs="$newdeplibs $i"
+                     func_append newdeplibs " $i"
                      i=""
                      ;;
                    esac
@@ -6929,7 +7745,7 @@ EOF
                    set dummy $deplib_matches; shift
                    deplib_match=$1
                    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                     newdeplibs="$newdeplibs $i"
+                     func_append newdeplibs " $i"
                    else
                      droppeddeps=yes
                      echo
@@ -6951,7 +7767,7 @@ EOF
                fi
                ;;
              *)
-               newdeplibs="$newdeplibs $i"
+               func_append newdeplibs " $i"
                ;;
              esac
            done
@@ -6968,15 +7784,27 @@ EOF
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                case " $predeps $postdeps " in
                *" $a_deplib "*)
-                 newdeplibs="$newdeplibs $a_deplib"
+                 func_append newdeplibs " $a_deplib"
                  a_deplib=""
                  ;;
                esac
              fi
              if test -n "$a_deplib" ; then
                libname=`eval "\\$ECHO \"$libname_spec\""`
+               if test -n "$file_magic_glob"; then
+                 libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
+               else
+                 libnameglob=$libname
+               fi
+               test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-                 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+                 if test "$want_nocaseglob" = yes; then
+                   shopt -s nocaseglob
+                   potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+                   $nocaseglob
+                 else
+                   potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+                 fi
                  for potent_lib in $potential_libs; do
                      # Follow soft links.
                      if ls -lLd "$potent_lib" 2>/dev/null |
@@ -6999,7 +7827,7 @@ EOF
                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
                         $SED -e 10q |
                         $EGREP "$file_magic_regex" > /dev/null; then
-                       newdeplibs="$newdeplibs $a_deplib"
+                       func_append newdeplibs " $a_deplib"
                        a_deplib=""
                        break 2
                      fi
@@ -7024,7 +7852,7 @@ EOF
              ;;
            *)
              # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
+             func_append newdeplibs " $a_deplib"
              ;;
            esac
          done # Gone through all deplibs.
@@ -7040,7 +7868,7 @@ EOF
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                case " $predeps $postdeps " in
                *" $a_deplib "*)
-                 newdeplibs="$newdeplibs $a_deplib"
+                 func_append newdeplibs " $a_deplib"
                  a_deplib=""
                  ;;
                esac
@@ -7053,7 +7881,7 @@ EOF
                    potlib="$potent_lib" # see symlink-check above in file_magic test
                    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
                       $EGREP "$match_pattern_regex" > /dev/null; then
-                     newdeplibs="$newdeplibs $a_deplib"
+                     func_append newdeplibs " $a_deplib"
                      a_deplib=""
                      break 2
                    fi
@@ -7078,7 +7906,7 @@ EOF
              ;;
            *)
              # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
+             func_append newdeplibs " $a_deplib"
              ;;
            esac
          done # Gone through all deplibs.
@@ -7182,7 +8010,7 @@ EOF
        *)
          case " $deplibs " in
          *" -L$path/$objdir "*)
-           new_libs="$new_libs -L$path/$objdir" ;;
+           func_append new_libs " -L$path/$objdir" ;;
          esac
          ;;
        esac
@@ -7192,10 +8020,10 @@ EOF
        -L*)
          case " $new_libs " in
          *" $deplib "*) ;;
-         *) new_libs="$new_libs $deplib" ;;
+         *) func_append new_libs " $deplib" ;;
          esac
          ;;
-       *) new_libs="$new_libs $deplib" ;;
+       *) func_append new_libs " $deplib" ;;
        esac
       done
       deplibs="$new_libs"
@@ -7207,15 +8035,22 @@ EOF
 
       # Test again, we may have decided not to build it any more
       if test "$build_libtool_libs" = yes; then
+       # Remove ${wl} instances when linking with ld.
+       # FIXME: should test the right _cmds variable.
+       case $archive_cmds in
+         *\$LD\ *) wl= ;;
+        esac
        if test "$hardcode_into_libs" = yes; then
          # Hardcode the library paths
          hardcode_libdirs=
          dep_rpath=
          rpath="$finalize_rpath"
-         test "$mode" != relink && rpath="$compile_rpath$rpath"
+         test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
          for libdir in $rpath; do
            if test -n "$hardcode_libdir_flag_spec"; then
              if test -n "$hardcode_libdir_separator"; then
+               func_replace_sysroot "$libdir"
+               libdir=$func_replace_sysroot_result
                if test -z "$hardcode_libdirs"; then
                  hardcode_libdirs="$libdir"
                else
@@ -7224,18 +8059,18 @@ EOF
                  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                    ;;
                  *)
-                   hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+                   func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
                    ;;
                  esac
                fi
              else
                eval flag=\"$hardcode_libdir_flag_spec\"
-               dep_rpath="$dep_rpath $flag"
+               func_append dep_rpath " $flag"
              fi
            elif test -n "$runpath_var"; then
              case "$perm_rpath " in
              *" $libdir "*) ;;
-             *) perm_rpath="$perm_rpath $libdir" ;;
+             *) func_append perm_rpath " $libdir" ;;
              esac
            fi
          done
@@ -7243,17 +8078,13 @@ EOF
          if test -n "$hardcode_libdir_separator" &&
             test -n "$hardcode_libdirs"; then
            libdir="$hardcode_libdirs"
-           if test -n "$hardcode_libdir_flag_spec_ld"; then
-             eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
-           else
-             eval dep_rpath=\"$hardcode_libdir_flag_spec\"
-           fi
+           eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
          fi
          if test -n "$runpath_var" && test -n "$perm_rpath"; then
            # We should set the runpath_var.
            rpath=
            for dir in $perm_rpath; do
-             rpath="$rpath$dir:"
+             func_append rpath "$dir:"
            done
            eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
          fi
@@ -7261,7 +8092,7 @@ EOF
        fi
 
        shlibpath="$finalize_shlibpath"
-       test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+       test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
        if test -n "$shlibpath"; then
          eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
        fi
@@ -7287,7 +8118,7 @@ EOF
        linknames=
        for link
        do
-         linknames="$linknames $link"
+         func_append linknames " $link"
        done
 
        # Use standard objects if they are pic
@@ -7298,7 +8129,7 @@ EOF
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
          $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
          export_symbols="$output_objdir/$libname.uexp"
-         delfiles="$delfiles $export_symbols"
+         func_append delfiles " $export_symbols"
        fi
 
        orig_export_symbols=
@@ -7329,13 +8160,45 @@ EOF
            $opt_dry_run || $RM $export_symbols
            cmds=$export_symbols_cmds
            save_ifs="$IFS"; IFS='~'
-           for cmd in $cmds; do
+           for cmd1 in $cmds; do
              IFS="$save_ifs"
-             eval cmd=\"$cmd\"
-             func_len " $cmd"
-             len=$func_len_result
-             if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+             # Take the normal branch if the nm_file_list_spec branch
+             # doesn't work or if tool conversion is not needed.
+             case $nm_file_list_spec~$to_tool_file_cmd in
+               *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
+                 try_normal_branch=yes
+                 eval cmd=\"$cmd1\"
+                 func_len " $cmd"
+                 len=$func_len_result
+                 ;;
+               *)
+                 try_normal_branch=no
+                 ;;
+             esac
+             if test "$try_normal_branch" = yes \
+                && { test "$len" -lt "$max_cmd_len" \
+                     || test "$max_cmd_len" -le -1; }
+             then
+               func_show_eval "$cmd" 'exit $?'
+               skipped_export=false
+             elif test -n "$nm_file_list_spec"; then
+               func_basename "$output"
+               output_la=$func_basename_result
+               save_libobjs=$libobjs
+               save_output=$output
+               output=${output_objdir}/${output_la}.nm
+               func_to_tool_file "$output"
+               libobjs=$nm_file_list_spec$func_to_tool_file_result
+               func_append delfiles " $output"
+               func_verbose "creating $NM input file list: $output"
+               for obj in $save_libobjs; do
+                 func_to_tool_file "$obj"
+                 $ECHO "$func_to_tool_file_result"
+               done > "$output"
+               eval cmd=\"$cmd1\"
                func_show_eval "$cmd" 'exit $?'
+               output=$save_output
+               libobjs=$save_libobjs
                skipped_export=false
              else
                # The command line is too long to execute in one step.
@@ -7369,7 +8232,7 @@ EOF
          # global variables. join(1) would be nice here, but unfortunately
          # isn't a blessed tool.
          $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-         delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+         func_append delfiles " $export_symbols $output_objdir/$libname.filter"
          export_symbols=$output_objdir/$libname.def
          $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
        fi
@@ -7379,7 +8242,7 @@ EOF
          case " $convenience " in
          *" $test_deplib "*) ;;
          *)
-           tmp_deplibs="$tmp_deplibs $test_deplib"
+           func_append tmp_deplibs " $test_deplib"
            ;;
          esac
        done
@@ -7399,21 +8262,21 @@ EOF
            test "X$libobjs" = "X " && libobjs=
          else
            gentop="$output_objdir/${outputname}x"
-           generated="$generated $gentop"
+           func_append generated " $gentop"
 
            func_extract_archives $gentop $convenience
-           libobjs="$libobjs $func_extract_archives_result"
+           func_append libobjs " $func_extract_archives_result"
            test "X$libobjs" = "X " && libobjs=
          fi
        fi
 
        if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
          eval flag=\"$thread_safe_flag_spec\"
-         linker_flags="$linker_flags $flag"
+         func_append linker_flags " $flag"
        fi
 
        # Make a backup of the uninstalled library when relinking
-       if test "$mode" = relink; then
+       if test "$opt_mode" = relink; then
          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
        fi
 
@@ -7475,10 +8338,13 @@ EOF
            echo 'INPUT (' > $output
            for obj in $save_libobjs
            do
-             $ECHO "$obj" >> $output
+             func_to_tool_file "$obj"
+             $ECHO "$func_to_tool_file_result" >> $output
            done
            echo ')' >> $output
-           delfiles="$delfiles $output"
+           func_append delfiles " $output"
+           func_to_tool_file "$output"
+           output=$func_to_tool_file_result
          elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
            output=${output_objdir}/${output_la}.lnk
            func_verbose "creating linker input file list: $output"
@@ -7492,10 +8358,12 @@ EOF
            fi
            for obj
            do
-             $ECHO "$obj" >> $output
+             func_to_tool_file "$obj"
+             $ECHO "$func_to_tool_file_result" >> $output
            done
-           delfiles="$delfiles $output"
-           output=$firstobj\"$file_list_spec$output\"
+           func_append delfiles " $output"
+           func_to_tool_file "$output"
+           output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
          else
            if test -n "$save_libobjs"; then
              func_verbose "creating reloadable object files..."
@@ -7546,7 +8414,7 @@ EOF
              if test -n "$last_robj"; then
                eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
              fi
-             delfiles="$delfiles $output"
+             func_append delfiles " $output"
 
            else
              output=
@@ -7580,7 +8448,7 @@ EOF
                lt_exit=$?
 
                # Restore the uninstalled library and exit
-               if test "$mode" = relink; then
+               if test "$opt_mode" = relink; then
                  ( cd "$output_objdir" && \
                    $RM "${realname}T" && \
                    $MV "${realname}U" "$realname" )
@@ -7613,7 +8481,7 @@ EOF
              # global variables. join(1) would be nice here, but unfortunately
              # isn't a blessed tool.
              $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-             delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+             func_append delfiles " $export_symbols $output_objdir/$libname.filter"
              export_symbols=$output_objdir/$libname.def
              $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
            fi
@@ -7654,10 +8522,10 @@ EOF
        # Add any objects from preloaded convenience libraries
        if test -n "$dlprefiles"; then
          gentop="$output_objdir/${outputname}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
 
          func_extract_archives $gentop $dlprefiles
-         libobjs="$libobjs $func_extract_archives_result"
+         func_append libobjs " $func_extract_archives_result"
          test "X$libobjs" = "X " && libobjs=
        fi
 
@@ -7673,7 +8541,7 @@ EOF
            lt_exit=$?
 
            # Restore the uninstalled library and exit
-           if test "$mode" = relink; then
+           if test "$opt_mode" = relink; then
              ( cd "$output_objdir" && \
                $RM "${realname}T" && \
                $MV "${realname}U" "$realname" )
@@ -7685,7 +8553,7 @@ EOF
        IFS="$save_ifs"
 
        # Restore the uninstalled library and exit
-       if test "$mode" = relink; then
+       if test "$opt_mode" = relink; then
          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 
          if test -n "$convenience"; then
@@ -7769,13 +8637,16 @@ EOF
          reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
        else
          gentop="$output_objdir/${obj}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
 
          func_extract_archives $gentop $convenience
          reload_conv_objs="$reload_objs $func_extract_archives_result"
        fi
       fi
 
+      # If we're not building shared, we need to use non_pic_objs
+      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
+
       # Create the old-style object.
       reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
 
@@ -7849,8 +8720,8 @@ EOF
        if test "$tagname" = CXX ; then
          case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
            10.[0123])
-             compile_command="$compile_command ${wl}-bind_at_load"
-             finalize_command="$finalize_command ${wl}-bind_at_load"
+             func_append compile_command " ${wl}-bind_at_load"
+             func_append finalize_command " ${wl}-bind_at_load"
            ;;
          esac
        fi
@@ -7870,7 +8741,7 @@ EOF
        *)
          case " $compile_deplibs " in
          *" -L$path/$objdir "*)
-           new_libs="$new_libs -L$path/$objdir" ;;
+           func_append new_libs " -L$path/$objdir" ;;
          esac
          ;;
        esac
@@ -7880,17 +8751,17 @@ EOF
        -L*)
          case " $new_libs " in
          *" $deplib "*) ;;
-         *) new_libs="$new_libs $deplib" ;;
+         *) func_append new_libs " $deplib" ;;
          esac
          ;;
-       *) new_libs="$new_libs $deplib" ;;
+       *) func_append new_libs " $deplib" ;;
        esac
       done
       compile_deplibs="$new_libs"
 
 
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
+      func_append compile_command " $compile_deplibs"
+      func_append finalize_command " $finalize_deplibs"
 
       if test -n "$rpath$xrpath"; then
        # If the user specified any rpath flags, then add them.
@@ -7898,7 +8769,7 @@ EOF
          # This is the magic to use -rpath.
          case "$finalize_rpath " in
          *" $libdir "*) ;;
-         *) finalize_rpath="$finalize_rpath $libdir" ;;
+         *) func_append finalize_rpath " $libdir" ;;
          esac
        done
       fi
@@ -7917,18 +8788,18 @@ EOF
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                ;;
              *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+               func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
                ;;
              esac
            fi
          else
            eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
+           func_append rpath " $flag"
          fi
        elif test -n "$runpath_var"; then
          case "$perm_rpath " in
          *" $libdir "*) ;;
-         *) perm_rpath="$perm_rpath $libdir" ;;
+         *) func_append perm_rpath " $libdir" ;;
          esac
        fi
        case $host in
@@ -7937,12 +8808,12 @@ EOF
          case :$dllsearchpath: in
          *":$libdir:"*) ;;
          ::) dllsearchpath=$libdir;;
-         *) dllsearchpath="$dllsearchpath:$libdir";;
+         *) func_append dllsearchpath ":$libdir";;
          esac
          case :$dllsearchpath: in
          *":$testbindir:"*) ;;
          ::) dllsearchpath=$testbindir;;
-         *) dllsearchpath="$dllsearchpath:$testbindir";;
+         *) func_append dllsearchpath ":$testbindir";;
          esac
          ;;
        esac
@@ -7968,18 +8839,18 @@ EOF
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                ;;
              *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+               func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
                ;;
              esac
            fi
          else
            eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
+           func_append rpath " $flag"
          fi
        elif test -n "$runpath_var"; then
          case "$finalize_perm_rpath " in
          *" $libdir "*) ;;
-         *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+         *) func_append finalize_perm_rpath " $libdir" ;;
          esac
        fi
       done
@@ -8030,6 +8901,12 @@ EOF
        exit_status=0
        func_show_eval "$link_command" 'exit_status=$?'
 
+       if test -n "$postlink_cmds"; then
+         func_to_tool_file "$output"
+         postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+         func_execute_cmds "$postlink_cmds" 'exit $?'
+       fi
+
        # Delete the generated files.
        if test -f "$output_objdir/${outputname}S.${objext}"; then
          func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
@@ -8052,7 +8929,7 @@ EOF
          # We should set the runpath_var.
          rpath=
          for dir in $perm_rpath; do
-           rpath="$rpath$dir:"
+           func_append rpath "$dir:"
          done
          compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
        fi
@@ -8060,7 +8937,7 @@ EOF
          # We should set the runpath_var.
          rpath=
          for dir in $finalize_perm_rpath; do
-           rpath="$rpath$dir:"
+           func_append rpath "$dir:"
          done
          finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
        fi
@@ -8075,6 +8952,13 @@ EOF
        $opt_dry_run || $RM $output
        # Link the executable and exit
        func_show_eval "$link_command" 'exit $?'
+
+       if test -n "$postlink_cmds"; then
+         func_to_tool_file "$output"
+         postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+         func_execute_cmds "$postlink_cmds" 'exit $?'
+       fi
+
        exit $EXIT_SUCCESS
       fi
 
@@ -8108,6 +8992,12 @@ EOF
 
       func_show_eval "$link_command" 'exit $?'
 
+      if test -n "$postlink_cmds"; then
+       func_to_tool_file "$output_objdir/$outputname"
+       postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+       func_execute_cmds "$postlink_cmds" 'exit $?'
+      fi
+
       # Now create the wrapper script.
       func_verbose "creating $output"
 
@@ -8205,7 +9095,7 @@ EOF
        else
          oldobjs="$old_deplibs $non_pic_objects"
          if test "$preload" = yes && test -f "$symfileobj"; then
-           oldobjs="$oldobjs $symfileobj"
+           func_append oldobjs " $symfileobj"
          fi
        fi
        addlibs="$old_convenience"
@@ -8213,10 +9103,10 @@ EOF
 
       if test -n "$addlibs"; then
        gentop="$output_objdir/${outputname}x"
-       generated="$generated $gentop"
+       func_append generated " $gentop"
 
        func_extract_archives $gentop $addlibs
-       oldobjs="$oldobjs $func_extract_archives_result"
+       func_append oldobjs " $func_extract_archives_result"
       fi
 
       # Do each command in the archive commands.
@@ -8227,10 +9117,10 @@ EOF
        # Add any objects from preloaded convenience libraries
        if test -n "$dlprefiles"; then
          gentop="$output_objdir/${outputname}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
 
          func_extract_archives $gentop $dlprefiles
-         oldobjs="$oldobjs $func_extract_archives_result"
+         func_append oldobjs " $func_extract_archives_result"
        fi
 
        # POSIX demands no paths to be encoded in archives.  We have
@@ -8248,7 +9138,7 @@ EOF
        else
          echo "copying selected object files to avoid basename conflicts..."
          gentop="$output_objdir/${outputname}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
          func_mkdir_p "$gentop"
          save_oldobjs=$oldobjs
          oldobjs=
@@ -8272,18 +9162,30 @@ EOF
                esac
              done
              func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-             oldobjs="$oldobjs $gentop/$newobj"
+             func_append oldobjs " $gentop/$newobj"
              ;;
-           *) oldobjs="$oldobjs $obj" ;;
+           *) func_append oldobjs " $obj" ;;
            esac
          done
        fi
+       func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+       tool_oldlib=$func_to_tool_file_result
        eval cmds=\"$old_archive_cmds\"
 
        func_len " $cmds"
        len=$func_len_result
        if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
          cmds=$old_archive_cmds
+       elif test -n "$archiver_list_spec"; then
+         func_verbose "using command file archive linking..."
+         for obj in $oldobjs
+         do
+           func_to_tool_file "$obj"
+           $ECHO "$func_to_tool_file_result"
+         done > $output_objdir/$libname.libcmd
+         func_to_tool_file "$output_objdir/$libname.libcmd"
+         oldobjs=" $archiver_list_spec$func_to_tool_file_result"
+         cmds=$old_archive_cmds
        else
          # the command line is too long to link in one step, link in parts
          func_verbose "using piecewise archive linking..."
@@ -8377,12 +9279,23 @@ EOF
              *.la)
                func_basename "$deplib"
                name="$func_basename_result"
-               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+               func_resolve_sysroot "$deplib"
+               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
                test -z "$libdir" && \
                  func_fatal_error "\`$deplib' is not a valid libtool archive"
-               newdependency_libs="$newdependency_libs $libdir/$name"
+               func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
+               ;;
+             -L*)
+               func_stripname -L '' "$deplib"
+               func_replace_sysroot "$func_stripname_result"
+               func_append newdependency_libs " -L$func_replace_sysroot_result"
+               ;;
+             -R*)
+               func_stripname -R '' "$deplib"
+               func_replace_sysroot "$func_stripname_result"
+               func_append newdependency_libs " -R$func_replace_sysroot_result"
                ;;
-             *) newdependency_libs="$newdependency_libs $deplib" ;;
+             *) func_append newdependency_libs " $deplib" ;;
              esac
            done
            dependency_libs="$newdependency_libs"
@@ -8396,9 +9309,9 @@ EOF
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                test -z "$libdir" && \
                  func_fatal_error "\`$lib' is not a valid libtool archive"
-               newdlfiles="$newdlfiles $libdir/$name"
+               func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
                ;;
-             *) newdlfiles="$newdlfiles $lib" ;;
+             *) func_append newdlfiles " $lib" ;;
              esac
            done
            dlfiles="$newdlfiles"
@@ -8415,7 +9328,7 @@ EOF
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                test -z "$libdir" && \
                  func_fatal_error "\`$lib' is not a valid libtool archive"
-               newdlprefiles="$newdlprefiles $libdir/$name"
+               func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
                ;;
              esac
            done
@@ -8427,7 +9340,7 @@ EOF
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
                *) abs=`pwd`"/$lib" ;;
              esac
-             newdlfiles="$newdlfiles $abs"
+             func_append newdlfiles " $abs"
            done
            dlfiles="$newdlfiles"
            newdlprefiles=
@@ -8436,7 +9349,7 @@ EOF
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
                *) abs=`pwd`"/$lib" ;;
              esac
-             newdlprefiles="$newdlprefiles $abs"
+             func_append newdlprefiles " $abs"
            done
            dlprefiles="$newdlprefiles"
          fi
@@ -8521,7 +9434,7 @@ relink_command=\"$relink_command\""
     exit $EXIT_SUCCESS
 }
 
-{ test "$mode" = link || test "$mode" = relink; } &&
+{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
     func_mode_link ${1+"$@"}
 
 
@@ -8541,9 +9454,9 @@ func_mode_uninstall ()
     for arg
     do
       case $arg in
-      -f) RM="$RM $arg"; rmforce=yes ;;
-      -*) RM="$RM $arg" ;;
-      *) files="$files $arg" ;;
+      -f) func_append RM " $arg"; rmforce=yes ;;
+      -*) func_append RM " $arg" ;;
+      *) func_append files " $arg" ;;
       esac
     done
 
@@ -8552,24 +9465,23 @@ func_mode_uninstall ()
 
     rmdirs=
 
-    origobjdir="$objdir"
     for file in $files; do
       func_dirname "$file" "" "."
       dir="$func_dirname_result"
       if test "X$dir" = X.; then
-       objdir="$origobjdir"
+       odir="$objdir"
       else
-       objdir="$dir/$origobjdir"
+       odir="$dir/$objdir"
       fi
       func_basename "$file"
       name="$func_basename_result"
-      test "$mode" = uninstall && objdir="$dir"
+      test "$opt_mode" = uninstall && odir="$dir"
 
-      # Remember objdir for removal later, being careful to avoid duplicates
-      if test "$mode" = clean; then
+      # Remember odir for removal later, being careful to avoid duplicates
+      if test "$opt_mode" = clean; then
        case " $rmdirs " in
-         *" $objdir "*) ;;
-         *) rmdirs="$rmdirs $objdir" ;;
+         *" $odir "*) ;;
+         *) func_append rmdirs " $odir" ;;
        esac
       fi
 
@@ -8595,18 +9507,17 @@ func_mode_uninstall ()
 
          # Delete the libtool libraries and symlinks.
          for n in $library_names; do
-           rmfiles="$rmfiles $objdir/$n"
+           func_append rmfiles " $odir/$n"
          done
-         test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+         test -n "$old_library" && func_append rmfiles " $odir/$old_library"
 
-         case "$mode" in
+         case "$opt_mode" in
          clean)
-           case "  $library_names " in
-           # "  " in the beginning catches empty $dlname
+           case " $library_names " in
            *" $dlname "*) ;;
-           *) rmfiles="$rmfiles $objdir/$dlname" ;;
+           *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
            esac
-           test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+           test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
            ;;
          uninstall)
            if test -n "$library_names"; then
@@ -8634,19 +9545,19 @@ func_mode_uninstall ()
          # Add PIC object to the list of files to remove.
          if test -n "$pic_object" &&
             test "$pic_object" != none; then
-           rmfiles="$rmfiles $dir/$pic_object"
+           func_append rmfiles " $dir/$pic_object"
          fi
 
          # Add non-PIC object to the list of files to remove.
          if test -n "$non_pic_object" &&
             test "$non_pic_object" != none; then
-           rmfiles="$rmfiles $dir/$non_pic_object"
+           func_append rmfiles " $dir/$non_pic_object"
          fi
        fi
        ;;
 
       *)
-       if test "$mode" = clean ; then
+       if test "$opt_mode" = clean ; then
          noexename=$name
          case $file in
          *.exe)
@@ -8656,7 +9567,7 @@ func_mode_uninstall ()
            noexename=$func_stripname_result
            # $file with .exe has already been added to rmfiles,
            # add $file without .exe
-           rmfiles="$rmfiles $file"
+           func_append rmfiles " $file"
            ;;
          esac
          # Do a test to see if this is a libtool program.
@@ -8665,7 +9576,7 @@ func_mode_uninstall ()
              func_ltwrapper_scriptname "$file"
              relink_command=
              func_source $func_ltwrapper_scriptname_result
-             rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
+             func_append rmfiles " $func_ltwrapper_scriptname_result"
            else
              relink_command=
              func_source $dir/$noexename
@@ -8673,12 +9584,12 @@ func_mode_uninstall ()
 
            # note $name still contains .exe if it was in $file originally
            # as does the version of $file that was added into $rmfiles
-           rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+           func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
            if test "$fast_install" = yes && test -n "$relink_command"; then
-             rmfiles="$rmfiles $objdir/lt-$name"
+             func_append rmfiles " $odir/lt-$name"
            fi
            if test "X$noexename" != "X$name" ; then
-             rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+             func_append rmfiles " $odir/lt-${noexename}.c"
            fi
          fi
        fi
@@ -8686,7 +9597,6 @@ func_mode_uninstall ()
       esac
       func_show_eval "$RM $rmfiles" 'exit_status=1'
     done
-    objdir="$origobjdir"
 
     # Try to remove the ${objdir}s in the directories where we deleted files
     for dir in $rmdirs; do
@@ -8698,16 +9608,16 @@ func_mode_uninstall ()
     exit $exit_status
 }
 
-{ test "$mode" = uninstall || test "$mode" = clean; } &&
+{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
     func_mode_uninstall ${1+"$@"}
 
-test -z "$mode" && {
+test -z "$opt_mode" && {
   help="$generic_help"
   func_fatal_help "you must specify a MODE"
 }
 
 test -z "$exec_cmd" && \
-  func_fatal_help "invalid operation mode \`$mode'"
+  func_fatal_help "invalid operation mode \`$opt_mode'"
 
 if test -n "$exec_cmd"; then
   eval exec "$exec_cmd"
index 4dec588..63386f1 100644 (file)
@@ -1,5 +1,5 @@
-# ld-version-script.m4 serial 1
-dnl Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+# ld-version-script.m4 serial 3
+dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -26,18 +26,28 @@ AC_DEFUN([gl_LD_VERSION_SCRIPT],
     save_LDFLAGS="$LDFLAGS"
     LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
     cat > conftest.map <<EOF
+foo
+EOF
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
+                   [accepts_syntax_errors=yes], [accepts_syntax_errors=no])
+    if test "$accepts_syntax_errors" = no; then
+      cat > conftest.map <<EOF
 VERS_1 {
-       global: sym;
+        global: sym;
 };
 
 VERS_2 {
         global: sym;
 } VERS_1;
 EOF
-    AC_LINK_IFELSE(AC_LANG_PROGRAM([], []),
-                   [have_ld_version_script=yes], [have_ld_version_script=no])
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
+                     [have_ld_version_script=yes], [have_ld_version_script=no])
+    else
+      have_ld_version_script=no
+    fi
     rm -f conftest.map
     LDFLAGS="$save_LDFLAGS"
     AC_MSG_RESULT($have_ld_version_script)
   fi
+  AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
 ])
index d1aa930..c4e3095 100644 (file)
@@ -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 signal.h)
+AC_CHECK_HEADERS(sys/time.h stdint.h locale.h)
 
 AC_CHECK_FUNCS(pipe isatty usleep shutdown setlocale gethostname)
 
index 32111c7..92f76bf 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2010 Joe Orton <joe@manyfish.co.uk>    -*- autoconf -*-
+# Copyright (C) 1998-2009 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
@@ -136,12 +136,12 @@ AC_DEFUN([NE_VERSIONS_BUNDLED], [
 
 # Define the current versions.
 NE_VERSION_MAJOR=0
-NE_VERSION_MINOR=29
-NE_VERSION_PATCH=6
+NE_VERSION_MINOR=30
+NE_VERSION_PATCH=0
 NE_VERSION_TAG=
 
-# 0.29.x is backwards-compatible to 0.27.x, so AGE=2
-NE_LIBTOOL_VERSINFO="29:${NE_VERSION_PATCH}:2"
+# 0.30.x is backwards-compatible to 0.27.x, so AGE=3
+NE_LIBTOOL_VERSINFO="30:${NE_VERSION_PATCH}:3"
 
 NE_DEFINE_VERSIONS
 
@@ -448,7 +448,7 @@ AC_REQUIRE([AC_PROG_MAKE_SET])
 
 AC_REQUIRE([AC_HEADER_STDC])
 
-AC_CHECK_HEADERS([errno.h stdarg.h string.h stdlib.h])
+AC_CHECK_HEADERS([errno.h stdarg.h string.h stdlib.h sys/uio.h])
 
 NEON_FORMAT(size_t,,u) dnl size_t is unsigned; use %u formats
 NEON_FORMAT(off_t)
@@ -510,6 +510,7 @@ fi
 if test "$NE_FLAG_LFS" = "yes"; then
    AC_DEFINE_UNQUOTED([NE_FMT_NE_OFF_T], [NE_FMT_OFF64_T], 
                       [Define to be printf format string for ne_off_t])
+   NE_ADD_ABITAG(LFS)
 else
    AC_DEFINE_UNQUOTED([NE_FMT_NE_OFF_T], [NE_FMT_OFF_T])
 fi
@@ -982,12 +983,13 @@ gnutls)
    # Check for functions in later releases
    NE_CHECK_FUNCS([gnutls_session_get_data2 gnutls_x509_dn_get_rdn_ava \
                   gnutls_sign_callback_set \
+                  gnutls_certificate_get_issuer \
                   gnutls_certificate_get_x509_cas \
-                  gnutls_certificate_verify_peers2])
+                  gnutls_x509_crt_sign2])
 
-   # fail if gnutls_certificate_verify_peers2 is not found
-   if test x${ac_cv_func_gnutls_certificate_verify_peers2} != xyes; then
-       AC_MSG_ERROR([GnuTLS version predates gnutls_certificate_verify_peers2, newer version required])
+   # fail if gnutls_x509_crt_sign2 is not found (it was introduced in 1.2.0, which is required)
+   if test x${ac_cv_func_gnutls_x509_crt_sign2} != xyes; then
+       AC_MSG_ERROR([GnuTLS version predates gnutls_x509_crt_sign2, newer version required (at least 1.2.0)])
    fi
                   
    # Check for iconv support if using the new RDN access functions:
@@ -1181,7 +1183,7 @@ if test x${enable_nls} = xyes; then
   # presume that dgettext() is available if bindtextdomain() is...
   # checking for dgettext() itself is awkward because gcc has a 
   # builtin of that function, which confuses AC_CHECK_FUNCS et al.
-  NE_SEARCH_LIBS(bindtextdomain, intl,,[enable_nls=no])
+  NE_SEARCH_LIBS(bindtextdomain, intl, -liconv ,[enable_nls=no])
   NE_CHECK_FUNCS(bind_textdomain_codeset)
 fi
 
index 652a762..f4e0eae 100644 (file)
Binary files a/po/cs.gmo and b/po/cs.gmo differ
index ef0f572..0431310 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -6,10 +6,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sitecopy 0.11.4\n"
 "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n"
-"POT-Creation-Date: 2010-10-01 13:30+0100\n"
+"POT-Creation-Date: 2013-07-31 16:46+0100\n"
 "PO-Revision-Date: 2002-04-09 11:12+0100\n"
 "Last-Translator: Petr Prazak <prazak@grisoft.cz>\n"
 "Language-Team: cz\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-2\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -24,110 +25,115 @@ msgstr ""
 "Stavová øádka byla: %s"
 
 # src/console_fe.c:961
-#: src/ne_auth.c:134
+#: src/ne_auth.c:139
 #, fuzzy, c-format
 msgid "Could not authenticate to server: %s"
 msgstr "Nelze se pøipojit k serveru"
 
 # src/console_fe.c:961
-#: src/ne_auth.c:139
+#: src/ne_auth.c:144
 #, fuzzy, c-format
 msgid "Could not authenticate to proxy server: %s"
 msgstr "Nelze se pøipojit k proxy serveru"
 
-#: src/ne_auth.c:374
+#: src/ne_auth.c:386
 #, c-format
 msgid "rejected %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:390
+#: src/ne_auth.c:402
 msgid "missing realm in Basic challenge"
 msgstr ""
 
-#: src/ne_auth.c:485
+#: src/ne_auth.c:497
 msgid "invalid Negotiate token"
 msgstr ""
 
-#: src/ne_auth.c:508
+#: src/ne_auth.c:520
 #, fuzzy
 msgid "GSSAPI authentication error: "
 msgstr "Je vy¾adována autentizace na %s `%s':\n"
 
-#: src/ne_auth.c:521
+#: src/ne_auth.c:533
 #, c-format
 msgid "GSSAPI failure (code %u)"
 msgstr ""
 
-#: src/ne_auth.c:556
+#: src/ne_auth.c:568
 msgid "ignoring empty Negotiate continuation"
 msgstr ""
 
-#: src/ne_auth.c:571
+#: src/ne_auth.c:583
 #, c-format
 msgid "Negotiate response verification failed: invalid response header token"
 msgstr ""
 
-#: src/ne_auth.c:593
+#: src/ne_auth.c:605
 #, c-format
 msgid "Negotiate response verification failure: %s"
 msgstr ""
 
-#: src/ne_auth.c:765
+#: src/ne_auth.c:669
+#, c-format
+msgid "SSPI response verification failed: invalid response header token"
+msgstr ""
+
+#: src/ne_auth.c:802
 msgid "unknown algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:769
+#: src/ne_auth.c:806
 msgid "incompatible algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:773
+#: src/ne_auth.c:810
 msgid "missing parameter in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:777
+#: src/ne_auth.c:814
 msgid "initial Digest challenge was stale"
 msgstr ""
 
-#: src/ne_auth.c:784
+#: src/ne_auth.c:821
 msgid "stale Digest challenge with new algorithm or realm"
 msgstr ""
 
-#: src/ne_auth.c:796
+#: src/ne_auth.c:833
 #, fuzzy
 msgid "could not parse domain in Digest challenge"
 msgstr "Nelze zpracovat velikost bloku"
 
-#: src/ne_auth.c:1105
+#: src/ne_auth.c:1142
 #, c-format
 msgid "Digest mutual authentication failure: missing parameters"
 msgstr ""
 
-#: src/ne_auth.c:1110
+#: src/ne_auth.c:1147
 #, c-format
 msgid "Digest mutual authentication failure: client nonce mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1120
+#: src/ne_auth.c:1157
 #, c-format
 msgid "Digest mutual authentication failure: could not parse nonce count"
 msgstr ""
 
-#: src/ne_auth.c:1125
+#: src/ne_auth.c:1162
 #, c-format
 msgid "Digest mutual authentication failure: nonce count mismatch (%u not %u)"
 msgstr ""
 
-#: src/ne_auth.c:1168
+#: src/ne_auth.c:1205
 #, c-format
 msgid "Digest mutual authentication failure: request-digest mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1299
+#: src/ne_auth.c:1336
 #, c-format
 msgid "ignored %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:1378
+#: src/ne_auth.c:1415
 #, fuzzy
 msgid "could not parse challenge"
 msgstr "Nelze zpracovat velikost bloku"
@@ -170,52 +176,52 @@ msgstr "Nelze otev
 msgid "Could not initialize zlib"
 msgstr "Nelze otevøít soubor: "
 
-#: src/ne_gnutls.c:172
+#: src/ne_gnutls.c:176
 #, c-format
 msgid "[unprintable:#%lu]"
 msgstr ""
 
-#: src/ne_gnutls.c:201
+#: src/ne_gnutls.c:205
 msgid "[unprintable]"
 msgstr ""
 
-#: src/ne_gnutls.c:817
+#: src/ne_gnutls.c:845
 msgid "signed using insecure algorithm"
 msgstr ""
 
-#: src/ne_gnutls.c:820
+#: src/ne_gnutls.c:848
 #, c-format
 msgid "unrecognized errors (%u)"
 msgstr ""
 
-#: src/ne_gnutls.c:865 src/ne_openssl.c:468
+#: src/ne_gnutls.c:893 src/ne_openssl.c:470
 #, c-format
 msgid "Server certificate was missing commonName attribute in subject name"
 msgstr ""
 
 # src/console_fe.c:992
-#: src/ne_gnutls.c:879
+#: src/ne_gnutls.c:907
 #, fuzzy, c-format
 msgid "Could not verify server certificate: %s"
 msgstr "Nelze zapsat do souboru: %s"
 
-#: src/ne_gnutls.c:891 src/ne_openssl.c:455
+#: src/ne_gnutls.c:919 src/ne_openssl.c:457
 #, c-format
 msgid "Certificate verification error: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:924 src/ne_openssl.c:674
+#: src/ne_gnutls.c:952 src/ne_openssl.c:702
 #, c-format
 msgid "SSL handshake failed, client certificate was requested: %s"
 msgstr ""
 
 # src/console_fe.c:992
-#: src/ne_gnutls.c:929 src/ne_openssl.c:679
+#: src/ne_gnutls.c:957 src/ne_openssl.c:707
 #, fuzzy, c-format
 msgid "SSL handshake failed: %s"
 msgstr "Nelze zapsat do souboru: %s"
 
-#: src/ne_gnutls.c:939
+#: src/ne_gnutls.c:967
 #, c-format
 msgid "Server did not send certificate chain"
 msgstr ""
@@ -234,12 +240,12 @@ msgstr ""
 msgid "No activelock for <%s> returned in LOCK refresh response"
 msgstr ""
 
-#: src/ne_openssl.c:699
+#: src/ne_openssl.c:727
 #, c-format
 msgid "SSL server did not present certificate"
 msgstr ""
 
-#: src/ne_openssl.c:708
+#: src/ne_openssl.c:736
 #, c-format
 msgid "Server certificate changed: connection intercepted?"
 msgstr ""
@@ -291,208 +297,209 @@ msgstr ""
 msgid "Could not seek to offset %s of request body file: %s"
 msgstr "Nelze zapsat do souboru: %s"
 
-#: src/ne_request.c:385
+#: src/ne_request.c:423
 msgid "Could not send request body"
 msgstr "Nelze odeslat tìlo po¾adavku"
 
-#: src/ne_request.c:728
+#: src/ne_request.c:450
+#, fuzzy
+msgid "Could not send chunked request terminator"
+msgstr "Nelze poslat po¾adavek"
+
+#: src/ne_request.c:784
 msgid "Could not read chunk size"
 msgstr "Nelze naèíst velikost bloku"
 
-#: src/ne_request.c:735
+#: src/ne_request.c:791
 msgid "Could not parse chunk size"
 msgstr "Nelze zpracovat velikost bloku"
 
-#: src/ne_request.c:772
+#: src/ne_request.c:828
 msgid "Could not read response body"
 msgstr "Nelze naèíst tìlo odpovìdi"
 
-#: src/ne_request.c:788
+#: src/ne_request.c:844
 #, fuzzy
 msgid "Could not read chunk delimiter"
 msgstr "Nelze naèíst velikost bloku"
 
-#: src/ne_request.c:791
+#: src/ne_request.c:847
 msgid "Chunk delimiter was invalid"
 msgstr ""
 
-#: src/ne_request.c:896
+#: src/ne_request.c:952
 msgid "Could not read status line"
 msgstr "Nelze pøeèíst stavový øádek"
 
-#: src/ne_request.c:918
+#: src/ne_request.c:974
 #, fuzzy
 msgid "Could not parse response status line"
 msgstr "Nelze zpracovat stavový øádek odpovìdi."
 
-#: src/ne_request.c:930
+#: src/ne_request.c:986
 #, fuzzy
 msgid "Could not read interim response headers"
 msgstr "Nelze naèíst tìlo odpovìdi"
 
-#: src/ne_request.c:964
+#: src/ne_request.c:1020
 msgid "Could not send request"
 msgstr "Nelze poslat po¾adavek"
 
-#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040
+#: src/ne_request.c:1068 src/ne_request.c:1086 src/ne_request.c:1096
 msgid "Error reading response headers"
 msgstr "Chyba pøi ètení hlavièek odpovìdi"
 
-#: src/ne_request.c:1058
+#: src/ne_request.c:1114
 #, c-format
 msgid "Response header too long"
 msgstr "Hlavièka odpovìdi je pøíli¹ dlouhá"
 
-#: src/ne_request.c:1140
+#: src/ne_request.c:1196
 #, fuzzy
 msgid "Response exceeded maximum number of header fields"
 msgstr "Odpovìï pøekrocila maximální poøet polo¾ek v hlavicce."
 
 # src/console_fe.c:956
-#: src/ne_request.c:1155
+#: src/ne_request.c:1211
 #, fuzzy, c-format
 msgid "Could not resolve hostname `%s': %s"
 msgstr "%s: Chyba: Nelze najít adresu vzdáleného poèítaèe (%s).\n"
 
-#: src/ne_request.c:1286
+#: src/ne_request.c:1342
 msgid "Unknown transfer-coding in response"
 msgstr ""
 
-#: src/ne_request.c:1299
+#: src/ne_request.c:1355
 msgid "Invalid Content-Length in response"
 msgstr ""
 
 # src/console_fe.c:992
-#: src/ne_request.c:1372
+#: src/ne_request.c:1428
 #, c-format
 msgid "Could not write to file: %s"
 msgstr "Nelze zapsat do souboru: %s"
 
-#: src/ne_request.c:1445
+#: src/ne_request.c:1501
 #, fuzzy, c-format
 msgid "Could not create SSL connection through proxy server: %s"
 msgstr "Nelze navázat SSL spojení pøes proxy server."
 
-#: src/ne_request.c:1484
+#: src/ne_request.c:1540
 #, fuzzy, c-format
 msgid "Could not create socket"
 msgstr "Nelze navázat SSL spojení"
 
 # src/console_fe.c:961
-#: src/ne_request.c:1518
+#: src/ne_request.c:1574
 msgid "Could not connect to server"
 msgstr "Nelze se pøipojit k serveru"
 
 # src/console_fe.c:961
-#: src/ne_request.c:1520
+#: src/ne_request.c:1576
 msgid "Could not connect to proxy server"
 msgstr "Nelze se pøipojit k proxy serveru"
 
-#: src/ne_request.c:1563
+#: src/ne_request.c:1619
 #, c-format
 msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy"
 msgstr ""
 
-#: src/ne_request.c:1621
+#: src/ne_request.c:1677
 #, fuzzy, c-format
 msgid "Could not establish connection from SOCKS proxy (%s:%u): %s"
 msgstr "Nelze navázat SSL spojení pøes proxy server."
 
-#: src/ne_session.c:530 src/ne_session.c:541
+#: src/ne_session.c:538 src/ne_session.c:549
 msgid "[invalid date]"
 msgstr ""
 
-#: src/ne_session.c:554
+#: src/ne_session.c:562
 msgid "certificate is not yet valid"
 msgstr ""
 
-#: src/ne_session.c:555
+#: src/ne_session.c:563
 msgid "certificate has expired"
 msgstr ""
 
-#: src/ne_session.c:556
+#: src/ne_session.c:564
 msgid "certificate issued for a different hostname"
 msgstr ""
 
-#: src/ne_session.c:557
+#: src/ne_session.c:565
 msgid "issuer is not trusted"
 msgstr ""
 
-#: src/ne_session.c:558
+#: src/ne_session.c:566
 msgid "bad certificate chain"
 msgstr ""
 
-#: src/ne_session.c:559
+#: src/ne_session.c:567
 msgid "certificate has been revoked"
 msgstr ""
 
-#: src/ne_session.c:564
+#: src/ne_session.c:572
 msgid "Server certificate verification failed: "
 msgstr ""
 
-#: src/ne_socket.c:516 src/ne_socket.c:612 src/ne_socket.c:716
+#: src/ne_socket.c:522 src/ne_socket.c:618 src/ne_socket.c:722
 #, fuzzy
 msgid "Connection closed"
 msgstr "Server ukonèil spojení."
 
-#: src/ne_socket.c:622 src/ne_socket.c:728
+#: src/ne_socket.c:628 src/ne_socket.c:736
 #, fuzzy
 msgid "Secure connection truncated"
 msgstr "Spojení vypr¹elo."
 
-#: src/ne_socket.c:634 src/ne_socket.c:740
+#: src/ne_socket.c:640 src/ne_socket.c:748
 #, fuzzy, c-format
 msgid "SSL error: %s"
 msgstr "%s: Chyba: %s\n"
 
-#: src/ne_socket.c:637
+#: src/ne_socket.c:643
 #, c-format
 msgid "SSL error code %d/%d/%lu"
 msgstr ""
 
-#: src/ne_socket.c:721
+#: src/ne_socket.c:727
 #, fuzzy, c-format
 msgid "SSL alert received: %s"
 msgstr "%s: Chyba: %s\n"
 
-#: src/ne_socket.c:736
+#: src/ne_socket.c:744
 msgid "SSL socket read failed"
 msgstr ""
 
-#: src/ne_socket.c:867
+#: src/ne_socket.c:875
 msgid "Line too long"
 msgstr "Øádek je pøíli¹ dlouhý"
 
-#: src/ne_socket.c:1012 src/ne_socket.c:1018
+#: src/ne_socket.c:1036 src/ne_socket.c:1042
 msgid "Host not found"
 msgstr "Poèítaè nenalezen"
 
-#: src/ne_socket.c:1221
+#: src/ne_socket.c:1249
 #, fuzzy
 msgid "Connection timed out"
 msgstr "%s: spojení vypr¹elo."
 
-#: src/ne_socket.c:1412
+#: src/ne_socket.c:1442
 msgid "Socket descriptor number exceeds FD_SETSIZE"
 msgstr ""
 
-#: src/ne_socket.c:1474
+#: src/ne_socket.c:1504
 msgid "Socket family not supported"
 msgstr ""
 
-#: src/ne_socket.c:1701
+#: src/ne_socket.c:1735
 msgid "Client certificate verification failed"
 msgstr ""
 
-#: src/ne_socket.c:1717
+#: src/ne_socket.c:1751
 msgid "SSL disabled due to lack of entropy"
 msgstr ""
 
-#: src/ne_socket.c:1724
-msgid "SSL disabled due to library version mismatch"
-msgstr ""
-
-#: src/ne_socket.c:1730
+#: src/ne_socket.c:1757
 #, fuzzy
 msgid "Could not create SSL structure"
 msgstr "Nelze navázat SSL spojení"
index 16c2377..510e178 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index fae3fbe..731a230 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -5,10 +5,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sitecopy 0.11.3\n"
 "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n"
-"POT-Creation-Date: 2010-10-01 13:30+0100\n"
+"POT-Creation-Date: 2013-07-31 16:46+0100\n"
 "PO-Revision-Date: 2002-01-13 13:37+0100\n"
 "Last-Translator: Thomas Schultz <tststs@gmx.de>\n"
 "Language-Team: de\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -22,109 +23,114 @@ msgstr ""
 "Ungültige HTTP Status-Zeile im Status-Element in Zeile %d der Antwort:\n"
 "Status-Zeile war: %s"
 
-#: src/ne_auth.c:134
+#: src/ne_auth.c:139
 #, fuzzy, c-format
 msgid "Could not authenticate to server: %s"
 msgstr "Verbindungsaufbau zum Server gescheitert."
 
-#: src/ne_auth.c:139
+#: src/ne_auth.c:144
 #, fuzzy, c-format
 msgid "Could not authenticate to proxy server: %s"
 msgstr "Verbindungsaufbau zum Proxy-Server gescheitert."
 
-#: src/ne_auth.c:374
+#: src/ne_auth.c:386
 #, c-format
 msgid "rejected %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:390
+#: src/ne_auth.c:402
 msgid "missing realm in Basic challenge"
 msgstr ""
 
-#: src/ne_auth.c:485
+#: src/ne_auth.c:497
 msgid "invalid Negotiate token"
 msgstr ""
 
-#: src/ne_auth.c:508
+#: src/ne_auth.c:520
 #, fuzzy
 msgid "GSSAPI authentication error: "
 msgstr "Anmeldung wird benötigt auf %s `%s':\n"
 
-#: src/ne_auth.c:521
+#: src/ne_auth.c:533
 #, c-format
 msgid "GSSAPI failure (code %u)"
 msgstr ""
 
-#: src/ne_auth.c:556
+#: src/ne_auth.c:568
 msgid "ignoring empty Negotiate continuation"
 msgstr ""
 
-#: src/ne_auth.c:571
+#: src/ne_auth.c:583
 #, c-format
 msgid "Negotiate response verification failed: invalid response header token"
 msgstr ""
 
-#: src/ne_auth.c:593
+#: src/ne_auth.c:605
 #, c-format
 msgid "Negotiate response verification failure: %s"
 msgstr ""
 
-#: src/ne_auth.c:765
+#: src/ne_auth.c:669
+#, c-format
+msgid "SSPI response verification failed: invalid response header token"
+msgstr ""
+
+#: src/ne_auth.c:802
 msgid "unknown algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:769
+#: src/ne_auth.c:806
 msgid "incompatible algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:773
+#: src/ne_auth.c:810
 msgid "missing parameter in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:777
+#: src/ne_auth.c:814
 msgid "initial Digest challenge was stale"
 msgstr ""
 
-#: src/ne_auth.c:784
+#: src/ne_auth.c:821
 msgid "stale Digest challenge with new algorithm or realm"
 msgstr ""
 
-#: src/ne_auth.c:796
+#: src/ne_auth.c:833
 #, fuzzy
 msgid "could not parse domain in Digest challenge"
 msgstr "Parser-Fehler bei Ermittlung der Blockgröße"
 
-#: src/ne_auth.c:1105
+#: src/ne_auth.c:1142
 #, c-format
 msgid "Digest mutual authentication failure: missing parameters"
 msgstr ""
 
-#: src/ne_auth.c:1110
+#: src/ne_auth.c:1147
 #, c-format
 msgid "Digest mutual authentication failure: client nonce mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1120
+#: src/ne_auth.c:1157
 #, c-format
 msgid "Digest mutual authentication failure: could not parse nonce count"
 msgstr ""
 
-#: src/ne_auth.c:1125
+#: src/ne_auth.c:1162
 #, c-format
 msgid "Digest mutual authentication failure: nonce count mismatch (%u not %u)"
 msgstr ""
 
-#: src/ne_auth.c:1168
+#: src/ne_auth.c:1205
 #, c-format
 msgid "Digest mutual authentication failure: request-digest mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1299
+#: src/ne_auth.c:1336
 #, c-format
 msgid "ignored %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:1378
+#: src/ne_auth.c:1415
 #, fuzzy
 msgid "could not parse challenge"
 msgstr "Parser-Fehler bei Ermittlung der Blockgröße"
@@ -164,50 +170,50 @@ msgstr "Konnte Datei nicht 
 msgid "Could not initialize zlib"
 msgstr "Konnte Datei nicht öffnen: "
 
-#: src/ne_gnutls.c:172
+#: src/ne_gnutls.c:176
 #, c-format
 msgid "[unprintable:#%lu]"
 msgstr ""
 
-#: src/ne_gnutls.c:201
+#: src/ne_gnutls.c:205
 msgid "[unprintable]"
 msgstr ""
 
-#: src/ne_gnutls.c:817
+#: src/ne_gnutls.c:845
 msgid "signed using insecure algorithm"
 msgstr ""
 
-#: src/ne_gnutls.c:820
+#: src/ne_gnutls.c:848
 #, c-format
 msgid "unrecognized errors (%u)"
 msgstr ""
 
-#: src/ne_gnutls.c:865 src/ne_openssl.c:468
+#: src/ne_gnutls.c:893 src/ne_openssl.c:470
 #, c-format
 msgid "Server certificate was missing commonName attribute in subject name"
 msgstr ""
 
-#: src/ne_gnutls.c:879
+#: src/ne_gnutls.c:907
 #, fuzzy, c-format
 msgid "Could not verify server certificate: %s"
 msgstr "Konnte nicht in diese Datei schreiben: %s"
 
-#: src/ne_gnutls.c:891 src/ne_openssl.c:455
+#: src/ne_gnutls.c:919 src/ne_openssl.c:457
 #, c-format
 msgid "Certificate verification error: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:924 src/ne_openssl.c:674
+#: src/ne_gnutls.c:952 src/ne_openssl.c:702
 #, c-format
 msgid "SSL handshake failed, client certificate was requested: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:929 src/ne_openssl.c:679
+#: src/ne_gnutls.c:957 src/ne_openssl.c:707
 #, fuzzy, c-format
 msgid "SSL handshake failed: %s"
 msgstr "Konnte nicht in diese Datei schreiben: %s"
 
-#: src/ne_gnutls.c:939
+#: src/ne_gnutls.c:967
 #, c-format
 msgid "Server did not send certificate chain"
 msgstr ""
@@ -226,12 +232,12 @@ msgstr ""
 msgid "No activelock for <%s> returned in LOCK refresh response"
 msgstr ""
 
-#: src/ne_openssl.c:699
+#: src/ne_openssl.c:727
 #, c-format
 msgid "SSL server did not present certificate"
 msgstr ""
 
-#: src/ne_openssl.c:708
+#: src/ne_openssl.c:736
 #, c-format
 msgid "Server certificate changed: connection intercepted?"
 msgstr ""
@@ -280,204 +286,205 @@ msgstr ""
 msgid "Could not seek to offset %s of request body file: %s"
 msgstr "Konnte nicht in diese Datei schreiben: %s"
 
-#: src/ne_request.c:385
+#: src/ne_request.c:423
 msgid "Could not send request body"
 msgstr "Konnte den Rumpf der Anfrage nicht schicken"
 
-#: src/ne_request.c:728
+#: src/ne_request.c:450
+#, fuzzy
+msgid "Could not send chunked request terminator"
+msgstr "Konnte keine Anfrage (request) schicken"
+
+#: src/ne_request.c:784
 msgid "Could not read chunk size"
 msgstr "Lesefehler bei Ermittlung der Blockgröße"
 
-#: src/ne_request.c:735
+#: src/ne_request.c:791
 msgid "Could not parse chunk size"
 msgstr "Parser-Fehler bei Ermittlung der Blockgröße"
 
-#: src/ne_request.c:772
+#: src/ne_request.c:828
 msgid "Could not read response body"
 msgstr "Konnte Rumpf der Antwort nicht lesen"
 
-#: src/ne_request.c:788
+#: src/ne_request.c:844
 #, fuzzy
 msgid "Could not read chunk delimiter"
 msgstr "Lesefehler bei Ermittlung der Blockgröße"
 
-#: src/ne_request.c:791
+#: src/ne_request.c:847
 msgid "Chunk delimiter was invalid"
 msgstr ""
 
-#: src/ne_request.c:896
+#: src/ne_request.c:952
 msgid "Could not read status line"
 msgstr "Konnte Status-Zeile des Servers nicht lesen"
 
-#: src/ne_request.c:918
+#: src/ne_request.c:974
 #, fuzzy
 msgid "Could not parse response status line"
 msgstr "Konnte Status-Zeile des Servers nicht interpretieren."
 
-#: src/ne_request.c:930
+#: src/ne_request.c:986
 #, fuzzy
 msgid "Could not read interim response headers"
 msgstr "Konnte Rumpf der Antwort nicht lesen"
 
-#: src/ne_request.c:964
+#: src/ne_request.c:1020
 msgid "Could not send request"
 msgstr "Konnte keine Anfrage (request) schicken"
 
-#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040
+#: src/ne_request.c:1068 src/ne_request.c:1086 src/ne_request.c:1096
 msgid "Error reading response headers"
 msgstr "Fehler beim Lesen der Kopfzeilen (header) der Antwort"
 
-#: src/ne_request.c:1058
+#: src/ne_request.c:1114
 #, c-format
 msgid "Response header too long"
 msgstr "Kopfzeilen (header) der Antwort zu lang"
 
-#: src/ne_request.c:1140
+#: src/ne_request.c:1196
 #, fuzzy
 msgid "Response exceeded maximum number of header fields"
 msgstr "Antwort hatte zu viele Header-Felder."
 
-#: src/ne_request.c:1155
+#: src/ne_request.c:1211
 #, fuzzy, c-format
 msgid "Could not resolve hostname `%s': %s"
 msgstr "%s: Fehler: Konnte den Namen des Servers nicht auflösen (%s).\n"
 
-#: src/ne_request.c:1286
+#: src/ne_request.c:1342
 msgid "Unknown transfer-coding in response"
 msgstr ""
 
-#: src/ne_request.c:1299
+#: src/ne_request.c:1355
 msgid "Invalid Content-Length in response"
 msgstr ""
 
-#: src/ne_request.c:1372
+#: src/ne_request.c:1428
 #, c-format
 msgid "Could not write to file: %s"
 msgstr "Konnte nicht in diese Datei schreiben: %s"
 
-#: src/ne_request.c:1445
+#: src/ne_request.c:1501
 #, 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:1484
+#: src/ne_request.c:1540
 #, fuzzy, c-format
 msgid "Could not create socket"
 msgstr "Konnte keine SSL-Sitzung herstellen"
 
-#: src/ne_request.c:1518
+#: src/ne_request.c:1574
 msgid "Could not connect to server"
 msgstr "Verbindungsaufbau zum Server gescheitert."
 
-#: src/ne_request.c:1520
+#: src/ne_request.c:1576
 msgid "Could not connect to proxy server"
 msgstr "Verbindungsaufbau zum Proxy-Server gescheitert."
 
-#: src/ne_request.c:1563
+#: src/ne_request.c:1619
 #, c-format
 msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy"
 msgstr ""
 
-#: src/ne_request.c:1621
+#: src/ne_request.c:1677
 #, 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:530 src/ne_session.c:541
+#: src/ne_session.c:538 src/ne_session.c:549
 msgid "[invalid date]"
 msgstr ""
 
-#: src/ne_session.c:554
+#: src/ne_session.c:562
 msgid "certificate is not yet valid"
 msgstr ""
 
-#: src/ne_session.c:555
+#: src/ne_session.c:563
 msgid "certificate has expired"
 msgstr ""
 
-#: src/ne_session.c:556
+#: src/ne_session.c:564
 msgid "certificate issued for a different hostname"
 msgstr ""
 
-#: src/ne_session.c:557
+#: src/ne_session.c:565
 msgid "issuer is not trusted"
 msgstr ""
 
-#: src/ne_session.c:558
+#: src/ne_session.c:566
 msgid "bad certificate chain"
 msgstr ""
 
-#: src/ne_session.c:559
+#: src/ne_session.c:567
 msgid "certificate has been revoked"
 msgstr ""
 
-#: src/ne_session.c:564
+#: src/ne_session.c:572
 msgid "Server certificate verification failed: "
 msgstr ""
 
-#: src/ne_socket.c:516 src/ne_socket.c:612 src/ne_socket.c:716
+#: src/ne_socket.c:522 src/ne_socket.c:618 src/ne_socket.c:722
 #, fuzzy
 msgid "Connection closed"
 msgstr "Verbindung vom Server geschlossen"
 
-#: src/ne_socket.c:622 src/ne_socket.c:728
+#: src/ne_socket.c:628 src/ne_socket.c:736
 #, fuzzy
 msgid "Secure connection truncated"
 msgstr "Verbindung wegen Zeitüberschreitung abgebrochen."
 
-#: src/ne_socket.c:634 src/ne_socket.c:740
+#: src/ne_socket.c:640 src/ne_socket.c:748
 #, fuzzy, c-format
 msgid "SSL error: %s"
 msgstr "%s: Fehler: %s\n"
 
-#: src/ne_socket.c:637
+#: src/ne_socket.c:643
 #, c-format
 msgid "SSL error code %d/%d/%lu"
 msgstr ""
 
-#: src/ne_socket.c:721
+#: src/ne_socket.c:727
 #, fuzzy, c-format
 msgid "SSL alert received: %s"
 msgstr "%s: Fehler: %s\n"
 
-#: src/ne_socket.c:736
+#: src/ne_socket.c:744
 msgid "SSL socket read failed"
 msgstr ""
 
-#: src/ne_socket.c:867
+#: src/ne_socket.c:875
 msgid "Line too long"
 msgstr "Zeile zu lang"
 
-#: src/ne_socket.c:1012 src/ne_socket.c:1018
+#: src/ne_socket.c:1036 src/ne_socket.c:1042
 msgid "Host not found"
 msgstr "Host nicht gefunden"
 
-#: src/ne_socket.c:1221
+#: src/ne_socket.c:1249
 #, fuzzy
 msgid "Connection timed out"
 msgstr "%s: Verbindung wegen Zeitüberschreitung geschlossen."
 
-#: src/ne_socket.c:1412
+#: src/ne_socket.c:1442
 msgid "Socket descriptor number exceeds FD_SETSIZE"
 msgstr ""
 
-#: src/ne_socket.c:1474
+#: src/ne_socket.c:1504
 msgid "Socket family not supported"
 msgstr ""
 
-#: src/ne_socket.c:1701
+#: src/ne_socket.c:1735
 msgid "Client certificate verification failed"
 msgstr ""
 
-#: src/ne_socket.c:1717
+#: src/ne_socket.c:1751
 msgid "SSL disabled due to lack of entropy"
 msgstr ""
 
-#: src/ne_socket.c:1724
-msgid "SSL disabled due to library version mismatch"
-msgstr ""
-
-#: src/ne_socket.c:1730
+#: src/ne_socket.c:1757
 #, fuzzy
 msgid "Could not create SSL structure"
 msgstr "Konnte keine SSL-Sitzung herstellen"
index c66e74a..33a3375 100644 (file)
Binary files a/po/fr.gmo and b/po/fr.gmo differ
index 6012b61..69bd238 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,10 +6,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sitecopy 0.9.3\n"
 "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n"
-"POT-Creation-Date: 2010-10-01 13:30+0100\n"
+"POT-Creation-Date: 2013-07-31 16:46+0100\n"
 "PO-Revision-Date: 2000-01-31 00:00+0100\n"
 "Last-Translator: Sylvain Glaize <mokona@puupuu.org>\n"
 "Language-Team: fr\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -21,108 +22,113 @@ msgid ""
 "Status line was: %s"
 msgstr ""
 
-#: src/ne_auth.c:134
+#: src/ne_auth.c:139
 #, fuzzy, c-format
 msgid "Could not authenticate to server: %s"
 msgstr "%s: erreur: impossible de se connecter à l'hôte distant.\n"
 
-#: src/ne_auth.c:139
+#: src/ne_auth.c:144
 #, fuzzy, c-format
 msgid "Could not authenticate to proxy server: %s"
 msgstr "%s: erreur: impossible de se connecter à l'hôte distant.\n"
 
-#: src/ne_auth.c:374
+#: src/ne_auth.c:386
 #, c-format
 msgid "rejected %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:390
+#: src/ne_auth.c:402
 msgid "missing realm in Basic challenge"
 msgstr ""
 
-#: src/ne_auth.c:485
+#: src/ne_auth.c:497
 msgid "invalid Negotiate token"
 msgstr ""
 
-#: src/ne_auth.c:508
+#: src/ne_auth.c:520
 msgid "GSSAPI authentication error: "
 msgstr ""
 
-#: src/ne_auth.c:521
+#: src/ne_auth.c:533
 #, c-format
 msgid "GSSAPI failure (code %u)"
 msgstr ""
 
-#: src/ne_auth.c:556
+#: src/ne_auth.c:568
 msgid "ignoring empty Negotiate continuation"
 msgstr ""
 
-#: src/ne_auth.c:571
+#: src/ne_auth.c:583
 #, c-format
 msgid "Negotiate response verification failed: invalid response header token"
 msgstr ""
 
-#: src/ne_auth.c:593
+#: src/ne_auth.c:605
 #, c-format
 msgid "Negotiate response verification failure: %s"
 msgstr ""
 
-#: src/ne_auth.c:765
+#: src/ne_auth.c:669
+#, c-format
+msgid "SSPI response verification failed: invalid response header token"
+msgstr ""
+
+#: src/ne_auth.c:802
 msgid "unknown algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:769
+#: src/ne_auth.c:806
 msgid "incompatible algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:773
+#: src/ne_auth.c:810
 msgid "missing parameter in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:777
+#: src/ne_auth.c:814
 msgid "initial Digest challenge was stale"
 msgstr ""
 
-#: src/ne_auth.c:784
+#: src/ne_auth.c:821
 msgid "stale Digest challenge with new algorithm or realm"
 msgstr ""
 
-#: src/ne_auth.c:796
+#: src/ne_auth.c:833
 #, fuzzy
 msgid "could not parse domain in Digest challenge"
 msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
 
-#: src/ne_auth.c:1105
+#: src/ne_auth.c:1142
 #, c-format
 msgid "Digest mutual authentication failure: missing parameters"
 msgstr ""
 
-#: src/ne_auth.c:1110
+#: src/ne_auth.c:1147
 #, c-format
 msgid "Digest mutual authentication failure: client nonce mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1120
+#: src/ne_auth.c:1157
 #, c-format
 msgid "Digest mutual authentication failure: could not parse nonce count"
 msgstr ""
 
-#: src/ne_auth.c:1125
+#: src/ne_auth.c:1162
 #, c-format
 msgid "Digest mutual authentication failure: nonce count mismatch (%u not %u)"
 msgstr ""
 
-#: src/ne_auth.c:1168
+#: src/ne_auth.c:1205
 #, c-format
 msgid "Digest mutual authentication failure: request-digest mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1299
+#: src/ne_auth.c:1336
 #, c-format
 msgid "ignored %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:1378
+#: src/ne_auth.c:1415
 #, fuzzy
 msgid "could not parse challenge"
 msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
@@ -162,50 +168,50 @@ msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
 msgid "Could not initialize zlib"
 msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
 
-#: src/ne_gnutls.c:172
+#: src/ne_gnutls.c:176
 #, c-format
 msgid "[unprintable:#%lu]"
 msgstr ""
 
-#: src/ne_gnutls.c:201
+#: src/ne_gnutls.c:205
 msgid "[unprintable]"
 msgstr ""
 
-#: src/ne_gnutls.c:817
+#: src/ne_gnutls.c:845
 msgid "signed using insecure algorithm"
 msgstr ""
 
-#: src/ne_gnutls.c:820
+#: src/ne_gnutls.c:848
 #, c-format
 msgid "unrecognized errors (%u)"
 msgstr ""
 
-#: src/ne_gnutls.c:865 src/ne_openssl.c:468
+#: src/ne_gnutls.c:893 src/ne_openssl.c:470
 #, c-format
 msgid "Server certificate was missing commonName attribute in subject name"
 msgstr ""
 
-#: src/ne_gnutls.c:879
+#: src/ne_gnutls.c:907
 #, fuzzy, c-format
 msgid "Could not verify server certificate: %s"
 msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
 
-#: src/ne_gnutls.c:891 src/ne_openssl.c:455
+#: src/ne_gnutls.c:919 src/ne_openssl.c:457
 #, c-format
 msgid "Certificate verification error: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:924 src/ne_openssl.c:674
+#: src/ne_gnutls.c:952 src/ne_openssl.c:702
 #, c-format
 msgid "SSL handshake failed, client certificate was requested: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:929 src/ne_openssl.c:679
+#: src/ne_gnutls.c:957 src/ne_openssl.c:707
 #, fuzzy, c-format
 msgid "SSL handshake failed: %s"
 msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
 
-#: src/ne_gnutls.c:939
+#: src/ne_gnutls.c:967
 #, c-format
 msgid "Server did not send certificate chain"
 msgstr ""
@@ -224,12 +230,12 @@ msgstr ""
 msgid "No activelock for <%s> returned in LOCK refresh response"
 msgstr ""
 
-#: src/ne_openssl.c:699
+#: src/ne_openssl.c:727
 #, c-format
 msgid "SSL server did not present certificate"
 msgstr ""
 
-#: src/ne_openssl.c:708
+#: src/ne_openssl.c:736
 #, c-format
 msgid "Server certificate changed: connection intercepted?"
 msgstr ""
@@ -277,207 +283,208 @@ msgstr ""
 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:385
+#: src/ne_request.c:423
 msgid "Could not send request body"
 msgstr ""
 
-#: src/ne_request.c:728
+#: src/ne_request.c:450
+#, fuzzy
+msgid "Could not send chunked request terminator"
+msgstr "%s: erreur: impossible de se connecter à l'hôte distant.\n"
+
+#: src/ne_request.c:784
 msgid "Could not read chunk size"
 msgstr ""
 
-#: src/ne_request.c:735
+#: src/ne_request.c:791
 #, fuzzy
 msgid "Could not parse chunk size"
 msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
 
-#: src/ne_request.c:772
+#: src/ne_request.c:828
 msgid "Could not read response body"
 msgstr ""
 
-#: src/ne_request.c:788
+#: src/ne_request.c:844
 #, fuzzy
 msgid "Could not read chunk delimiter"
 msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
 
-#: src/ne_request.c:791
+#: src/ne_request.c:847
 msgid "Chunk delimiter was invalid"
 msgstr ""
 
-#: src/ne_request.c:896
+#: src/ne_request.c:952
 msgid "Could not read status line"
 msgstr ""
 
-#: src/ne_request.c:918
+#: src/ne_request.c:974
 #, fuzzy
 msgid "Could not parse response status line"
 msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
 
-#: src/ne_request.c:930
+#: src/ne_request.c:986
 #, fuzzy
 msgid "Could not read interim response headers"
 msgstr "%s: erreur: impossible d'ouvrir le fichier de ressources: %s\n"
 
-#: src/ne_request.c:964
+#: src/ne_request.c:1020
 msgid "Could not send request"
 msgstr ""
 
-#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040
+#: src/ne_request.c:1068 src/ne_request.c:1086 src/ne_request.c:1096
 msgid "Error reading response headers"
 msgstr ""
 
-#: src/ne_request.c:1058
+#: src/ne_request.c:1114
 #, c-format
 msgid "Response header too long"
 msgstr ""
 
-#: src/ne_request.c:1140
+#: src/ne_request.c:1196
 msgid "Response exceeded maximum number of header fields"
 msgstr ""
 
-#: src/ne_request.c:1155
+#: src/ne_request.c:1211
 #, fuzzy, c-format
 msgid "Could not resolve hostname `%s': %s"
 msgstr "%s: erreur: impossible de trouver le nom de l'hôte distant.\n"
 
-#: src/ne_request.c:1286
+#: src/ne_request.c:1342
 msgid "Unknown transfer-coding in response"
 msgstr ""
 
-#: src/ne_request.c:1299
+#: src/ne_request.c:1355
 msgid "Invalid Content-Length in response"
 msgstr ""
 
-#: src/ne_request.c:1372
+#: src/ne_request.c:1428
 #, 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:1445
+#: src/ne_request.c:1501
 #, fuzzy, c-format
 msgid "Could not create SSL connection through proxy server: %s"
 msgstr "%s: erreur: impossible de se connecter à l'hôte distant.\n"
 
-#: src/ne_request.c:1484
+#: src/ne_request.c:1540
 #, fuzzy, c-format
 msgid "Could not create socket"
 msgstr "%s: erreur: impossible de se connecter à l'hôte distant.\n"
 
-#: src/ne_request.c:1518
+#: src/ne_request.c:1574
 #, fuzzy
 msgid "Could not connect to server"
 msgstr "%s: erreur: impossible de se connecter à l'hôte distant.\n"
 
-#: src/ne_request.c:1520
+#: src/ne_request.c:1576
 #, fuzzy
 msgid "Could not connect to proxy server"
 msgstr "%s: erreur: impossible de se connecter à l'hôte distant.\n"
 
-#: src/ne_request.c:1563
+#: src/ne_request.c:1619
 #, c-format
 msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy"
 msgstr ""
 
-#: src/ne_request.c:1621
+#: src/ne_request.c:1677
 #, fuzzy, c-format
 msgid "Could not establish connection from SOCKS proxy (%s:%u): %s"
 msgstr "%s: erreur: impossible de se connecter à l'hôte distant.\n"
 
-#: src/ne_session.c:530 src/ne_session.c:541
+#: src/ne_session.c:538 src/ne_session.c:549
 msgid "[invalid date]"
 msgstr ""
 
-#: src/ne_session.c:554
+#: src/ne_session.c:562
 msgid "certificate is not yet valid"
 msgstr ""
 
-#: src/ne_session.c:555
+#: src/ne_session.c:563
 msgid "certificate has expired"
 msgstr ""
 
-#: src/ne_session.c:556
+#: src/ne_session.c:564
 msgid "certificate issued for a different hostname"
 msgstr ""
 
-#: src/ne_session.c:557
+#: src/ne_session.c:565
 msgid "issuer is not trusted"
 msgstr ""
 
-#: src/ne_session.c:558
+#: src/ne_session.c:566
 msgid "bad certificate chain"
 msgstr ""
 
-#: src/ne_session.c:559
+#: src/ne_session.c:567
 msgid "certificate has been revoked"
 msgstr ""
 
-#: src/ne_session.c:564
+#: src/ne_session.c:572
 msgid "Server certificate verification failed: "
 msgstr ""
 
-#: src/ne_socket.c:516 src/ne_socket.c:612 src/ne_socket.c:716
+#: src/ne_socket.c:522 src/ne_socket.c:618 src/ne_socket.c:722
 msgid "Connection closed"
 msgstr ""
 
-#: src/ne_socket.c:622 src/ne_socket.c:728
+#: src/ne_socket.c:628 src/ne_socket.c:736
 msgid "Secure connection truncated"
 msgstr ""
 
-#: src/ne_socket.c:634 src/ne_socket.c:740
+#: src/ne_socket.c:640 src/ne_socket.c:748
 #, fuzzy, c-format
 msgid "SSL error: %s"
 msgstr ""
 "%s: dans issue_error\n"
 "%s"
 
-#: src/ne_socket.c:637
+#: src/ne_socket.c:643
 #, c-format
 msgid "SSL error code %d/%d/%lu"
 msgstr ""
 
-#: src/ne_socket.c:721
+#: src/ne_socket.c:727
 #, fuzzy, c-format
 msgid "SSL alert received: %s"
 msgstr ""
 "%s: dans issue_error\n"
 "%s"
 
-#: src/ne_socket.c:736
+#: src/ne_socket.c:744
 msgid "SSL socket read failed"
 msgstr ""
 
-#: src/ne_socket.c:867
+#: src/ne_socket.c:875
 msgid "Line too long"
 msgstr ""
 
-#: src/ne_socket.c:1012 src/ne_socket.c:1018
+#: src/ne_socket.c:1036 src/ne_socket.c:1042
 msgid "Host not found"
 msgstr ""
 
-#: src/ne_socket.c:1221
+#: src/ne_socket.c:1249
 msgid "Connection timed out"
 msgstr ""
 
-#: src/ne_socket.c:1412
+#: src/ne_socket.c:1442
 msgid "Socket descriptor number exceeds FD_SETSIZE"
 msgstr ""
 
-#: src/ne_socket.c:1474
+#: src/ne_socket.c:1504
 msgid "Socket family not supported"
 msgstr ""
 
-#: src/ne_socket.c:1701
+#: src/ne_socket.c:1735
 msgid "Client certificate verification failed"
 msgstr ""
 
-#: src/ne_socket.c:1717
+#: src/ne_socket.c:1751
 msgid "SSL disabled due to lack of entropy"
 msgstr ""
 
-#: src/ne_socket.c:1724
-msgid "SSL disabled due to library version mismatch"
-msgstr ""
-
-#: src/ne_socket.c:1730
+#: src/ne_socket.c:1757
 #, fuzzy
 msgid "Could not create SSL structure"
 msgstr "%s: erreur: impossible de se connecter à l'hôte distant.\n"
index df6f990..be3cef5 100644 (file)
Binary files a/po/ja.gmo and b/po/ja.gmo differ
index 610e356..3f5e25b 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,10 +6,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sitecopy 0.10.14\n"
 "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n"
-"POT-Creation-Date: 2010-10-01 13:30+0100\n"
+"POT-Creation-Date: 2013-07-31 16:46+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"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=EUC-JP\n"
 "Content-Transfer-Encoding: 8-bit\n"
@@ -21,109 +22,114 @@ msgid ""
 "Status line was: %s"
 msgstr ""
 
-#: src/ne_auth.c:134
+#: src/ne_auth.c:139
 #, fuzzy, c-format
 msgid "Could not authenticate to server: %s"
 msgstr "¥×¥í¥­¥·¡¼¥µ¡¼¥Ð¡¼¤ËÀܳ¤Ç¤­¤Þ¤»¤ó"
 
-#: src/ne_auth.c:139
+#: src/ne_auth.c:144
 #, fuzzy, c-format
 msgid "Could not authenticate to proxy server: %s"
 msgstr "¥×¥í¥­¥·¡¼¥µ¡¼¥Ð¡¼¤ËÀܳ¤Ç¤­¤Þ¤»¤ó"
 
-#: src/ne_auth.c:374
+#: src/ne_auth.c:386
 #, c-format
 msgid "rejected %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:390
+#: src/ne_auth.c:402
 msgid "missing realm in Basic challenge"
 msgstr ""
 
-#: src/ne_auth.c:485
+#: src/ne_auth.c:497
 msgid "invalid Negotiate token"
 msgstr ""
 
-#: src/ne_auth.c:508
+#: src/ne_auth.c:520
 #, fuzzy
 msgid "GSSAPI authentication error: "
 msgstr "%s ¤Ø¤Îǧ¾Ú¤¬ %s ¤ÇɬÍפǤ¹ '%s':\n"
 
-#: src/ne_auth.c:521
+#: src/ne_auth.c:533
 #, c-format
 msgid "GSSAPI failure (code %u)"
 msgstr ""
 
-#: src/ne_auth.c:556
+#: src/ne_auth.c:568
 msgid "ignoring empty Negotiate continuation"
 msgstr ""
 
-#: src/ne_auth.c:571
+#: src/ne_auth.c:583
 #, c-format
 msgid "Negotiate response verification failed: invalid response header token"
 msgstr ""
 
-#: src/ne_auth.c:593
+#: src/ne_auth.c:605
 #, c-format
 msgid "Negotiate response verification failure: %s"
 msgstr ""
 
-#: src/ne_auth.c:765
+#: src/ne_auth.c:669
+#, c-format
+msgid "SSPI response verification failed: invalid response header token"
+msgstr ""
+
+#: src/ne_auth.c:802
 msgid "unknown algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:769
+#: src/ne_auth.c:806
 msgid "incompatible algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:773
+#: src/ne_auth.c:810
 msgid "missing parameter in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:777
+#: src/ne_auth.c:814
 msgid "initial Digest challenge was stale"
 msgstr ""
 
-#: src/ne_auth.c:784
+#: src/ne_auth.c:821
 msgid "stale Digest challenge with new algorithm or realm"
 msgstr ""
 
-#: src/ne_auth.c:796
+#: src/ne_auth.c:833
 #, fuzzy
 msgid "could not parse domain in Digest challenge"
 msgstr "chunk ¤ÎÂ礭¤µ¤ò²òÀϤǤ­¤Þ¤»¤ó"
 
-#: src/ne_auth.c:1105
+#: src/ne_auth.c:1142
 #, c-format
 msgid "Digest mutual authentication failure: missing parameters"
 msgstr ""
 
-#: src/ne_auth.c:1110
+#: src/ne_auth.c:1147
 #, c-format
 msgid "Digest mutual authentication failure: client nonce mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1120
+#: src/ne_auth.c:1157
 #, c-format
 msgid "Digest mutual authentication failure: could not parse nonce count"
 msgstr ""
 
-#: src/ne_auth.c:1125
+#: src/ne_auth.c:1162
 #, c-format
 msgid "Digest mutual authentication failure: nonce count mismatch (%u not %u)"
 msgstr ""
 
-#: src/ne_auth.c:1168
+#: src/ne_auth.c:1205
 #, c-format
 msgid "Digest mutual authentication failure: request-digest mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1299
+#: src/ne_auth.c:1336
 #, c-format
 msgid "ignored %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:1378
+#: src/ne_auth.c:1415
 #, fuzzy
 msgid "could not parse challenge"
 msgstr "chunk ¤ÎÂ礭¤µ¤ò²òÀϤǤ­¤Þ¤»¤ó"
@@ -163,50 +169,50 @@ msgstr "
 msgid "Could not initialize zlib"
 msgstr "¥Õ¥¡¥¤¥ë¤¬½ñ¤±¤Þ¤»¤ó: "
 
-#: src/ne_gnutls.c:172
+#: src/ne_gnutls.c:176
 #, c-format
 msgid "[unprintable:#%lu]"
 msgstr ""
 
-#: src/ne_gnutls.c:201
+#: src/ne_gnutls.c:205
 msgid "[unprintable]"
 msgstr ""
 
-#: src/ne_gnutls.c:817
+#: src/ne_gnutls.c:845
 msgid "signed using insecure algorithm"
 msgstr ""
 
-#: src/ne_gnutls.c:820
+#: src/ne_gnutls.c:848
 #, c-format
 msgid "unrecognized errors (%u)"
 msgstr ""
 
-#: src/ne_gnutls.c:865 src/ne_openssl.c:468
+#: src/ne_gnutls.c:893 src/ne_openssl.c:470
 #, c-format
 msgid "Server certificate was missing commonName attribute in subject name"
 msgstr ""
 
-#: src/ne_gnutls.c:879
+#: src/ne_gnutls.c:907
 #, fuzzy, c-format
 msgid "Could not verify server certificate: %s"
 msgstr "¥Õ¥¡¥¤¥ë¤¬½ñ¤±¤Þ¤»¤ó: %s"
 
-#: src/ne_gnutls.c:891 src/ne_openssl.c:455
+#: src/ne_gnutls.c:919 src/ne_openssl.c:457
 #, c-format
 msgid "Certificate verification error: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:924 src/ne_openssl.c:674
+#: src/ne_gnutls.c:952 src/ne_openssl.c:702
 #, c-format
 msgid "SSL handshake failed, client certificate was requested: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:929 src/ne_openssl.c:679
+#: src/ne_gnutls.c:957 src/ne_openssl.c:707
 #, fuzzy, c-format
 msgid "SSL handshake failed: %s"
 msgstr "¥Õ¥¡¥¤¥ë¤¬½ñ¤±¤Þ¤»¤ó: %s"
 
-#: src/ne_gnutls.c:939
+#: src/ne_gnutls.c:967
 #, c-format
 msgid "Server did not send certificate chain"
 msgstr ""
@@ -225,12 +231,12 @@ msgstr ""
 msgid "No activelock for <%s> returned in LOCK refresh response"
 msgstr ""
 
-#: src/ne_openssl.c:699
+#: src/ne_openssl.c:727
 #, c-format
 msgid "SSL server did not present certificate"
 msgstr ""
 
-#: src/ne_openssl.c:708
+#: src/ne_openssl.c:736
 #, c-format
 msgid "Server certificate changed: connection intercepted?"
 msgstr ""
@@ -278,203 +284,204 @@ msgstr ""
 msgid "Could not seek to offset %s of request body file: %s"
 msgstr "¥Õ¥¡¥¤¥ë¤¬½ñ¤±¤Þ¤»¤ó: %s"
 
-#: src/ne_request.c:385
+#: src/ne_request.c:423
 msgid "Could not send request body"
 msgstr ""
 
-#: src/ne_request.c:728
+#: src/ne_request.c:450
+#, fuzzy
+msgid "Could not send chunked request terminator"
+msgstr "¥×¥í¥­¥·¡¼¥µ¡¼¥Ð¡¼¤ËÀܳ¤Ç¤­¤Þ¤»¤ó"
+
+#: src/ne_request.c:784
 msgid "Could not read chunk size"
 msgstr "chunk ¤ÎÂ礭¤µ¤¬Æɤá¤Þ¤»¤ó"
 
-#: src/ne_request.c:735
+#: src/ne_request.c:791
 msgid "Could not parse chunk size"
 msgstr "chunk ¤ÎÂ礭¤µ¤ò²òÀϤǤ­¤Þ¤»¤ó"
 
-#: src/ne_request.c:772
+#: src/ne_request.c:828
 msgid "Could not read response body"
 msgstr "response body ¤¬Æɤá¤Þ¤»¤ó"
 
-#: src/ne_request.c:788
+#: src/ne_request.c:844
 #, fuzzy
 msgid "Could not read chunk delimiter"
 msgstr "chunk ¤ÎÂ礭¤µ¤¬Æɤá¤Þ¤»¤ó"
 
-#: src/ne_request.c:791
+#: src/ne_request.c:847
 msgid "Chunk delimiter was invalid"
 msgstr ""
 
-#: src/ne_request.c:896
+#: src/ne_request.c:952
 msgid "Could not read status line"
 msgstr ""
 
-#: src/ne_request.c:918
+#: src/ne_request.c:974
 #, fuzzy
 msgid "Could not parse response status line"
 msgstr "response body ¤¬Æɤá¤Þ¤»¤ó"
 
-#: src/ne_request.c:930
+#: src/ne_request.c:986
 #, fuzzy
 msgid "Could not read interim response headers"
 msgstr "response body ¤¬Æɤá¤Þ¤»¤ó"
 
-#: src/ne_request.c:964
+#: src/ne_request.c:1020
 msgid "Could not send request"
 msgstr ""
 
-#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040
+#: src/ne_request.c:1068 src/ne_request.c:1086 src/ne_request.c:1096
 msgid "Error reading response headers"
 msgstr ""
 
-#: src/ne_request.c:1058
+#: src/ne_request.c:1114
 #, c-format
 msgid "Response header too long"
 msgstr ""
 
-#: src/ne_request.c:1140
+#: src/ne_request.c:1196
 msgid "Response exceeded maximum number of header fields"
 msgstr ""
 
-#: src/ne_request.c:1155
+#: src/ne_request.c:1211
 #, fuzzy, c-format
 msgid "Could not resolve hostname `%s': %s"
 msgstr "%s: ¥¨¥é¡¼: ¥µ¡¼¥Ð¡¼¤Î¥Û¥¹¥È̾ (%s) ¤ò IP ¥¢¥É¥ì¥¹¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó¡£\n"
 
-#: src/ne_request.c:1286
+#: src/ne_request.c:1342
 msgid "Unknown transfer-coding in response"
 msgstr ""
 
-#: src/ne_request.c:1299
+#: src/ne_request.c:1355
 msgid "Invalid Content-Length in response"
 msgstr ""
 
-#: src/ne_request.c:1372
+#: src/ne_request.c:1428
 #, c-format
 msgid "Could not write to file: %s"
 msgstr "¥Õ¥¡¥¤¥ë¤¬½ñ¤±¤Þ¤»¤ó: %s"
 
-#: src/ne_request.c:1445
+#: src/ne_request.c:1501
 #, fuzzy, c-format
 msgid "Could not create SSL connection through proxy server: %s"
 msgstr "¥×¥í¥­¥·¡¼¥µ¡¼¥Ð¡¼¤Ë SSL Àܳ¤Ç¤­¤Þ¤»¤ó"
 
-#: src/ne_request.c:1484
+#: src/ne_request.c:1540
 #, fuzzy, c-format
 msgid "Could not create socket"
 msgstr "¥×¥í¥­¥·¡¼¥µ¡¼¥Ð¡¼¤Ë SSL Àܳ¤Ç¤­¤Þ¤»¤ó"
 
-#: src/ne_request.c:1518
+#: src/ne_request.c:1574
 msgid "Could not connect to server"
 msgstr "¥×¥í¥­¥·¡¼¥µ¡¼¥Ð¡¼¤ËÀܳ¤Ç¤­¤Þ¤»¤ó"
 
-#: src/ne_request.c:1520
+#: src/ne_request.c:1576
 msgid "Could not connect to proxy server"
 msgstr "¥×¥í¥­¥·¡¼¥µ¡¼¥Ð¡¼¤ËÀܳ¤Ç¤­¤Þ¤»¤ó"
 
-#: src/ne_request.c:1563
+#: src/ne_request.c:1619
 #, c-format
 msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy"
 msgstr ""
 
-#: src/ne_request.c:1621
+#: src/ne_request.c:1677
 #, fuzzy, c-format
 msgid "Could not establish connection from SOCKS proxy (%s:%u): %s"
 msgstr "¥×¥í¥­¥·¡¼¥µ¡¼¥Ð¡¼¤Ë SSL Àܳ¤Ç¤­¤Þ¤»¤ó"
 
-#: src/ne_session.c:530 src/ne_session.c:541
+#: src/ne_session.c:538 src/ne_session.c:549
 msgid "[invalid date]"
 msgstr ""
 
-#: src/ne_session.c:554
+#: src/ne_session.c:562
 msgid "certificate is not yet valid"
 msgstr ""
 
-#: src/ne_session.c:555
+#: src/ne_session.c:563
 msgid "certificate has expired"
 msgstr ""
 
-#: src/ne_session.c:556
+#: src/ne_session.c:564
 msgid "certificate issued for a different hostname"
 msgstr ""
 
-#: src/ne_session.c:557
+#: src/ne_session.c:565
 msgid "issuer is not trusted"
 msgstr ""
 
-#: src/ne_session.c:558
+#: src/ne_session.c:566
 msgid "bad certificate chain"
 msgstr ""
 
-#: src/ne_session.c:559
+#: src/ne_session.c:567
 msgid "certificate has been revoked"
 msgstr ""
 
-#: src/ne_session.c:564
+#: src/ne_session.c:572
 msgid "Server certificate verification failed: "
 msgstr ""
 
-#: src/ne_socket.c:516 src/ne_socket.c:612 src/ne_socket.c:716
+#: src/ne_socket.c:522 src/ne_socket.c:618 src/ne_socket.c:722
 #, fuzzy
 msgid "Connection closed"
 msgstr "%s: Àܳ¤¬¥µ¡¼¥Ð¡¼¤ËÀÚ¤é¤ì¤Þ¤·¤¿¡£"
 
-#: src/ne_socket.c:622 src/ne_socket.c:728
+#: src/ne_socket.c:628 src/ne_socket.c:736
 #, fuzzy
 msgid "Secure connection truncated"
 msgstr "Àܳ¥¿¥¤¥à¥¢¥¦¥È¡£"
 
-#: src/ne_socket.c:634 src/ne_socket.c:740
+#: src/ne_socket.c:640 src/ne_socket.c:748
 #, c-format
 msgid "SSL error: %s"
 msgstr ""
 
-#: src/ne_socket.c:637
+#: src/ne_socket.c:643
 #, c-format
 msgid "SSL error code %d/%d/%lu"
 msgstr ""
 
-#: src/ne_socket.c:721
+#: src/ne_socket.c:727
 #, c-format
 msgid "SSL alert received: %s"
 msgstr ""
 
-#: src/ne_socket.c:736
+#: src/ne_socket.c:744
 msgid "SSL socket read failed"
 msgstr ""
 
-#: src/ne_socket.c:867
+#: src/ne_socket.c:875
 msgid "Line too long"
 msgstr ""
 
-#: src/ne_socket.c:1012 src/ne_socket.c:1018
+#: src/ne_socket.c:1036 src/ne_socket.c:1042
 msgid "Host not found"
 msgstr ""
 
-#: src/ne_socket.c:1221
+#: src/ne_socket.c:1249
 #, fuzzy
 msgid "Connection timed out"
 msgstr "%s: Àܳ¥¿¥¤¥à¥¢¥¦¥È¤Ç¤¹¡£"
 
-#: src/ne_socket.c:1412
+#: src/ne_socket.c:1442
 msgid "Socket descriptor number exceeds FD_SETSIZE"
 msgstr ""
 
-#: src/ne_socket.c:1474
+#: src/ne_socket.c:1504
 msgid "Socket family not supported"
 msgstr ""
 
-#: src/ne_socket.c:1701
+#: src/ne_socket.c:1735
 msgid "Client certificate verification failed"
 msgstr ""
 
-#: src/ne_socket.c:1717
+#: src/ne_socket.c:1751
 msgid "SSL disabled due to lack of entropy"
 msgstr ""
 
-#: src/ne_socket.c:1724
-msgid "SSL disabled due to library version mismatch"
-msgstr ""
-
-#: src/ne_socket.c:1730
+#: src/ne_socket.c:1757
 #, fuzzy
 msgid "Could not create SSL structure"
 msgstr "¥×¥í¥­¥·¡¼¥µ¡¼¥Ð¡¼¤Ë SSL Àܳ¤Ç¤­¤Þ¤»¤ó"
index f63c051..2e7ed40 100644 (file)
@@ -8,10 +8,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n"
-"POT-Creation-Date: 2010-10-01 13:30+0100\n"
+"POT-Creation-Date: 2013-07-31 16:46+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"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -23,107 +24,112 @@ msgid ""
 "Status line was: %s"
 msgstr ""
 
-#: src/ne_auth.c:134
+#: src/ne_auth.c:139
 #, c-format
 msgid "Could not authenticate to server: %s"
 msgstr ""
 
-#: src/ne_auth.c:139
+#: src/ne_auth.c:144
 #, c-format
 msgid "Could not authenticate to proxy server: %s"
 msgstr ""
 
-#: src/ne_auth.c:374
+#: src/ne_auth.c:386
 #, c-format
 msgid "rejected %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:390
+#: src/ne_auth.c:402
 msgid "missing realm in Basic challenge"
 msgstr ""
 
-#: src/ne_auth.c:485
+#: src/ne_auth.c:497
 msgid "invalid Negotiate token"
 msgstr ""
 
-#: src/ne_auth.c:508
+#: src/ne_auth.c:520
 msgid "GSSAPI authentication error: "
 msgstr ""
 
-#: src/ne_auth.c:521
+#: src/ne_auth.c:533
 #, c-format
 msgid "GSSAPI failure (code %u)"
 msgstr ""
 
-#: src/ne_auth.c:556
+#: src/ne_auth.c:568
 msgid "ignoring empty Negotiate continuation"
 msgstr ""
 
-#: src/ne_auth.c:571
+#: src/ne_auth.c:583
 #, c-format
 msgid "Negotiate response verification failed: invalid response header token"
 msgstr ""
 
-#: src/ne_auth.c:593
+#: src/ne_auth.c:605
 #, c-format
 msgid "Negotiate response verification failure: %s"
 msgstr ""
 
-#: src/ne_auth.c:765
+#: src/ne_auth.c:669
+#, c-format
+msgid "SSPI response verification failed: invalid response header token"
+msgstr ""
+
+#: src/ne_auth.c:802
 msgid "unknown algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:769
+#: src/ne_auth.c:806
 msgid "incompatible algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:773
+#: src/ne_auth.c:810
 msgid "missing parameter in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:777
+#: src/ne_auth.c:814
 msgid "initial Digest challenge was stale"
 msgstr ""
 
-#: src/ne_auth.c:784
+#: src/ne_auth.c:821
 msgid "stale Digest challenge with new algorithm or realm"
 msgstr ""
 
-#: src/ne_auth.c:796
+#: src/ne_auth.c:833
 msgid "could not parse domain in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:1105
+#: src/ne_auth.c:1142
 #, c-format
 msgid "Digest mutual authentication failure: missing parameters"
 msgstr ""
 
-#: src/ne_auth.c:1110
+#: src/ne_auth.c:1147
 #, c-format
 msgid "Digest mutual authentication failure: client nonce mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1120
+#: src/ne_auth.c:1157
 #, c-format
 msgid "Digest mutual authentication failure: could not parse nonce count"
 msgstr ""
 
-#: src/ne_auth.c:1125
+#: src/ne_auth.c:1162
 #, c-format
 msgid "Digest mutual authentication failure: nonce count mismatch (%u not %u)"
 msgstr ""
 
-#: src/ne_auth.c:1168
+#: src/ne_auth.c:1205
 #, c-format
 msgid "Digest mutual authentication failure: request-digest mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1299
+#: src/ne_auth.c:1336
 #, c-format
 msgid "ignored %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:1378
+#: src/ne_auth.c:1415
 msgid "could not parse challenge"
 msgstr ""
 
@@ -160,50 +166,50 @@ msgstr ""
 msgid "Could not initialize zlib"
 msgstr ""
 
-#: src/ne_gnutls.c:172
+#: src/ne_gnutls.c:176
 #, c-format
 msgid "[unprintable:#%lu]"
 msgstr ""
 
-#: src/ne_gnutls.c:201
+#: src/ne_gnutls.c:205
 msgid "[unprintable]"
 msgstr ""
 
-#: src/ne_gnutls.c:817
+#: src/ne_gnutls.c:845
 msgid "signed using insecure algorithm"
 msgstr ""
 
-#: src/ne_gnutls.c:820
+#: src/ne_gnutls.c:848
 #, c-format
 msgid "unrecognized errors (%u)"
 msgstr ""
 
-#: src/ne_gnutls.c:865 src/ne_openssl.c:468
+#: src/ne_gnutls.c:893 src/ne_openssl.c:470
 #, c-format
 msgid "Server certificate was missing commonName attribute in subject name"
 msgstr ""
 
-#: src/ne_gnutls.c:879
+#: src/ne_gnutls.c:907
 #, c-format
 msgid "Could not verify server certificate: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:891 src/ne_openssl.c:455
+#: src/ne_gnutls.c:919 src/ne_openssl.c:457
 #, c-format
 msgid "Certificate verification error: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:924 src/ne_openssl.c:674
+#: src/ne_gnutls.c:952 src/ne_openssl.c:702
 #, c-format
 msgid "SSL handshake failed, client certificate was requested: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:929 src/ne_openssl.c:679
+#: src/ne_gnutls.c:957 src/ne_openssl.c:707
 #, c-format
 msgid "SSL handshake failed: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:939
+#: src/ne_gnutls.c:967
 #, c-format
 msgid "Server did not send certificate chain"
 msgstr ""
@@ -222,12 +228,12 @@ msgstr ""
 msgid "No activelock for <%s> returned in LOCK refresh response"
 msgstr ""
 
-#: src/ne_openssl.c:699
+#: src/ne_openssl.c:727
 #, c-format
 msgid "SSL server did not present certificate"
 msgstr ""
 
-#: src/ne_openssl.c:708
+#: src/ne_openssl.c:736
 #, c-format
 msgid "Server certificate changed: connection intercepted?"
 msgstr ""
@@ -275,197 +281,197 @@ msgstr ""
 msgid "Could not seek to offset %s of request body file: %s"
 msgstr ""
 
-#: src/ne_request.c:385
+#: src/ne_request.c:423
 msgid "Could not send request body"
 msgstr ""
 
-#: src/ne_request.c:728
+#: src/ne_request.c:450
+msgid "Could not send chunked request terminator"
+msgstr ""
+
+#: src/ne_request.c:784
 msgid "Could not read chunk size"
 msgstr ""
 
-#: src/ne_request.c:735
+#: src/ne_request.c:791
 msgid "Could not parse chunk size"
 msgstr ""
 
-#: src/ne_request.c:772
+#: src/ne_request.c:828
 msgid "Could not read response body"
 msgstr ""
 
-#: src/ne_request.c:788
+#: src/ne_request.c:844
 msgid "Could not read chunk delimiter"
 msgstr ""
 
-#: src/ne_request.c:791
+#: src/ne_request.c:847
 msgid "Chunk delimiter was invalid"
 msgstr ""
 
-#: src/ne_request.c:896
+#: src/ne_request.c:952
 msgid "Could not read status line"
 msgstr ""
 
-#: src/ne_request.c:918
+#: src/ne_request.c:974
 msgid "Could not parse response status line"
 msgstr ""
 
-#: src/ne_request.c:930
+#: src/ne_request.c:986
 msgid "Could not read interim response headers"
 msgstr ""
 
-#: src/ne_request.c:964
+#: src/ne_request.c:1020
 msgid "Could not send request"
 msgstr ""
 
-#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040
+#: src/ne_request.c:1068 src/ne_request.c:1086 src/ne_request.c:1096
 msgid "Error reading response headers"
 msgstr ""
 
-#: src/ne_request.c:1058
+#: src/ne_request.c:1114
 #, c-format
 msgid "Response header too long"
 msgstr ""
 
-#: src/ne_request.c:1140
+#: src/ne_request.c:1196
 msgid "Response exceeded maximum number of header fields"
 msgstr ""
 
-#: src/ne_request.c:1155
+#: src/ne_request.c:1211
 #, c-format
 msgid "Could not resolve hostname `%s': %s"
 msgstr ""
 
-#: src/ne_request.c:1286
+#: src/ne_request.c:1342
 msgid "Unknown transfer-coding in response"
 msgstr ""
 
-#: src/ne_request.c:1299
+#: src/ne_request.c:1355
 msgid "Invalid Content-Length in response"
 msgstr ""
 
-#: src/ne_request.c:1372
+#: src/ne_request.c:1428
 #, c-format
 msgid "Could not write to file: %s"
 msgstr ""
 
-#: src/ne_request.c:1445
+#: src/ne_request.c:1501
 #, c-format
 msgid "Could not create SSL connection through proxy server: %s"
 msgstr ""
 
-#: src/ne_request.c:1484
+#: src/ne_request.c:1540
 #, c-format
 msgid "Could not create socket"
 msgstr ""
 
-#: src/ne_request.c:1518
+#: src/ne_request.c:1574
 msgid "Could not connect to server"
 msgstr ""
 
-#: src/ne_request.c:1520
+#: src/ne_request.c:1576
 msgid "Could not connect to proxy server"
 msgstr ""
 
-#: src/ne_request.c:1563
+#: src/ne_request.c:1619
 #, c-format
 msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy"
 msgstr ""
 
-#: src/ne_request.c:1621
+#: src/ne_request.c:1677
 #, c-format
 msgid "Could not establish connection from SOCKS proxy (%s:%u): %s"
 msgstr ""
 
-#: src/ne_session.c:530 src/ne_session.c:541
+#: src/ne_session.c:538 src/ne_session.c:549
 msgid "[invalid date]"
 msgstr ""
 
-#: src/ne_session.c:554
+#: src/ne_session.c:562
 msgid "certificate is not yet valid"
 msgstr ""
 
-#: src/ne_session.c:555
+#: src/ne_session.c:563
 msgid "certificate has expired"
 msgstr ""
 
-#: src/ne_session.c:556
+#: src/ne_session.c:564
 msgid "certificate issued for a different hostname"
 msgstr ""
 
-#: src/ne_session.c:557
+#: src/ne_session.c:565
 msgid "issuer is not trusted"
 msgstr ""
 
-#: src/ne_session.c:558
+#: src/ne_session.c:566
 msgid "bad certificate chain"
 msgstr ""
 
-#: src/ne_session.c:559
+#: src/ne_session.c:567
 msgid "certificate has been revoked"
 msgstr ""
 
-#: src/ne_session.c:564
+#: src/ne_session.c:572
 msgid "Server certificate verification failed: "
 msgstr ""
 
-#: src/ne_socket.c:516 src/ne_socket.c:612 src/ne_socket.c:716
+#: src/ne_socket.c:522 src/ne_socket.c:618 src/ne_socket.c:722
 msgid "Connection closed"
 msgstr ""
 
-#: src/ne_socket.c:622 src/ne_socket.c:728
+#: src/ne_socket.c:628 src/ne_socket.c:736
 msgid "Secure connection truncated"
 msgstr ""
 
-#: src/ne_socket.c:634 src/ne_socket.c:740
+#: src/ne_socket.c:640 src/ne_socket.c:748
 #, c-format
 msgid "SSL error: %s"
 msgstr ""
 
-#: src/ne_socket.c:637
+#: src/ne_socket.c:643
 #, c-format
 msgid "SSL error code %d/%d/%lu"
 msgstr ""
 
-#: src/ne_socket.c:721
+#: src/ne_socket.c:727
 #, c-format
 msgid "SSL alert received: %s"
 msgstr ""
 
-#: src/ne_socket.c:736
+#: src/ne_socket.c:744
 msgid "SSL socket read failed"
 msgstr ""
 
-#: src/ne_socket.c:867
+#: src/ne_socket.c:875
 msgid "Line too long"
 msgstr ""
 
-#: src/ne_socket.c:1012 src/ne_socket.c:1018
+#: src/ne_socket.c:1036 src/ne_socket.c:1042
 msgid "Host not found"
 msgstr ""
 
-#: src/ne_socket.c:1221
+#: src/ne_socket.c:1249
 msgid "Connection timed out"
 msgstr ""
 
-#: src/ne_socket.c:1412
+#: src/ne_socket.c:1442
 msgid "Socket descriptor number exceeds FD_SETSIZE"
 msgstr ""
 
-#: src/ne_socket.c:1474
+#: src/ne_socket.c:1504
 msgid "Socket family not supported"
 msgstr ""
 
-#: src/ne_socket.c:1701
+#: src/ne_socket.c:1735
 msgid "Client certificate verification failed"
 msgstr ""
 
-#: src/ne_socket.c:1717
+#: src/ne_socket.c:1751
 msgid "SSL disabled due to lack of entropy"
 msgstr ""
 
-#: src/ne_socket.c:1724
-msgid "SSL disabled due to library version mismatch"
-msgstr ""
-
-#: src/ne_socket.c:1730
+#: src/ne_socket.c:1757
 msgid "Could not create SSL structure"
 msgstr ""
 
index 9840bd4..8dc34ae 100644 (file)
Binary files a/po/nn.gmo and b/po/nn.gmo differ
index 7f53f2f..7b37c89 100644 (file)
--- a/po/nn.po
+++ b/po/nn.po
@@ -6,10 +6,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sitecopy 0.11.4\n"
 "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n"
-"POT-Creation-Date: 2010-10-01 13:30+0100\n"
+"POT-Creation-Date: 2013-07-31 16:46+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"
+"Language: nn\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -23,109 +24,114 @@ msgstr ""
 "Ugyldig HTTP-statuslinje i statuselement på linje %d av svaret:\n"
 "Statuslinja var: %s"
 
-#: src/ne_auth.c:134
+#: src/ne_auth.c:139
 #, fuzzy, c-format
 msgid "Could not authenticate to server: %s"
 msgstr "Klarte ikkje kopla til tenaren."
 
-#: src/ne_auth.c:139
+#: src/ne_auth.c:144
 #, fuzzy, c-format
 msgid "Could not authenticate to proxy server: %s"
 msgstr "Klarte ikkje kopla til mellomtenar"
 
-#: src/ne_auth.c:374
+#: src/ne_auth.c:386
 #, c-format
 msgid "rejected %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:390
+#: src/ne_auth.c:402
 msgid "missing realm in Basic challenge"
 msgstr ""
 
-#: src/ne_auth.c:485
+#: src/ne_auth.c:497
 msgid "invalid Negotiate token"
 msgstr ""
 
-#: src/ne_auth.c:508
+#: src/ne_auth.c:520
 #, fuzzy
 msgid "GSSAPI authentication error: "
 msgstr "Krev autentisering på %s «%s»:\n"
 
-#: src/ne_auth.c:521
+#: src/ne_auth.c:533
 #, c-format
 msgid "GSSAPI failure (code %u)"
 msgstr ""
 
-#: src/ne_auth.c:556
+#: src/ne_auth.c:568
 msgid "ignoring empty Negotiate continuation"
 msgstr ""
 
-#: src/ne_auth.c:571
+#: src/ne_auth.c:583
 #, c-format
 msgid "Negotiate response verification failed: invalid response header token"
 msgstr ""
 
-#: src/ne_auth.c:593
+#: src/ne_auth.c:605
 #, fuzzy, c-format
 msgid "Negotiate response verification failure: %s"
 msgstr "Tenarsertifikatet er utgått på dato."
 
-#: src/ne_auth.c:765
+#: src/ne_auth.c:669
+#, c-format
+msgid "SSPI response verification failed: invalid response header token"
+msgstr ""
+
+#: src/ne_auth.c:802
 msgid "unknown algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:769
+#: src/ne_auth.c:806
 msgid "incompatible algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:773
+#: src/ne_auth.c:810
 msgid "missing parameter in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:777
+#: src/ne_auth.c:814
 msgid "initial Digest challenge was stale"
 msgstr ""
 
-#: src/ne_auth.c:784
+#: src/ne_auth.c:821
 msgid "stale Digest challenge with new algorithm or realm"
 msgstr ""
 
-#: src/ne_auth.c:796
+#: src/ne_auth.c:833
 #, fuzzy
 msgid "could not parse domain in Digest challenge"
 msgstr "Klarte ikkje tolka storleik på oppdelt svar"
 
-#: src/ne_auth.c:1105
+#: src/ne_auth.c:1142
 #, c-format
 msgid "Digest mutual authentication failure: missing parameters"
 msgstr ""
 
-#: src/ne_auth.c:1110
+#: src/ne_auth.c:1147
 #, c-format
 msgid "Digest mutual authentication failure: client nonce mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1120
+#: src/ne_auth.c:1157
 #, c-format
 msgid "Digest mutual authentication failure: could not parse nonce count"
 msgstr ""
 
-#: src/ne_auth.c:1125
+#: src/ne_auth.c:1162
 #, c-format
 msgid "Digest mutual authentication failure: nonce count mismatch (%u not %u)"
 msgstr ""
 
-#: src/ne_auth.c:1168
+#: src/ne_auth.c:1205
 #, c-format
 msgid "Digest mutual authentication failure: request-digest mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1299
+#: src/ne_auth.c:1336
 #, c-format
 msgid "ignored %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:1378
+#: src/ne_auth.c:1415
 #, fuzzy
 msgid "could not parse challenge"
 msgstr "Klarte ikkje tolka storleik på oppdelt svar"
@@ -165,50 +171,50 @@ msgstr "Klarte ikkje opna fil: "
 msgid "Could not initialize zlib"
 msgstr "Klarte ikkje opna fil: "
 
-#: src/ne_gnutls.c:172
+#: src/ne_gnutls.c:176
 #, c-format
 msgid "[unprintable:#%lu]"
 msgstr ""
 
-#: src/ne_gnutls.c:201
+#: src/ne_gnutls.c:205
 msgid "[unprintable]"
 msgstr ""
 
-#: src/ne_gnutls.c:817
+#: src/ne_gnutls.c:845
 msgid "signed using insecure algorithm"
 msgstr ""
 
-#: src/ne_gnutls.c:820
+#: src/ne_gnutls.c:848
 #, c-format
 msgid "unrecognized errors (%u)"
 msgstr ""
 
-#: src/ne_gnutls.c:865 src/ne_openssl.c:468
+#: src/ne_gnutls.c:893 src/ne_openssl.c:470
 #, c-format
 msgid "Server certificate was missing commonName attribute in subject name"
 msgstr ""
 
-#: src/ne_gnutls.c:879
+#: src/ne_gnutls.c:907
 #, fuzzy, c-format
 msgid "Could not verify server certificate: %s"
 msgstr "Klarte ikkje skriva til fil: %s"
 
-#: src/ne_gnutls.c:891 src/ne_openssl.c:455
+#: src/ne_gnutls.c:919 src/ne_openssl.c:457
 #, c-format
 msgid "Certificate verification error: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:924 src/ne_openssl.c:674
+#: src/ne_gnutls.c:952 src/ne_openssl.c:702
 #, c-format
 msgid "SSL handshake failed, client certificate was requested: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:929 src/ne_openssl.c:679
+#: src/ne_gnutls.c:957 src/ne_openssl.c:707
 #, fuzzy, c-format
 msgid "SSL handshake failed: %s"
 msgstr "Klarte ikkje skriva til fil: %s"
 
-#: src/ne_gnutls.c:939
+#: src/ne_gnutls.c:967
 #, c-format
 msgid "Server did not send certificate chain"
 msgstr ""
@@ -227,12 +233,12 @@ msgstr ""
 msgid "No activelock for <%s> returned in LOCK refresh response"
 msgstr ""
 
-#: src/ne_openssl.c:699
+#: src/ne_openssl.c:727
 #, c-format
 msgid "SSL server did not present certificate"
 msgstr ""
 
-#: src/ne_openssl.c:708
+#: src/ne_openssl.c:736
 #, fuzzy, c-format
 msgid "Server certificate changed: connection intercepted?"
 msgstr "Tenarsertifikatet er utgått på dato."
@@ -281,214 +287,214 @@ msgstr ""
 msgid "Could not seek to offset %s of request body file: %s"
 msgstr "Klarte ikkje skriva til fil: %s"
 
-#: src/ne_request.c:385
+#: src/ne_request.c:423
 msgid "Could not send request body"
 msgstr "Klarte ikkje senda førespurnad"
 
-#: src/ne_request.c:728
+#: src/ne_request.c:450
+#, fuzzy
+msgid "Could not send chunked request terminator"
+msgstr "Klarte ikkje senda førespurnad"
+
+#: src/ne_request.c:784
 msgid "Could not read chunk size"
 msgstr "Klarte ikkje lesa storleik på oppdelt svar"
 
-#: src/ne_request.c:735
+#: src/ne_request.c:791
 msgid "Could not parse chunk size"
 msgstr "Klarte ikkje tolka storleik på oppdelt svar"
 
-#: src/ne_request.c:772
+#: src/ne_request.c:828
 msgid "Could not read response body"
 msgstr "Klarte ikkje lesa svar"
 
-#: src/ne_request.c:788
+#: src/ne_request.c:844
 #, fuzzy
 msgid "Could not read chunk delimiter"
 msgstr "Klarte ikkje lesa storleik på oppdelt svar"
 
-#: src/ne_request.c:791
+#: src/ne_request.c:847
 msgid "Chunk delimiter was invalid"
 msgstr ""
 
-#: src/ne_request.c:896
+#: src/ne_request.c:952
 msgid "Could not read status line"
 msgstr "Klarte ikkje lesa statuslinja"
 
-#: src/ne_request.c:918
+#: src/ne_request.c:974
 #, fuzzy
 msgid "Could not parse response status line"
 msgstr "Klarte ikkje tolka statuslinja i svaret."
 
-#: src/ne_request.c:930
+#: src/ne_request.c:986
 #, fuzzy
 msgid "Could not read interim response headers"
 msgstr "Klarte ikkje lesa svarlinje"
 
-#: src/ne_request.c:964
+#: src/ne_request.c:1020
 msgid "Could not send request"
 msgstr "Klarte ikkje senda førespurnad"
 
-#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040
+#: src/ne_request.c:1068 src/ne_request.c:1086 src/ne_request.c:1096
 msgid "Error reading response headers"
 msgstr "Feil ved lesing av svarhovud"
 
-#: src/ne_request.c:1058
+#: src/ne_request.c:1114
 #, c-format
 msgid "Response header too long"
 msgstr "For langt svarhovud"
 
-#: src/ne_request.c:1140
+#: src/ne_request.c:1196
 #, fuzzy
 msgid "Response exceeded maximum number of header fields"
 msgstr "Svaret inneheld for mange header-felt."
 
-#: src/ne_request.c:1155
+#: src/ne_request.c:1211
 #, fuzzy, c-format
 msgid "Could not resolve hostname `%s': %s"
 msgstr "%s: Feil: Fann ikkje adressa til nettverksvert (%s).\n"
 
-#: src/ne_request.c:1286
+#: src/ne_request.c:1342
 msgid "Unknown transfer-coding in response"
 msgstr ""
 
-#: src/ne_request.c:1299
+#: src/ne_request.c:1355
 msgid "Invalid Content-Length in response"
 msgstr ""
 
-#: src/ne_request.c:1372
+#: src/ne_request.c:1428
 #, c-format
 msgid "Could not write to file: %s"
 msgstr "Klarte ikkje skriva til fil: %s"
 
-#: src/ne_request.c:1445
+#: src/ne_request.c:1501
 #, 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:1484
+#: src/ne_request.c:1540
 #, fuzzy, c-format
 msgid "Could not create socket"
 msgstr "Klarte ikkje forhandla SSL-økt"
 
-#: src/ne_request.c:1518
+#: src/ne_request.c:1574
 msgid "Could not connect to server"
 msgstr "Klarte ikkje kopla til tenaren."
 
-#: src/ne_request.c:1520
+#: src/ne_request.c:1576
 msgid "Could not connect to proxy server"
 msgstr "Klarte ikkje kopla til mellomtenar"
 
-#: src/ne_request.c:1563
+#: src/ne_request.c:1619
 #, c-format
 msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy"
 msgstr ""
 
-#: src/ne_request.c:1621
+#: src/ne_request.c:1677
 #, 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:530 src/ne_session.c:541
+#: src/ne_session.c:538 src/ne_session.c:549
 #, fuzzy
 msgid "[invalid date]"
 msgstr "[ugyldig dato]"
 
-#: src/ne_session.c:554
+#: src/ne_session.c:562
 #, fuzzy
 msgid "certificate is not yet valid"
 msgstr "Sertifikatet er gyldig"
 
-#: src/ne_session.c:555
+#: src/ne_session.c:563
 #, fuzzy
 msgid "certificate has expired"
 msgstr "Tenarsertifikatet er utgått på dato."
 
-#: src/ne_session.c:556
+#: src/ne_session.c:564
 #, fuzzy
 msgid "certificate issued for a different hostname"
 msgstr "Sertifikatet er utferda av:"
 
-#: src/ne_session.c:557
+#: src/ne_session.c:565
 msgid "issuer is not trusted"
 msgstr ""
 
-#: src/ne_session.c:558
+#: src/ne_session.c:566
 #, fuzzy
 msgid "bad certificate chain"
 msgstr "Tenarsertifikatet er utgått på dato."
 
-#: src/ne_session.c:559
+#: src/ne_session.c:567
 #, fuzzy
 msgid "certificate has been revoked"
 msgstr "Tenarsertifikatet er utgått på dato."
 
-#: src/ne_session.c:564
+#: src/ne_session.c:572
 #, fuzzy
 msgid "Server certificate verification failed: "
 msgstr "Tenarsertifikatet er utgått på dato."
 
-#: src/ne_socket.c:516 src/ne_socket.c:612 src/ne_socket.c:716
+#: src/ne_socket.c:522 src/ne_socket.c:618 src/ne_socket.c:722
 #, fuzzy
 msgid "Connection closed"
 msgstr "Tilkoplinga vart lukka av tenaren"
 
-#: src/ne_socket.c:622 src/ne_socket.c:728
+#: src/ne_socket.c:628 src/ne_socket.c:736
 #, fuzzy
 msgid "Secure connection truncated"
 msgstr "Sambandet vart tidsavbrote."
 
-#: src/ne_socket.c:634 src/ne_socket.c:740
+#: src/ne_socket.c:640 src/ne_socket.c:748
 #, fuzzy, c-format
 msgid "SSL error: %s"
 msgstr "%s: Feil: %s\n"
 
-#: src/ne_socket.c:637
+#: src/ne_socket.c:643
 #, c-format
 msgid "SSL error code %d/%d/%lu"
 msgstr ""
 
-#: src/ne_socket.c:721
+#: src/ne_socket.c:727
 #, fuzzy, c-format
 msgid "SSL alert received: %s"
 msgstr "%s: Feil: %s\n"
 
-#: src/ne_socket.c:736
+#: src/ne_socket.c:744
 msgid "SSL socket read failed"
 msgstr ""
 
-#: src/ne_socket.c:867
+#: src/ne_socket.c:875
 msgid "Line too long"
 msgstr "For lang linje"
 
-#: src/ne_socket.c:1012 src/ne_socket.c:1018
+#: src/ne_socket.c:1036 src/ne_socket.c:1042
 msgid "Host not found"
 msgstr "Fann ikkje vert"
 
-#: src/ne_socket.c:1221
+#: src/ne_socket.c:1249
 #, fuzzy
 msgid "Connection timed out"
 msgstr "%s: sambandet vart tidsavbrote."
 
-#: src/ne_socket.c:1412
+#: src/ne_socket.c:1442
 msgid "Socket descriptor number exceeds FD_SETSIZE"
 msgstr ""
 
-#: src/ne_socket.c:1474
+#: src/ne_socket.c:1504
 msgid "Socket family not supported"
 msgstr ""
 
-#: src/ne_socket.c:1701
+#: src/ne_socket.c:1735
 #, fuzzy
 msgid "Client certificate verification failed"
 msgstr "Tenarsertifikatet er utgått på dato."
 
-#: src/ne_socket.c:1717
+#: src/ne_socket.c:1751
 #, fuzzy
 msgid "SSL disabled due to lack of entropy"
 msgstr "SSL avslått grunna mangel på entropi"
 
-#: src/ne_socket.c:1724
-#, fuzzy
-msgid "SSL disabled due to library version mismatch"
-msgstr "SSL avslått grunna mangel på entropi"
-
-#: src/ne_socket.c:1730
+#: src/ne_socket.c:1757
 #, fuzzy
 msgid "Could not create SSL structure"
 msgstr "Klarte ikkje forhandla SSL-økt"
@@ -648,6 +654,10 @@ msgid "Could not parse response: %s"
 msgstr "Klarte ikkje lesa «LIST»-svar."
 
 #, fuzzy
+#~ msgid "SSL disabled due to library version mismatch"
+#~ msgstr "SSL avslått grunna mangel på entropi"
+
+#, fuzzy
 #~ msgid "%s: %s"
 #~ msgstr "%s: %s\n"
 
index 61bc408..f5153c8 100644 (file)
Binary files a/po/pl.gmo and b/po/pl.gmo differ
index 865c446..68d4ef9 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,14 +5,15 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Neon 0.29.0\n"
+"Project-Id-Version: Neon 0.30.0\n"
 "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n"
-"POT-Creation-Date: 2010-10-01 13:30+0100\n"
+"POT-Creation-Date: 2013-07-31 16:46+0100\n"
 "PO-Revision-Date: 2009-09-04 02:00+0200\n"
 "Last-Translator: Arfrever Frehtes Taifersar Arahesis <Arfrever.FTA@gmail."
 "com>\n"
 "Language-Team: Polish Neon Translator Arfrever Frehtes Taifersar Arahesis "
 "<Arfrever.FTA@gmail.com>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -26,116 +27,123 @@ msgstr ""
 "Niewłaściwa linia statusu HTTP w elemencie statusu w linii %d odpowiedzi:\n"
 "Linia statusu była: %s"
 
-#: src/ne_auth.c:134
+#: src/ne_auth.c:139
 #, c-format
 msgid "Could not authenticate to server: %s"
 msgstr "Nie można autentykować się do serwera: %s"
 
-#: src/ne_auth.c:139
+#: src/ne_auth.c:144
 #, c-format
 msgid "Could not authenticate to proxy server: %s"
 msgstr "Nie można autentykować się do serwera proxy: %s"
 
-#: src/ne_auth.c:374
+#: src/ne_auth.c:386
 #, c-format
 msgid "rejected %s challenge"
 msgstr "odrzucone wezwanie %s"
 
-#: src/ne_auth.c:390
+#: src/ne_auth.c:402
 msgid "missing realm in Basic challenge"
 msgstr "brakująca domena w wezwaniu Basic"
 
-#: src/ne_auth.c:485
+#: src/ne_auth.c:497
 msgid "invalid Negotiate token"
 msgstr "niewłaściwy żeton Negotiate"
 
-#: src/ne_auth.c:508
+#: src/ne_auth.c:520
 msgid "GSSAPI authentication error: "
 msgstr "Błąd autentykacji GSSAPI: "
 
-#: src/ne_auth.c:521
+#: src/ne_auth.c:533
 #, c-format
 msgid "GSSAPI failure (code %u)"
 msgstr "Porażka GSSAPI (kod %u)"
 
-#: src/ne_auth.c:556
+#: src/ne_auth.c:568
 msgid "ignoring empty Negotiate continuation"
 msgstr "ignorowanie pustej kontynuacji Negotiate"
 
-#: src/ne_auth.c:571
+#: src/ne_auth.c:583
 #, c-format
 msgid "Negotiate response verification failed: invalid response header token"
 msgstr ""
 "weryfikacja odpowiedzi Negotiate nie udała się: niewłaściwy żeton nagłówka "
 "odpowiedzi"
 
-#: src/ne_auth.c:593
+#: src/ne_auth.c:605
 #, c-format
 msgid "Negotiate response verification failure: %s"
 msgstr "porażka weryfikacji odpowiedzi Negotiate: %s"
 
-#: src/ne_auth.c:765
+#: src/ne_auth.c:669
+#, fuzzy, c-format
+msgid "SSPI response verification failed: invalid response header token"
+msgstr ""
+"weryfikacja odpowiedzi Negotiate nie udała się: niewłaściwy żeton nagłówka "
+"odpowiedzi"
+
+#: src/ne_auth.c:802
 msgid "unknown algorithm in Digest challenge"
 msgstr "nieznany algorytm w wezwaniu Digest"
 
-#: src/ne_auth.c:769
+#: src/ne_auth.c:806
 msgid "incompatible algorithm in Digest challenge"
 msgstr "niekompatybilny algorytm w wezwaniu Digest"
 
-#: src/ne_auth.c:773
+#: src/ne_auth.c:810
 msgid "missing parameter in Digest challenge"
 msgstr "brakujący parametr w wezwaniu Digest"
 
-#: src/ne_auth.c:777
+#: src/ne_auth.c:814
 msgid "initial Digest challenge was stale"
 msgstr "początkowe wezwanie Digest było nieaktualne"
 
-#: src/ne_auth.c:784
+#: src/ne_auth.c:821
 msgid "stale Digest challenge with new algorithm or realm"
 msgstr "nieaktualne wezwanie Digest z nowym algorytmem lub domeną"
 
-#: src/ne_auth.c:796
+#: src/ne_auth.c:833
 msgid "could not parse domain in Digest challenge"
 msgstr "nie można parsować domeny w wezwaniu Digest"
 
-#: src/ne_auth.c:1105
+#: src/ne_auth.c:1142
 #, c-format
 msgid "Digest mutual authentication failure: missing parameters"
 msgstr "Porażka wzajemnego uwierzytelniania Digest: brakujące parametry"
 
-#: src/ne_auth.c:1110
+#: src/ne_auth.c:1147
 #, c-format
 msgid "Digest mutual authentication failure: client nonce mismatch"
 msgstr ""
 "Porażka wzajemnego uwierzytelniania Digest: niezgodność posłańca klienta"
 
-#: src/ne_auth.c:1120
+#: src/ne_auth.c:1157
 #, c-format
 msgid "Digest mutual authentication failure: could not parse nonce count"
 msgstr ""
 "Porażka wzajemnego uwierzytelniania Digest: nie można parsować licznika "
 "posłańca"
 
-#: src/ne_auth.c:1125
+#: src/ne_auth.c:1162
 #, c-format
 msgid "Digest mutual authentication failure: nonce count mismatch (%u not %u)"
 msgstr ""
-"Porażka wzajemnego uwierzytelniania Digest: niezgodność licznika posłańca (%"
-"u nie %u)"
+"Porażka wzajemnego uwierzytelniania Digest: niezgodność licznika posłańca "
+"(%u nie %u)"
 
-#: src/ne_auth.c:1168
+#: src/ne_auth.c:1205
 #, c-format
 msgid "Digest mutual authentication failure: request-digest mismatch"
 msgstr ""
 "Porażka wzajemnego uwierzytelniania Digest: niezgodność request-digest "
 "mismatch"
 
-#: src/ne_auth.c:1299
+#: src/ne_auth.c:1336
 #, c-format
 msgid "ignored %s challenge"
 msgstr "wezwanie %s zignorowane"
 
-#: src/ne_auth.c:1378
+#: src/ne_auth.c:1415
 msgid "could not parse challenge"
 msgstr "nie można parsować wezwania"
 
@@ -172,50 +180,50 @@ msgstr "Nie można "
 msgid "Could not initialize zlib"
 msgstr "Nie można zainicjalizować zlib"
 
-#: src/ne_gnutls.c:172
+#: src/ne_gnutls.c:176
 #, c-format
 msgid "[unprintable:#%lu]"
 msgstr "[niedrukowalne:#%lu]"
 
-#: src/ne_gnutls.c:201
+#: src/ne_gnutls.c:205
 msgid "[unprintable]"
 msgstr "[niedrukowalne]"
 
-#: src/ne_gnutls.c:817
+#: src/ne_gnutls.c:845
 msgid "signed using insecure algorithm"
 msgstr "podpisane przy użyciu niebezpiecznego algorytmu"
 
-#: src/ne_gnutls.c:820
+#: src/ne_gnutls.c:848
 #, c-format
 msgid "unrecognized errors (%u)"
 msgstr "nierozpoznane błędy (%u)"
 
-#: src/ne_gnutls.c:865 src/ne_openssl.c:468
+#: src/ne_gnutls.c:893 src/ne_openssl.c:470
 #, c-format
 msgid "Server certificate was missing commonName attribute in subject name"
 msgstr "Certyfikat serwera nie posiada atrybutu commonName w nazwie tematu"
 
-#: src/ne_gnutls.c:879
+#: src/ne_gnutls.c:907
 #, c-format
 msgid "Could not verify server certificate: %s"
 msgstr "Nie można zweryfikować certyfikatu serwera: %s"
 
-#: src/ne_gnutls.c:891 src/ne_openssl.c:455
+#: src/ne_gnutls.c:919 src/ne_openssl.c:457
 #, c-format
 msgid "Certificate verification error: %s"
 msgstr "Błąd weryfikacji certyfikatu: %s"
 
-#: src/ne_gnutls.c:924 src/ne_openssl.c:674
+#: src/ne_gnutls.c:952 src/ne_openssl.c:702
 #, c-format
 msgid "SSL handshake failed, client certificate was requested: %s"
 msgstr "Uzgodnienie SSL nie udało się, certyfikat klienta został zażądany: %s"
 
-#: src/ne_gnutls.c:929 src/ne_openssl.c:679
+#: src/ne_gnutls.c:957 src/ne_openssl.c:707
 #, c-format
 msgid "SSL handshake failed: %s"
 msgstr "Uzgodnienie SSL nie udało się: %s"
 
-#: src/ne_gnutls.c:939
+#: src/ne_gnutls.c:967
 #, c-format
 msgid "Server did not send certificate chain"
 msgstr "Serwer nie wysłał łańcucha certyfikatu"
@@ -235,12 +243,12 @@ msgid "No activelock for <%s> returned in LOCK refresh response"
 msgstr ""
 "Nie zwrócono żadnej aktywnej blokady dla <%s> w odpowiedzi LOCK refresh"
 
-#: src/ne_openssl.c:699
+#: src/ne_openssl.c:727
 #, c-format
 msgid "SSL server did not present certificate"
 msgstr "Serwer SSL nie przedstawił certyfikatu"
 
-#: src/ne_openssl.c:708
+#: src/ne_openssl.c:736
 #, c-format
 msgid "Server certificate changed: connection intercepted?"
 msgstr "Certyfikat serwera zmienił się: połączenie przechwycone?"
@@ -288,197 +296,198 @@ msgstr "nieprawidłowe przesunięcie"
 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:385
+#: src/ne_request.c:423
 msgid "Could not send request body"
 msgstr "Nie można wysłać ciała żądania"
 
-#: src/ne_request.c:728
+#: src/ne_request.c:450
+#, fuzzy
+msgid "Could not send chunked request terminator"
+msgstr "Nie można wysłać żądania połączenia"
+
+#: src/ne_request.c:784
 msgid "Could not read chunk size"
 msgstr "Nie można odczytać rozmiaru kawałka"
 
-#: src/ne_request.c:735
+#: src/ne_request.c:791
 msgid "Could not parse chunk size"
 msgstr "Nie można parsować rozmiaru kawałka"
 
-#: src/ne_request.c:772
+#: src/ne_request.c:828
 msgid "Could not read response body"
 msgstr "Nie można odczytać ciała odpowiedzi"
 
-#: src/ne_request.c:788
+#: src/ne_request.c:844
 msgid "Could not read chunk delimiter"
 msgstr "Nie można odczytać ogranicznika kawałka"
 
-#: src/ne_request.c:791
+#: src/ne_request.c:847
 msgid "Chunk delimiter was invalid"
 msgstr "Ogranicznik kawałka był nieprawidłowy"
 
-#: src/ne_request.c:896
+#: src/ne_request.c:952
 msgid "Could not read status line"
 msgstr "Nie można odczytać linii statusu"
 
-#: src/ne_request.c:918
+#: src/ne_request.c:974
 msgid "Could not parse response status line"
 msgstr "Nie można parsować linii statusu odpowiedzi"
 
-#: src/ne_request.c:930
+#: src/ne_request.c:986
 msgid "Could not read interim response headers"
 msgstr "Nie można odczytać nagłówków tymczasowej odpowiedzi"
 
-#: src/ne_request.c:964
+#: src/ne_request.c:1020
 msgid "Could not send request"
 msgstr "Nie można wysłać żądania"
 
-#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040
+#: src/ne_request.c:1068 src/ne_request.c:1086 src/ne_request.c:1096
 msgid "Error reading response headers"
 msgstr "Błąd podczas odczytywania nagłówków odpowiedzi"
 
-#: src/ne_request.c:1058
+#: src/ne_request.c:1114
 #, c-format
 msgid "Response header too long"
 msgstr "Nagłówek odpowiedzi zbyt długi"
 
-#: src/ne_request.c:1140
+#: src/ne_request.c:1196
 msgid "Response exceeded maximum number of header fields"
 msgstr "Odpowiedź przekroczyła maksymalną liczbę pól nagłówka"
 
-#: src/ne_request.c:1155
+#: src/ne_request.c:1211
 #, c-format
 msgid "Could not resolve hostname `%s': %s"
 msgstr "Nie można rozwiązać nazwy hosta `%s': %s"
 
-#: src/ne_request.c:1286
+#: src/ne_request.c:1342
 msgid "Unknown transfer-coding in response"
 msgstr "Nieznane transfer-coding w odpowiedzi"
 
-#: src/ne_request.c:1299
+#: src/ne_request.c:1355
 msgid "Invalid Content-Length in response"
 msgstr "Nieprawidłowe Content-Length w odpowiedzi"
 
-#: src/ne_request.c:1372
+#: src/ne_request.c:1428
 #, c-format
 msgid "Could not write to file: %s"
 msgstr "Nie można pisać do pliku: %s"
 
-#: src/ne_request.c:1445
+#: src/ne_request.c:1501
 #, 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:1484
+#: src/ne_request.c:1540
 #, c-format
 msgid "Could not create socket"
 msgstr "Nie można utworzyć gniazda"
 
-#: src/ne_request.c:1518
+#: src/ne_request.c:1574
 msgid "Could not connect to server"
 msgstr "Nie można połączyć się z serwerem"
 
-#: src/ne_request.c:1520
+#: src/ne_request.c:1576
 msgid "Could not connect to proxy server"
 msgstr "Nie można połączyć się z serwerem proxy"
 
-#: src/ne_request.c:1563
+#: src/ne_request.c:1619
 #, 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:1621
+#: src/ne_request.c:1677
 #, 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:530 src/ne_session.c:541
+#: src/ne_session.c:538 src/ne_session.c:549
 msgid "[invalid date]"
 msgstr "[nieprawidłowa data]"
 
-#: src/ne_session.c:554
+#: src/ne_session.c:562
 msgid "certificate is not yet valid"
 msgstr "certyfikat nie jest jeszcze poprawny"
 
-#: src/ne_session.c:555
+#: src/ne_session.c:563
 msgid "certificate has expired"
 msgstr "certyfikat wygasł"
 
-#: src/ne_session.c:556
+#: src/ne_session.c:564
 msgid "certificate issued for a different hostname"
 msgstr "certyfikat wydany dla innej nazwy hosta"
 
-#: src/ne_session.c:557
+#: src/ne_session.c:565
 msgid "issuer is not trusted"
 msgstr "wydawca nie jest zaufany"
 
-#: src/ne_session.c:558
+#: src/ne_session.c:566
 msgid "bad certificate chain"
 msgstr "zły łańcuch certyfikatu"
 
-#: src/ne_session.c:559
+#: src/ne_session.c:567
 msgid "certificate has been revoked"
 msgstr "certyfikat został unieważniony"
 
-#: src/ne_session.c:564
+#: src/ne_session.c:572
 msgid "Server certificate verification failed: "
 msgstr "Weryfikacja certyfikatu serwera nie powiodła się: "
 
-#: src/ne_socket.c:516 src/ne_socket.c:612 src/ne_socket.c:716
+#: src/ne_socket.c:522 src/ne_socket.c:618 src/ne_socket.c:722
 msgid "Connection closed"
 msgstr "Połączenie zamknięte"
 
-#: src/ne_socket.c:622 src/ne_socket.c:728
+#: src/ne_socket.c:628 src/ne_socket.c:736
 msgid "Secure connection truncated"
 msgstr "Bezpieczne połączenie obcięte"
 
-#: src/ne_socket.c:634 src/ne_socket.c:740
+#: src/ne_socket.c:640 src/ne_socket.c:748
 #, c-format
 msgid "SSL error: %s"
 msgstr "Błąd SSL: %s"
 
-#: src/ne_socket.c:637
+#: src/ne_socket.c:643
 #, c-format
 msgid "SSL error code %d/%d/%lu"
 msgstr "Kod błędu SSL %d/%d/%lu"
 
-#: src/ne_socket.c:721
+#: src/ne_socket.c:727
 #, c-format
 msgid "SSL alert received: %s"
 msgstr "Alarm SSL otrzymany: %s"
 
-#: src/ne_socket.c:736
+#: src/ne_socket.c:744
 msgid "SSL socket read failed"
 msgstr "Odczytywanie gniazda SSL nie powiodło się"
 
-#: src/ne_socket.c:867
+#: src/ne_socket.c:875
 msgid "Line too long"
 msgstr "Linia zbyt długa"
 
-#: src/ne_socket.c:1012 src/ne_socket.c:1018
+#: src/ne_socket.c:1036 src/ne_socket.c:1042
 msgid "Host not found"
 msgstr "Host nieznaleziony"
 
-#: src/ne_socket.c:1221
+#: src/ne_socket.c:1249
 msgid "Connection timed out"
 msgstr "Czas połączenia się skończył"
 
-#: src/ne_socket.c:1412
+#: src/ne_socket.c:1442
 msgid "Socket descriptor number exceeds FD_SETSIZE"
 msgstr "Numer deskryptoru gniazda przekracza FD_SETSIZE"
 
-#: src/ne_socket.c:1474
+#: src/ne_socket.c:1504
 msgid "Socket family not supported"
 msgstr "Rodzina gniazda niewspierana"
 
-#: src/ne_socket.c:1701
+#: src/ne_socket.c:1735
 msgid "Client certificate verification failed"
 msgstr "Weryfikacja certyfikatu klienta nie powiodła się"
 
-#: src/ne_socket.c:1717
+#: src/ne_socket.c:1751
 msgid "SSL disabled due to lack of entropy"
 msgstr "SSL wyłączone z powodu braku entropii"
 
-#: src/ne_socket.c:1724
-msgid "SSL disabled due to library version mismatch"
-msgstr "SSL wyłączone z powodu niezgodności wersji biblioteki"
-
-#: src/ne_socket.c:1730
+#: src/ne_socket.c:1757
 msgid "Could not create SSL structure"
 msgstr "Nie można utworzyć struktury SSL"
 
@@ -622,3 +631,6 @@ msgstr "Błąd podczas parsowania XML w linii %d: %s"
 #, c-format
 msgid "Could not parse response: %s"
 msgstr "Nie można parsować odpowiedzi: %s"
+
+#~ msgid "SSL disabled due to library version mismatch"
+#~ msgstr "SSL wyłączone z powodu niezgodności wersji biblioteki"
index 7e0bb77..43c428e 100644 (file)
Binary files a/po/ru.gmo and b/po/ru.gmo differ
index 5cb1ac1..ea9dd58 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -6,10 +6,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sitecopy 0.11.5\n"
 "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n"
-"POT-Creation-Date: 2010-10-01 13:30+0100\n"
+"POT-Creation-Date: 2013-07-31 16:46+0100\n"
 "PO-Revision-Date: 2002-11-11 14:28+0000\n"
 "Last-Translator: Michael Sobolev <neon@webdav.org>\n"
 "Language-Team: ru\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=koi8-r\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -21,108 +22,113 @@ msgid ""
 "Status line was: %s"
 msgstr ""
 
-#: src/ne_auth.c:134
+#: src/ne_auth.c:139
 #, fuzzy, c-format
 msgid "Could not authenticate to server: %s"
 msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
 
-#: src/ne_auth.c:139
+#: src/ne_auth.c:144
 #, fuzzy, c-format
 msgid "Could not authenticate to proxy server: %s"
 msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
 
-#: src/ne_auth.c:374
+#: src/ne_auth.c:386
 #, c-format
 msgid "rejected %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:390
+#: src/ne_auth.c:402
 msgid "missing realm in Basic challenge"
 msgstr ""
 
-#: src/ne_auth.c:485
+#: src/ne_auth.c:497
 msgid "invalid Negotiate token"
 msgstr ""
 
-#: src/ne_auth.c:508
+#: src/ne_auth.c:520
 msgid "GSSAPI authentication error: "
 msgstr ""
 
-#: src/ne_auth.c:521
+#: src/ne_auth.c:533
 #, c-format
 msgid "GSSAPI failure (code %u)"
 msgstr ""
 
-#: src/ne_auth.c:556
+#: src/ne_auth.c:568
 msgid "ignoring empty Negotiate continuation"
 msgstr ""
 
-#: src/ne_auth.c:571
+#: src/ne_auth.c:583
 #, c-format
 msgid "Negotiate response verification failed: invalid response header token"
 msgstr ""
 
-#: src/ne_auth.c:593
+#: src/ne_auth.c:605
 #, c-format
 msgid "Negotiate response verification failure: %s"
 msgstr ""
 
-#: src/ne_auth.c:765
+#: src/ne_auth.c:669
+#, c-format
+msgid "SSPI response verification failed: invalid response header token"
+msgstr ""
+
+#: src/ne_auth.c:802
 msgid "unknown algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:769
+#: src/ne_auth.c:806
 msgid "incompatible algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:773
+#: src/ne_auth.c:810
 msgid "missing parameter in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:777
+#: src/ne_auth.c:814
 msgid "initial Digest challenge was stale"
 msgstr ""
 
-#: src/ne_auth.c:784
+#: src/ne_auth.c:821
 msgid "stale Digest challenge with new algorithm or realm"
 msgstr ""
 
-#: src/ne_auth.c:796
+#: src/ne_auth.c:833
 #, fuzzy
 msgid "could not parse domain in Digest challenge"
 msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
 
-#: src/ne_auth.c:1105
+#: src/ne_auth.c:1142
 #, c-format
 msgid "Digest mutual authentication failure: missing parameters"
 msgstr ""
 
-#: src/ne_auth.c:1110
+#: src/ne_auth.c:1147
 #, c-format
 msgid "Digest mutual authentication failure: client nonce mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1120
+#: src/ne_auth.c:1157
 #, c-format
 msgid "Digest mutual authentication failure: could not parse nonce count"
 msgstr ""
 
-#: src/ne_auth.c:1125
+#: src/ne_auth.c:1162
 #, c-format
 msgid "Digest mutual authentication failure: nonce count mismatch (%u not %u)"
 msgstr ""
 
-#: src/ne_auth.c:1168
+#: src/ne_auth.c:1205
 #, c-format
 msgid "Digest mutual authentication failure: request-digest mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1299
+#: src/ne_auth.c:1336
 #, c-format
 msgid "ignored %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:1378
+#: src/ne_auth.c:1415
 #, fuzzy
 msgid "could not parse challenge"
 msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
@@ -162,50 +168,50 @@ msgstr "%s: 
 msgid "Could not initialize zlib"
 msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
 
-#: src/ne_gnutls.c:172
+#: src/ne_gnutls.c:176
 #, c-format
 msgid "[unprintable:#%lu]"
 msgstr ""
 
-#: src/ne_gnutls.c:201
+#: src/ne_gnutls.c:205
 msgid "[unprintable]"
 msgstr ""
 
-#: src/ne_gnutls.c:817
+#: src/ne_gnutls.c:845
 msgid "signed using insecure algorithm"
 msgstr ""
 
-#: src/ne_gnutls.c:820
+#: src/ne_gnutls.c:848
 #, c-format
 msgid "unrecognized errors (%u)"
 msgstr ""
 
-#: src/ne_gnutls.c:865 src/ne_openssl.c:468
+#: src/ne_gnutls.c:893 src/ne_openssl.c:470
 #, c-format
 msgid "Server certificate was missing commonName attribute in subject name"
 msgstr ""
 
-#: src/ne_gnutls.c:879
+#: src/ne_gnutls.c:907
 #, fuzzy, c-format
 msgid "Could not verify server certificate: %s"
 msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
 
-#: src/ne_gnutls.c:891 src/ne_openssl.c:455
+#: src/ne_gnutls.c:919 src/ne_openssl.c:457
 #, c-format
 msgid "Certificate verification error: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:924 src/ne_openssl.c:674
+#: src/ne_gnutls.c:952 src/ne_openssl.c:702
 #, c-format
 msgid "SSL handshake failed, client certificate was requested: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:929 src/ne_openssl.c:679
+#: src/ne_gnutls.c:957 src/ne_openssl.c:707
 #, fuzzy, c-format
 msgid "SSL handshake failed: %s"
 msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
 
-#: src/ne_gnutls.c:939
+#: src/ne_gnutls.c:967
 #, c-format
 msgid "Server did not send certificate chain"
 msgstr ""
@@ -224,12 +230,12 @@ msgstr ""
 msgid "No activelock for <%s> returned in LOCK refresh response"
 msgstr ""
 
-#: src/ne_openssl.c:699
+#: src/ne_openssl.c:727
 #, c-format
 msgid "SSL server did not present certificate"
 msgstr ""
 
-#: src/ne_openssl.c:708
+#: src/ne_openssl.c:736
 #, c-format
 msgid "Server certificate changed: connection intercepted?"
 msgstr ""
@@ -277,201 +283,202 @@ msgstr ""
 msgid "Could not seek to offset %s of request body file: %s"
 msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
 
-#: src/ne_request.c:385
+#: src/ne_request.c:423
 msgid "Could not send request body"
 msgstr ""
 
-#: src/ne_request.c:728
+#: src/ne_request.c:450
+#, fuzzy
+msgid "Could not send chunked request terminator"
+msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
+
+#: src/ne_request.c:784
 msgid "Could not read chunk size"
 msgstr ""
 
-#: src/ne_request.c:735
+#: src/ne_request.c:791
 #, fuzzy
 msgid "Could not parse chunk size"
 msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
 
-#: src/ne_request.c:772
+#: src/ne_request.c:828
 msgid "Could not read response body"
 msgstr ""
 
-#: src/ne_request.c:788
+#: src/ne_request.c:844
 #, fuzzy
 msgid "Could not read chunk delimiter"
 msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
 
-#: src/ne_request.c:791
+#: src/ne_request.c:847
 msgid "Chunk delimiter was invalid"
 msgstr ""
 
-#: src/ne_request.c:896
+#: src/ne_request.c:952
 msgid "Could not read status line"
 msgstr ""
 
-#: src/ne_request.c:918
+#: src/ne_request.c:974
 #, fuzzy
 msgid "Could not parse response status line"
 msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
 
-#: src/ne_request.c:930
+#: src/ne_request.c:986
 #, fuzzy
 msgid "Could not read interim response headers"
 msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
 
-#: src/ne_request.c:964
+#: src/ne_request.c:1020
 msgid "Could not send request"
 msgstr ""
 
-#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040
+#: src/ne_request.c:1068 src/ne_request.c:1086 src/ne_request.c:1096
 msgid "Error reading response headers"
 msgstr ""
 
-#: src/ne_request.c:1058
+#: src/ne_request.c:1114
 #, c-format
 msgid "Response header too long"
 msgstr ""
 
-#: src/ne_request.c:1140
+#: src/ne_request.c:1196
 msgid "Response exceeded maximum number of header fields"
 msgstr ""
 
-#: src/ne_request.c:1155
+#: src/ne_request.c:1211
 #, fuzzy, c-format
 msgid "Could not resolve hostname `%s': %s"
 msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s.\n"
 
-#: src/ne_request.c:1286
+#: src/ne_request.c:1342
 msgid "Unknown transfer-coding in response"
 msgstr ""
 
-#: src/ne_request.c:1299
+#: src/ne_request.c:1355
 msgid "Invalid Content-Length in response"
 msgstr ""
 
-#: src/ne_request.c:1372
+#: src/ne_request.c:1428
 #, fuzzy, c-format
 msgid "Could not write to file: %s"
 msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
 
-#: src/ne_request.c:1445
+#: src/ne_request.c:1501
 #, c-format
 msgid "Could not create SSL connection through proxy server: %s"
 msgstr ""
 
-#: src/ne_request.c:1484
+#: src/ne_request.c:1540
 #, fuzzy, c-format
 msgid "Could not create socket"
 msgstr "%s: ïÛÉÂËÁ: îÅ ÕÄÁÌÏÓØ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ: %s\n"
 
-#: src/ne_request.c:1518
+#: src/ne_request.c:1574
 msgid "Could not connect to server"
 msgstr ""
 
-#: src/ne_request.c:1520
+#: src/ne_request.c:1576
 msgid "Could not connect to proxy server"
 msgstr ""
 
-#: src/ne_request.c:1563
+#: src/ne_request.c:1619
 #, c-format
 msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy"
 msgstr ""
 
-#: src/ne_request.c:1621
+#: src/ne_request.c:1677
 #, c-format
 msgid "Could not establish connection from SOCKS proxy (%s:%u): %s"
 msgstr ""
 
-#: src/ne_session.c:530 src/ne_session.c:541
+#: src/ne_session.c:538 src/ne_session.c:549
 msgid "[invalid date]"
 msgstr ""
 
-#: src/ne_session.c:554
+#: src/ne_session.c:562
 msgid "certificate is not yet valid"
 msgstr ""
 
-#: src/ne_session.c:555
+#: src/ne_session.c:563
 msgid "certificate has expired"
 msgstr ""
 
-#: src/ne_session.c:556
+#: src/ne_session.c:564
 msgid "certificate issued for a different hostname"
 msgstr ""
 
-#: src/ne_session.c:557
+#: src/ne_session.c:565
 msgid "issuer is not trusted"
 msgstr ""
 
-#: src/ne_session.c:558
+#: src/ne_session.c:566
 msgid "bad certificate chain"
 msgstr ""
 
-#: src/ne_session.c:559
+#: src/ne_session.c:567
 msgid "certificate has been revoked"
 msgstr ""
 
-#: src/ne_session.c:564
+#: src/ne_session.c:572
 msgid "Server certificate verification failed: "
 msgstr ""
 
-#: src/ne_socket.c:516 src/ne_socket.c:612 src/ne_socket.c:716
+#: src/ne_socket.c:522 src/ne_socket.c:618 src/ne_socket.c:722
 msgid "Connection closed"
 msgstr ""
 
-#: src/ne_socket.c:622 src/ne_socket.c:728
+#: src/ne_socket.c:628 src/ne_socket.c:736
 msgid "Secure connection truncated"
 msgstr ""
 
-#: src/ne_socket.c:634 src/ne_socket.c:740
+#: src/ne_socket.c:640 src/ne_socket.c:748
 #, c-format
 msgid "SSL error: %s"
 msgstr ""
 
-#: src/ne_socket.c:637
+#: src/ne_socket.c:643
 #, c-format
 msgid "SSL error code %d/%d/%lu"
 msgstr ""
 
-#: src/ne_socket.c:721
+#: src/ne_socket.c:727
 #, c-format
 msgid "SSL alert received: %s"
 msgstr ""
 
-#: src/ne_socket.c:736
+#: src/ne_socket.c:744
 msgid "SSL socket read failed"
 msgstr ""
 
-#: src/ne_socket.c:867
+#: src/ne_socket.c:875
 msgid "Line too long"
 msgstr ""
 
-#: src/ne_socket.c:1012 src/ne_socket.c:1018
+#: src/ne_socket.c:1036 src/ne_socket.c:1042
 msgid "Host not found"
 msgstr ""
 
-#: src/ne_socket.c:1221
+#: src/ne_socket.c:1249
 msgid "Connection timed out"
 msgstr ""
 
-#: src/ne_socket.c:1412
+#: src/ne_socket.c:1442
 msgid "Socket descriptor number exceeds FD_SETSIZE"
 msgstr ""
 
-#: src/ne_socket.c:1474
+#: src/ne_socket.c:1504
 msgid "Socket family not supported"
 msgstr ""
 
-#: src/ne_socket.c:1701
+#: src/ne_socket.c:1735
 msgid "Client certificate verification failed"
 msgstr ""
 
-#: src/ne_socket.c:1717
+#: src/ne_socket.c:1751
 msgid "SSL disabled due to lack of entropy"
 msgstr ""
 
-#: src/ne_socket.c:1724
-msgid "SSL disabled due to library version mismatch"
-msgstr ""
-
-#: src/ne_socket.c:1730
+#: src/ne_socket.c:1757
 msgid "Could not create SSL structure"
 msgstr ""
 
index 33a5029..20893f4 100644 (file)
Binary files a/po/tr.gmo and b/po/tr.gmo differ
index 245a900..ff99189 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -7,10 +7,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sitecopy-0.10.10\n"
 "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n"
-"POT-Creation-Date: 2010-10-01 13:30+0100\n"
+"POT-Creation-Date: 2013-07-31 16:46+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"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-9\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -24,108 +25,113 @@ msgstr ""
 "Invalid HTTP status line in status element at line %d of response:\n"
 "Status line was: %s"
 
-#: src/ne_auth.c:134
+#: src/ne_auth.c:139
 #, fuzzy, c-format
 msgid "Could not authenticate to server: %s"
 msgstr "Sunucuyla baðlantý kurulamadý"
 
-#: src/ne_auth.c:139
+#: src/ne_auth.c:144
 #, fuzzy, c-format
 msgid "Could not authenticate to proxy server: %s"
 msgstr "Ara sunucuyla baðlantý kurulamadý"
 
-#: src/ne_auth.c:374
+#: src/ne_auth.c:386
 #, c-format
 msgid "rejected %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:390
+#: src/ne_auth.c:402
 msgid "missing realm in Basic challenge"
 msgstr ""
 
-#: src/ne_auth.c:485
+#: src/ne_auth.c:497
 msgid "invalid Negotiate token"
 msgstr ""
 
-#: src/ne_auth.c:508
+#: src/ne_auth.c:520
 msgid "GSSAPI authentication error: "
 msgstr ""
 
-#: src/ne_auth.c:521
+#: src/ne_auth.c:533
 #, c-format
 msgid "GSSAPI failure (code %u)"
 msgstr ""
 
-#: src/ne_auth.c:556
+#: src/ne_auth.c:568
 msgid "ignoring empty Negotiate continuation"
 msgstr ""
 
-#: src/ne_auth.c:571
+#: src/ne_auth.c:583
 #, c-format
 msgid "Negotiate response verification failed: invalid response header token"
 msgstr ""
 
-#: src/ne_auth.c:593
+#: src/ne_auth.c:605
 #, c-format
 msgid "Negotiate response verification failure: %s"
 msgstr ""
 
-#: src/ne_auth.c:765
+#: src/ne_auth.c:669
+#, c-format
+msgid "SSPI response verification failed: invalid response header token"
+msgstr ""
+
+#: src/ne_auth.c:802
 msgid "unknown algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:769
+#: src/ne_auth.c:806
 msgid "incompatible algorithm in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:773
+#: src/ne_auth.c:810
 msgid "missing parameter in Digest challenge"
 msgstr ""
 
-#: src/ne_auth.c:777
+#: src/ne_auth.c:814
 msgid "initial Digest challenge was stale"
 msgstr ""
 
-#: src/ne_auth.c:784
+#: src/ne_auth.c:821
 msgid "stale Digest challenge with new algorithm or realm"
 msgstr ""
 
-#: src/ne_auth.c:796
+#: src/ne_auth.c:833
 #, fuzzy
 msgid "could not parse domain in Digest challenge"
 msgstr "Parça boyutu anlaþýlamadý"
 
-#: src/ne_auth.c:1105
+#: src/ne_auth.c:1142
 #, c-format
 msgid "Digest mutual authentication failure: missing parameters"
 msgstr ""
 
-#: src/ne_auth.c:1110
+#: src/ne_auth.c:1147
 #, c-format
 msgid "Digest mutual authentication failure: client nonce mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1120
+#: src/ne_auth.c:1157
 #, c-format
 msgid "Digest mutual authentication failure: could not parse nonce count"
 msgstr ""
 
-#: src/ne_auth.c:1125
+#: src/ne_auth.c:1162
 #, c-format
 msgid "Digest mutual authentication failure: nonce count mismatch (%u not %u)"
 msgstr ""
 
-#: src/ne_auth.c:1168
+#: src/ne_auth.c:1205
 #, c-format
 msgid "Digest mutual authentication failure: request-digest mismatch"
 msgstr ""
 
-#: src/ne_auth.c:1299
+#: src/ne_auth.c:1336
 #, c-format
 msgid "ignored %s challenge"
 msgstr ""
 
-#: src/ne_auth.c:1378
+#: src/ne_auth.c:1415
 #, fuzzy
 msgid "could not parse challenge"
 msgstr "Parça boyutu anlaþýlamadý"
@@ -165,50 +171,50 @@ msgstr "Dosya a
 msgid "Could not initialize zlib"
 msgstr "Dosyaya yazým yapýlamadý: "
 
-#: src/ne_gnutls.c:172
+#: src/ne_gnutls.c:176
 #, c-format
 msgid "[unprintable:#%lu]"
 msgstr ""
 
-#: src/ne_gnutls.c:201
+#: src/ne_gnutls.c:205
 msgid "[unprintable]"
 msgstr ""
 
-#: src/ne_gnutls.c:817
+#: src/ne_gnutls.c:845
 msgid "signed using insecure algorithm"
 msgstr ""
 
-#: src/ne_gnutls.c:820
+#: src/ne_gnutls.c:848
 #, c-format
 msgid "unrecognized errors (%u)"
 msgstr ""
 
-#: src/ne_gnutls.c:865 src/ne_openssl.c:468
+#: src/ne_gnutls.c:893 src/ne_openssl.c:470
 #, c-format
 msgid "Server certificate was missing commonName attribute in subject name"
 msgstr ""
 
-#: src/ne_gnutls.c:879
+#: src/ne_gnutls.c:907
 #, fuzzy, c-format
 msgid "Could not verify server certificate: %s"
 msgstr "%s dosyasýna yazým yapýlamadý"
 
-#: src/ne_gnutls.c:891 src/ne_openssl.c:455
+#: src/ne_gnutls.c:919 src/ne_openssl.c:457
 #, c-format
 msgid "Certificate verification error: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:924 src/ne_openssl.c:674
+#: src/ne_gnutls.c:952 src/ne_openssl.c:702
 #, c-format
 msgid "SSL handshake failed, client certificate was requested: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:929 src/ne_openssl.c:679
+#: src/ne_gnutls.c:957 src/ne_openssl.c:707
 #, fuzzy, c-format
 msgid "SSL handshake failed: %s"
 msgstr "%s dosyasýna yazým yapýlamadý"
 
-#: src/ne_gnutls.c:939
+#: src/ne_gnutls.c:967
 #, c-format
 msgid "Server did not send certificate chain"
 msgstr ""
@@ -227,12 +233,12 @@ msgstr ""
 msgid "No activelock for <%s> returned in LOCK refresh response"
 msgstr ""
 
-#: src/ne_openssl.c:699
+#: src/ne_openssl.c:727
 #, c-format
 msgid "SSL server did not present certificate"
 msgstr ""
 
-#: src/ne_openssl.c:708
+#: src/ne_openssl.c:736
 #, c-format
 msgid "Server certificate changed: connection intercepted?"
 msgstr ""
@@ -280,203 +286,204 @@ msgstr ""
 msgid "Could not seek to offset %s of request body file: %s"
 msgstr "%s dosyasýna yazým yapýlamadý"
 
-#: src/ne_request.c:385
+#: src/ne_request.c:423
 msgid "Could not send request body"
 msgstr "Ýstek metni gönderilemedi"
 
-#: src/ne_request.c:728
+#: src/ne_request.c:450
+#, fuzzy
+msgid "Could not send chunked request terminator"
+msgstr "Ýstek gönderilemedi"
+
+#: src/ne_request.c:784
 msgid "Could not read chunk size"
 msgstr "Parça boyutu öðrenilemedi"
 
-#: src/ne_request.c:735
+#: src/ne_request.c:791
 msgid "Could not parse chunk size"
 msgstr "Parça boyutu anlaþýlamadý"
 
-#: src/ne_request.c:772
+#: src/ne_request.c:828
 msgid "Could not read response body"
 msgstr "Yanýt metni okunamadý"
 
-#: src/ne_request.c:788
+#: src/ne_request.c:844
 #, fuzzy
 msgid "Could not read chunk delimiter"
 msgstr "Parça boyutu öðrenilemedi"
 
-#: src/ne_request.c:791
+#: src/ne_request.c:847
 msgid "Chunk delimiter was invalid"
 msgstr ""
 
-#: src/ne_request.c:896
+#: src/ne_request.c:952
 msgid "Could not read status line"
 msgstr "Durum satýrý okunamadý"
 
-#: src/ne_request.c:918
+#: src/ne_request.c:974
 #, fuzzy
 msgid "Could not parse response status line"
 msgstr "Durum satýrý anlaþýlamadý."
 
-#: src/ne_request.c:930
+#: src/ne_request.c:986
 #, fuzzy
 msgid "Could not read interim response headers"
 msgstr "Yanýt metni okunamadý"
 
-#: src/ne_request.c:964
+#: src/ne_request.c:1020
 msgid "Could not send request"
 msgstr "Ýstek gönderilemedi"
 
-#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040
+#: src/ne_request.c:1068 src/ne_request.c:1086 src/ne_request.c:1096
 msgid "Error reading response headers"
 msgstr "Yanýt baþlýklarý okunurken hata"
 
-#: src/ne_request.c:1058
+#: src/ne_request.c:1114
 #, c-format
 msgid "Response header too long"
 msgstr "Yanýt baþlýðý çok uzun"
 
-#: src/ne_request.c:1140
+#: src/ne_request.c:1196
 msgid "Response exceeded maximum number of header fields"
 msgstr ""
 
-#: src/ne_request.c:1155
+#: src/ne_request.c:1211
 #, fuzzy, c-format
 msgid "Could not resolve hostname `%s': %s"
 msgstr "%s: Hata: %s sunucusunun adresi bulunamadý.\n"
 
-#: src/ne_request.c:1286
+#: src/ne_request.c:1342
 msgid "Unknown transfer-coding in response"
 msgstr ""
 
-#: src/ne_request.c:1299
+#: src/ne_request.c:1355
 msgid "Invalid Content-Length in response"
 msgstr ""
 
-#: src/ne_request.c:1372
+#: src/ne_request.c:1428
 #, c-format
 msgid "Could not write to file: %s"
 msgstr "%s dosyasýna yazým yapýlamadý"
 
-#: src/ne_request.c:1445
+#: src/ne_request.c:1501
 #, fuzzy, c-format
 msgid "Could not create SSL connection through proxy server: %s"
 msgstr "Ara sunucu üzerinden SSL baðlantýsý kurulamadý"
 
-#: src/ne_request.c:1484
+#: src/ne_request.c:1540
 #, fuzzy, c-format
 msgid "Could not create socket"
 msgstr "SSL baðlantýsý kurulamadý"
 
-#: src/ne_request.c:1518
+#: src/ne_request.c:1574
 msgid "Could not connect to server"
 msgstr "Sunucuyla baðlantý kurulamadý"
 
-#: src/ne_request.c:1520
+#: src/ne_request.c:1576
 msgid "Could not connect to proxy server"
 msgstr "Ara sunucuyla baðlantý kurulamadý"
 
-#: src/ne_request.c:1563
+#: src/ne_request.c:1619
 #, c-format
 msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy"
 msgstr ""
 
-#: src/ne_request.c:1621
+#: src/ne_request.c:1677
 #, fuzzy, c-format
 msgid "Could not establish connection from SOCKS proxy (%s:%u): %s"
 msgstr "Ara sunucu üzerinden SSL baðlantýsý kurulamadý"
 
-#: src/ne_session.c:530 src/ne_session.c:541
+#: src/ne_session.c:538 src/ne_session.c:549
 msgid "[invalid date]"
 msgstr ""
 
-#: src/ne_session.c:554
+#: src/ne_session.c:562
 msgid "certificate is not yet valid"
 msgstr ""
 
-#: src/ne_session.c:555
+#: src/ne_session.c:563
 msgid "certificate has expired"
 msgstr ""
 
-#: src/ne_session.c:556
+#: src/ne_session.c:564
 msgid "certificate issued for a different hostname"
 msgstr ""
 
-#: src/ne_session.c:557
+#: src/ne_session.c:565
 msgid "issuer is not trusted"
 msgstr ""
 
-#: src/ne_session.c:558
+#: src/ne_session.c:566
 msgid "bad certificate chain"
 msgstr ""
 
-#: src/ne_session.c:559
+#: src/ne_session.c:567
 msgid "certificate has been revoked"
 msgstr ""
 
-#: src/ne_session.c:564
+#: src/ne_session.c:572
 msgid "Server certificate verification failed: "
 msgstr ""
 
-#: src/ne_socket.c:516 src/ne_socket.c:612 src/ne_socket.c:716
+#: src/ne_socket.c:522 src/ne_socket.c:618 src/ne_socket.c:722
 #, fuzzy
 msgid "Connection closed"
 msgstr "Baðlantý sunucu tarafýndan kesildi"
 
-#: src/ne_socket.c:622 src/ne_socket.c:728
+#: src/ne_socket.c:628 src/ne_socket.c:736
 #, fuzzy
 msgid "Secure connection truncated"
 msgstr "Baðlantý süre sýnýrý aþýldý."
 
-#: src/ne_socket.c:634 src/ne_socket.c:740
+#: src/ne_socket.c:640 src/ne_socket.c:748
 #, fuzzy, c-format
 msgid "SSL error: %s"
 msgstr "%s: Hata: %s\n"
 
-#: src/ne_socket.c:637
+#: src/ne_socket.c:643
 #, c-format
 msgid "SSL error code %d/%d/%lu"
 msgstr ""
 
-#: src/ne_socket.c:721
+#: src/ne_socket.c:727
 #, fuzzy, c-format
 msgid "SSL alert received: %s"
 msgstr "%s: Hata: %s\n"
 
-#: src/ne_socket.c:736
+#: src/ne_socket.c:744
 msgid "SSL socket read failed"
 msgstr ""
 
-#: src/ne_socket.c:867
+#: src/ne_socket.c:875
 msgid "Line too long"
 msgstr "Satýr çok uzun"
 
-#: src/ne_socket.c:1012 src/ne_socket.c:1018
+#: src/ne_socket.c:1036 src/ne_socket.c:1042
 msgid "Host not found"
 msgstr "Sunucu bulunamadý"
 
-#: src/ne_socket.c:1221
+#: src/ne_socket.c:1249
 #, fuzzy
 msgid "Connection timed out"
 msgstr "%s: baðlantý bekleme sýnýrý aþýldý."
 
-#: src/ne_socket.c:1412
+#: src/ne_socket.c:1442
 msgid "Socket descriptor number exceeds FD_SETSIZE"
 msgstr ""
 
-#: src/ne_socket.c:1474
+#: src/ne_socket.c:1504
 msgid "Socket family not supported"
 msgstr ""
 
-#: src/ne_socket.c:1701
+#: src/ne_socket.c:1735
 msgid "Client certificate verification failed"
 msgstr ""
 
-#: src/ne_socket.c:1717
+#: src/ne_socket.c:1751
 msgid "SSL disabled due to lack of entropy"
 msgstr ""
 
-#: src/ne_socket.c:1724
-msgid "SSL disabled due to library version mismatch"
-msgstr ""
-
-#: src/ne_socket.c:1730
+#: src/ne_socket.c:1757
 #, fuzzy
 msgid "Could not create SSL structure"
 msgstr "SSL baðlantýsý kurulamadý"
index 5dd9dc3..f942eab 100644 (file)
Binary files a/po/zh_CN.gmo and b/po/zh_CN.gmo differ
index e036d2b..b5e45c7 100644 (file)
@@ -9,10 +9,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: neon 0.29.x\n"
 "Report-Msgid-Bugs-To: neon@lists.manyfish.co.uk\n"
-"POT-Creation-Date: 2010-10-01 13:30+0100\n"
+"POT-Creation-Date: 2013-07-31 16:46+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"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -26,107 +27,112 @@ msgstr ""
 "响应信息中 %d 行的状态元素中发现非法 HTTP 状态行:\n"
 "状态行是: %s"
 
-#: src/ne_auth.c:134
+#: src/ne_auth.c:139
 #, c-format
 msgid "Could not authenticate to server: %s"
 msgstr "不能认证到服务器: %s"
 
-#: src/ne_auth.c:139
+#: src/ne_auth.c:144
 #, c-format
 msgid "Could not authenticate to proxy server: %s"
 msgstr "不能认证到代理服务器: %s"
 
-#: src/ne_auth.c:374
+#: src/ne_auth.c:386
 #, c-format
 msgid "rejected %s challenge"
 msgstr "被拒绝的 %s 挑战"
 
-#: src/ne_auth.c:390
+#: src/ne_auth.c:402
 msgid "missing realm in Basic challenge"
 msgstr "在基本挑战中丢失了领域"
 
-#: src/ne_auth.c:485
+#: src/ne_auth.c:497
 msgid "invalid Negotiate token"
 msgstr "非法磋商令牌"
 
-#: src/ne_auth.c:508
+#: src/ne_auth.c:520
 msgid "GSSAPI authentication error: "
 msgstr "GSSAPI 认证错误: "
 
-#: src/ne_auth.c:521
+#: src/ne_auth.c:533
 #, c-format
 msgid "GSSAPI failure (code %u)"
 msgstr "GSSAPI 失败(代码 %u)"
 
-#: src/ne_auth.c:556
+#: src/ne_auth.c:568
 msgid "ignoring empty Negotiate continuation"
 msgstr "忽略后续的空磋商"
 
-#: src/ne_auth.c:571
+#: src/ne_auth.c:583
 #, c-format
 msgid "Negotiate response verification failed: invalid response header token"
 msgstr "校验协商响应失败:非法响应头令牌"
 
-#: src/ne_auth.c:593
+#: src/ne_auth.c:605
 #, c-format
 msgid "Negotiate response verification failure: %s"
 msgstr "磋商响应校验失败: %s"
 
-#: src/ne_auth.c:765
+#: src/ne_auth.c:669
+#, fuzzy, c-format
+msgid "SSPI response verification failed: invalid response header token"
+msgstr "校验协商响应失败:非法响应头令牌"
+
+#: src/ne_auth.c:802
 msgid "unknown algorithm in Digest challenge"
 msgstr "在摘要挑战中的算法不可识别"
 
-#: src/ne_auth.c:769
+#: src/ne_auth.c:806
 msgid "incompatible algorithm in Digest challenge"
 msgstr "在摘要挑战中的算法不兼容"
 
-#: src/ne_auth.c:773
+#: src/ne_auth.c:810
 msgid "missing parameter in Digest challenge"
 msgstr "在摘要挑战中的参数丢失"
 
-#: src/ne_auth.c:777
+#: src/ne_auth.c:814
 msgid "initial Digest challenge was stale"
 msgstr "陈旧的初始化摘要挑战"
 
-#: src/ne_auth.c:784
+#: src/ne_auth.c:821
 msgid "stale Digest challenge with new algorithm or realm"
 msgstr "陈旧的摘要挑战用于新算法或新领域"
 
-#: src/ne_auth.c:796
+#: src/ne_auth.c:833
 msgid "could not parse domain in Digest challenge"
 msgstr "在摘要挑战中的不能解析域"
 
-#: src/ne_auth.c:1105
+#: src/ne_auth.c:1142
 #, c-format
 msgid "Digest mutual authentication failure: missing parameters"
 msgstr "摘要互相认证失败:参数遗漏"
 
-#: src/ne_auth.c:1110
+#: src/ne_auth.c:1147
 #, c-format
 msgid "Digest mutual authentication failure: client nonce mismatch"
 msgstr "摘要互相认证失败:客户现时不匹配"
 
-#: src/ne_auth.c:1120
+#: src/ne_auth.c:1157
 #, c-format
 msgid "Digest mutual authentication failure: could not parse nonce count"
 msgstr "摘要互相认证失败:不能解析现时计数"
 
-#: src/ne_auth.c:1125
+#: src/ne_auth.c:1162
 #, c-format
 msgid "Digest mutual authentication failure: nonce count mismatch (%u not %u)"
 msgstr "摘要互相认证失败:现时计算不匹配 (应该是 %u,不是 %u)"
 
-#: src/ne_auth.c:1168
+#: src/ne_auth.c:1205
 #, c-format
 msgid "Digest mutual authentication failure: request-digest mismatch"
 msgstr "摘要互相认证失败:请求摘要不匹配"
 
-#: src/ne_auth.c:1299
+#: src/ne_auth.c:1336
 #, c-format
 msgid "ignored %s challenge"
 msgstr "被忽略的 %s 挑战"
 
-#: src/ne_auth.c:1378
+#: src/ne_auth.c:1415
 msgid "could not parse challenge"
 msgstr "不能解析挑战"
 
@@ -163,50 +169,50 @@ msgstr "解压数据失败"
 msgid "Could not initialize zlib"
 msgstr "初始化 zlib 失败"
 
-#: src/ne_gnutls.c:172
+#: src/ne_gnutls.c:176
 #, c-format
 msgid "[unprintable:#%lu]"
 msgstr "[非打印字符:#%lu]"
 
-#: src/ne_gnutls.c:201
+#: src/ne_gnutls.c:205
 msgid "[unprintable]"
 msgstr "[非打印字符]"
 
-#: src/ne_gnutls.c:817
+#: src/ne_gnutls.c:845
 msgid "signed using insecure algorithm"
 msgstr ""
 
-#: src/ne_gnutls.c:820
+#: src/ne_gnutls.c:848
 #, c-format
 msgid "unrecognized errors (%u)"
 msgstr ""
 
-#: src/ne_gnutls.c:865 src/ne_openssl.c:468
+#: src/ne_gnutls.c:893 src/ne_openssl.c:470
 #, c-format
 msgid "Server certificate was missing commonName attribute in subject name"
 msgstr "服务器证书在主题名称遗漏了属性 commonName"
 
-#: src/ne_gnutls.c:879
+#: src/ne_gnutls.c:907
 #, fuzzy, c-format
 msgid "Could not verify server certificate: %s"
 msgstr "不能写入文件:%s"
 
-#: src/ne_gnutls.c:891 src/ne_openssl.c:455
+#: src/ne_gnutls.c:919 src/ne_openssl.c:457
 #, c-format
 msgid "Certificate verification error: %s"
 msgstr "证书校验失败:%s"
 
-#: src/ne_gnutls.c:924 src/ne_openssl.c:674
+#: src/ne_gnutls.c:952 src/ne_openssl.c:702
 #, c-format
 msgid "SSL handshake failed, client certificate was requested: %s"
 msgstr ""
 
-#: src/ne_gnutls.c:929 src/ne_openssl.c:679
+#: src/ne_gnutls.c:957 src/ne_openssl.c:707
 #, fuzzy, c-format
 msgid "SSL handshake failed: %s"
 msgstr "SSL 协商失败:%s"
 
-#: src/ne_gnutls.c:939
+#: src/ne_gnutls.c:967
 #, c-format
 msgid "Server did not send certificate chain"
 msgstr "服务器不能发送证书链"
@@ -225,12 +231,12 @@ msgstr "锁定 %s 的响应遗漏了主动锁"
 msgid "No activelock for <%s> returned in LOCK refresh response"
 msgstr "刷新锁定 %s 的响应没有返回主动锁"
 
-#: src/ne_openssl.c:699
+#: src/ne_openssl.c:727
 #, c-format
 msgid "SSL server did not present certificate"
 msgstr "SSL 服务器不能呈现证书"
 
-#: src/ne_openssl.c:708
+#: src/ne_openssl.c:736
 #, c-format
 msgid "Server certificate changed: connection intercepted?"
 msgstr "服务器证书改变:是否被拦截攻击?"
@@ -278,199 +284,200 @@ msgstr "非法偏移"
 msgid "Could not seek to offset %s of request body file: %s"
 msgstr "在请求主体文件不能定位到偏移 %s: %s"
 
-#: src/ne_request.c:385
+#: src/ne_request.c:423
 msgid "Could not send request body"
 msgstr "不能发送请求主体"
 
-#: src/ne_request.c:728
+#: src/ne_request.c:450
+#, fuzzy
+msgid "Could not send chunked request terminator"
+msgstr "不能发送请求"
+
+#: src/ne_request.c:784
 msgid "Could not read chunk size"
 msgstr "不能读块大小"
 
-#: src/ne_request.c:735
+#: src/ne_request.c:791
 msgid "Could not parse chunk size"
 msgstr "不能解析块大小"
 
-#: src/ne_request.c:772
+#: src/ne_request.c:828
 msgid "Could not read response body"
 msgstr "不能读取响应主体"
 
-#: src/ne_request.c:788
+#: src/ne_request.c:844
 msgid "Could not read chunk delimiter"
 msgstr "不能读块分割符"
 
-#: src/ne_request.c:791
+#: src/ne_request.c:847
 msgid "Chunk delimiter was invalid"
 msgstr "非法的分割符"
 
-#: src/ne_request.c:896
+#: src/ne_request.c:952
 msgid "Could not read status line"
 msgstr "不能读状态行"
 
-#: src/ne_request.c:918
+#: src/ne_request.c:974
 msgid "Could not parse response status line"
 msgstr "不能解析响应状态行"
 
-#: src/ne_request.c:930
+#: src/ne_request.c:986
 msgid "Could not read interim response headers"
 msgstr "不能读临时响应头"
 
-#: src/ne_request.c:964
+#: src/ne_request.c:1020
 msgid "Could not send request"
 msgstr "不能发送请求"
 
-#: src/ne_request.c:1012 src/ne_request.c:1030 src/ne_request.c:1040
+#: src/ne_request.c:1068 src/ne_request.c:1086 src/ne_request.c:1096
 msgid "Error reading response headers"
 msgstr "读取响应头出错"
 
-#: src/ne_request.c:1058
+#: src/ne_request.c:1114
 #, c-format
 msgid "Response header too long"
 msgstr "响应头太长"
 
-#: src/ne_request.c:1140
+#: src/ne_request.c:1196
 msgid "Response exceeded maximum number of header fields"
 msgstr "响应头的域数量超出了最大数量"
 
-#: src/ne_request.c:1155
+#: src/ne_request.c:1211
 #, c-format
 msgid "Could not resolve hostname `%s': %s"
 msgstr "不能解析主机名称 “%s”: %s"
 
-#: src/ne_request.c:1286
+#: src/ne_request.c:1342
 msgid "Unknown transfer-coding in response"
 msgstr "响应中的传输代码未知"
 
-#: src/ne_request.c:1299
+#: src/ne_request.c:1355
 msgid "Invalid Content-Length in response"
 msgstr "非法的 Content-Length 响应域"
 
-#: src/ne_request.c:1372
+#: src/ne_request.c:1428
 #, c-format
 msgid "Could not write to file: %s"
 msgstr "不能写入文件:%s"
 
-#: src/ne_request.c:1445
+#: src/ne_request.c:1501
 #, c-format
 msgid "Could not create SSL connection through proxy server: %s"
 msgstr "不能通过代理服务器 “%s” 创建 SSL 连接"
 
-#: src/ne_request.c:1484
+#: src/ne_request.c:1540
 #, c-format
 msgid "Could not create socket"
 msgstr "不能创建套接字"
 
-#: src/ne_request.c:1518
+#: src/ne_request.c:1574
 msgid "Could not connect to server"
 msgstr "不能连接到服务器"
 
-#: src/ne_request.c:1520
+#: src/ne_request.c:1576
 msgid "Could not connect to proxy server"
 msgstr "不能连接到代理服务器"
 
-#: src/ne_request.c:1563
+#: src/ne_request.c:1619
 #, c-format
 msgid "Could not find IPv4 address of hostname %s for SOCKS v4 proxy"
 msgstr ""
 
-#: src/ne_request.c:1621
+#: src/ne_request.c:1677
 #, fuzzy, c-format
 msgid "Could not establish connection from SOCKS proxy (%s:%u): %s"
 msgstr "不能通过代理服务器 “%s” 创建 SSL 连接"
 
-#: src/ne_session.c:530 src/ne_session.c:541
+#: src/ne_session.c:538 src/ne_session.c:549
 msgid "[invalid date]"
 msgstr "[非法日期]"
 
-#: src/ne_session.c:554
+#: src/ne_session.c:562
 msgid "certificate is not yet valid"
 msgstr "证书还未生效"
 
-#: src/ne_session.c:555
+#: src/ne_session.c:563
 msgid "certificate has expired"
 msgstr "证书已经过时"
 
-#: src/ne_session.c:556
+#: src/ne_session.c:564
 msgid "certificate issued for a different hostname"
 msgstr "此证书是为不同的主机名称颁发"
 
-#: src/ne_session.c:557
+#: src/ne_session.c:565
 msgid "issuer is not trusted"
 msgstr "证书发行者不被信任"
 
-#: src/ne_session.c:558
+#: src/ne_session.c:566
 #, fuzzy
 msgid "bad certificate chain"
 msgstr "证书已经过时"
 
-#: src/ne_session.c:559
+#: src/ne_session.c:567
 #, fuzzy
 msgid "certificate has been revoked"
 msgstr "证书已经过时"
 
-#: src/ne_session.c:564
+#: src/ne_session.c:572
 msgid "Server certificate verification failed: "
 msgstr "服务器证书校验失败"
 
-#: src/ne_socket.c:516 src/ne_socket.c:612 src/ne_socket.c:716
+#: src/ne_socket.c:522 src/ne_socket.c:618 src/ne_socket.c:722
 msgid "Connection closed"
 msgstr "连接关闭"
 
-#: src/ne_socket.c:622 src/ne_socket.c:728
+#: src/ne_socket.c:628 src/ne_socket.c:736
 msgid "Secure connection truncated"
 msgstr "安全连接切断"
 
-#: src/ne_socket.c:634 src/ne_socket.c:740
+#: src/ne_socket.c:640 src/ne_socket.c:748
 #, c-format
 msgid "SSL error: %s"
 msgstr "SSL 错误:%s"
 
-#: src/ne_socket.c:637
+#: src/ne_socket.c:643
 #, c-format
 msgid "SSL error code %d/%d/%lu"
 msgstr "SSL 错误代码 %d/%d/%lu"
 
-#: src/ne_socket.c:721
+#: src/ne_socket.c:727
 #, c-format
 msgid "SSL alert received: %s"
 msgstr "收到 SSL 警报: %s"
 
-#: src/ne_socket.c:736
+#: src/ne_socket.c:744
 msgid "SSL socket read failed"
 msgstr "SSL 套接字读取失败"
 
-#: src/ne_socket.c:867
+#: src/ne_socket.c:875
 msgid "Line too long"
 msgstr "行太长"
 
-#: src/ne_socket.c:1012 src/ne_socket.c:1018
+#: src/ne_socket.c:1036 src/ne_socket.c:1042
 msgid "Host not found"
 msgstr "没有发现主机"
 
-#: src/ne_socket.c:1221
+#: src/ne_socket.c:1249
 msgid "Connection timed out"
 msgstr "连接超时"
 
-#: src/ne_socket.c:1412
+#: src/ne_socket.c:1442
 msgid "Socket descriptor number exceeds FD_SETSIZE"
 msgstr "套接字数量超过 FD_SETSIZE"
 
-#: src/ne_socket.c:1474
+#: src/ne_socket.c:1504
 msgid "Socket family not supported"
 msgstr ""
 
-#: src/ne_socket.c:1701
+#: src/ne_socket.c:1735
 msgid "Client certificate verification failed"
 msgstr "客户证书校验失败"
 
-#: src/ne_socket.c:1717
+#: src/ne_socket.c:1751
 msgid "SSL disabled due to lack of entropy"
 msgstr "由于缺少熵,SSL 已经禁用"
 
-#: src/ne_socket.c:1724
-msgid "SSL disabled due to library version mismatch"
-msgstr "由于库版本不匹配,SSL 已经禁用"
-
-#: src/ne_socket.c:1730
+#: src/ne_socket.c:1757
 msgid "Could not create SSL structure"
 msgstr "不能创建 SSL 结构"
 
@@ -627,3 +634,6 @@ msgstr "在 %d 行解析 XML 错误: %s"
 #, c-format
 msgid "Could not parse response: %s"
 msgstr "不能解析响应:%s"
+
+#~ msgid "SSL disabled due to library version mismatch"
+#~ msgstr "由于库版本不匹配,SSL 已经禁用"
index 73d0515..15fb02b 100644 (file)
@@ -117,54 +117,56 @@ ne_gnutls.@NEON_OBJEXT@: ne_gnutls.c $(top_builddir)/config.h ne_ssl.h ne_defs.h
   ne_private.h ne_request.h ne_utils.h ne_privssl.h
 #### ---CUT--- DO NOT REMOVE THIS LINE.  Generated dependencies follow.  ####
 ne_request.@NEON_OBJEXT@: ne_request.c $(top_builddir)/config.h ne_internal.h ne_defs.h ne_alloc.h \
 ne_request.h ne_utils.h ne_string.h ne_session.h ne_ssl.h ne_uri.h \
 ne_socket.h ne_private.h
+ ne_request.h ne_utils.h ne_string.h ne_session.h ne_ssl.h ne_uri.h \
+ ne_socket.h ne_private.h
 ne_session.@NEON_OBJEXT@: ne_session.c $(top_builddir)/config.h ne_session.h ne_ssl.h ne_defs.h \
 ne_uri.h ne_socket.h ne_alloc.h ne_utils.h ne_internal.h ne_string.h \
 ne_dates.h ne_private.h ne_request.h
+ ne_uri.h ne_socket.h ne_alloc.h ne_utils.h ne_internal.h ne_string.h \
+ ne_dates.h ne_private.h ne_request.h
 ne_basic.@NEON_OBJEXT@: ne_basic.c $(top_builddir)/config.h ne_request.h ne_utils.h ne_defs.h \
 ne_string.h ne_alloc.h ne_session.h ne_ssl.h ne_uri.h ne_socket.h \
 ne_basic.h ne_207.h ne_xml.h ne_locks.h ne_dates.h ne_internal.h
+ ne_string.h ne_alloc.h ne_session.h ne_ssl.h ne_uri.h ne_socket.h \
+ ne_basic.h ne_207.h ne_xml.h ne_locks.h ne_dates.h ne_internal.h
 ne_string.@NEON_OBJEXT@: ne_string.c $(top_builddir)/config.h ne_alloc.h ne_defs.h ne_string.h
 ne_uri.@NEON_OBJEXT@: ne_uri.c $(top_builddir)/config.h ne_string.h ne_defs.h ne_alloc.h ne_uri.h
 ne_dates.@NEON_OBJEXT@: ne_dates.c $(top_builddir)/config.h ne_alloc.h ne_defs.h ne_dates.h \
 ne_string.h
+ ne_string.h
 ne_alloc.@NEON_OBJEXT@: ne_alloc.c $(top_builddir)/config.h ne_alloc.h ne_defs.h
 ne_md5.@NEON_OBJEXT@: ne_md5.c $(top_builddir)/config.h ne_md5.h ne_defs.h ne_string.h ne_alloc.h
 ne_utils.@NEON_OBJEXT@: ne_utils.c $(top_builddir)/config.h ne_utils.h ne_defs.h ne_string.h \
 ne_alloc.h ne_dates.h
+ ne_alloc.h ne_dates.h
 ne_socket.@NEON_OBJEXT@: ne_socket.c $(top_builddir)/config.h ne_privssl.h ne_ssl.h ne_defs.h \
 ne_socket.h ne_internal.h ne_utils.h ne_string.h ne_alloc.h ne_sspi.h
+ ne_socket.h ne_internal.h ne_utils.h ne_string.h ne_alloc.h ne_sspi.h
 ne_auth.@NEON_OBJEXT@: ne_auth.c $(top_builddir)/config.h ne_md5.h ne_defs.h ne_dates.h \
 ne_request.h ne_utils.h ne_string.h ne_alloc.h ne_session.h ne_ssl.h \
 ne_uri.h ne_socket.h ne_auth.h ne_internal.h
+ ne_request.h ne_utils.h ne_string.h ne_alloc.h ne_session.h ne_ssl.h \
ne_uri.h ne_socket.h ne_auth.h ne_internal.h ne_ntlm.h
 ne_redirect.@NEON_OBJEXT@: ne_redirect.c $(top_builddir)/config.h ne_session.h ne_ssl.h ne_defs.h \
 ne_uri.h ne_socket.h ne_request.h ne_utils.h ne_string.h ne_alloc.h \
 ne_redirect.h ne_internal.h
+ ne_uri.h ne_socket.h ne_request.h ne_utils.h ne_string.h ne_alloc.h \
+ ne_redirect.h ne_internal.h
 ne_compress.@NEON_OBJEXT@: ne_compress.c $(top_builddir)/config.h ne_request.h ne_utils.h \
 ne_defs.h ne_string.h ne_alloc.h ne_session.h ne_ssl.h ne_uri.h \
 ne_socket.h ne_compress.h ne_internal.h
+ ne_defs.h ne_string.h ne_alloc.h ne_session.h ne_ssl.h ne_uri.h \
+ ne_socket.h ne_compress.h ne_internal.h
 ne_i18n.@NEON_OBJEXT@: ne_i18n.c $(top_builddir)/config.h ne_i18n.h ne_defs.h
 ne_socks.@NEON_OBJEXT@: ne_socks.c $(top_builddir)/config.h ne_internal.h ne_defs.h ne_string.h \
-  ne_alloc.h ne_socket.h ne_ssl.h ne_utils.h
+ ne_alloc.h ne_socket.h ne_ssl.h ne_utils.h
+ne_ntlm.@NEON_OBJEXT@: ne_ntlm.c ne_ntlm.h $(top_builddir)/config.h ne_defs.h ne_string.h \
+ ne_alloc.h
 ne_207.@NEON_OBJEXT@: ne_207.c $(top_builddir)/config.h ne_alloc.h ne_defs.h ne_utils.h ne_xml.h \
 ne_207.h ne_request.h ne_string.h ne_session.h ne_ssl.h ne_uri.h \
 ne_socket.h ne_basic.h ne_internal.h
+ ne_207.h ne_request.h ne_string.h ne_session.h ne_ssl.h ne_uri.h \
+ ne_socket.h ne_basic.h ne_internal.h
 ne_xml.@NEON_OBJEXT@: ne_xml.c $(top_builddir)/config.h ne_internal.h ne_defs.h ne_alloc.h \
 ne_xml.h ne_utils.h ne_string.h
+ ne_xml.h ne_utils.h ne_string.h
 ne_props.@NEON_OBJEXT@: ne_props.c $(top_builddir)/config.h ne_alloc.h ne_defs.h ne_xml.h \
 ne_props.h ne_request.h ne_utils.h ne_string.h ne_session.h ne_ssl.h \
 ne_uri.h ne_socket.h ne_207.h ne_basic.h ne_locks.h ne_internal.h
+ ne_props.h ne_request.h ne_utils.h ne_string.h ne_session.h ne_ssl.h \
+ ne_uri.h ne_socket.h ne_207.h ne_basic.h ne_locks.h ne_internal.h
 ne_locks.@NEON_OBJEXT@: ne_locks.c $(top_builddir)/config.h ne_alloc.h ne_defs.h ne_request.h \
 ne_utils.h ne_string.h ne_session.h ne_ssl.h ne_uri.h ne_socket.h \
 ne_xml.h ne_locks.h ne_basic.h ne_props.h ne_207.h ne_internal.h \
 ne_xmlreq.h
+ ne_utils.h ne_string.h ne_session.h ne_ssl.h ne_uri.h ne_socket.h \
+ ne_xml.h ne_locks.h ne_basic.h ne_props.h ne_207.h ne_internal.h \
+ ne_xmlreq.h
 ne_xmlreq.@NEON_OBJEXT@: ne_xmlreq.c $(top_builddir)/config.h ne_internal.h ne_defs.h ne_xmlreq.h \
 ne_request.h ne_utils.h ne_string.h ne_alloc.h ne_session.h ne_ssl.h \
 ne_uri.h ne_socket.h ne_xml.h ne_basic.h
+ ne_request.h ne_utils.h ne_string.h ne_alloc.h ne_session.h ne_ssl.h \
+ ne_uri.h ne_socket.h ne_xml.h ne_basic.h
 ne_oldacl.@NEON_OBJEXT@: ne_oldacl.c $(top_builddir)/config.h ne_request.h ne_utils.h ne_defs.h \
 ne_string.h ne_alloc.h ne_session.h ne_ssl.h ne_uri.h ne_socket.h \
 ne_locks.h ne_acl.h ne_xml.h
+ ne_string.h ne_alloc.h ne_session.h ne_ssl.h ne_uri.h ne_socket.h \
+ ne_locks.h ne_acl.h ne_xml.h
 ne_acl3744.@NEON_OBJEXT@: ne_acl3744.c $(top_builddir)/config.h ne_request.h ne_utils.h ne_defs.h \
 ne_string.h ne_alloc.h ne_session.h ne_ssl.h ne_uri.h ne_socket.h \
 ne_locks.h ne_acl.h ne_xml.h
+ ne_string.h ne_alloc.h ne_session.h ne_ssl.h ne_uri.h ne_socket.h \
ne_locks.h ne_acl3744.h ne_xml.h
index df640d5..48a0cb5 100644 (file)
@@ -1,6 +1,6 @@
 /* 
    HTTP Authentication routines
-   Copyright (C) 1999-2009, Joe Orton <joe@manyfish.co.uk>
+   Copyright (C) 1999-2011, 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
@@ -181,6 +181,7 @@ typedef struct {
     /* This is used for SSPI (Negotiate/NTLM) auth */
     char *sspi_token;
     void *sspi_context;
+    char *sspi_host;
 #endif
 #ifdef HAVE_NTLM
      /* This is used for NTLM auth */
@@ -299,6 +300,8 @@ static void clean_session(auth_session *sess)
     sess->sspi_token = NULL;
     ne_sspi_destroy_context(sess->sspi_context);
     sess->sspi_context = NULL;
+    if (sess->sspi_host) ne_free(sess->sspi_host);
+    sess->sspi_host = NULL;
 #endif
 #ifdef HAVE_NTLM
     if (sess->ntlm_context) {
@@ -627,14 +630,7 @@ static int continue_sspi(auth_session *sess, int ntlm, const char *hdr)
     NE_DEBUG(NE_DBG_HTTPAUTH, "auth: SSPI challenge.\n");
     
     if (!sess->sspi_context) {
-        ne_uri uri = {0};
-
-        ne_fill_server_uri(sess->sess, &uri);
-
-        status = ne_sspi_create_context(&sess->sspi_context, uri.host, ntlm);
-
-        ne_uri_free(&uri);
-
+        status = ne_sspi_create_context(&sess->sspi_context, sess->sspi_host, ntlm);
         if (status) {
             return status;
         }
@@ -1232,7 +1228,7 @@ static const struct auth_protocol protocols[] = {
       digest_challenge, request_digest, verify_digest_response,
       0 },
 #ifdef HAVE_GSSAPI
-    { NE_AUTH_GSSAPI, 30, "Negotiate",
+    { NE_AUTH_GSSAPI_ONLY, 30, "Negotiate",
       negotiate_challenge, request_negotiate, verify_negotiate_response,
       AUTH_FLAG_OPAQUE_PARAM|AUTH_FLAG_VERIFY_NON40x|AUTH_FLAG_CONN_AUTH },
 #endif
@@ -1240,7 +1236,7 @@ static const struct auth_protocol protocols[] = {
     { NE_AUTH_NTLM, 30, "NTLM",
       sspi_challenge, request_sspi, NULL,
       AUTH_FLAG_OPAQUE_PARAM|AUTH_FLAG_VERIFY_NON40x|AUTH_FLAG_CONN_AUTH },
-    { NE_AUTH_GSSAPI, 30, "Negotiate",
+    { NE_AUTH_SSPI, 30, "Negotiate",
       sspi_challenge, request_sspi, verify_sspi,
       AUTH_FLAG_OPAQUE_PARAM|AUTH_FLAG_VERIFY_NON40x|AUTH_FLAG_CONN_AUTH },
 #endif
@@ -1551,8 +1547,8 @@ static int ah_post_send(ne_request *req, void *cookie, const ne_status *status)
     }
 
 #ifdef HAVE_SSPI
-    /* Clear the SSPI context after successfull authentication. */
-    if ((status->klass == 2 || status->klass == 3) && sess->sspi_context) {
+    /* Clear the SSPI context after successful authentication. */
+    if (status->code != sess->spec->status_code && sess->sspi_context) {
         ne_sspi_clear_context(sess->sspi_context);
     }
 #endif
@@ -1614,6 +1610,11 @@ static void auth_register(ne_session *sess, int isproxy, unsigned protomask,
         /* Map NEGOTIATE to NTLM | GSSAPI. */
         protomask |= NE_AUTH_GSSAPI | NE_AUTH_NTLM;
     }
+    
+    if ((protomask & NE_AUTH_GSSAPI) == NE_AUTH_GSSAPI) {
+        /* Map GSSAPI to GSSAPI_ONLY | SSPI. */
+        protomask |= NE_AUTH_GSSAPI_ONLY | NE_AUTH_SSPI;
+    }
 
     ahs = ne_get_session_private(sess, id);
     if (ahs == NULL) {
@@ -1639,7 +1640,7 @@ static void auth_register(ne_session *sess, int isproxy, unsigned protomask,
     }
 
 #ifdef HAVE_GSSAPI
-    if ((protomask & NE_AUTH_GSSAPI) && ahs->gssname == GSS_C_NO_NAME) {
+    if ((protomask & NE_AUTH_GSSAPI_ONLY) && ahs->gssname == GSS_C_NO_NAME) {
         ne_uri uri = {0};
         
         if (isproxy)
@@ -1652,6 +1653,21 @@ static void auth_register(ne_session *sess, int isproxy, unsigned protomask,
         ne_uri_free(&uri);
     }
 #endif
+#ifdef HAVE_SSPI
+    if ((protomask & (NE_AUTH_NTLM|NE_AUTH_SSPI)) && !ahs->sspi_host) {
+        ne_uri uri = {0};
+        
+        if (isproxy)
+            ne_fill_proxy_uri(sess, &uri);
+        else
+            ne_fill_server_uri(sess, &uri);
+
+        ahs->sspi_host = uri.host;
+        uri.host = NULL;
+
+        ne_uri_free(&uri);
+    }
+#endif        
 
     /* Find the end of the handler list, and add a new one. */
     hdl = &ahs->handlers;
index 39f65d5..98e7e18 100644 (file)
@@ -82,7 +82,8 @@ void ne_set_proxy_auth(ne_session *sess, ne_auth_creds creds, void *userdata);
 
 /* NE_AUTH_GSSAPI: Use GSSAPI or SSPI to authenticate the user; an
  * active attacker can modify any of the request/response at will, so
- * this must not be used over an unsecured channel. */
+ * this must not be used over an unsecured channel. NE_AUTH_GSSAPI
+ * is currently equivalent to (NE_AUTH_GSSAPI_ONLY | NE_AUTH_SSPI). */
 #define NE_AUTH_GSSAPI (0x0008)
 
 /* NE_AUTH_NTLM: Use NTLM to authenticate the user; an active attacker
@@ -90,6 +91,16 @@ void ne_set_proxy_auth(ne_session *sess, ne_auth_creds creds, void *userdata);
  * used over an unsecured channel. */
 #define NE_AUTH_NTLM (0x0010)
 
+/* NE_AUTH_SSPI: Use SSPI to authenticate the user; an
+ * active attacker can modify any of the request/response at will, so
+ * this must not be used over an unsecured channel. */
+#define NE_AUTH_SSPI (0x0020)
+
+/* NE_AUTH_GSSAPI_ONLY: Use GSSAPI to authenticate the user; an
+ * active attacker can modify any of the request/response at will, so
+ * this must not be used over an unsecured channel. */
+#define NE_AUTH_GSSAPI_ONLY (0x0040)
+
 /* The default set of supported protocols, as deemed appropriate for
  * the given session scheme. */
 #define NE_AUTH_DEFAULT (0x1000)
index 168fbfe..7b7190e 100644 (file)
@@ -325,7 +325,8 @@ static const struct options_map {
     { "working-resource", NE_CAP_WORK_RESOURCE },
     { "merge", NE_CAP_MERGE },
     { "baseline", NE_CAP_BASELINE },
-    { "version-controlled-collection", NE_CAP_VC_COLLECTION }
+    { "version-controlled-collection", NE_CAP_VC_COLLECTION },
+    { "extended-mkcol", NE_CAP_EXT_MKCOL }
 };
 
 static void parse_dav_header(const char *value, unsigned int *caps)
index 9edf075..257f033 100644 (file)
@@ -96,7 +96,8 @@ typedef struct {
                                  * property a. la. mod_dav */
 } ne_server_capabilities;
 
-/* DEPRECATED: Determines server capabilities (using OPTIONS). */
+/* DEPRECATED: Determines server capabilities (using OPTIONS).  Use
+ * ne_options2() instead. */
 int ne_options(ne_session *sess, const char *path,
                ne_server_capabilities *caps);
 
@@ -116,6 +117,7 @@ int ne_options(ne_session *sess, const char *path,
 #define NE_CAP_BASELINE      (0x2000) /* DeltaV baseline */
 #define NE_CAP_ACTIVITY      (0x4000) /* DeltaV activity */
 #define NE_CAP_VC_COLLECTION (0x8000) /* DeltaV version-controlled-collection */
+#define NE_CAP_EXT_MKCOL    (0x10000) /* extended-mkcol (RFC 5689) */
 
 /* Determines resource capailities, using an OPTIONS request.  On
  * return, *caps is set to a bit-mask of the above NE_CAP_* constants
index e902e3a..4283454 100644 (file)
@@ -35,6 +35,9 @@
 #include <sys/types.h>
 
 #ifdef NE_LFS
+# ifdef _MSC_VER
+typedef __int64 off64_t;
+# endif
 typedef off64_t ne_off_t;
 #else
 typedef off_t ne_off_t;
index eec5655..08d78cc 100644 (file)
@@ -1,6 +1,6 @@
 /*
    neon SSL/TLS support using GNU TLS
-   Copyright (C) 2002-2010, Joe Orton <joe@manyfish.co.uk>
+   Copyright (C) 2002-2011, Joe Orton <joe@manyfish.co.uk>
    Copyright (C) 2004, Aleix Conchillo Flaque <aleix@member.fsf.org>
 
    This library is free software; you can redistribute it and/or
@@ -71,30 +71,30 @@ struct ne_ssl_dname_s {
     gnutls_x509_dn_t dn;
 #else
     int subject; /* non-zero if this is the subject DN object */
-    gnutls_x509_crt cert;
+    gnutls_x509_crt_t cert;
 #endif
 };
 
 struct ne_ssl_certificate_s {
     ne_ssl_dname subj_dn, issuer_dn;
-    gnutls_x509_crt subject;
+    gnutls_x509_crt_t subject;
     ne_ssl_certificate *issuer;
     char *identity;
 };
 
 struct ne_ssl_client_cert_s {
-    gnutls_pkcs12 p12;
+    gnutls_pkcs12_t p12;
     int decrypted; /* non-zero if successfully decrypted. */
     int keyless;
     ne_ssl_certificate cert;
-    gnutls_x509_privkey pkey;
+    gnutls_x509_privkey_t pkey;
     char *friendly_name;
 };
 
 /* Returns the highest used index in subject (or issuer) DN of
  * certificate CERT for OID, or -1 if no RDNs are present in the DN
  * using that OID. */
-static int oid_find_highest_index(gnutls_x509_crt cert, int subject, const char *oid)
+static int oid_find_highest_index(gnutls_x509_crt_t cert, int subject, const char *oid)
 {
     int ret, idx = -1;
 
@@ -117,7 +117,7 @@ static int oid_find_highest_index(gnutls_x509_crt cert, int subject, const char
 
 #ifdef HAVE_ICONV
 static void convert_dirstring(ne_buffer *buf, const char *charset, 
-                              gnutls_datum *data)
+                              gnutls_datum_t *data)
 {
     iconv_t id = iconv_open("UTF-8", charset);
     size_t inlen = data->size, outlen = buf->length - buf->used;
@@ -154,7 +154,7 @@ static void convert_dirstring(ne_buffer *buf, const char *charset,
 #define TAG_UNIVERSAL (28)
 #define TAG_BMP (30)
 
-static void append_dirstring(ne_buffer *buf, gnutls_datum *data, unsigned long tag)
+static void append_dirstring(ne_buffer *buf, gnutls_datum_t *data, unsigned long tag)
 {
     switch (tag) {
     case TAG_UTF8:
@@ -244,7 +244,7 @@ char *ne_ssl_readable_dname(const ne_ssl_dname *name)
 
 /* Appends the value of RDN with given oid from certitifcate x5
  * subject (if subject is non-zero), or issuer DN to buffer 'buf': */
-static void append_rdn(ne_buffer *buf, gnutls_x509_crt x5, int subject, const char *oid)
+static void append_rdn(ne_buffer *buf, gnutls_x509_crt_t x5, int subject, const char *oid)
 {
     int idx, top, ret;
     char rdn[50];
@@ -357,7 +357,7 @@ void ne_ssl_cert_validity_time(const ne_ssl_certificate *cert,
  * If 'identity' is non-NULL, store the malloc-allocated identity in
  * *identity.  If 'server' is non-NULL, it must be the network address
  * of the server in use, and identity must be NULL. */
-static int check_identity(const ne_uri *server, gnutls_x509_crt cert,
+static int check_identity(const ne_uri *server, gnutls_x509_crt_t cert,
                           char **identity)
 {
     char name[255];
@@ -464,7 +464,7 @@ static int check_identity(const ne_uri *server, gnutls_x509_crt cert,
  * that x5 is owned by returned cert object and must not be otherwise
  * freed by the caller.  */
 static ne_ssl_certificate *populate_cert(ne_ssl_certificate *cert,
-                                         gnutls_x509_crt x5)
+                                         gnutls_x509_crt_t x5)
 {
 #ifdef HAVE_NEW_DN_API
     gnutls_x509_crt_get_subject(x5, &cert->subj_dn.dn);
@@ -483,12 +483,12 @@ static ne_ssl_certificate *populate_cert(ne_ssl_certificate *cert,
 }
 
 /* Returns a copy certificate of certificate SRC. */
-static gnutls_x509_crt x509_crt_copy(gnutls_x509_crt src)
+static gnutls_x509_crt_t x509_crt_copy(gnutls_x509_crt_t src)
 {
     int ret;
-    size_t size;
-    gnutls_datum tmp;
-    gnutls_x509_crt dest;
+    size_t size = 0;
+    gnutls_datum_t tmp;
+    gnutls_x509_crt_t dest;
     
     if (gnutls_x509_crt_init(&dest) != 0) {
         return NULL;
@@ -551,9 +551,9 @@ dup_error:
 }    
 
 /* Callback invoked when the SSL server requests a client certificate.  */
-static int provide_client_cert(gnutls_session session,
-                               const gnutls_datum *req_ca_rdn, int nreqs,
-                               const gnutls_pk_algorithm *sign_algos,
+static int provide_client_cert(gnutls_session_t session,
+                               const gnutls_datum_t *req_ca_rdn, int nreqs,
+                               const gnutls_pk_algorithm_t *sign_algos,
                                int sign_algos_length, gnutls_retr_st *st)
 {
     ne_session *sess = gnutls_session_get_ptr(session);
@@ -610,8 +610,13 @@ static int provide_client_cert(gnutls_session session,
     }
 
     if (sess->client_cert) {
-        gnutls_certificate_type type = gnutls_certificate_type_get(session);
-        if (type == GNUTLS_CRT_X509) {
+        gnutls_certificate_type_t type = gnutls_certificate_type_get(session);
+        if (type == GNUTLS_CRT_X509
+#if LIBGNUTLS_VERSION_NUMBER > 0x030000
+            /* Ugly hack; prevent segfaults w/GnuTLS 3.0. */
+            && sess->client_cert->pkey != NULL
+#endif
+            ) {
             NE_DEBUG(NE_DBG_SSL, "Supplying client certificate.\n");
 
             st->type = type;
@@ -680,6 +685,11 @@ void ne_ssl_context_set_flag(ne_ssl_context *ctx, int flag, int value)
     /* SSLv2 not supported. */
 }
 
+int ne_ssl_context_get_flag(ne_ssl_context *ctx, int flag)
+{
+    return 0;
+}
+
 void ne_ssl_context_destroy(ne_ssl_context *ctx)
 {
     gnutls_certificate_free_credentials(ctx->cred);
@@ -692,12 +702,12 @@ void ne_ssl_context_destroy(ne_ssl_context *ctx)
     ne_free(ctx);
 }
 
-#ifdef HAVE_GNUTLS_CERTIFICATE_GET_X509_CAS
+#if !defined(HAVE_GNUTLS_CERTIFICATE_GET_ISSUER) && defined(HAVE_GNUTLS_CERTIFICATE_GET_X509_CAS)
 /* Return the issuer of the given certificate, or NULL if none can be
  * found. */
-static gnutls_x509_crt find_issuer(gnutls_x509_crt *ca_list,
+static gnutls_x509_crt_t find_issuer(gnutls_x509_crt_t *ca_list,
                                    unsigned int num_cas,
-                                   gnutls_x509_crt cert)
+                                   gnutls_x509_crt_t cert)
 {
     unsigned int n;
 
@@ -711,11 +721,11 @@ static gnutls_x509_crt find_issuer(gnutls_x509_crt *ca_list,
 #endif
 
 /* Return the certificate chain sent by the peer, or NULL on error. */
-static ne_ssl_certificate *make_peers_chain(gnutls_session sock,
-                                            gnutls_certificate_credentials crd)
+static ne_ssl_certificate *make_peers_chain(gnutls_session_t sock,
+                                            gnutls_certificate_credentials_t crd)
 {
     ne_ssl_certificate *current = NULL, *top = NULL;
-    const gnutls_datum *certs;
+    const gnutls_datum_t *certs;
     unsigned int n, count;
     ne_ssl_certificate *cert;
 
@@ -727,7 +737,7 @@ static ne_ssl_certificate *make_peers_chain(gnutls_session sock,
     NE_DEBUG(NE_DBG_SSL, "ssl: Got %u certs in peer chain.\n", count);
     
     for (n = 0; n < count; n++) {
-        gnutls_x509_crt x5;
+        gnutls_x509_crt_t x5;
 
         if (gnutls_x509_crt_init(&x5) ||
             gnutls_x509_crt_import(x5, &certs[n], GNUTLS_X509_FMT_DER)) {
@@ -747,22 +757,34 @@ static ne_ssl_certificate *make_peers_chain(gnutls_session sock,
         }
     }
 
-#ifdef HAVE_GNUTLS_CERTIFICATE_GET_X509_CAS
+#if defined(HAVE_GNUTLS_CERTIFICATE_GET_ISSUER) || defined(HAVE_GNUTLS_CERTIFICATE_GET_X509_CAS)
     /* GnuTLS only returns the peers which were *sent* by the server
      * in the Certificate list during the handshake.  Fill in the
      * complete chain manually against the certs we trust: */
     if (current->issuer == NULL) {
-        gnutls_x509_crt issuer;
-        gnutls_x509_crt *ca_list;
+        gnutls_x509_crt_t issuer;
+
+#ifndef HAVE_GNUTLS_CERTIFICATE_GET_ISSUER
+        gnutls_x509_crt_t *ca_list;
         unsigned int num_cas;
         
         gnutls_certificate_get_x509_cas(crd, &ca_list, &num_cas);
+#endif
 
         do { 
             /* Look up the issuer. */
+#ifndef HAVE_GNUTLS_CERTIFICATE_GET_ISSUER
             issuer = find_issuer(ca_list, num_cas, current->subject);
+#else
+            if (gnutls_certificate_get_issuer(crd, current->subject, &issuer, 0))
+                issuer = NULL;
+#endif
+
             if (issuer) {
                 issuer = x509_crt_copy(issuer);
+                if (issuer == NULL)
+                    break;
+
                 cert = populate_cert(ne_calloc(sizeof *cert), issuer);
                 /* Check that the issuer does not match the current
                  * cert. */
@@ -855,7 +877,7 @@ static int check_chain_expiry(ne_ssl_certificate *chain)
 }
 
 /* Verifies an SSL server certificate. */
-static int check_certificate(ne_session *sess, gnutls_session sock,
+static int check_certificate(ne_session *sess, gnutls_session_t sock,
                              ne_ssl_certificate *chain)
 {
     int ret, failures = 0;
@@ -917,7 +939,7 @@ int ne__negotiate_ssl(ne_session *sess)
 {
     ne_ssl_context *const ctx = sess->ssl_context;
     ne_ssl_certificate *chain;
-    gnutls_session sock;
+    gnutls_session_t sock;
 
     NE_DEBUG(NE_DBG_SSL, "Negotiating SSL connection.\n");
 
@@ -986,7 +1008,7 @@ const char *ne_ssl_cert_identity(const ne_ssl_certificate *cert)
 
 void ne_ssl_context_trustcert(ne_ssl_context *ctx, const ne_ssl_certificate *cert)
 {
-    gnutls_x509_crt certs = cert->subject;
+    gnutls_x509_crt_t certs = cert->subject;
     gnutls_certificate_set_x509_trust(ctx->cred, &certs, 1);
 }
 
@@ -1000,7 +1022,7 @@ void ne_ssl_trust_default_ca(ne_session *sess)
 }
 
 /* Read the contents of file FILENAME into *DATUM. */
-static int read_to_datum(const char *filename, gnutls_datum *datum)
+static int read_to_datum(const char *filename, gnutls_datum_t *datum)
 {
     FILE *f = fopen(filename, "r");
     ne_buffer *buf;
@@ -1032,11 +1054,11 @@ static int read_to_datum(const char *filename, gnutls_datum *datum)
 /* Parses a PKCS#12 structure and loads the certificate, private key
  * and friendly name if possible.  Returns zero on success, non-zero
  * on error. */
-static int pkcs12_parse(gnutls_pkcs12 p12, gnutls_x509_privkey *pkey,
-                        gnutls_x509_crt *x5, char **friendly_name,
+static int pkcs12_parse(gnutls_pkcs12_t p12, gnutls_x509_privkey_t *pkey,
+                        gnutls_x509_crt_t *x5, char **friendly_name,
                         const char *password)
 {
-    gnutls_pkcs12_bag bag = NULL;
+    gnutls_pkcs12_bag_t bag = NULL;
     int i, j, ret = 0;
 
     for (i = 0; ret == 0; ++i) {
@@ -1051,8 +1073,8 @@ static int pkcs12_parse(gnutls_pkcs12 p12, gnutls_x509_privkey *pkey,
         gnutls_pkcs12_bag_decrypt(bag, password);
 
         for (j = 0; ret == 0 && j < gnutls_pkcs12_bag_get_count(bag); ++j) {
-            gnutls_pkcs12_bag_type type;
-            gnutls_datum data;
+            gnutls_pkcs12_bag_type_t type;
+            gnutls_datum_t data;
 
             if (friendly_name && *friendly_name == NULL) {
                 char *name = NULL;
@@ -1119,23 +1141,37 @@ static int pkcs12_parse(gnutls_pkcs12 p12, gnutls_x509_privkey *pkey,
 
 ne_ssl_client_cert *ne_ssl_clicert_read(const char *filename)
 {
+    gnutls_datum_t datum;
+    ne_ssl_client_cert *cc;
+
+    if (read_to_datum(filename, &datum))
+        return NULL;
+
+    cc = ne_ssl_clicert_import(datum.data, datum.size);
+
+    ne_free(datum.data);
+
+    return cc;
+}
+
+ne_ssl_client_cert *ne_ssl_clicert_import(const unsigned char *buffer, size_t buflen)
+{
     int ret;
-    gnutls_datum data;
-    gnutls_pkcs12 p12;
+    gnutls_datum_t data;
+    gnutls_pkcs12_t p12;
     ne_ssl_client_cert *cc;
     char *friendly_name = NULL;
-    gnutls_x509_crt cert = NULL;
-    gnutls_x509_privkey pkey = NULL;
+    gnutls_x509_crt_t cert = NULL;
+    gnutls_x509_privkey_t pkey = NULL;
 
-    if (read_to_datum(filename, &data))
-        return NULL;
+    data.data = buffer;
+    data.size = buflen;
 
     if (gnutls_pkcs12_init(&p12) != 0) {
         return NULL;
     }
 
     ret = gnutls_pkcs12_import(p12, &data, GNUTLS_X509_FMT_DER, 0);
-    ne_free(data.data);
     if (ret < 0) {
         gnutls_pkcs12_deinit(p12);
         return NULL;
@@ -1169,8 +1205,8 @@ ne_ssl_client_cert *ne__ssl_clicert_exkey_import(const unsigned char *der,
                                                  size_t der_len)
 {
     ne_ssl_client_cert *cc;
-    gnutls_x509_crt x5;
-    gnutls_datum datum;
+    gnutls_x509_crt_t x5;
+    gnutls_datum_t datum;
 
     datum.data = (unsigned char *)der;
     datum.size = der_len;    
@@ -1197,8 +1233,8 @@ int ne_ssl_clicert_encrypted(const ne_ssl_client_cert *cc)
 int ne_ssl_clicert_decrypt(ne_ssl_client_cert *cc, const char *password)
 {
     int ret;
-    gnutls_x509_crt cert = NULL;
-    gnutls_x509_privkey pkey = NULL;
+    gnutls_x509_crt_t cert = NULL;
+    gnutls_x509_privkey_t pkey = NULL;
 
     if (gnutls_pkcs12_verify_mac(cc->p12, password) != 0) {
         return -1;
@@ -1235,8 +1271,8 @@ const char *ne_ssl_clicert_name(const ne_ssl_client_cert *ccert)
 ne_ssl_certificate *ne_ssl_cert_read(const char *filename)
 {
     int ret;
-    gnutls_datum data;
-    gnutls_x509_crt x5;
+    gnutls_datum_t data;
+    gnutls_x509_crt_t x5;
 
     if (read_to_datum(filename, &data))
         return NULL;
@@ -1307,8 +1343,8 @@ ne_ssl_certificate *ne_ssl_cert_import(const char *data)
     int ret;
     size_t len;
     unsigned char *der;
-    gnutls_datum buffer = { NULL, 0 };
-    gnutls_x509_crt x5;
+    gnutls_datum_t buffer = { NULL, 0 };
+    gnutls_x509_crt_t x5;
 
     if (gnutls_x509_crt_init(&x5) != 0)
         return NULL;
index 3022c6f..35d7109 100644 (file)
@@ -139,6 +139,7 @@ md5_finish_ctx (struct md5_ctx *ctx, void *resbuf)
 {
   /* Take yet unprocessed bytes into account.  */
   md5_uint32 bytes = ctx->buflen;
+  md5_uint32 swap_bytes;
   size_t pad;
 
   /* Now count remaining bytes.  */
@@ -149,10 +150,13 @@ md5_finish_ctx (struct md5_ctx *ctx, void *resbuf)
   pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes;
   memcpy (&ctx->buffer[bytes], fillbuf, pad);
 
-  /* Put the 64-bit file length in *bits* at the end of the buffer.  */
-  *(md5_uint32 *) &ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3);
-  *(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP ((ctx->total[1] << 3) |
-                                                       (ctx->total[0] >> 29));
+  /* Put the 64-bit file length in *bits* at the end of the buffer.
+     Use memcpy to avoid aliasing problems.  On most systems, this
+     will be optimized away to the same code.  */
+  swap_bytes = SWAP (ctx->total[0] << 3);
+  memcpy (&ctx->buffer[bytes + pad], &swap_bytes, sizeof (swap_bytes));
+  swap_bytes = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29));
+  memcpy (&ctx->buffer[bytes + pad + 4], &swap_bytes, sizeof (swap_bytes));
 
   /* Process last bytes.  */
   md5_process_block (ctx->buffer, bytes + pad + 8, ctx);
index 2b20ca0..f8350fa 100644 (file)
@@ -1,6 +1,6 @@
 /* 
    neon SSL/TLS support using OpenSSL
-   Copyright (C) 2002-2009, Joe Orton <joe@manyfish.co.uk>
+   Copyright (C) 2002-2011, 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
 
 #ifdef NE_HAVE_TS_SSL
 #include <stdlib.h> /* for abort() */
+#ifndef _WIN32
 #include <pthread.h>
 #endif
+#endif
 
 #include "ne_ssl.h"
 #include "ne_string.h"
@@ -568,9 +570,19 @@ ne_ssl_context *ne_ssl_context_create(int mode)
     } else if (mode == NE_SSL_CTX_SERVER) {
         ctx->ctx = SSL_CTX_new(SSLv23_server_method());
         SSL_CTX_set_session_cache_mode(ctx->ctx, SSL_SESS_CACHE_CLIENT);
+#ifdef SSL_OP_NO_TICKET
+        /* disable ticket support since it inhibits testing of session
+         * caching. */
+        SSL_CTX_set_options(ctx->ctx, SSL_OP_NO_TICKET);
+#endif
     } else {
+#ifdef OPENSSL_NO_SSL2
+        ne_free(ctx);
+        return NULL;
+#else
         ctx->ctx = SSL_CTX_new(SSLv2_server_method());
         SSL_CTX_set_session_cache_mode(ctx->ctx, SSL_SESS_CACHE_CLIENT);
+#endif
     }
     return ctx;
 }
@@ -594,6 +606,22 @@ void ne_ssl_context_set_flag(ne_ssl_context *ctx, int flag, int value)
     SSL_CTX_set_options(ctx->ctx, opts);
 }
 
+int ne_ssl_context_get_flag(ne_ssl_context *ctx, int flag)
+{
+    switch (flag) {
+    case NE_SSL_CTX_SSLv2:
+#ifdef OPENSSL_NO_SSL2
+        return 0;
+#else
+        return ! (SSL_CTX_get_options(ctx->ctx) & SSL_OP_NO_SSLv2);
+#endif
+    default:
+        break;
+    }
+
+    return 0;
+}
+
 int ne_ssl_context_keypair(ne_ssl_context *ctx, const char *cert,
                            const char *key)
 {
@@ -814,22 +842,12 @@ static char *find_friendly_name(PKCS12 *p12)
     return name;
 }
 
-ne_ssl_client_cert *ne_ssl_clicert_read(const char *filename)
+static ne_ssl_client_cert *parse_client_cert(PKCS12 *p12)
 {
-    PKCS12 *p12;
-    FILE *fp;
     X509 *cert;
     EVP_PKEY *pkey;
     ne_ssl_client_cert *cc;
 
-    fp = fopen(filename, "rb");
-    if (fp == NULL)
-        return NULL;
-
-    p12 = d2i_PKCS12_fp(fp, NULL);
-
-    fclose(fp);
-    
     if (p12 == NULL) {
         ERR_clear_error();
         return NULL;
@@ -875,6 +893,34 @@ ne_ssl_client_cert *ne_ssl_clicert_read(const char *filename)
     }
 }
 
+ne_ssl_client_cert *ne_ssl_clicert_import(const unsigned char *buffer, 
+                                          size_t buflen)
+{
+    ne_d2i_uchar *p;
+    PKCS12 *p12;
+
+    p = buffer;
+    p12 = d2i_PKCS12(NULL, &p, buflen);
+    
+    return parse_client_cert(p12);
+}
+    
+ne_ssl_client_cert *ne_ssl_clicert_read(const char *filename)
+{
+    PKCS12 *p12;
+    FILE *fp;
+
+    fp = fopen(filename, "rb");
+    if (fp == NULL)
+        return NULL;
+
+    p12 = d2i_PKCS12_fp(fp, NULL);
+
+    fclose(fp);
+
+    return parse_client_cert(p12);
+}
+
 #ifdef HAVE_PAKCHOIS
 ne_ssl_client_cert *ne__ssl_clicert_exkey_import(const unsigned char *der,
                                                  size_t der_len,
@@ -1087,17 +1133,25 @@ int ne_ssl_cert_digest(const ne_ssl_certificate *cert, char *digest)
  * it's necessary to cast from a pthread_t to an unsigned long at some
  * point.  */
 
+#ifndef _WIN32
 static pthread_mutex_t *locks;
+#else
+static HANDLE *locks;
+#endif
 static size_t num_locks;
 
 #ifndef HAVE_CRYPTO_SET_IDPTR_CALLBACK
 /* Named to be obvious when it shows up in a backtrace. */
 static unsigned long thread_id_neon(void)
 {
+#ifndef _WIN32
     /* This will break if pthread_t is a structure; upgrading OpenSSL
      * >= 0.9.9 (which does not require this callback) is the only
      * solution.  */
     return (unsigned long) pthread_self();
+#else
+    return (unsigned long) GetCurrentThreadId();
+#endif
 }
 #endif
 
@@ -1106,12 +1160,20 @@ static unsigned long thread_id_neon(void)
 static void thread_lock_neon(int mode, int n, const char *file, int line)
 {
     if (mode & CRYPTO_LOCK) {
+#ifndef _WIN32
         if (pthread_mutex_lock(&locks[n])) {
+#else
+        if (WaitForSingleObject(locks[n], INFINITE)) {
+#endif
             abort();
         }
     }
     else {
+#ifndef _WIN32
         if (pthread_mutex_unlock(&locks[n])) {
+#else
+        if (!ReleaseMutex(locks[n])) {
+#endif
             abort();
         }
     }
@@ -1160,7 +1222,11 @@ int ne__ssl_init(void)
 
         locks = malloc(num_locks * sizeof *locks);
         for (n = 0; n < num_locks; n++) {
+#ifndef _WIN32
             if (pthread_mutex_init(&locks[n], NULL)) {
+#else
+            if ((locks[n] = CreateMutex(NULL, FALSE, NULL)) == NULL) {
+#endif
                 NE_DEBUG(NE_DBG_SOCKET, "ssl: Failed to initialize pthread mutex.\n");
                 return -1;
             }
@@ -1193,7 +1259,11 @@ void ne__ssl_exit(void)
         CRYPTO_set_locking_callback(NULL);
 
         for (n = 0; n < num_locks; n++) {
+#ifndef _WIN32
             pthread_mutex_destroy(&locks[n]);
+#else
+            CloseHandle(locks[n]);
+#endif
         }
 
         free(locks);
index 1a5cabc..57d53c8 100644 (file)
@@ -59,7 +59,7 @@ ne__ssl_clicert_exkey_import(const unsigned char *der,
 #include <gnutls/gnutls.h>
 
 struct ne_ssl_context_s {
-    gnutls_certificate_credentials cred;
+    gnutls_certificate_credentials_t cred;
     int verify; /* non-zero if client cert verification required */
 
     const char *hostname; /* for SNI */
@@ -67,10 +67,10 @@ struct ne_ssl_context_s {
     /* Session cache. */
     union ne_ssl_scache {
         struct {
-            gnutls_datum key, data;
+            gnutls_datum_t key, data;
         } server;
 #if defined(HAVE_GNUTLS_SESSION_GET_DATA2)
-        gnutls_datum client;
+        gnutls_datum_t client;
 #else
         struct {
             char *data;
@@ -85,7 +85,7 @@ struct ne_ssl_context_s {
 #endif
 };
 
-typedef gnutls_session ne_ssl_socket;
+typedef gnutls_session_t ne_ssl_socket;
 
 NE_PRIVATE ne_ssl_client_cert *
 ne__ssl_clicert_exkey_import(const unsigned char *der, size_t der_len);
index 9673ebc..e28fcd4 100644 (file)
@@ -357,6 +357,14 @@ static ssize_t body_fd_send(void *userdata, char *buffer, size_t count)
 ((((code) == NE_SOCK_CLOSED || (code) == NE_SOCK_RESET || \
  (code) == NE_SOCK_TRUNC) && retry) ? NE_RETRY : (acode))
 
+/* For sending chunks, an 8-byte prefix is reserved at the beginning
+ * of the buffer.  This is large enough for a trailing \r\n for the
+ * previous chunk, the chunk size, and the \r\n following the
+ * chunk-size. */
+#define CHUNK_OFFSET (8)
+#define CHUNK_TERM "\r\n0\r\n\r\n"
+#define CHUNK_NULL_TERM "0\r\n\r\n"
+
 /* Sends the request body; returns 0 on success or an NE_* error code.
  * If retry is non-zero; will return NE_RETRY on persistent connection
  * timeout.  On error, the session error string is set and the
@@ -364,13 +372,28 @@ static ssize_t body_fd_send(void *userdata, char *buffer, size_t count)
 static int send_request_body(ne_request *req, int retry)
 {
     ne_session *const sess = req->session;
-    char buffer[NE_BUFSIZ];
+    char buffer[NE_BUFSIZ], *start;
     ssize_t bytes;
+    size_t buflen;
+    int chunked = req->body_length < 0, chunknum = 0;
+    int ret;
 
     NE_DEBUG(NE_DBG_HTTP, "Sending request body:\n");
 
+    /* Set up status union and (start, buflen) as the buffer to be
+     * passed the supplied callback. */
+    if (chunked) {
+        start = buffer + CHUNK_OFFSET;
+        buflen = sizeof(buffer) - CHUNK_OFFSET;
+        req->session->status.sr.total = -1;
+    }
+    else {
+        start = buffer;
+        buflen = sizeof buffer;
+        req->session->status.sr.total = req->body_length;
+    }
+
     req->session->status.sr.progress = 0;
-    req->session->status.sr.total = req->body_length;
     notify_status(sess, ne_status_sending);
     
     /* tell the source to start again from the beginning. */
@@ -379,8 +402,23 @@ static int send_request_body(ne_request *req, int retry)
         return NE_ERROR;
     }
     
-    while ((bytes = req->body_cb(req->body_ud, buffer, sizeof buffer)) > 0) {
-       int ret = ne_sock_fullwrite(sess->socket, buffer, bytes);
+    while ((bytes = req->body_cb(req->body_ud, start, buflen)) > 0) {
+        req->session->status.sr.progress += bytes;
+        if (chunked) {
+            /* Overwrite the buffer prefix with the appropriate chunk
+             * size; since ne_snprintf always NUL-terminates, the \n
+             * is omitted and placed over the NUL afterwards. */
+            if (chunknum++ == 0)
+                ne_snprintf(buffer, CHUNK_OFFSET, 
+                            "%06x\r", (unsigned)bytes);
+            else
+                ne_snprintf(buffer, CHUNK_OFFSET, 
+                            "\r\n%04x\r", (unsigned)bytes);
+            buffer[CHUNK_OFFSET - 1] = '\n';
+            bytes += CHUNK_OFFSET;
+        }
+        ret = ne_sock_fullwrite(sess->socket, buffer, bytes);
+
         if (ret < 0) {
             int aret = aborted(req, _("Could not send request body"), ret);
             return RETRY_RET(retry, ret, aret);
@@ -391,18 +429,31 @@ static int send_request_body(ne_request *req, int retry)
                 bytes, (int)bytes, buffer);
 
         /* invoke progress callback */
-        req->session->status.sr.progress += bytes;
         notify_status(sess, ne_status_sending);
     }
 
-    if (bytes == 0) {
-        return NE_OK;
-    } else {
+    if (bytes) {
         NE_DEBUG(NE_DBG_HTTP, "Request body provider failed with "
                  "%" NE_FMT_SSIZE_T "\n", bytes);
         ne_close_connection(sess);
         return NE_ERROR;
     }
+
+    if (chunked) {
+        if (chunknum == 0)
+            ret = ne_sock_fullwrite(sess->socket, CHUNK_NULL_TERM, 
+                                    sizeof(CHUNK_NULL_TERM) - 1);
+        else
+            ret = ne_sock_fullwrite(sess->socket, CHUNK_TERM, 
+                                    sizeof(CHUNK_TERM) - 1);
+        if (ret < 0) {
+            int aret = aborted(req, _("Could not send chunked "
+                                      "request terminator"), ret);
+            return RETRY_RET(retry, ret, aret);
+        }
+    }
+    
+    return NE_OK;
 }
 
 /* Lob the User-Agent, connection and host headers in to the request
@@ -495,7 +546,12 @@ ne_request *ne_request_create(ne_session *sess,
 static void set_body_length(ne_request *req, ne_off_t length)
 {
     req->body_length = length;
-    ne_print_request_header(req, "Content-Length", "%" FMT_NE_OFF_T, length);
+
+    if (length >= 0)
+        ne_print_request_header(req, "Content-Length", "%" FMT_NE_OFF_T, length);
+    else /* length < 0 => chunked body */
+        ne_add_request_header(req, "Transfer-Encoding", "chunked");
+
 }
 
 void ne_set_request_body_buffer(ne_request *req, const char *buffer,
@@ -529,14 +585,14 @@ void ne_set_request_body_fd(ne_request *req, int fd,
 
 void ne_set_request_flag(ne_request *req, ne_request_flag flag, int value)
 {
-    if (flag < NE_SESSFLAG_LAST) {
+    if (flag < (ne_request_flag)NE_SESSFLAG_LAST) {
         req->flags[flag] = value;
     }
 }
 
 int ne_get_request_flag(ne_request *req, ne_request_flag flag)
 {
-    if (flag < NE_REQFLAG_LAST) {
+    if (flag < (ne_request_flag)NE_REQFLAG_LAST) {
         return req->flags[flag];
     }
     return -1;
@@ -965,7 +1021,7 @@ static int send_request(ne_request *req, const ne_buffer *request)
        return RETRY_RET(retry, sret, aret);
     }
     
-    if (!req->flags[NE_REQFLAG_EXPECT100] && req->body_length > 0) {
+    if (!req->flags[NE_REQFLAG_EXPECT100] && req->body_length) {
        /* Send request body, if not using 100-continue. */
        ret = send_request_body(req, retry);
        if (ret) {
@@ -985,7 +1041,7 @@ static int send_request(ne_request *req, const ne_buffer *request)
        if ((ret = discard_headers(req)) != NE_OK) break;
 
        if (req->flags[NE_REQFLAG_EXPECT100] && (status->code == 100)
-            && req->body_length > 0 && !sentbody) {
+            && req->body_length && !sentbody) {
            /* Send the body after receiving the first 100 Continue */
            if ((ret = send_request_body(req, 0)) != NE_OK) break;          
            sentbody = 1;
index bfe5cdc..be6f3a1 100644 (file)
@@ -78,9 +78,11 @@ typedef ssize_t (*ne_provide_body)(void *userdata,
 /* Install a callback which is invoked as needed to provide the
  * request body, a block at a time.  The total size of the request
  * body is 'length'; the callback must ensure that it returns no more
- * than 'length' bytes in total. */
+ * than 'length' bytes in total.  If 'length' is set to -1, then the
+ * total size of the request is unknown by the caller and chunked 
+ * tranfer will be used. */
 void ne_set_request_body_provider(ne_request *req, ne_off_t length,
-                                 ne_provide_body provider, void *userdata);
+                                  ne_provide_body provider, void *userdata);
 
 /* Handling response bodies; two callbacks must be provided:
  *
index d9a8ed3..6e1f395 100644 (file)
@@ -74,6 +74,7 @@ static void free_proxies(ne_session *sess)
         ne_free(hi);
     }
 
+    sess->proxies = NULL;
     sess->any_proxy_http = 0;
 }
 
@@ -320,7 +321,8 @@ void ne_session_system_proxy(ne_session *sess, unsigned int flags)
 #endif
 }
 
-void ne_set_addrlist(ne_session *sess, const ne_inet_addr **addrs, size_t n)
+void ne_set_addrlist2(ne_session *sess, unsigned int port,
+                      const ne_inet_addr **addrs, size_t n)
 {
     struct host_info *hi, **lasthi;
     size_t i;
@@ -334,12 +336,17 @@ void ne_set_addrlist(ne_session *sess, const ne_inet_addr **addrs, size_t n)
         
         hi->proxy = PROXY_NONE;
         hi->network = addrs[i];
-        hi->port = sess->server.port;
+        hi->port = port;
 
         lasthi = &hi->next;
     }
 }
 
+void ne_set_addrlist(ne_session *sess, const ne_inet_addr **addrs, size_t n)
+{
+    ne_set_addrlist2(sess, sess->server.port, addrs, n);
+}
+
 void ne_set_localaddr(ne_session *sess, const ne_inet_addr *addr)
 {
     sess->local_addr = addr;    
@@ -361,6 +368,7 @@ void ne_set_session_flag(ne_session *sess, ne_session_flag flag, int value)
 #ifdef NE_HAVE_SSL
         if (flag == NE_SESSFLAG_SSLv2 && sess->ssl_context) {
             ne_ssl_context_set_flag(sess->ssl_context, NE_SSL_CTX_SSLv2, value);
+            sess->flags[flag] = ne_ssl_context_get_flag(sess->ssl_context, NE_SSL_CTX_SSLv2);
         }
 #endif
     }
index ea80089..58493bf 100644 (file)
@@ -46,10 +46,9 @@ void ne_session_destroy(ne_session *sess);
  * session. */
 void ne_close_connection(ne_session *sess);
 
-/* Set the proxy server to be used for the session.  This function
- * will override (remove) any proxy servers previously configured, and
- * must be called before any requests are created using this
- * session. */
+/* Configure an HTTP proxy server for the session.  This function will
+ * override (remove) any proxy servers previously configured, and must
+ * be called before any requests are created using this session. */
 void ne_session_proxy(ne_session *sess,
                      const char *hostname, unsigned int port);
 
@@ -119,6 +118,16 @@ int ne_get_session_flag(ne_session *sess, ne_session_flag flag);
  * created using this session.  */
 void ne_set_addrlist(ne_session *sess, const ne_inet_addr **addrs, size_t n);
 
+/* Bypass the normal name resolution; force the use of specific set of
+ * addresses for this session, addrs[0]...addrs[n-1].  The 'addrs'
+ * array and pointed-to objects must remain valid until the session is
+ * destroyed.  This function will override (remove) any proxy servers
+ * previously configured, and must be called before any requests are
+ * created using this session.  Port number 'port' will be used
+ * instead of the "real" session port, to connect to the proxy. */
+void ne_set_addrlist2(ne_session *sess, unsigned int port, 
+                      const ne_inet_addr **addrs, size_t n);
+
 /* Bind connections to the specified local address.  If the address
  * determined for the remote host has a different family (type) to
  * 'addr', 'addr' will be ignored.  The 'addr' object must remain
index c946327..2dadac6 100644 (file)
@@ -1,6 +1,6 @@
 /* 
    Socket handling routines
-   Copyright (C) 1998-2009, Joe Orton <joe@manyfish.co.uk>
+   Copyright (C) 1998-2011, Joe Orton <joe@manyfish.co.uk>
    Copyright (C) 2004 Aleix Conchillo Flaque <aleix@member.fsf.org>
 
    This library is free software; you can redistribute it and/or
@@ -27,6 +27,9 @@
 #include "config.h"
 
 #include <sys/types.h>
+#ifdef HAVE_SYS_UIO_h
+#include <sys/uio.h> /* writev(2) */
+#endif
 #ifdef HAVE_SYS_TIME_H
 #include <sys/time.h>
 #endif
@@ -227,6 +230,7 @@ struct ne_sock_addr_s {
 #else
     struct in_addr *addrs;
     size_t cursor, count;
+    char *name;
 #endif
     int errnum;
 };
@@ -392,12 +396,13 @@ static int raw_poll(int fdno, int rdwr, int secs)
         ret = poll(&fds, 1, timeout);
     } while (ret < 0 && NE_ISINTR(ne_errno));
 #else
-    fd_set rdfds, wrfds;
+    fd_set rdfds, wrfds, exfds;
     struct timeval timeout, *tvp = (secs >= 0 ? &timeout : NULL);
 
     /* Init the fd set */
     FD_ZERO(&rdfds);
     FD_ZERO(&wrfds);
+    FD_ZERO(&exfds);
 
     /* Note that (amazingly) the FD_SET macro does not expand
      * correctly on Netware if not inside a compound statement
@@ -407,13 +412,14 @@ static int raw_poll(int fdno, int rdwr, int secs)
     } else {
         FD_SET(fdno, &wrfds);
     }
+    FD_SET(fdno, &exfds);
 
     if (tvp) {
         tvp->tv_sec = secs;
         tvp->tv_usec = 0;
     }
     do {
-       ret = select(fdno + 1, &rdfds, &wrfds, NULL, tvp);
+       ret = select(fdno + 1, &rdfds, &wrfds, &exfds, tvp);
     } while (ret < 0 && NE_ISINTR(ne_errno));
 #endif
     return ret;
@@ -721,9 +727,11 @@ static ssize_t error_gnutls(ne_socket *sock, ssize_t sret)
                     _("SSL alert received: %s"),
                     gnutls_alert_get_name(gnutls_alert_get(sock->ssl)));
         break;
+#if GNUTLS_VERSION_MAJOR > 2 || (GNUTLS_VERSION_MAJOR == 2 && GNUTLS_VERSION_MINOR >= 99)
+    case GNUTLS_E_PREMATURE_TERMINATION:
+#else
     case GNUTLS_E_UNEXPECTED_PACKET_LENGTH:
-        /* It's not exactly an API guarantee but this error will
-         * always mean a premature EOF. */
+#endif
         ret = NE_SOCK_TRUNC;
         set_error(sock, _("Secure connection truncated"));
         break;
@@ -910,12 +918,16 @@ ne_sock_addr *ne_addr_resolve(const char *hostname, int flags)
 
     hints.ai_socktype = SOCK_STREAM;
 
+    if (flags & NE_ADDR_CANON) {
+        hints.ai_flags = AI_CANONNAME;
+    }
+
 #ifdef AF_INET6
     if (hostname[0] == '[' && ((pnt = strchr(hostname, ']')) != NULL)) {
        char *hn = ne_strdup(hostname + 1);
        hn[pnt - hostname - 1] = '\0';
 #ifdef AI_NUMERICHOST /* added in the RFC2553 API */
-       hints.ai_flags = AI_NUMERICHOST;
+       hints.ai_flags |= AI_NUMERICHOST;
 #endif
         hints.ai_family = AF_INET6;
        addr->errnum = getaddrinfo(hn, NULL, &hints, &addr->result);
@@ -924,7 +936,7 @@ ne_sock_addr *ne_addr_resolve(const char *hostname, int flags)
 #endif /* AF_INET6 */
     {
 #ifdef USE_GAI_ADDRCONFIG /* added in the RFC3493 API */
-        hints.ai_flags = AI_ADDRCONFIG;
+        hints.ai_flags |= AI_ADDRCONFIG;
         hints.ai_family = AF_UNSPEC;
         addr->errnum = getaddrinfo(hostname, NULL, &hints, &addr->result);
 #else
@@ -959,6 +971,9 @@ ne_sock_addr *ne_addr_resolve(const char *hostname, int flags)
 
            for (n = 0; n < addr->count; n++)
                memcpy(&addr->addrs[n], hp->h_addr_list[n], hp->h_length);
+            
+            if (hp->h_name && hp->h_name[0]) 
+                addr->name = ne_strdup(hp->h_name);
        }
     } else {
        addr->addrs = ne_malloc(sizeof *addr->addrs);
@@ -974,6 +989,15 @@ int ne_addr_result(const ne_sock_addr *addr)
     return addr->errnum;
 }
 
+const char *ne_addr_canonical(const ne_sock_addr *addr)
+{
+#ifdef USE_GETADDRINFO
+    return addr->result ? addr->result->ai_canonname : NULL;
+#else
+    return addr->name;
+#endif
+}
+
 const ne_inet_addr *ne_addr_first(ne_sock_addr *addr)
 {
 #ifdef USE_GETADDRINFO
@@ -1135,7 +1159,9 @@ int ne_iaddr_reverse(const ne_inet_addr *ia, char *buf, size_t bufsiz)
 #else
     struct hostent *hp;
     
-    hp = gethostbyaddr(ia, sizeof *ia, AF_INET);
+    /* Cast to const void *; some old libc headers apparently expect
+     * const char * here. */
+    hp = gethostbyaddr((const void *)ia, sizeof *ia, AF_INET);
     if (hp && hp->h_name) {
         ne_strnzcpy(buf, hp->h_name, bufsiz);
         return 0;
@@ -1152,6 +1178,8 @@ void ne_addr_destroy(ne_sock_addr *addr)
 #else
     if (addr->addrs)
        ne_free(addr->addrs);
+    if (addr->name)
+        ne_free(addr->name);
 #endif
     ne_free(addr);
 }
@@ -1230,18 +1258,18 @@ static int timed_connect(ne_socket *sock, int fd,
             }
         }
         
-        /* Reset to old flags: */
-        if (fcntl(fd, F_SETFL, flags) == -1) {
+        /* Reset to old flags; fail on error if no previous error. */
+        if (fcntl(fd, F_SETFL, flags) == -1 && !ret) {
             set_strerror(sock, errno);
             ret = NE_SOCK_ERROR;
-        }       
+        }
     } else 
 #endif /* USE_NONBLOCKING_CONNECT */
     {
         ret = raw_connect(fd, sa, salen);
         
         if (ret < 0) {
-            set_strerror(sock, errno);
+            set_strerror(sock, ne_errno);
             ret = NE_SOCK_ERROR;
         }
     }
@@ -1366,7 +1394,9 @@ static int do_bind(int fd, int peer_family,
 
 #ifdef SOCK_CLOEXEC
 /* sock_cloexec is initialized to SOCK_CLOEXEC and cleared to zero if
- * a socket() call ever fails with EINVAL. */
+ * a socket() call ever fails with EINVAL; not strictly thread-safe
+ * but in practice it will not matter if two threads race accessing
+ * the variable. */
 static int sock_cloexec = SOCK_CLOEXEC;
 #define RETRY_ON_EINVAL
 #else
@@ -1428,7 +1458,7 @@ int ne_sock_connect(ne_socket *sock,
                         ia_family(sock->laddr) == ia_family(addr))) {
         ret = do_bind(fd, ia_family(addr), sock->laddr, sock->lport);
         if (ret < 0) {
-            int errnum = errno;
+            int errnum = ne_errno;
             ne_close(fd);
             set_strerror(sock, errnum);
             return NE_SOCK_ERROR;
@@ -1579,8 +1609,10 @@ int ne_sock_accept(ne_socket *sock, int listener)
 {
     int fd = accept(listener, NULL, NULL);
 
-    if (fd < 0)
+    if (fd < 0) {
+        set_strerror(sock, ne_errno);
         return -1;
+    }
 
     sock->fd = fd;
     return 0;
@@ -1608,14 +1640,14 @@ void ne_sock_connect_timeout(ne_socket *sock, int timeout)
  * session. */
 
 /* Copy datum 'src' to 'dest'. */
-static void copy_datum(gnutls_datum *dest, gnutls_datum *src)
+static void copy_datum(gnutls_datum_t *dest, gnutls_datum_t *src)
 {
     dest->size = src->size;
     dest->data = memcpy(gnutls_malloc(src->size), src->data, src->size);
 }
 
 /* Callback to store a session 'data' with id 'key'. */
-static int store_sess(void *userdata, gnutls_datum key, gnutls_datum data)
+static int store_sess(void *userdata, gnutls_datum_t key, gnutls_datum_t data)
 {
     ne_ssl_context *ctx = userdata;
 
@@ -1631,17 +1663,17 @@ static int store_sess(void *userdata, gnutls_datum key, gnutls_datum data)
 }
 
 /* Returns non-zero if d1 and d2 are the same datum. */
-static int match_datum(gnutls_datum *d1, gnutls_datum *d2)
+static int match_datum(gnutls_datum_t *d1, gnutls_datum_t *d2)
 {
     return d1->size == d2->size
         && memcmp(d1->data, d2->data, d1->size) == 0;
 }
 
 /* Callback to retrieve a session of id 'key'. */
-static gnutls_datum retrieve_sess(void *userdata, gnutls_datum key)
+static gnutls_datum_t retrieve_sess(void *userdata, gnutls_datum_t key)
 {
     ne_ssl_context *ctx = userdata;
-    gnutls_datum ret = { NULL, 0 };
+    gnutls_datum_t ret = { NULL, 0 };
 
     if (match_datum(&ctx->cache.server.key, &key)) {
         copy_datum(&ret, &ctx->cache.server.data);
@@ -1652,7 +1684,7 @@ static gnutls_datum retrieve_sess(void *userdata, gnutls_datum key)
 
 /* Callback to remove a session of id 'key'; stub needed but
  * implementation seems unnecessary. */
-static int remove_sess(void *userdata, gnutls_datum key)
+static int remove_sess(void *userdata, gnutls_datum_t key)
 {
     return -1;
 }
@@ -1678,6 +1710,8 @@ int ne_sock_accept_ssl(ne_socket *sock, ne_ssl_context *ctx)
         NE_DEBUG(NE_DBG_SSL, "ssl: Server reused session.\n");
     }
 #elif defined(HAVE_GNUTLS)
+    unsigned int verify_status;
+
     gnutls_init(&ssl, GNUTLS_SERVER);
     gnutls_credentials_set(ssl, GNUTLS_CRD_CERTIFICATE, ctx->cred);
     gnutls_set_default_priority(ssl);
@@ -1689,15 +1723,15 @@ int ne_sock_accept_ssl(ne_socket *sock, ne_ssl_context *ctx)
     gnutls_db_set_ptr(ssl, ctx);
 
     if (ctx->verify)
-        gnutls_certificate_server_set_request(ssl, GNUTLS_CERT_REQUEST);
+        gnutls_certificate_server_set_request(ssl, GNUTLS_CERT_REQUIRE);
 
     sock->ssl = ssl;
-    gnutls_transport_set_ptr(sock->ssl, (gnutls_transport_ptr)(long)sock->fd);
+    gnutls_transport_set_ptr(sock->ssl, (gnutls_transport_ptr_t)(long)sock->fd);
     ret = gnutls_handshake(ssl);
     if (ret < 0) {
         return error_gnutls(sock, ret);
     }
-    if (ctx->verify && gnutls_certificate_verify_peers(ssl)) {
+    if (ctx->verify && (gnutls_certificate_verify_peers2(ssl, &verify_status) || verify_status)) {
         set_error(sock, _("Client certificate verification failed"));
         return NE_SOCK_ERROR;
     }
@@ -1718,13 +1752,6 @@ int ne_sock_connect_ssl(ne_socket *sock, ne_ssl_context *ctx, void *userdata)
        return NE_SOCK_ERROR;
     }
 
-    /* If runtime library version differs from compile-time version
-     * number in major/minor/fix level, abort soon. */
-    if ((SSLeay() ^ OPENSSL_VERSION_NUMBER) & 0xFFFFF000) {
-        set_error(sock, _("SSL disabled due to library version mismatch"));
-        return NE_SOCK_ERROR;
-    }
-
     sock->ssl = ssl = SSL_new(ctx->ctx);
     if (!ssl) {
        set_error(sock, _("Could not create SSL structure"));
@@ -1774,7 +1801,7 @@ int ne_sock_connect_ssl(ne_socket *sock, ne_ssl_context *ctx, void *userdata)
                                strlen(ctx->hostname));
     }                               
 
-    gnutls_transport_set_ptr(sock->ssl, (gnutls_transport_ptr)(long)sock->fd);
+    gnutls_transport_set_ptr(sock->ssl, (gnutls_transport_ptr_t)(long)sock->fd);
 
     if (ctx->cache.client.data) {
 #if defined(HAVE_GNUTLS_SESSION_GET_DATA2)
index e02e86c..22b203d 100644 (file)
@@ -62,9 +62,11 @@ int ne_sock_init(void);
  * times to ne_sock_init() for the process. */
 void ne_sock_exit(void);
 
-/* Resolve the given hostname.  'flags' must be zero.  Hex
- * string IPv6 addresses (e.g. `::1') may be enclosed in brackets
- * (e.g. `[::1]'). */
+#define NE_ADDR_CANON (0x01)
+/* Resolve the given hostname. Hex string IPv6 addresses (e.g. `::1')
+ * may be enclosed in brackets (e.g. `[::1]').  'flags' should be
+ * zero, or if NE_ADDR_CANON is passed, the canonical name for the
+ * hostname will be determind. */
 ne_sock_addr *ne_addr_resolve(const char *hostname, int flags);
 
 /* Returns zero if name resolution was successful, non-zero on
@@ -88,6 +90,11 @@ const ne_inet_addr *ne_addr_next(ne_sock_addr *addr);
  * which is of size 'bufsiz'.  'buffer' is returned. */
 char *ne_addr_error(const ne_sock_addr *addr, char *buffer, size_t bufsiz);
 
+/* Returns the canonical name of the host as a NUL-terminated string,
+ * if NE_ADDR_CANON was used, and name resolution was successful.
+ * Otherwise, returns NULL. */
+const char *ne_addr_canonical(const ne_sock_addr *addr);
+
 /* Destroys an address object created by ne_addr_resolve. */
 void ne_addr_destroy(ne_sock_addr *addr);
 
index cf9bbf5..685b2c9 100644 (file)
@@ -121,12 +121,20 @@ void ne_ssl_cert_free(ne_ssl_certificate *cert);
  * "decrypted" state.  */
 typedef struct ne_ssl_client_cert_s ne_ssl_client_cert;
 
-/* Read a client certificate and private key from a PKCS12 file;
- * returns NULL if the file could not be parsed, or otherwise
- * returning a client certificate object.  The returned object may be
- * in either the encrypted or decrypted state. */
+/* Read a client certificate (and private key) in PKCS#12 format from
+ * file 'filename'; returns NULL if the file could not be parsed, or
+ * otherwise returning a client certificate object.  The returned
+ * object may be in either the encrypted or decrypted state. */
 ne_ssl_client_cert *ne_ssl_clicert_read(const char *filename);
 
+/* Read a client certificate (and private key) in PKCS#12 format from
+ * 'buffer', of length 'buflen', returning NULL if the certificate
+ * could not be parsed, or otherwise returning a client certificate
+ * object.  The returned object may be in either the encrypted or
+ * decrypted state. */
+ne_ssl_client_cert *ne_ssl_clicert_import(const unsigned char *buffer, 
+                                          size_t buflen);
+
 /* Returns non-zero if client cert is in the encrypted state. */
 int ne_ssl_clicert_encrypted(const ne_ssl_client_cert *ccert);
 
@@ -182,6 +190,9 @@ int ne_ssl_context_set_verify(ne_ssl_context *ctx, int required,
 /* Set a flag for the SSL context. */
 void ne_ssl_context_set_flag(ne_ssl_context *ctx, int flag, int value);
 
+/* Return flag value. */
+int ne_ssl_context_get_flag(ne_ssl_context *ctx, int flag);
+
 /* Destroy an SSL context. */
 void ne_ssl_context_destroy(ne_ssl_context *ctx);
 
index 4b59cdc..9b40df7 100644 (file)
@@ -337,34 +337,24 @@ static int freeBuffer(SecBufferDesc * secBufferDesc)
  */
 static char *canonical_hostname(const char *serverName)
 {
-    char *hostname;
-    ne_sock_addr *addresses;
+    const char *hostname;
+    ne_sock_addr *addr;
     
-    /* DNS resolution.  It would be useful to be able to use the
-     * AI_CANONNAME flag where getaddrinfo() is available, but the
-     * reverse-lookup is sufficient and simpler. */
-    addresses = ne_addr_resolve(serverName, 0);
-    if (ne_addr_result(addresses)) {
+    addr = ne_addr_resolve(serverName, NE_ADDR_CANON);
+    if (ne_addr_result(addr) || ne_addr_canonical(addr) == NULL) {
         /* Lookup failed */
         char buf[256];
         NE_DEBUG(NE_DBG_HTTPAUTH,
                  "sspi: Could not resolve IP address for `%s': %s\n",
-                 serverName, ne_addr_error(addresses, buf, sizeof buf));
+                 serverName, ne_addr_error(addr, buf, sizeof buf));
         hostname = ne_strdup(serverName);
-    } else {
-        char hostbuffer[256];
-        const ne_inet_addr *address = ne_addr_first(addresses);
-
-        if (ne_iaddr_reverse(address, hostbuffer, sizeof hostbuffer) == 0) {
-            hostname = ne_strdup(hostbuffer);
-        } else {
-            NE_DEBUG(NE_DBG_HTTPAUTH, "sspi: Could not resolve host name"
-                     "from IP address for `%s'\n", serverName);
-            hostname = ne_strdup(serverName);
-        }
     }
+    else {
+        hostname = ne_strdup(ne_addr_canonical(addr));
+    }
+
+    ne_addr_destroy(addr);
 
-    ne_addr_destroy(addresses);
     return hostname;
 }
 
@@ -477,6 +467,7 @@ int ne_sspi_clear_context(void *context)
         return status;
     }
     sspiContext->authfinished = 0;
+    sspiContext->continueNeeded = 0;
     return 0;
 }
 /*
index 8d86c31..4d0ab91 100644 (file)
@@ -474,8 +474,8 @@ char *ne_path_unescape(const char *uri)
 }
 
 /* CH must be an unsigned char; evaluates to 1 if CH should be
- * percent-encoded. */
-#define path_escape_ch(ch) (uri_lookup(ch) & URI_ESCAPE)
+ * percent-encoded (note !!x == x ? 1 : 0). */
+#define path_escape_ch(ch) (!!(uri_lookup(ch) & URI_ESCAPE))
 
 char *ne_path_escape(const char *path) 
 {
index 93985af..5b120c8 100644 (file)
@@ -118,6 +118,9 @@ static const char version_string[] = "neon " NEON_VERSION ": "
 #ifdef HAVE_GNUTLS
     ", GNU TLS " LIBGNUTLS_VERSION
 #endif /* HAVE_GNUTLS */
+#ifdef HAVE_SSPI
+    ", SSPI"
+#endif /* HAVE_SSPI */
    "."
 ;
 
@@ -137,7 +140,7 @@ int ne_has_support(int feature)
     switch (feature) {
 #if defined(NE_HAVE_SSL) || defined(NE_HAVE_ZLIB) || defined(NE_HAVE_IPV6) \
     || defined(NE_HAVE_SOCKS) || defined(NE_HAVE_LFS) \
-    || defined(NE_HAVE_TS_SSL) || defined(NE_HAVE_I18N)
+    || defined(NE_HAVE_TS_SSL) || defined(NE_HAVE_I18N) || defined(HAVE_SSPI)
 #ifdef NE_HAVE_SSL
     case NE_FEATURE_SSL:
 #endif
@@ -159,6 +162,9 @@ int ne_has_support(int feature)
 #ifdef NE_HAVE_I18N
     case NE_FEATURE_I18N:
 #endif
+#ifdef HAVE_SSPI
+    case NE_FEATURE_SSPI:
+#endif
         return 1;
 #endif /* NE_HAVE_* */
     default:
index d23a945..c298cf9 100644 (file)
@@ -54,6 +54,7 @@ int ne_version_match(int major, int minor);
 #define NE_FEATURE_SOCKS (5) /* SOCKSv5 support */
 #define NE_FEATURE_TS_SSL (6) /* Thread-safe SSL/TLS support */
 #define NE_FEATURE_I18N (7) /* i18n error message support */
+#define NE_FEATURE_SSPI (8) /* NTLM/Negotiate authentication protocol via SSPI */
 
 /* Returns non-zero if library is built with support for the given
  * NE_FEATURE_* feature code 'code'. */
index e482b5e..bed99c2 100644 (file)
@@ -12,5 +12,11 @@ NEON_0_29 {
     ne_acl3744_set;
     ne_buffer_qappend;
     ne_strnqdup;
-    ne_iaddr_parse;
+};
+
+NEON_0_30 {
+    ne_ssl_clicert_import;
+    ne_addr_canonical;
+    ne_ssl_context_get_flag;
+    ne_set_addrlist2;
 };
diff --git a/test/.gdbinit b/test/.gdbinit
new file mode 100644 (file)
index 0000000..a08408f
--- /dev/null
@@ -0,0 +1,2 @@
+handle SIGPIPE noprint pass nostop
+handle SIGUSR1 print pass nostop
index 4281e40..692c37b 100644 (file)
@@ -318,7 +318,7 @@ static int retries(void)
 /* crashes with neon <0.22 */
 static int forget_regress(void)
 {
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
+    ne_session *sess = ne_session_create("http", "localhost", 1234);
     ne_forget_auth(sess);
     ne_session_destroy(sess);
     return OK;    
@@ -333,13 +333,14 @@ static int fail_auth_cb(void *ud, const char *realm, int attempt,
 /* this may trigger a segfault in neon 0.21.x and earlier. */
 static int tunnel_regress(void)
 {
-    ne_session *sess = ne_session_create("https", "localhost", 443);
-    ne_session_proxy(sess, "localhost", 7777);
+    ne_session *sess;
+    
+    CALL(proxied_session_server(&sess, "http", "localhost", 443,
+                                single_serve_string,
+                                "HTTP/1.1 401 Auth failed.\r\n"
+                                "WWW-Authenticate: Basic realm=asda\r\n"
+                                "Content-Length: 0\r\n\r\n"));
     ne_set_server_auth(sess, fail_auth_cb, NULL);
-    CALL(spawn_server(7777, single_serve_string,
-                     "HTTP/1.1 401 Auth failed.\r\n"
-                     "WWW-Authenticate: Basic realm=asda\r\n"
-                     "Content-Length: 0\r\n\r\n"));
     any_request(sess, "/foo");
     ne_session_destroy(sess);
     CALL(await_server());
@@ -350,12 +351,13 @@ static int tunnel_regress(void)
  * token. */
 static int negotiate_regress(void)
 {
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
+    ne_session *sess;
+    
+    CALL(session_server(&sess, single_serve_string,
+                        "HTTP/1.1 401 Auth failed.\r\n"
+                        "WWW-Authenticate: Negotiate\r\n"
+                        "Content-Length: 0\r\n\r\n"));
     ne_set_server_auth(sess, fail_auth_cb, NULL);
-    CALL(spawn_server(7777, single_serve_string,
-                     "HTTP/1.1 401 Auth failed.\r\n"
-                     "WWW-Authenticate: Negotiate\r\n"
-                     "Content-Length: 0\r\n\r\n"));
     any_request(sess, "/foo");
     ne_session_destroy(sess);
     CALL(await_server());
@@ -789,17 +791,15 @@ static int test_digest(struct digest_parms *parms)
              parms->stale);
 
     if (parms->proxy) {
-        sess = ne_session_create("http", "www.example.com", 80);
-        ne_session_proxy(sess, "localhost", 7777);
+        CALL(proxied_session_server(&sess, "http", "www.example.com", 80,
+                                    serve_digest, parms));
         ne_set_proxy_auth(sess, auth_cb, NULL);
     } 
     else {
-        sess = ne_session_create("http", "localhost", 7777);
+        CALL(session_server(&sess, serve_digest, parms));
         ne_set_server_auth(sess, auth_cb, NULL);
     }
 
-    CALL(spawn_server(7777, serve_digest, parms));
-
     do {
         CALL(any_2xx_request(sess, "/fish"));
     } while (--parms->num_requests);
@@ -879,7 +879,7 @@ static int digest_failures(void)
     parms.num_requests = 1;
 
     for (n = 0; fails[n].message; n++) {
-        ne_session *sess = ne_session_create("http", "localhost", 7777);
+        ne_session *sess;
         int ret;
 
         parms.failure = fails[n].mode;
@@ -892,8 +892,9 @@ static int digest_failures(void)
         NE_DEBUG(NE_DBG_HTTP, ">>> New Digest failure test, "
                  "expecting failure '%s'\n", fails[n].message);
         
+        CALL(session_server(&sess, serve_digest, &parms));
+
         ne_set_server_auth(sess, auth_cb, NULL);
-        CALL(spawn_server(7777, serve_digest, &parms));
         
         ret = any_2xx_request(sess, "/fish");
         ONV(ret == NE_OK,
@@ -1067,15 +1068,14 @@ static int domains(void)
     parms.realm = "WallyWorld";
     parms.rfc2617 = 1;
     parms.nonce = "agoog";
-    parms.domain = "http://localhost:7777/fish/ https://example.com /agaor /other";
+    parms.domain = "http://localhost:4242/fish/ https://example.com /agaor /other";
     parms.num_requests = 6;
 
-    CALL(make_session(&sess, serve_digest, &parms));
+    CALL(proxied_session_server(&sess, "http", "localhost", 4242,
+                                serve_digest, &parms));
 
     ne_set_server_auth(sess, auth_cb, NULL);
 
-    ne_session_proxy(sess, "localhost", 7777);
-
     CALL(any_2xx_request(sess, "/fish/0"));
     CALL(any_2xx_request(sess, "/outside"));
     CALL(any_2xx_request(sess, "/others"));
@@ -1101,12 +1101,11 @@ static int CVE_2008_3746(void)
     parms.domain = "foo";
     parms.num_requests = 1;
 
-    CALL(make_session(&sess, serve_digest, &parms));
+    CALL(proxied_session_server(&sess, "http", "www.example.com", 80,
+                                serve_digest, &parms));
 
     ne_set_server_auth(sess, auth_cb, NULL);
 
-    ne_session_proxy(sess, "localhost", 7777);
-
     any_2xx_request(sess, "/fish/0");
     
     ne_session_destroy(sess);
index f149ed4..1af11c0 100644 (file)
@@ -1,6 +1,6 @@
 /* 
    Tests for high-level HTTP interface (ne_basic.h)
-   Copyright (C) 2002-2008, Joe Orton <joe@manyfish.co.uk>
+   Copyright (C) 2002-2008, 2012, 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
@@ -271,6 +271,52 @@ static int get(void)
     return OK;
 }
 
+#define CLASS_12 (NE_CAP_DAV_CLASS1 | NE_CAP_DAV_CLASS2)
+
+static int options2(void)
+{
+    static const struct {
+        const char *hdrs;
+        unsigned int caps;
+    } ts[] = {
+        { "1,2\r\n", CLASS_12 },
+        { "1 2\r\n", 0 },
+        /* these aren't strictly legal headers: */
+        { "2,1\r\n", CLASS_12 },
+        { " 1, 2  \r\n", CLASS_12 },
+        { "1\r\nDAV:2\r\n", CLASS_12 },
+        /* extended types */
+        { "1, 2, extended-mkcol", CLASS_12 | NE_CAP_EXT_MKCOL },
+        { NULL, 0 }
+    };
+    char resp[BUFSIZ];
+    int n;
+
+    for (n = 0; ts[n].hdrs != NULL; n++) {
+        ne_session *sess;
+        unsigned int caps;
+
+        ne_snprintf(resp, BUFSIZ, "HTTP/1.0 200 OK\r\n"
+                    "Connection: close\r\n"
+                    "Content-Length: 0\r\n"
+                    "DAV: %s" "\r\n\r\n", ts[n].hdrs);
+
+        CALL(make_session(&sess, single_serve_string, resp));
+
+        ONREQ(ne_options2(sess, "/foo", &caps));
+
+        ONV(caps != ts[n].caps,
+            ("capabilities for 'DAV: %s' were 0x%x, expected 0x%x", 
+             ts[n].hdrs, caps, ts[n].caps));
+
+        CALL(await_server());
+
+        ne_session_destroy(sess);
+    }
+
+    return OK;  
+}
+
 ne_test tests[] = {
     T(lookup_localhost),
     T(content_type),
@@ -282,6 +328,7 @@ ne_test tests[] = {
     T(fail_range_unsatify),
     T(dav_capabilities),
     T(get),
+    T(options2),
     T(NULL) 
 };
 
index d8f5c2b..0798c93 100644 (file)
@@ -1,6 +1,6 @@
 /* 
    Framework for testing with a server process
-   Copyright (C) 2001-2008, 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
@@ -54,7 +54,9 @@ static pid_t child = 0;
 
 int clength;
 
-static struct in_addr lh_addr = {0}, hn_addr = {0};
+static struct in_addr lh_addr, hn_addr;
+
+static int have_lh_addr;
 
 const char *want_header = NULL;
 got_header_fn got_header = NULL;
@@ -73,6 +75,7 @@ int lookup_localhost(void)
     /* this will break if a system is set up so that `localhost' does
      * not resolve to 127.0.0.1, but... */
     lh_addr.s_addr = inet_addr("127.0.0.1");
+    have_lh_addr = 1;
     return OK;
 }
 
@@ -221,7 +224,8 @@ int spawn_server_addr(int bind_local, int port, server_fn fn, void *ud)
 
        /* print the error out otherwise it gets lost. */
        if (ret) {
-           printf("server child failed: %s\n", test_context);
+           printf("server child failed (%s): %s\n", 
+                   tests[test_num].name, test_context);
        }
        
        /* and quit the child. */
@@ -283,10 +287,11 @@ int spawn_server_repeat(int port, server_fn fn, void *userdata, int n)
            NE_DEBUG(NE_DBG_HTTP, "child awaiting connection #%d.\n", count);
            ONN("accept failed", ne_sock_accept(sock, listener));
            ret = fn(sock, userdata);
+           NE_DEBUG(NE_DBG_HTTP, "child handled connection, %d.\n", ret);
            close_socket(sock);
-           NE_DEBUG(NE_DBG_HTTP, "child served request, %d.\n", ret);
            if (ret) {
-               printf("server child failed: %s\n", test_context);
+                printf("server child failed (%s, iteration %d/%d): %s\n", 
+                       tests[test_num].name, count, n, test_context);
                exit(-1);
            }
            /* don't send back notification to parent more than
@@ -315,6 +320,89 @@ int spawn_server_repeat(int port, server_fn fn, void *userdata, int n)
     return OK;
 }
 
+int new_spawn_server(int count, server_fn fn, void *userdata,
+                     unsigned int *port)
+{
+    ne_inet_addr *addr;
+    int ret;
+
+    ret = new_spawn_server2(count, fn, userdata, &addr, port);
+    
+    ne_iaddr_free(addr);
+
+    return ret;
+}
+
+int new_spawn_server2(int count, server_fn fn, void *userdata,
+                      ne_inet_addr **addr, unsigned int *port)
+{
+    struct sockaddr_in sa;
+    socklen_t salen = sizeof sa;
+    int ls;
+    
+    if (!have_lh_addr)
+        lookup_localhost();
+
+    ls = do_listen(lh_addr, 0);
+    ONN("could not bind/listen fd for server", ls < 0);
+
+    ONV(getsockname(ls, &sa, &salen) != 0,
+        ("could not get socket name for listening fd: %s",
+         strerror(errno)));
+    
+    *port = ntohs(sa.sin_port);
+    *addr = ne_iaddr_make(ne_iaddr_ipv4, (unsigned char *)&lh_addr.s_addr);
+
+    NE_DEBUG(NE_DBG_SOCKET, "child using port %u\n", *port);
+    
+    NE_DEBUG(NE_DBG_SOCKET, "child forking now...\n");
+
+    child = fork();
+    ONN("failed to fork server", child == -1);
+
+    if (child == 0) {
+        int ret, iter = 1;
+        
+        in_child();
+
+        NE_DEBUG(NE_DBG_SOCKET, ">>> child spawned, port %u, %d iterations.\n",
+                 *port, count);
+
+        do {
+            ne_socket *sock = ne_sock_create();
+            char errbuf[256];            
+            int cret;
+
+            NE_DEBUG(NE_DBG_HTTP, "child iteration #%d (of %d), "
+                     "awaiting connection...\n", iter, count);
+
+            if (ne_sock_accept(sock, ls)) {
+                t_context("Server child could not accept connection: %s", 
+                          ne_sock_error(sock));
+                exit(FAIL);
+            }
+
+            NE_DEBUG(NE_DBG_HTTP, "child got connection, invoking server\n");
+            ret = fn(sock, userdata);
+            NE_DEBUG(NE_DBG_HTTP, "child iteration #%d returns %d\n",
+                     iter, ret);
+
+           cret = close_socket(sock);
+           NE_DEBUG(NE_DBG_HTTP, "child closed connection, %d: %s.\n", cret,
+                     cret ? ne_strerror(cret, errbuf, sizeof errbuf) 
+                     : "no error");
+
+        } while (ret == 0 && ++iter <= count);
+
+        NE_DEBUG(NE_DBG_HTTP, "child terminating with %d\n", ret);
+        exit(ret);
+    }
+
+    close(ls);
+
+    return OK;
+}
+
 int dead_server(void)
 {
     int status;
index 39bdb1d..432fb6c 100644 (file)
@@ -1,6 +1,6 @@
 /* 
    Framework for testing with a server process
-   Copyright (C) 2001-2004, Joe Orton <joe@manyfish.co.uk>
+   Copyright (C) 2001-2004, 2009, 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
@@ -63,6 +63,16 @@ int spawn_server_addr(int bind_local, int port, server_fn fn, void *userdata);
  * child process exits with a failure status. */
 int spawn_server_repeat(int port, server_fn fn, void *userdata, int n);
 
+/* Forks a server child process running 'fn(userdata)' on an
+ * unspecified port.  Sets test suite error on failure; on success,
+ * sets *port to bound port number. */
+int new_spawn_server(int count, server_fn fn, void *userdata, 
+                     unsigned int *port);
+
+/* As per new_spawn_server, but also returns the bound address as *addr. */
+int new_spawn_server2(int count, server_fn fn, void *userdata,
+                      ne_inet_addr **addr, unsigned int *port);
+
 /* Blocks until child process exits, and gives return code of 'fn'. */
 int await_server(void);
 
index 1ef9981..e93afea 100644 (file)
@@ -338,6 +338,7 @@ int main(int argc, char *argv[])
            break;
        case FAILHARD:
            aborted = 1;
+           COL("41;37;01"); printf("fatal error - "); NOCOL;
            /* fall-through */
        case FAIL:
            COL("41;37;01"); printf("FAIL"); NOCOL;
@@ -414,7 +415,7 @@ int main(int argc, char *argv[])
        if (warnings) {
            if (quiet) {
                 printf("(%d warning%s)\n", warnings, 
-                       warnings==1?"s":"");
+                       warnings > 1 ? "s" : "");
             }
             else {
                 printf("-> %d warning%s issued.\n", warnings, 
index 7d91639..bc9ffea 100644 (file)
@@ -24,8 +24,6 @@
 #include <unistd.h>
 #endif
 
-#include <fcntl.h>
-
 #include "ne_compress.h"
 #include "ne_auth.h"
 
@@ -91,33 +89,18 @@ static int reader(void *ud, const char *block, size_t len)
     return 0;
 }
 
-static int file2buf(int fd, ne_buffer *buf)
-{
-    char buffer[BUFSIZ];
-    ssize_t n;
-    
-    while ((n = read(fd, buffer, BUFSIZ)) > 0) {
-       ne_buffer_append(buf, buffer, n);
-    }
-    
-    return 0;
-}
-
 static int do_fetch(const char *realfn, const char *gzipfn,
                    int chunked, int expect_fail)
 {
     ne_session *sess;
     ne_request *req;
-    int fd, ret;
+    int ret;
     ne_buffer *buf = ne_buffer_create();
     struct serve_file_args sfargs;
     ne_decompress *dc;
     struct string body;
     
-    fd = open(realfn, O_RDONLY);
-    ONN("failed to open file", fd < 0);
-    file2buf(fd, buf);
-    (void) close(fd);
+    CALL(file_to_buffer(realfn, buf));
 
     body.data = buf->data;
     body.len = buf->used - 1;
index 0322ee8..1c2f081 100644 (file)
@@ -1,6 +1,6 @@
 /* 
    lock tests
-   Copyright (C) 2002-2006, Joe Orton <joe@manyfish.co.uk>
+   Copyright (C) 2002-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
@@ -217,6 +217,14 @@ static int store_several(void)
     return OK;
 }
 
+/* Use a fake session forced to use port 7777 to the origin, to
+ * simplify the tests. */
+static int fake_session(ne_session **sess, server_fn fn, void *userdata)
+{
+    return proxied_session_server(sess, "http", "localhost", 7777,
+                                  fn, userdata);
+}
+
 /* regression test for <= 0.18.2, where timeout field was not parsed correctly. */
 static int lock_timeout(void)
 {
@@ -230,7 +238,7 @@ static int lock_timeout(void)
                     "Lock-Token: <opaquelocktoken:foo>" EOL
                     "Connection: close\r\n\r\n", rbody, NULL);
 
-    CALL(make_session(&sess, single_serve_string, resp));
+    CALL(fake_session(&sess, single_serve_string, resp));
     ne_free(resp);
 
     ne_fill_server_uri(sess, &lock->uri);
@@ -324,7 +332,7 @@ static int submit_test(const char *lockpath, int lockdepth,
     
     expect_if = ne_concat("<http://localhost:7777", lockpath, 
                          "> (<somelocktoken>)", NULL);
-    CALL(make_session(&sess, serve_verify_if, expect_if));
+    CALL(fake_session(&sess, serve_verify_if, expect_if));
     ne_free(expect_if);
 
     ne_fill_server_uri(sess, &lk->uri);
@@ -419,7 +427,7 @@ static void discover_result(void *userdata, const struct ne_lock *lk,
 
 static int discover(void)
 {
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
+    ne_session *sess;
     char *response;
     int ret;
     struct result_args args;
@@ -428,16 +436,17 @@ static int discover(void)
 
     args.lock->owner = ne_strdup("someowner");
     args.lock->token = ne_strdup("sometoken");
-
+    args.lock->uri.host = ne_strdup("localhost");
+    args.lock->uri.port = 7777;
+    args.lock->uri.scheme = ne_strdup("http");
+    
     /* default */
     args.result = FAIL;
     t_context("results callback never invoked");
 
-    ne_fill_server_uri(sess, &args.lock->uri);
-    args.lock->uri.path = ne_strdup("/lockme");
-
     response = discover_response("/lockme", args.lock);
-    CALL(spawn_server(7777, serve_discovery, response));
+    CALL(fake_session(&sess, serve_discovery, response));
+    args.lock->uri.path = ne_strdup("/lockme");
 
     ret = ne_lock_discover(sess, "/lockme", discover_result, &args);
     CALL(await_server());
@@ -478,7 +487,7 @@ static int lock_shared(void)
                     "Connection: close\r\n\r\n", rbody, NULL);
     ne_free(rbody);
 
-    CALL(make_session(&sess, single_serve_string, resp));
+    CALL(fake_session(&sess, single_serve_string, resp));
     ne_free(resp);
 
     lock = ne_lock_create();
@@ -511,7 +520,7 @@ static int fail_discover(void)
     ne_session *sess;
     int ret;
     
-    CALL(make_session(&sess, single_serve_string, 
+    CALL(fake_session(&sess, single_serve_string, 
                       "HTTP/1.0 207 OK\r\n" "Connection: close\r\n" "\r\n"
                       "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
                       "<D:multistatus xmlns:D='DAV:'>\n"
@@ -546,7 +555,7 @@ static int fail_lockauth(void)
         "\r\n";
     args.count = 2;
 
-    CALL(make_session(&sess, many_serve_string, &args));
+    CALL(fake_session(&sess, many_serve_string, &args));
 
     ne_set_server_auth(sess, no_creds, NULL);
 
@@ -585,7 +594,7 @@ static int fail_noheader(void)
                      "Content-type: application/xml" EOL
                      "Connection: close\r\n\r\n", rbody, NULL);
 
-    CALL(make_session(&sess, single_serve_string, resp));
+    CALL(fake_session(&sess, single_serve_string, resp));
     ne_free(resp);
 
     ne_fill_server_uri(sess, &lock->uri);
index 1389195..c53a89d 100755 (executable)
@@ -28,10 +28,10 @@ for i in ca ca1 ca2 ca3; do
     mkdir $i
     touch $i/index.txt
     echo 01 > $i/serial
-    ${OPENSSL} genrsa -rand ${srcdir}/../configure > $i/key.pem
+    ${OPENSSL} genrsa -rand ${srcdir}/../configure 1024 > $i/key.pem
 done
 
-${OPENSSL} genrsa -rand ${srcdir}/../configure > client.key
+${OPENSSL} genrsa -rand ${srcdir}/../configure 1024 > client.key
 
 ${OPENSSL} dsaparam -genkey -rand ${srcdir}/../configure 1024 > client.dsap
 ${OPENSSL} gendsa client.dsap > clientdsa.key
index fc12732..8402b72 100644 (file)
@@ -1,6 +1,6 @@
 /* 
    Tests for property handling
-   Copyright (C) 2002-2008, Joe Orton <joe@manyfish.co.uk>
+   Copyright (C) 2002-2009, 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
@@ -242,13 +242,15 @@ static int tos_endprop(void *userdata, int state,
 static int run_207_response(char *resp, const char *expected)
 {
     ne_buffer *buf = ne_buffer_create();
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
+    ne_session *sess;
     ne_xml_parser *p = ne_xml_create();
     ne_207_parser *p207;
-    ne_request *req = ne_request_create(sess, "PROPFIND", "/foo");
+    ne_request *req;
     ne_uri base = {0};
     struct propctx ctx;
 
+    CALL(session_server(&sess, single_serve_string, resp));
+    req = ne_request_create(sess, "PROPFIND", "/foo");
     ne_fill_server_uri(sess, &base);
     base.path = ne_strdup("/foo");
     p207 = ne_207_create(p, &base, buf);
@@ -263,7 +265,6 @@ static int run_207_response(char *resp, const char *expected)
     ctx.p207 = p207;
     ne_xml_push_handler(p, tos_startprop, tos_cdata, tos_endprop, &ctx);
 
-    CALL(spawn_server(7777, single_serve_string, resp));
 
     ONREQ(ne_request_dispatch(req));
 
@@ -592,14 +593,14 @@ static int propfind(void)
           0, PF_SIMPLE},
 
         /* whitespace handling. */
-        { MULTI_207(RESP_207("\r\nhttp://localhost:7777/alpha ",
+        { MULTI_207(RESP_207("\r\nhttp://localhost/alpha ",
                              PSTAT_207(PROPS_207(APROP_207("alpha", "beta"))
                                        "<D:status>\r\nHTTP/1.1 200 OK </D:status>"))),
           "results(/alpha,prop:[{DAV:,alpha}='beta':{200 OK}];)//",
           0, PF_SIMPLE},
         
         /* attribute handling. */
-        { MULTI_207(RESP_207("\r\nhttp://localhost:7777/alpha ",
+        { MULTI_207(RESP_207("\r\nhttp://localhost/alpha ",
                              PSTAT_207(PROPS_207("<D:alpha>"
                                                  "<D:foo D:fee='bar' bar='fee'>beta</D:foo></D:alpha>")
                                        "<D:status>\r\nHTTP/1.1 200 OK </D:status>"))),
@@ -637,12 +638,9 @@ static int unbounded_response(const char *header, const char *repeats)
 {
     ne_session *sess;
     struct infinite i = { header, repeats};
-    int dbg;
 
     CALL(make_session(&sess, serve_infinite, &i));
 
-    dbg = ne_debug_mask;
-
     ONN("unbounded PROPFIND response did not fail",
         ne_simple_propfind(sess, "/", 0, NULL, 
                            dummy_results, NULL) != NE_ERROR);
index 80b23bb..c93b388 100644 (file)
@@ -74,10 +74,21 @@ static int check_redir(struct redir_args *args, const char *expect)
     ne_session *sess;
     const ne_uri *loc;
     char *unp;
+    char *full_expect = NULL;
     
     CALL(make_session(&sess, serve_redir, args));
     ne_redirect_register(sess);
     
+    if (expect[0] == '/') {
+        ne_uri uri = {0};
+        ne_fill_server_uri(sess, &uri);
+        uri.path = (char *)expect;
+        full_expect = ne_uri_unparse(&uri);
+        expect = full_expect;
+        uri.path = NULL;
+        ne_uri_free(&uri);
+    }
+
     CALL(process_redir(sess, args->path, &loc));
     ONN("redirect location was NULL", loc == NULL);
 
@@ -87,6 +98,7 @@ static int check_redir(struct redir_args *args, const char *expect)
 
     ne_session_destroy(sess);
     CALL(await_server());
+    if (full_expect) ne_free(full_expect);
 
     return OK;
 }
@@ -115,19 +127,19 @@ static int simple(void)
 static int non_absolute(void)
 {
     struct redir_args args = {302, "/foo/bar/blah", PATH};
-    return check_redir(&args, "http://localhost:7777/foo/bar/blah");
+    return check_redir(&args, "/foo/bar/blah");
 }
 
 static int relative_1(void)
 {
     struct redir_args args = {302, "norman", "/foo/bar"};
-    return check_redir(&args, "http://localhost:7777/foo/norman");
+    return check_redir(&args, "/foo/norman");
 }
     
 static int relative_2(void)
 {
     struct redir_args args = {302, "wishbone", "/foo/bar/"};
-    return check_redir(&args, "http://localhost:7777/foo/bar/wishbone");
+    return check_redir(&args, "/foo/bar/wishbone");
 }    
 
 #if 0
@@ -154,22 +166,21 @@ static int fail_loop(void)
  * been encountered, or redirect hooks aren't registered. */
 static int no_redirect(void)
 {
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
+    ne_session *sess;
     const ne_uri *loc;
 
+    CALL(session_server(&sess, single_serve_string, 
+                        "HTTP/1.1 200 OK\r\n" "Content-Length: 0\r\n\r\n"
+                        "HTTP/1.0 302 Get Ye Away\r\n"
+                        "Location: /blah\r\n" "\r\n"));
     ONN("redirect non-NULL before register", ne_redirect_location(sess));
     ne_redirect_register(sess);
     ONN("initial redirect non-NULL", ne_redirect_location(sess));
 
-    CALL(spawn_server(7777, single_serve_string, 
-                      "HTTP/1.0 200 OK\r\n\r\n\r\n"));
     ONREQ(any_request(sess, "/noredir"));
-    CALL(await_server());
 
     ONN("redirect non-NULL after non-redir req", ne_redirect_location(sess));
 
-    CALL(spawn_server(7777, single_serve_string, "HTTP/1.0 302 Get Ye Away\r\n"
-                      "Location: /blah\r\n" "\r\n"));
     CALL(process_redir(sess, "/foo", &loc));
     CALL(await_server());
 
index ad1a62a..3444061 100644 (file)
@@ -45,18 +45,22 @@ static char buffer[BUFSIZ];
 static ne_session *def_sess;
 static ne_request *def_req;
 
+/* Last (real) port used by fail_request_with_error(). */
+static unsigned int fail_request_last_port;
+
 static int prepare_request(server_fn fn, void *ud)
 {
     static char uri[100];
+    unsigned int port;
+
+    CALL(new_spawn_server(1, fn, ud, &port));
 
-    def_sess = ne_session_create("http", "localhost", 7777);
+    def_sess = ne_session_create("http", "localhost", port);
 
     sprintf(uri, "/test%d", test_num);
 
     def_req = ne_request_create(def_sess, "GET", uri);
 
-    CALL(spawn_server(7777, fn, ud));
-
     return OK;
 }
 
@@ -144,15 +148,12 @@ static int expect_header_value(const char *name, const char *value,
  * 'expect' */
 static int expect_response(const char *expect, server_fn fn, void *userdata)
 {
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
+    ne_session *sess;
     ne_buffer *buf = ne_buffer_create();
 
-    ON(sess == NULL || buf == NULL);
-    ON(spawn_server(7777, fn, userdata));
-
+    CALL(session_server(&sess, fn, userdata));
     CALL(run_request(sess, 200, construct_get, buf));
-
-    ON(await_server());
+    CALL(await_server());
 
     ONN("response body match", strcmp(buf->data, expect));
 
@@ -171,16 +172,17 @@ static int expect_response(const char *expect, server_fn fn, void *userdata)
  * header. */
 static int expect_no_body(const char *method, const char *resp)
 {
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
-    ne_request *req = ne_request_create(sess, method, "/first");
+    ne_session *sess;
+    ne_request *req;
     ssize_t ret;
     char *r = ne_malloc(strlen(resp) + sizeof(EMPTY_RESP));
     
     strcpy(r, resp);
     strcat(r, EMPTY_RESP);
-    ON(spawn_server(7777, single_serve_string, r));
+    CALL(session_server(&sess, single_serve_string, r));
     ne_free(r);
 
+    req = ne_request_create(sess, method, "/first");
     ONN("failed to begin request", ne_begin_request(req));
     ret = ne_read_response_block(req, buffer, BUFSIZ);
     ONV(ret != 0, ("got response block of size %" NE_FMT_SSIZE_T, ret));
@@ -412,16 +414,17 @@ static int serve_twice(ne_socket *sock, void *userdata)
  * 'body' both times. */
 static int test_persist_p(const char *response, const char *body, int proxy)
 {
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
+    ne_session *sess;
     ne_buffer *buf = ne_buffer_create();
 
-    ON(sess == NULL || buf == NULL);
-    ON(spawn_server(7777, serve_twice, (char *)response));
-
     if (proxy) {
-        ne_session_proxy(sess, "localhost", 7777);
+        CALL(proxied_session_server(&sess, "http", "localhost", 1234,
+                                    serve_twice, (void *)response));
         ne_set_session_flag(sess, NE_SESSFLAG_CONNAUTH, 1);
     }
+    else {
+        CALL(session_server(&sess, serve_twice, (void *)response));
+    }
 
     CALL(run_request(sess, 200, construct_get, buf));
     
@@ -497,10 +500,12 @@ static int serve_eof(ne_socket *sock, void *ud)
  * error if the request is then retried, and the test fails. */
 static int fail_early_eof(const char *resp)
 {
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
-
-    CALL(spawn_server_repeat(7777, serve_eof, (char *)resp, 3));
+    ne_session *sess;
+    unsigned int port;
 
+    CALL(new_spawn_server(3, serve_eof, (char *)resp, &port));
+    
+    sess = ne_session_create("http", "localhost", port);
     ONREQ(any_request(sess, "/foo"));
     ONN("request retried after early EOF",
        any_request(sess, "/foobar") == NE_OK);
@@ -536,10 +541,13 @@ static int fail_eof_badclen(void)
  * second request reads the status-line. */
 static int ptimeout_eof(void)
 {
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
+    ne_session *sess;
+    unsigned int port;
 
-    CALL(spawn_server_repeat(7777, single_serve_string, 
-                            RESP200 "Content-Length: 0\r\n" "\r\n", 4));
+    CALL(new_spawn_server(4, single_serve_string, 
+                          RESP200 "Content-Length: 0\r\n" "\r\n",
+                          &port));
+    sess = ne_session_create("http", "localhost", port);
     
     CALL(any_2xx_request(sess, "/first"));
     CALL(any_2xx_request(sess, "/second"));
@@ -556,11 +564,14 @@ static int ptimeout_eof(void)
  * the body. */
 static int ptimeout_eof2(void)
 {
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
+    ne_session *sess;
+    unsigned int port;
 
-    CALL(spawn_server_repeat(7777, single_serve_string, 
-                            RESP200 "Content-Length: 0\r\n" "\r\n", 4));
+    CALL(new_spawn_server(4, single_serve_string, 
+                          RESP200 "Content-Length: 0\r\n" "\r\n",
+                          &port));
     
+    sess = ne_session_create("http", "localhost", port);
     CALL(any_2xx_request(sess, "/first"));
     minisleep();
     CALL(any_2xx_request_body(sess, "/second"));
@@ -575,26 +586,38 @@ static int ptimeout_eof2(void)
 /* TODO: add a ptimeout_reset too, if an RST can be reliably generated
  * mid-connection. */
 
+static int incr_server(ne_socket *sock, void *arg)
+{
+    struct many_serve_args *msa = arg;
+    
+    CALL(many_serve_string(sock, msa));
+    
+    msa->count++;
+    
+    return OK;
+}
+
 /* Emulates a persistent connection timeout on the server. This tests
  * the timeout occuring after between 1 and 10 requests down the
  * connection. */
 static int persist_timeout(void)
 {
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
+    ne_session *sess;
     ne_buffer *buf = ne_buffer_create();
-    int n;
     struct many_serve_args args;
-
-    ON(sess == NULL || buf == NULL);
+    unsigned int port;
+    int n;
 
     args.str = RESP200 "Content-Length: 5\r\n\r\n" "abcde";
+    args.count = 1;
+
+    CALL(new_spawn_server(9, incr_server, &args, &port));
     
-    for (args.count = 1; args.count < 10; args.count++) {
+    sess = ne_session_create("http", "localhost", port);
 
-       ON(spawn_server(7777, many_serve_string, &args));
+    for (args.count = 1; args.count < 10; args.count++) {
 
        for (n = 0; n < args.count; n++) {
-           
            ONV(run_request(sess, 200, construct_get, buf),
                ("%d of %d, request failed: %s", n, args.count,
                 ne_get_error(sess)));
@@ -605,9 +628,6 @@ static int persist_timeout(void)
            /* Ready for next time. */
            ne_buffer_clear(buf);
        }
-
-       ON(await_server());
-
     }
 
     ne_session_destroy(sess);
@@ -620,14 +640,17 @@ static int persist_timeout(void)
  * connections by default. */
 static int no_persist_http10(void)
 {
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
+    ne_session *sess;
+    unsigned int port;
+
+    CALL(new_spawn_server(4, single_serve_string,
+                          "HTTP/1.0 200 OK\r\n"
+                          "Content-Length: 5\r\n\r\n"
+                          "abcde"
+                          "Hello, world - what a nice day!\r\n",
+                          &port));
 
-    CALL(spawn_server_repeat(7777, single_serve_string,
-                            "HTTP/1.0 200 OK\r\n"
-                            "Content-Length: 5\r\n\r\n"
-                            "abcde"
-                            "Hello, world - what a nice day!\r\n",
-                            4));
+    sess = ne_session_create("http", "localhost", port);
 
     /* if the connection is treated as persistent, the status-line for
      * the second request will be "Hello, world...", which will
@@ -1080,11 +1103,10 @@ static int send_bodies(void)
 
     for (m = 0; m < 2; m++) {
        for (n = 0; bodies[n].body != NULL; n++) {
-           ne_session *sess = ne_session_create("http", "localhost", 7777);
+           ne_session *sess;
            ne_request *req;
            
-           ON(sess == NULL);
-           ON(spawn_server(7777, want_body, &(bodies[n])));
+           CALL(session_server(&sess, want_body, &(bodies[n])));
 
            req = ne_request_create(sess, "PUT", "/");
            ON(req == NULL);
@@ -1115,20 +1137,14 @@ static int send_bodies(void)
 static int fail_request_with_error(int with_body, server_fn fn, void *ud, 
                                    int forever, const char *error)
 {
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
+    ne_session *sess;
     ne_request *req;
+    unsigned int port;
     int ret;
 
-    ON(sess == NULL);
-    
-    if (forever) {
-       ON(spawn_server_repeat(7777, fn, ud, 100));
-    } else {
-       ON(spawn_server(7777, fn, ud));
-    }
-    
+    CALL(new_spawn_server(forever ? 100 : 1, fn, ud, &port));
+    sess = ne_session_create("http", "localhost", port);
     req = ne_request_create(sess, "GET", "/");
-    ON(req == NULL);
 
     if (with_body) {
        static const char *body = "random stuff";
@@ -1156,6 +1172,8 @@ static int fail_request_with_error(int with_body, server_fn fn, void *ud,
 
     ne_request_destroy(req);
     ne_session_destroy(sess);
+
+    fail_request_last_port = port;
    
     return OK;    
 }
@@ -1223,7 +1241,7 @@ static int is_alive(int port)
 
     addr = ne_addr_resolve("localhost", 0);
     for (ia = ne_addr_first(addr); ia && !connected; ia = ne_addr_next(addr))
-       connected = ne_sock_connect(sock, ia, 7777) == 0;
+       connected = ne_sock_connect(sock, ia, port) == 0;
     ne_addr_destroy(addr);
     if (sock == NULL)
        return 0;
@@ -1245,7 +1263,7 @@ static int closed_connection(void)
      * request eventually fails... */
     CALL(fail_request(1, serve_close, NULL, 1));
     /* if server died -> infinite loop was detected. */
-    ret = !is_alive(7777);
+    ret = !is_alive(fail_request_last_port);
     reap_server();
     ONN("server aborted, infinite loop?", ret);
     return OK;
@@ -1269,8 +1287,10 @@ static int serve_close2(ne_socket *sock, void *userdata)
 static int close_not_retried(void)
 {
     int count = 0;
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
-    CALL(spawn_server_repeat(7777, serve_close2, &count, 3));
+    ne_session *sess;
+    unsigned int port;
+    CALL(new_spawn_server(3, serve_close2, &count, &port));
+    sess = ne_session_create("http", "localhost", port);
     ONN("request was retried after EOF", any_request(sess, "/foo") == NE_OK);
     reap_server();
     ne_session_destroy(sess);
@@ -1411,7 +1431,7 @@ static int fail_noserver(const char *hostname, unsigned int port, int code)
 
 static int fail_lookup(void)
 {
-    return fail_noserver("no.such.domain", 7777, NE_LOOKUP);
+    return fail_noserver("no.such.domain", 4242, NE_LOOKUP);
 }
 
 /* neon 0.23.0 to 0.23.3: if a nameserver lookup failed, subsequent
@@ -1429,28 +1449,28 @@ static int fail_double_lookup(void)
 
 static int fail_connect(void)
 {
-    return fail_noserver("localhost", 7777, NE_CONNECT);
+    return fail_noserver("localhost", 32767, NE_CONNECT);
 }
 
 /* Test that the origin server hostname is NOT resolved for a proxied
  * request. */
 static int proxy_no_resolve(void)
 {
-     ne_session *sess = ne_session_create("http", "nonesuch2.invalid", 80);
-     int ret;
-     
-     ne_session_proxy(sess, "localhost", 7777);
-     CALL(spawn_server(7777, single_serve_string,
-                      RESP200 "Content-Length: 0\r\n\r\n"));
-     
-     ret = any_request(sess, "/foo");
-     ne_session_destroy(sess);
-
-     ONN("origin server name resolved when proxy used", ret == NE_LOOKUP);
-
-     CALL(await_server());
-
-     return OK;
+    ne_session *sess;
+    int ret;
+    
+    CALL(proxied_session_server(&sess, "http", "no.such.server.invalid", 80,
+                                single_serve_string,
+                                RESP200 "Content-Length: 0\r\n\r\n"));
+    
+    ret = any_request(sess, "/foo");
+    ne_session_destroy(sess);
+    
+    ONN("origin server name resolved when proxy used", ret == NE_LOOKUP);
+    
+    CALL(await_server());
+    
+    return OK;
 }
 
 /* If the chunk size is entirely invalid, the request should be
@@ -1488,8 +1508,18 @@ static int abort_respbody(void)
     return OK;
 }
 
-static int serve_abort(ne_socket *sock, void *ud)
+static int serve_then_abort(ne_socket *sock, void *ud)
 {
+    int *flag = ud;
+
+    if (*flag == 1) {
+        CALL(single_serve_string(sock, 
+                                 RESP200 "Content-Length: 0\r\n\r\n"
+                                 RESP200 TE_CHUNKED "\r\n"
+                                 "zzzzz\r\n"));
+        *flag = 0;
+    }
+
     exit(0);
 }
 
@@ -1499,27 +1529,23 @@ static int serve_abort(ne_socket *sock, void *ud)
 static int retry_after_abort(void)
 {
     ne_session *sess;
+    int flag = 1;
     
     /* Serve two responses down a single persistent connection, the
      * second of which is invalid and will cause the request to be
      * aborted. */
-    CALL(make_session(&sess, single_serve_string, 
-                     RESP200 "Content-Length: 0\r\n\r\n"
-                     RESP200 TE_CHUNKED "\r\n"
-                     "zzzzz\r\n"));
+    CALL(make_session(&sess, serve_then_abort, &flag));
 
-    CALL(any_request(sess, "/first"));
+    ONREQ(any_request(sess, "/first"));
     ONN("second request should fail", any_request(sess, "/second") == NE_OK);
+
     CALL(await_server());
 
-    /* spawn a server, abort the server immediately.  If the
-     * connection reset is interpreted as a p.conn timeout, a new
-     * connection will be attempted, which will fail with
-     * NE_CONNECT. */
-    CALL(spawn_server(7777, serve_abort, NULL));
+    /* A third attempt to connect to the server should fail to
+     * connect, though this is racy since someone else might come 
+     * along and steal the port... oh well. */
     ONN("third request was retried",
-       any_request(sess, "/third") == NE_CONNECT);
-    reap_server();
+       any_request(sess, "/third") != NE_CONNECT);
 
     ne_session_destroy(sess);    
     return OK;
@@ -1662,6 +1688,8 @@ static int hook_create_req(void)
 {
     ne_session *sess;
     struct cr_args args;
+    ne_uri uri;
+    char *u;
 
     CALL(make_session(&sess, single_serve_string, EMPTY_RESP EMPTY_RESP));
 
@@ -1676,9 +1704,16 @@ static int hook_create_req(void)
     ONN("first hook never called", args.result == -1);
     if (args.result) return FAIL;
 
-    args.uri = "http://localhost:7777/bar";
+    memset(&uri, 0, sizeof uri);
+    ne_fill_server_uri(sess, &uri);
+    uri.path = "/bar";
+
+    args.uri = u = ne_uri_unparse(&uri);
     args.result = -1;
-    
+
+    ne_free(uri.host);
+    ne_free(uri.scheme);
+
     /* force use of absoluteURI in request-uri */
     ne_session_proxy(sess, "localhost", 7777);
 
@@ -1687,6 +1722,8 @@ static int hook_create_req(void)
     ONN("second hook never called", args.result == -1);
     if (args.result) return FAIL;
 
+    ne_free(u);
+
     ne_session_destroy(sess);
 
     return OK;    
@@ -2034,23 +2071,17 @@ static int status(void)
 {
     ne_session *sess;
     ne_buffer *buf = ne_buffer_create();
-    ne_sock_addr *sa = ne_addr_resolve("localhost", 0);
-    char addr[64], expect[1024];
-
-    ONN("could not resolve localhost", ne_addr_result(sa));
+    char expect[1024];
 
     ne_snprintf(expect, sizeof expect,
-                "lookup(localhost)-"
-                "connecting(localhost,%s)-"
-                "connected(localhost)-"
+                "lookup(127.0.0.1)-"
+                "connecting(127.0.0.1,127.0.0.1)-"
+                "connected(127.0.0.1)-"
                 "send(0,5000)-"
                 "send(5000,5000)-"
                 "recv(0,5)-"
                 "recv(5,5)-"
-                "disconnected(localhost)-",
-                ne_iaddr_print(ne_addr_first(sa), addr, sizeof addr));
-
-    ne_addr_destroy(sa);
+                "disconnected(127.0.0.1)-");
 
     CALL(make_session(&sess, single_serve_string, RESP200
                       "Content-Length: 5\r\n\r\n" "abcde"));
@@ -2075,17 +2106,14 @@ static int status_chunked(void)
 {
     ne_session *sess;
     ne_buffer *buf = ne_buffer_create();
-    ne_sock_addr *sa = ne_addr_resolve("localhost", 0);
-    char addr[64], expect[1024];
-
-    ONN("could not resolve localhost", ne_addr_result(sa));
+    char expect[1024];
 
     /* This sequence is not exactly guaranteed by the API, but it's
      * what the current implementation should do. */
     ne_snprintf(expect, sizeof expect,
-                "lookup(localhost)-"
-                "connecting(localhost,%s)-"
-                "connected(localhost)-"
+                "lookup(127.0.0.1)-"
+                "connecting(127.0.0.1,127.0.0.1)-"
+                "connected(127.0.0.1)-"
                 "send(0,5000)-"
                 "send(5000,5000)-"
                 "recv(0,-1)-"
@@ -2094,10 +2122,7 @@ static int status_chunked(void)
                 "recv(3,-1)-"
                 "recv(4,-1)-"
                 "recv(5,-1)-"
-                "disconnected(localhost)-",
-                ne_iaddr_print(ne_addr_first(sa), addr, sizeof addr));
-
-    ne_addr_destroy(sa);
+                "disconnected(127.0.0.1)-");
 
     CALL(make_session(&sess, single_serve_string, 
                       RESP200 TE_CHUNKED "\r\n" ABCDE_CHUNKS));
@@ -2161,10 +2186,10 @@ static int addrlist(void)
     ne_session *sess;
     ne_inet_addr *ia = ne_iaddr_make(ne_iaddr_ipv4, raw_127);
     const ne_inet_addr *ial[1];
+    unsigned int port;
 
-    sess = ne_session_create("http", "www.example.com", 7777);
-
-    CALL(spawn_server(7777, single_serve_string, EMPTY_RESP));
+    CALL(new_spawn_server(1, single_serve_string, EMPTY_RESP, &port));
+    sess = ne_session_create("http", "www.example.com", port);
 
     ial[0] = ia;
 
@@ -2182,11 +2207,14 @@ static int socks_session(ne_session **sess, struct socks_server *srv,
                          const char *hostname, unsigned int port,
                          server_fn server, void *userdata)
 {
+    unsigned int realport;
+
     srv->server = server;
     srv->userdata = userdata;
-    CALL(spawn_server(7777, socks_server, srv));
+    
+    CALL(new_spawn_server(1, socks_server, srv, &realport));
     *sess = ne_session_create("http", hostname, port);
-    ne_session_socks_proxy(*sess, srv->version, "localhost", 7777,
+    ne_session_socks_proxy(*sess, srv->version, "localhost", realport,
                            srv->username, srv->password);
     return OK;    
 }
@@ -2292,6 +2320,7 @@ static int send_length(void)
 
     ne_request_destroy(req);
     ne_session_destroy(sess);
+    ne_buffer_destroy(buf);
     close(fd);
     return await_server();
 }
@@ -2397,8 +2426,6 @@ ne_test tests[] = {
     T(fail_long_header),
     T(fail_on_invalid),
     T(read_timeout),
-    T(fail_lookup),
-    T(fail_double_lookup),
     T(fail_connect),
     T(proxy_no_resolve),
     T(fail_chunksize),
@@ -2422,5 +2449,7 @@ ne_test tests[] = {
     T(socks_v4_proxy),
     T(send_length),
     T(socks_fail),
+    T(fail_lookup),
+    T(fail_double_lookup),
     T(NULL)
 };
index 2a9c1b2..7796bb2 100644 (file)
@@ -6,7 +6,8 @@
 
 # enable glibc malloc safety checks
 MALLOC_CHECK_=2
-export MALLOC_CHECK_
+MALLOC_PERTURB_=242
+export MALLOC_CHECK_ MALLOC_PERTURB_
 
 cd data
 
index e8aee3c..b43256c 100644 (file)
@@ -1,6 +1,6 @@
 /* 
    Tests for session handling
-   Copyright (C) 2002-2006, Joe Orton <joe@manyfish.co.uk>
+   Copyright (C) 2002-2006, 2009, 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
 static int fill_uri(void)
 {
     ne_uri uri = {0};
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
+    ne_session *sess = ne_session_create("http", "localhost", 1234);
     
     ne_fill_server_uri(sess, &uri);
 
     ONCMP("localhost", uri.host, "fill_uri", "host");
-    ONN("port mis-match", uri.port != 7777);
+    ONN("port mis-match", uri.port != 1234);
     ONCMP("http", uri.scheme, "fill_uri", "scheme");
 
     ne_session_destroy(sess);
@@ -53,7 +53,7 @@ static int fill_uri(void)
 static int fill_proxy_uri(void)
 {
     ne_uri uri = {0};
-    ne_session *sess = ne_session_create("http", "localhost", 7777);
+    ne_session *sess = ne_session_create("http", "localhost", 1234);
 
     ne_fill_proxy_uri(sess, &uri);
     
@@ -187,6 +187,18 @@ static int flags(void)
     return OK;
 }
 
+static int proxies(void)
+{
+    ne_session *sess = ne_session_create("https", "localhost", 443);
+
+    ne_session_proxy(sess, "http", 80);
+    ne_set_addrlist2(sess, 80, NULL, 0);
+
+    ne_session_destroy(sess);
+
+    return OK;
+}
+
 ne_test tests[] = {
     T(fill_uri),
     T(fill_proxy_uri),
@@ -195,6 +207,7 @@ ne_test tests[] = {
     T(privates),
     T(get_scheme),
     T(flags),
+    T(proxies),
     T(NULL)
 };
 
index 3ddf289..94b67eb 100644 (file)
@@ -1,6 +1,6 @@
 /* 
    Socket handling tests
-   Copyright (C) 2002-2009, Joe Orton <joe@manyfish.co.uk>
+   Copyright (C) 2002-2011, 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
@@ -171,10 +171,11 @@ static int wrap_serve(ne_socket *sock, void *ud)
 static int begin(ne_socket **sock, server_fn fn, void *ud)
 {
     struct serve_pair pair;
+    unsigned int port;
     pair.fn = fn;
     pair.userdata = ud;
-    CALL(spawn_server(7777, wrap_serve, &pair));
-    CALL(do_connect(sock, localhost, 7777));
+    CALL(new_spawn_server(1, wrap_serve, &pair, &port));
+    CALL(do_connect(sock, localhost, port));
     ONV(ne_sock_connect_ssl(*sock, client_ctx, NULL),
        ("SSL negotation failed: %s", ne_sock_error(*sock)));
     return OK;
@@ -184,8 +185,9 @@ static int begin(ne_socket **sock, server_fn fn, void *ud)
 /* non-SSL begin() function. */
 static int begin(ne_socket **sock, server_fn fn, void *ud)
 {
-    CALL(spawn_server(7777, fn, ud));
-    return do_connect(sock, localhost, 7777);
+    unsigned int port;
+    CALL(new_spawn_server(1, fn, ud, &port));
+    return do_connect(sock, localhost, port);
 }
 #endif
 
@@ -396,6 +398,24 @@ static int addr_reverse(void)
     return OK;
 }
 
+static int addr_canonical(void)
+{
+    ne_sock_addr *sa;
+    const char *h;
+
+    sa = ne_addr_resolve("localhost", NE_ADDR_CANON);
+    ONN("could not resolve localhost", sa == NULL);
+    
+    h = ne_addr_canonical(sa);
+    ONN("no canonical name for localhost", h == NULL);
+
+    NE_DEBUG(NE_DBG_SOCKET, "canonical name: %s\n", h);
+
+    ne_addr_destroy(sa);
+    
+    return OK;
+}
+
 static int just_connect(void)
 {
     ne_socket *sock;
@@ -411,12 +431,13 @@ static int addr_connect(void)
 {
     ne_socket *sock = ne_sock_create();
     ne_inet_addr *ia;
+    unsigned int port;
 
     ia = ne_iaddr_make(ne_iaddr_ipv4, raw_127);
     ONN("ne_iaddr_make returned NULL", ia == NULL);
     
-    CALL(spawn_server(7777, serve_close, NULL));
-    ONN("could not connect", ne_sock_connect(sock, ia, 7777));
+    CALL(new_spawn_server(1, serve_close, NULL, &port));
+    ONN("could not connect", ne_sock_connect(sock, ia, port));
     ne_sock_close(sock);
     CALL(await_server());
 
@@ -428,21 +449,21 @@ static int addr_peer(void)
 {
     ne_socket *sock = ne_sock_create();
     ne_inet_addr *ia, *ia2;
-    unsigned int port = 9999;
+    unsigned int port = 9999, realport;
     int ret;
 
     ia = ne_iaddr_make(ne_iaddr_ipv4, raw_127);
     ONN("ne_iaddr_make returned NULL", ia == NULL);
     
-    CALL(spawn_server(7777, serve_close, NULL));
-    ONN("could not connect", ne_sock_connect(sock, ia, 7777));
+    CALL(new_spawn_server(1, serve_close, NULL, &realport));
+    ONN("could not connect", ne_sock_connect(sock, ia, realport));
 
     ia2 = ne_sock_peer(sock, &port);
     ret = ne_iaddr_cmp(ia, ia2);
     ONV(ret != 0,
         ("comparison of peer with server address was %d", ret));
 
-    ONV(port != 7777, ("got peer port %u", port));
+    ONV(port != realport, ("got peer port %u, expected %u", port, realport));
  
     ne_sock_close(sock);
     CALL(await_server());
@@ -1009,7 +1030,8 @@ static int ssl_closure(void)
     ONV(ret != NE_SOCK_RESET && ret != NE_SOCK_CLOSED, 
        ("write got %" NE_FMT_SSIZE_T " not reset or closure: %s", ret,
          ne_sock_error(sock)));
-    return good_close(sock);
+    ne_sock_close(sock);
+    return OK;
 }
 
 static int serve_truncate(ne_socket *sock, void *userdata)
@@ -1028,7 +1050,9 @@ static int ssl_truncate(void)
     ONV(ret != NE_SOCK_TRUNC,
        ("socket got error %d not truncation: `%s'", ret,
         ne_sock_error(sock)));
-    return finish(sock, 0);
+    ne_sock_close(sock);
+    CALL(await_server());
+    return OK;
 }
 
 #else
@@ -1203,15 +1227,16 @@ static int try_prebind(int addr, int port)
     ne_socket *sock = ne_sock_create();
     ne_inet_addr *ia;
     char buf[128], line[256];
+    unsigned int srvport;
 
     ia = ne_iaddr_make(ne_iaddr_ipv4, raw_127);
     ONN("ne_iaddr_make returned NULL", ia == NULL);
     
-    CALL(spawn_server(7777, serve_ppeer, NULL));
+    CALL(new_spawn_server(1, serve_ppeer, NULL, &srvport));
 
     ne_sock_prebind(sock, addr ? ia : NULL, port ? 7778 : 0);
 
-    ONN("could not connect", ne_sock_connect(sock, ia, 7777));
+    ONN("could not connect", ne_sock_connect(sock, ia, srvport));
 
     ne_snprintf(line, sizeof line,
                 "%s@%d\n", ne_iaddr_print(ia, buf, sizeof buf),
@@ -1303,11 +1328,12 @@ static int error(void)
 static int begin_socks(ne_socket **sock, struct socks_server *srv,
                        server_fn server, void *userdata)
 {
+    unsigned int port;
     srv->server = server;
     srv->userdata = userdata;
     srv->say_hello = 1;
-    CALL(spawn_server(7777, socks_server, srv));
-    return do_connect(sock, localhost, 7777);
+    CALL(new_spawn_server(1, socks_server, srv, &port));
+    return do_connect(sock, localhost, port);
 }
 
 static int socks_proxy(void)
@@ -1448,6 +1474,7 @@ ne_test tests[] = {
     T(just_connect),
     T(addr_connect),
     T(addr_peer),
+    T(addr_canonical),
     T(read_close),
     T(peek_close),
     T(single_read),
index 832d701..4ea40ed 100644 (file)
@@ -382,6 +382,23 @@ static int load_client_cert(void)
     return OK;
 }
 
+static int clicert_import(void)
+{
+    ne_ssl_client_cert *cc;
+    ne_buffer *buf = ne_buffer_create();
+
+    CALL(file_to_buffer("client.p12", buf));
+
+    cc = ne_ssl_clicert_import((unsigned char *)buf->data, ne_buffer_size(buf));
+    ONN("could not import client cert from buffer", cc == NULL);
+    
+    ONN("failed to decrypt", ne_ssl_clicert_decrypt(cc, P12_PASSPHRASE));
+    ne_ssl_clicert_free(cc);
+    ne_buffer_destroy(buf);
+
+    return OK;
+}
+
 /* Test that 'cert', which is signed by CA_CERT, is accepted
  * unconditionaly. */
 static int accept_signed_cert_for_hostname(char *cert, const char *hostname)
@@ -405,22 +422,27 @@ static int simple(void)
     return accept_signed_cert(SERVER_CERT);
 }
 
+#if 0 /* No longer works for modern SSL libraries, rightly so. */
 /* Test for SSL operation when server uses SSLv2 */
 static int simple_sslv2(void)
 {
-#ifdef HAVE_OPENSSL
-    return SKIP; /* this is breaking with current SSL. */
-#else
     ne_session *sess = ne_session_create("https", "localhost", 7777);
     struct ssl_server_args args = {SERVER_CERT, 0};
+
     args.use_ssl2 = 1;
-    
     ne_set_session_flag(sess, NE_SESSFLAG_SSLv2, 1);
+
+    if (ne_get_session_flag(sess, NE_SESSFLAG_SSLv2) != 1) {
+        t_context("no SSLv2 support in SSL library");
+        ne_session_destroy(sess);
+        return SKIP;
+    }
+
     CALL(any_ssl_request(sess, ssl_server, &args, CA_CERT, NULL, NULL));
     ne_session_destroy(sess);
     return OK;
-#endif
 }
+#endif
 
 /* Serves using HTTP/1.0 get-till-EOF semantics. */
 static int serve_eof(ne_socket *sock, void *ud)
@@ -730,15 +752,15 @@ static int no_verify(void)
 static int cache_verify(void)
 {
     ne_session *sess = DEFSESS;
-    int ret, count = 0;
+    int count = 0;
     struct ssl_server_args args = {SERVER_CERT, 0};
     
     /* force verify cert. */
-    ret = any_ssl_request(sess, ssl_server, &args, NULL, count_vfy,
-                         &count);
+    CALL(any_ssl_request(sess, ssl_server, &args, NULL, count_vfy,
+                         &count));
 
     CALL(spawn_server(7777, ssl_server, &args));
-    ret = any_request(sess, "/foo2");
+    ONREQ(any_request(sess, "/foo2"));
     CALL(await_server());
 
     ONV(count != 1,
@@ -757,29 +779,51 @@ static int get_failures(void *userdata, int fs, const ne_ssl_certificate *c)
     return -1;
 }
 
-/* Helper function: run a request using the given self-signed server
- * certificate, and expect the request to fail with the given
- * verification failure flags. */
+/* Helper function for expected-to-fail SSL tests.
+ *
+ * An SSL server is spawned using 'cert' and 'key' as the key pair.
+ * The client will trust CA cert 'cacert', and use 'host' as the server
+ * name.  If realhost is non-NULL, this address will be used to connect
+ * to in favour of host; the server is otherwise identified as 'host'.
+ * 'msg' must be a substring of the error string.
+ * 'failures' must equal the failure bitmask passed to the verify
+ * callback in the client.
+ * If none of the expected conditions is met, 'errstr' will be
+ * used in the test failure context.
+ */
 static int fail_ssl_request_with_error2(char *cert, char *key, char *cacert, 
-                                        const char *host, const char *fakehost,
+                                        const char *host, const char *realhost,
                                         const char *msg, int failures,
                                         const char *errstr)
 {
     ne_session *sess = ne_session_create("https", host, 7777);
     int gotf = 0, ret;
     struct ssl_server_args args = {0};
-    ne_sock_addr *addr;
-    const ne_inet_addr *list[1];
+    ne_sock_addr *addr = NULL;
+    const ne_inet_addr **list = NULL;
 
-    if (fakehost) {
-        addr = ne_addr_resolve(fakehost, 0);
+    if (realhost) {
+        size_t n;
+        const ne_inet_addr *ia;
+
+        addr = ne_addr_resolve(realhost, 0);
 
         ONV(ne_addr_result(addr),
-            ("fake hostname lookup failed for %s", fakehost));
-        
-        list[0] = ne_addr_first(addr);
+            ("fake hostname lookup failed for %s", realhost));
+
+        NE_DEBUG(NE_DBG_SSL, "ssl: Using fake hostname '%s'\n", realhost);
+
+        for (n = 0, ia = ne_addr_first(addr); ia; ia = ne_addr_next(addr))
+            n++;
+
+        NE_DEBUG(NE_DBG_SSL, "ssl: Address count '%lu'\n", n);
+
+        list = ne_calloc(n * sizeof(*list));
+
+        for (n = 0, ia = ne_addr_first(addr); ia; ia = ne_addr_next(addr))
+            list[n++] = ia;
         
-        ne_set_addrlist(sess, list, 1);
+        ne_set_addrlist(sess, list, n);
     }
 
     args.cert = cert;
@@ -808,6 +852,7 @@ static int fail_ssl_request_with_error2(char *cert, char *key, char *cacert,
          ne_get_error(sess), errstr));
         
     ne_session_destroy(sess);
+    if (addr) ne_addr_destroy(addr);
 
     return OK;
 }
@@ -1852,9 +1897,12 @@ ne_test tests[] = {
     T(read_write),
 
     T(load_client_cert),
+    T(clicert_import),
 
     T(simple),
+#if 0
     T(simple_sslv2),
+#endif
     T(simple_eof),
     T(empty_truncated_eof),
     T(fail_not_ssl),
index 6243190..0042b15 100644 (file)
@@ -95,7 +95,7 @@ static int stub_decompress(void)
 #ifndef NE_HAVE_SSL
 static int stub_ssl(void)
 {
-    ne_session *sess = ne_session_create("https", "localhost", 7777);
+    ne_session *sess = ne_session_create("https", "localhost", 1234);
     ne_ssl_certificate *cert;
     ne_ssl_client_cert *cc;
 
index 9e0d27b..7416b93 100644 (file)
@@ -222,7 +222,7 @@ static int cmp(void)
             ("'%s' and '%s' did not compare as different",
              diff[n].left, diff[n].right));
 
-        ONV(r1 + r2 != 0,
+        ONV(((r1 > 0) != (r2 < 0) || (r1 < 0) != (r2 > 0)),
             ("'%s' and '%s' did not compare reflexively (%d vs %d)",
              diff[n].left, diff[n].right, r1, r2));
 
index cda4cc9..3addbe1 100644 (file)
@@ -1,6 +1,6 @@
 /* 
    Utility functions for HTTP client tests
-   Copyright (C) 2001-2008, Joe Orton <joe@manyfish.co.uk>
+   Copyright (C) 2001-2009, 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
@@ -26,6 +26,7 @@
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
+#include <fcntl.h>
 
 #include "ne_session.h"
 
 #include "tests.h"
 #include "utils.h"
 
-int make_session(ne_session **sess, server_fn fn, void *ud)
-{
-    *sess = ne_session_create("http", "localhost", 7777);
-    return spawn_server(7777, fn, ud);
-}
-
 static int serve_response(ne_socket *s, const char *response)
 {
     CALL(discard_request(s));
@@ -180,3 +175,81 @@ int full_write(ne_socket *sock, const char *data, size_t len)
     return OK;
 }
 
+int session_server(ne_session **sess, server_fn fn, void *userdata)
+{
+    unsigned int port;
+    
+    CALL(new_spawn_server(1, fn, userdata, &port));
+    
+    *sess = ne_session_create("http", "127.0.0.1", port);
+
+    return OK;
+}
+
+int proxied_session_server(ne_session **sess, const char *scheme,
+                           const char *host, unsigned int fakeport,
+                           server_fn fn, void *userdata)
+{
+    unsigned int port;
+    
+    CALL(new_spawn_server(1, fn, userdata, &port));
+    
+    *sess = ne_session_create(scheme, host, fakeport);
+
+    NE_DEBUG(NE_DBG_HTTP, "test: Using proxied session to port %u.\n", port);
+
+    ne_session_proxy(*sess, "127.0.0.1", port);
+
+    return OK;
+}
+
+static void fakesess_destroy(void *userdata)
+{
+    ne_inet_addr *addr = userdata;
+
+    ne_iaddr_free(addr);
+}
+
+int fakeproxied_session_server(ne_session **sess, const char *scheme,
+                               const char *host, unsigned int fakeport,
+                               server_fn fn, void *userdata)
+{
+    unsigned int port;
+    ne_inet_addr *addr;
+    const ne_inet_addr *alist[1];
+    
+    CALL(new_spawn_server2(1, fn, userdata, &addr, &port));
+    
+    alist[0] = addr;
+
+    *sess = ne_session_create(scheme, host, fakeport);
+
+    ne_set_addrlist2(*sess, port, alist, 1);
+
+    ne_hook_destroy_session(*sess, fakesess_destroy, addr);
+
+    return OK;
+}
+
+int make_session(ne_session **sess, server_fn fn, void *ud)
+{
+    return session_server(sess, fn, ud);
+}
+
+int file_to_buffer(const char *filename, ne_buffer *buf)
+{
+    char buffer[BUFSIZ];
+    int fd;
+    ssize_t n;
+    
+    fd = open(filename, O_RDONLY);
+    ONV(fd < 0, ("could not open file %s", filename));
+
+    while ((n = read(fd, buffer, BUFSIZ)) > 0) {
+       ne_buffer_append(buf, buffer, n);
+    }
+
+    close(fd);
+    
+    return 0;
+}
index d384faf..21cea13 100644 (file)
@@ -1,6 +1,6 @@
 /* 
    neon-specific test utils
-   Copyright (C) 2001-2008, Joe Orton <joe@manyfish.co.uk>
+   Copyright (C) 2001-2009, 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
@@ -110,4 +110,27 @@ int socks_server(ne_socket *sock, void *userdata);
 
 int full_write(ne_socket *sock, const char *data, size_t len);
     
+/* Create a session with server process running fn(userdata).  Sets
+ * test suite error on failure; initializes *sess with a new session
+ * on success.  Uses an unspecified hostname/port for the server. */
+int session_server(ne_session **sess, server_fn fn, void *userdata);
+
+/* Create a session with server process running fn(userdata).  Sets
+ * test suite error on failure; initializes *sess with a new session
+ * on success.  Uses an unspecified hostname/port for the server;
+ * session is created as if using origin 'host:fakeport' via HTTP
+ * proxy to spawned server.  */
+int proxied_session_server(ne_session **sess, const char *scheme,
+                           const char *host, unsigned int fakeport,
+                           server_fn fn, void *userdata);
+
+/* As per proxied_session_server, but uses a "fake" (direct) TCP proxy
+ * rather than an HTTP proxy. */
+int fakeproxied_session_server(ne_session **sess, const char *scheme,
+                               const char *host, unsigned int fakeport,
+                               server_fn fn, void *userdata);
+
+/* Read contents of file 'filename' into buffer 'buf'. */
+int file_to_buffer(const char *filename, ne_buffer *buf);
+   
 #endif /* UTILS_H */