summaryrefslogtreecommitdiff
path: root/src/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog4929
1 files changed, 4929 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
new file mode 100644
index 0000000..2893290
--- /dev/null
+++ b/src/ChangeLog
@@ -0,0 +1,4929 @@
+Sat Jun 21 12:58:25 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (ne_begin_request): Set or clear is_http11 flag
+ for each request.
+
+Wed Jun 18 20:54:44 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c: Add AI_ADDRCONFIG support;
+ [USE_CHECK_IPV6]: Define only if __linux__.
+ (init_ipv6) [USE_CHECK_IPV6]: New conditional.
+ (ne_addr_resolve) [USE_ADDRCONFIG]: Use AI_ADDRCONFIG.
+
+Wed Jun 18 20:03:13 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_sock_create): New function (renamed from
+ create_sock).
+ (ne_sock_connect): Take an ne_socket *, return int.
+ (ne_sock_accept): Likewise.
+ (ne_sock_close): Only call ne_close if fd is non-negative.
+
+ * ne_request.c (aborted): Handle NE_SOCK_* errors specially.
+ (do_connect): Adapt for ne_sock_create/connect interface. Set
+ sess->connected here on success.
+ (open_connection): Don't set sess->connected here.
+
+Sun Jun 15 12:14:22 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_ssl.h (ne_ssl_cert_digest): Pass digest as a pointer rather
+ than an array.
+
+Sun Jun 15 11:00:09 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_stubssl.c (ne_ssl_cert_cmp): Add stub.
+
+Wed May 28 21:37:27 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_openssl.c (ne_ssl_context_create): Enable workarounds in
+ OpenSSL for better interop with buggy SSL servers.
+
+Fri May 23 23:13:30 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_stubssl.c (ne_ssl_set_clicert): Add stub.
+
+Sat May 10 17:05:26 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.c: Rename struct ne_xml_handler to struct handler.
+
+Thu May 8 20:55:46 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_openssl.c (ne_ssl_clicert_read): Pass "b" to fopen.
+
+Tue May 6 22:08:08 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_openssl.c (check_certificate): Re-order verify failure
+ handling to allow caller to set a custom session error string.
+
+Tue May 6 20:21:27 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_md5.c (md5_stream): Restore.
+
+Sat Apr 26 19:21:03 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (te_hdr_handler): Treat presence of any T-E
+ response header as implying the response is chunked, regardless of
+ value.
+
+Sat Apr 26 18:11:24 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.c: Rename struct ne_xml_nspace to struct namespace.
+
+Wed Apr 23 22:19:29 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_openssl.c (ne_ssl_cert_export): Don't bother checking for
+ i2d_X509() failure; no OpenSSL code ever checks, so everyone's
+ doomed if it really can fail.
+
+Wed Apr 23 22:01:23 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_openssl.c (ne_ssl_cert_import, ne_ssl_cert_export,
+ ne_ssl_cert_write): Clear OpenSSL error stack on errors.
+
+Wed Apr 23 18:23:53 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_stubssl.c (ne_ssl_cert_write, ne_ssl_cert_import,
+ ne_ssl_cert_export): Add stubs.
+
+Wed Apr 23 14:05:32 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_openssl.c (ne_ssl_cert_write): New function.
+
+Tue Apr 22 23:21:22 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_unbase64): Optimise out some redundant branches.
+
+Tue Apr 22 20:24:44 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_openssl.c (ne_ssl_cert_export, ne_ssl_cert_import,
+ ne_ssl_cert_cmp): New functions.
+
+Tue Apr 22 18:31:55 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_unbase64): New function.
+
+Tue Apr 22 15:53:41 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_base64): Fix encoding binary data; take unsigned
+ argument.
+
+Tue Apr 22 13:07:48 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_stubssl.c (ne_ssl_cert_validity): Add stub.
+
+Tue Apr 22 09:22:26 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_openssl.c (ne_ssl_cert_validity): New function.
+ (asn1time_to_string): Format into a fixed-size buffer.
+
+Tue Apr 22 08:38:30 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.c (ne_lock_discover, ne_lock): Don't leak the cdata
+ buffer.
+
+ * ne_props.c (ne_propfind_destroy): Don't leak the value buffer.
+
+Mon Apr 21 23:52:25 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.c (ne_xml_destroy): Free root element.
+
+Mon Apr 21 23:46:17 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_openssl.c (dup_client_cert): Set decrypted state; dup the
+ friendly name.
+ (ne_ssl_clicert_free): Free friendly name.
+
+Mon Apr 21 19:44:55 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_md5.h (ne_md5_buffer, ne_md5_stream): Remove unused
+ functions.
+
+Mon Apr 21 18:17:14 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.c, ne_207.c: s/NE_ELM_/ELM_/ since no element ids are
+ exported.
+
+Mon Apr 21 16:38:14 2003 Joe Orton <joe@manyfish.co.uk>
+
+ Redesign the XML interface: have startelm callback map {nspace,
+ name} onto a state integer or decline. Remove "valid"/"invalid";
+ don't abort the parse if no handler accepts an element. Push
+ cdata accumulation down into the caller; drop collect mode,
+ stripws mode.
+
+ * ne_xml.h (ne_xml_elmid, struct ne_xml_elm): Removed.
+ (ne_xml_startelm_cb): Return a state/acceptance integer, take a
+ state integer, nspace, name and atts.
+ (ne_xml_endelm_cb, ne_xml_cdata_cb): Take a state integer.
+ (ne_xml_push_mixed_handler): Removed.
+ (ne_xml_push_handler): Removed element list argument.
+ (struct ne_xml_idmap, ne_xml_mapid): New interface.
+
+ * ne_xml.c (struct element): Replaces ne_xml_state. Add name,
+ nspace, state fields.
+ (friendly_name, find_handler, parse_element,
+ ne_xml_push_mixed_handler, push_handler): Removed functions.
+ (declare_nspaces, expand_qname): Factored out from find_handler
+ and parse_element.
+ (start_element): Use expand_qname, declare_nspaces. Find
+ appropriate handler here. Guarantee not to pass a NULL atts array
+ to the start-element callback. Drop collect mode.
+ (end_element): Drop collect mode
+ (ne_xml_push_handler): Fold push_handler back in.
+ (ne_xml_mapid): New function.
+
+ * ne_207.h (NE_ELM_*): Don't export element id.
+ (NE_207_STATE_PROP, NE_207_STATE_TOP): Export state integers.
+
+ * ne_207.c (struct ne_207_parser_s): Add cdata field.
+ (map207): Replace element list with idmap array.
+ (can_handle): New function, replacing check_context logic.
+ (start_element): Determine new state integer; only accept the
+ element in valid states. Clear cdata.
+ (end_element): Use state rather than element id. Do nothing for
+ end of 'response' element if element is incomplete.
+ (ne_207_create): Create cdata buffer.
+ (ne_207_destroy): Destroy cdata buffer.
+ (ne_207_ignore_unknown): Removed function.
+ (ne_simple_request): Don't call ne_207_ignore_unknown.
+
+ * ne_props.h (NE_PROPS_STATE_TOP): Define state.
+
+ * ne_props.c (struct ne_propfind_handler_s): Add value and depth
+ fields.
+ (ELM_flatprop): Define state.
+ (flat_elms): Removed array.
+ (chardata): Append to value field when in ELM_flatprop state.
+ (startelm): Decline everything other than elements within the
+ 'prop' state. Collect flatprop contents.
+ (endelm): Collect flatprop contents.
+
+ * ne_locks.c (struct discover_ctx, struct lock_ctx): Store cdata.
+ (element_map): Replace element list with idmap array.
+ (can_accept): Replaces check_context callback.
+ (ld_startelm, lk_cdata, ld_cdata): New functions.
+
+Mon Apr 14 00:04:20 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_207.h (ne_207_start_response, ne_207_end_response,
+ ne_207_start_propstat, ne_207_end_propstat): Use ANSI-style
+ function pointers in typedefs.
+
+ * ne_207.c (struct ne_207_parser_s): Updated accordingly.
+
+Mon Apr 14 00:02:10 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (read_response_block): Better error messages for
+ invalid chunks, don't use strncmp for a two-character comparison.
+
+Mon Apr 7 22:26:50 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_stubssl.c (ne_ssl_cert_identity): New function.
+
+Mon Apr 7 22:16:16 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_openssl.c (struct ne_ssl_certificate_s): Add identity field.
+ (check_identity): Add optional identity argument.
+ (populate_cert): Retrieve cert identity using check_identity.
+ (check_certificate): Pass extra NULL to check_identity.
+ (ne_ssl_cert_identity): New function.
+ (ne_ssl_cert_free): Free the identity field.
+
+Mon Apr 7 21:29:54 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_openssl.c (check_identity): Take a string hostname rather
+ than a session object.
+ (check_certificate): Adjust accordingly.
+
+Sun Apr 6 21:26:05 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.h (NE_HEX2ASC): Cast result to char to avoid warnings
+ with some compilers.
+
+Sun Apr 6 20:11:42 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_openssl.c (ne_ssl_readable_dname): Include commonName or
+ emailAddress in returned string if either is the only attribute.
+
+Sun Mar 30 10:54:20 2003 Joe Orton <joe@manyfish.co.uk>
+
+ Split decryption of client certs into two steps
+
+ * ne_openssl.c (ne_ssl_clicert_encrypted, ne_ssl_clicert_decrypt):
+ New functions.
+ (ne_ssl_client_cert_s): Add p12 and decrypted fields.
+ (find_friendly_name): New function.
+ (get_friendly_name): Removed function.
+ (ne_ssl_clicert_read): Drop password callback; on decrypt failure,
+ extract friendly name and set decrypted state of clicert.
+
+Sun Mar 30 10:54:01 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_stubssl.c (ne_ssl_clicert_encrypted, ne_ssl_clicert_decrypt):
+ New stubs.
+ (ne_ssl_clicert_read): Adjusted for API change.
+
+Sat Mar 29 14:23:37 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_openssl.c (ne_ssl_dname_cmp): New function.
+
+ * ne_stubssl.c (ne_ssl_dname_cmp): New function.
+
+Sat Mar 29 13:52:47 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_openssl.c (struct ne_ssl_client_cert_s): Add 'friendly_name'
+ field.
+ (get_friendly_name, ne_ssl_clicert_name): New functions.
+ (ne_ssl_clicert_read): Store the cert's friendly name.
+
+ * ne_stubssl.c (ne_ssl_clicert_name): New function.
+
+Sat Mar 29 13:16:14 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_openssl.c (ne_ssl_clicert_owner): New function.
+
+Fri Mar 28 22:12:57 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_stubssl.c (ne_ssl_cert_digest): New function.
+
+ * ne_openssl.c (ne_ssl_cert_digest): New function.
+
+Wed Mar 26 20:41:57 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_ssl_trust_cert) [NEON_SSL]: Only build when SSL
+ support is present.
+
+Wed Mar 26 20:01:00 2003 Joe Orton <joe@manyfish.co.uk>
+
+ Begin abstraction of SSL layer to better isolate
+ SSL-library-specific code, and to improve certificate handling
+ interface.
+
+ Drop support for PEM-encoded client certificates.
+
+ * ne_session.h (ne_ssl_trust_cert): Replaces ne_ssl_load_ca, in
+ conjunction with ne_ssl_load_cert.
+ (ne_ssl_trust_default_ca): Replaces ne_ssl_load_default_ca.
+ (ne_ssl_keypw_prompt): Removed function, no longer needed.
+ (ne_ssl_set_clicert): Replaces ne_ssl_load_pkcs12, in conjunction
+ with ne_ssl_clicert_read.
+ (ne_ssl_provide_clicert): Replaces ne_ssl_provide_ccert, callback
+ type changed.
+
+ * ne_openssl.c: New file; much code moved from ne_session.c.
+
+ * ne_privssl.h: New file, private interface between ne_socket.c
+ and ne_openssl.c.
+
+ * ne_ssl.h: New file.
+
+ * ne_private.h (struct ne_session_s): Store pointers to
+ ne_ssl_client_cert etc opaque objects, not OpenSSL structures.
+
+ * ne_session.c: Most of ne_ssl_* moved to ne_openssl.c.
+ (ne_session_create, ne_session_destroy): Use ne_ssl_cert_* etc to
+ manage cert objects.
+
+ * ne_socket.c (struct ne_socket_s): Replace SSL *, SSL_CTX *
+ pointers with an ne_ssl_socket * pointer.
+ (readable_ossl, error_ossl, read_ossl, write_ossl, ne_sock_close):
+ Compensate for above change.
+ (ne_sock_use_ssl): Removed function.
+ (ne_sock_switch_ssl): Pass in SSL * as void for time being.
+ (ne_sock_connect_ssl): Renamed and cleaned up version of
+ ne_sock_use_ssl_os.
+ (ne_sock_sslsock): New function.
+
+ * Makefile.in: Add deps for ne_openssl.c.
+
+Sun Mar 23 13:02:58 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_set_useragent): Use ne_malloc.
+
+Sat Mar 22 21:06:45 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (raw_connect): Fill in sin6_family or sin_family
+ since AIX 4.3 fails to do so.
+
+Wed Mar 19 20:44:11 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c [NEON_SSL] (free_client_cert): Build conditional on
+ NEON_SSL.
+
+Mon Mar 17 20:33:32 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c: Include netdb.h conditional on HAVE_NETDB_H. (fix
+ build for older versions of CygWin).
+
+Sun Mar 16 23:30:20 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (check_identity): Fix leak of subject alt. name
+ structures.
+
+Sun Mar 16 19:21:22 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (free_client_cert): New function.
+ (ne_session_destroy, ne_ssl_load_pem, ne_ssl_load_pkcs12): Call
+ it; prevent memory leak if ne_ssl_load_{pem,pkcs12} are called >1
+ per session.
+
+Sun Mar 16 18:00:34 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (provide_client_cert): Free peer certificate after
+ use.
+ (ne_session_destroy): Free client cert and key if present.
+
+Sun Mar 16 14:23:05 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.c [HAVE_EXPAT]: Include xmlparse.h for bundled expat
+ build.
+
+ * ne_utils.c: Only include expat.h if HAVE_XMLPARSE_H is not
+ defined.
+
+Wed Mar 12 15:04:13 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_redirect.c (struct redirect): Add 'valid' field.
+ (post_send): Set and clear 'valid' to keep track of whether stored
+ URI is valid.
+ (ne_redirect_location): Return NULL if stored URI is not valid.
+
+Wed Mar 12 14:52:49 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_uri.c (ne_uri_free): Zero-initialize structure after
+ free'ing.
+
+Tue Mar 11 22:01:11 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_redirect.c (ne_redirect_location): Return NULL if no redirect
+ session is registered, rather than SEGV; Ralf Mattes
+ <rm@fabula.de>.
+
+Sun Mar 9 16:33:24 2003 Joe Orton <joe@manyfish.co.uk>
+
+ Fix a memory leak if an XML parse error occurs during a PROPFIND
+ response:
+
+ * ne_props.c (ne_propfind_current_private): Return NULL if no
+ propset is being processed.
+ (free_propset): Free propset href here.
+ (end_response): Don't free propset href here. Set current field
+ of handler to NULL after free'ing propset.
+ (ne_propfind_destroy): Free current propset if one was being
+ processed.
+
+Sun Mar 9 11:53:58 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_207.c (ne_207_destroy): Fix possible leak of reason_phrase
+ string.
+
+Sun Mar 9 11:01:15 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.c (ne_parse_statusline): Use ne_strclean.
+
+ * ne_session.c (ne_get_error): Use ne_strclean.
+
+Sun Mar 9 10:53:52 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.c: Remove broken "UTF-8 decoding" support used for libxml
+ 1.x.
+
+Sun Mar 9 09:55:26 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.c: Drop support for expat < 1.95.0 and libxml 1.x.
+
+ * ne_utils.c (version_string): Include expat version string.
+
+Sun Mar 9 09:54:00 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c: Don't declare h_errno on Win32 either.
+
+Sun Mar 9 08:49:40 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (do_concat) [HAVE_STPCPY]: Use stpcpy rather than
+ strlen/memcpy, when available.
+
+Mon Mar 3 22:17:04 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c [!USE_GETADDRINFO && !HAVE_DECL_H_ERRNO): Declare
+ h_errno (fix build on SCO OpenServer 5.0).
+
+Sat Mar 1 21:22:19 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_redirect.c (free_redirect): Fix once-per-session memory leak.
+
+Sat Mar 1 20:23:47 2003 Joe Orton <joe@manyfish.co.uk>
+
+ Add implemention of simple memory leak tracking, for testing
+ purposes.
+
+ * ne_alloc.c [NEON_MEMLEAK] (tracking_malloc, ne_free_ml,
+ ne_malloc_ml, ne_calloc_ml, ne_realloc_ml, ne_strdup_ml,
+ ne_strndup_ml, ne_memleak_dump): New functions.
+
+ * memleak.h: New header.
+
+Sat Mar 1 13:44:26 2003 Joe Orton <joe@manyfish.co.uk>
+
+ First step towards automated memory leak tests.
+
+ * ne_alloc.c (ne_free): New function.
+
+ * All files: replace use of free() with ne_free().
+
+Sat Mar 1 09:48:39 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_uri.c (ne_path_unescape): Fix memory leak on invalid URI.
+
+Sat Mar 1 08:03:18 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_strclean): New function.
+
+Wed Feb 26 21:45:12 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (ne_begin_request, proxy_tunnel, open_connection)
+ [NEON_SSL] Don't build CONNECT tunnel support code if SSL is not
+ supported.
+
+Wed Feb 26 21:44:18 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.c (ne_debug_init): Allow ne_debug_init(NULL, 0) to turn
+ off debugging. Fix to produce debug output if the any of the
+ specified "channels" are active, not all. (also fixing
+ NE_DBG_FLUSH support).
+
+Tue Feb 25 23:12:31 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_compress.c (process_footer): Mention number of extra bytes in
+ error message for oversized footer.
+
+Sun Feb 23 21:19:20 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c (verify_response): Fix to parse nonce count as hex
+ string rather than decimal; fix verification of >9 responses.
+
+Thu Feb 13 20:35:45 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_set_useragent): Fix to append "neon/x.y.z" to
+ application-supplied token rather prepend.
+
+Thu Feb 13 09:06:22 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (open_connection): Fix for CONNECT tunnelling
+ (regression since 0.23.x), thanks to Nathan Hand
+ <Nathan.Hand@defence.gov.au>.
+
+Mon Feb 3 22:10:54 2003 Joe Orton <joe@manyfish.co.uk>
+
+ Implement Daniel Stenberg's trick to avoid the slow AF_UNSPEC
+ lookups on Linux:
+
+ * ne_socket.c (init_ipv6, ipv6_disabled): New function and global.
+ (ne_sock_init): Call init_ipv6.
+ (ne_addr_resolve) [USE_GETADDRINFO]: Pass AF_INET in hints if
+ ipv6_disabled is set.
+
+Mon Feb 3 20:55:47 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c [__hpux && USE_GETADDRINFO]: Undefine
+ USE_GETADDRINFO to work around broken implementation in HP-UX
+ 11.11.
+
+Mon Jan 27 21:39:31 2003 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (write_raw): Fix for handling EINTR during write(),
+ from Sergey N Ushakov.
+
+Thu Jan 16 21:59:03 2003 Joe Orton <joe@manyfish.co.uk>
+
+ Allow _init after _finish to succeed: Sergey N Ushakov.
+ * ne_socket.c (init_result): New global variable.
+ (ne_sock_init): Use init_result global rather than result.
+ (ne_sock_finish): Clear init_result.
+
+Fri Dec 27 17:03:17 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (build_request): Remove redundant call to
+ ne_buffer_clear.
+
+Fri Dec 27 14:38:08 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (ne_request_create): strdup the method string.
+ (ne_request_destroy): free the method.
+
+Mon Dec 23 17:04:32 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_write, ne_read, ne_close, ne_errno): Renamed
+ macros from NEON_WRITE, NEON_READ, NEON_CLOSE, NEON_ERRNO.
+ All callers changed.
+
+Mon Dec 23 16:58:43 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Add proper Win32 socket error handling, merged efforts of Johan
+ Lindh and Sergey N Ushakov <ushakov@int.com.ru>:
+
+ * ne_socket.c (ne_errno, NE_ISINTR, NE_ISRESET, NE_ISCLOSED): New
+ macros.
+ [WIN32] (print_error): New function.
+ (set_strerror) [WIN32]: Use print_error.
+ (readable_raw, read_raw, write_raw): Use new error handling
+ macros.
+ (ne_addr_resolve) [WIN32]: Use WSAGetLastError() rather than
+ h_errno.
+ (ne_addr_error) [WIN32]: Use print_error.
+
+Tue Dec 10 21:41:26 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_iaddr_print): Renamed from ne_addr_print for
+ consistency with other ne_iaddr_ functions.
+
+Sun Dec 8 20:08:31 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c (get_cnonce): Use GetCurrentThreadId() on Win32.
+
+Sun Nov 24 18:45:32 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c: Remove qop_values and algorithm_names arrays.
+ (request_digest): Inlined qop, algorithm name lookups accordingly.
+
+Sun Nov 24 16:45:39 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.h: Renamed ne_request_auth typedef to ne_auth_creds.
+
+ * ne_auth.c (auth_session): Renamed reqcreds, recreds_ud fields to
+ creds, userdata.
+ (auth_register, ne_set_proxy_auth, ne_set_server_auth): Update for
+ ne_request_auth rename.
+
+Fri Nov 22 17:39:35 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c (auth_challenge): Fix support for RFC2617-style digest
+ auth; notice the qop= parameter in challenge. Fix leak of parsed
+ qop array.
+
+Fri Nov 22 17:08:01 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c (get_cnonce): Rewrite to use either pseudo-random data
+ from the SSL library (if available), or really-not-random data
+ from gettimeofday/getpid otherwise.
+
+Sun Nov 17 22:13:49 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_addr_print) [USE_GETADDRINFO]: Use the SACAST()
+ macro.
+
+Sun Nov 17 19:29:23 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_sock_connect): Make address argument const.
+ (raw_connect): Make address argument const; adjust to use a copy
+ of the sockaddr structure, which is correct anyway.
+ (ne_addr_first, ne_addr_next): Make return pointer const.
+
+ * ne_private.h (struct host_info): Store current address as const.
+
+Sun Nov 17 19:03:01 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_register_progress): Removed function.
+
+ * ne_socket.h (ne_block_reader, ne_progress,
+ ne_register_progress): Removed.
+
+ * ne_request.c (do_connect): Don't call ne_register_progress.
+
+ * ne_request.h: Add ne_block_reader typedef.
+
+ * ne_session.h: Include sys/types.h; add ne_progress typedef.
+
+Sun Nov 17 18:59:29 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_iaddr_make, ne_iaddr_cmp, ne_iaddr_free):
+ New functions.
+
+Mon Nov 11 19:51:24 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Allow discovery of document encoding.
+
+ * ne_xml.c [HAVE_EXPAT]: (struct ne_xml_parser_s): Add encoding
+ field. (decl_handler): New function.
+ (ne_xml_doc_encoding): New function.
+
+Mon Nov 11 19:48:43 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.c (sax_handler): Use sax_error for fatal error callback.
+
+Fri Oct 11 23:50:01 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_private.h (struct ne_session_s): Change 'connected' to be a
+ simple boolean flag.
+
+ * ne_session.c (ne_close_connection): Treat 'connected' as a
+ boolean.
+
+ * ne_request.c (open_connection): Greatly simplified.
+
+Fri Oct 11 00:46:52 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_props.c (end_propstat): Fix NULL pointer dereference
+ if no status object is given.
+
+Tue Oct 8 20:10:24 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.c (ne_xml_create) [!HAVE_EXPAT]: Set 'replaceEntities'
+ flag in created parser so that entities are dereferenced in
+ attribute values.
+
+Mon Oct 7 22:08:46 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (init_ssl): Attempt to seed PRNG using EGD socket at
+ path EGD_PATH or a set of predetermined locations if EGD_PATH is
+ not defined. No longer try $EGDSOCKET or $HOME/.entropy.
+
+Mon Oct 7 21:32:33 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c (register_hooks): Removed function.
+ (auth_register): Fold in register_hooks.
+
+Tue Sep 24 21:24:44 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (ne_request_create): Pass Request-URI to
+ create_request hooks.
+
+Tue Sep 24 20:42:45 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c [__hpux]: Define _XOPEN_SOURCE_EXTENDED to 1, to
+ pick up h_errno definition on HP-UX 10.20.
+
+Wed Sep 18 21:46:28 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_compress.c (struct ne_decompress_s): Add zstrinit field.
+ (gz_reader): Set zstrinit after inflateInit2 succeeds.
+ (ne_decompress_destroy): Only call inflateEnd if zstrinit is set.
+
+Wed Sep 18 19:56:00 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c: Remove incomplete domain support.
+
+Tue Sep 17 21:05:11 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Fix rejection of server certificates which have commonName as the
+ least specific attribute.
+
+ * ne_session.c (check_identity): Don't ignore commonName if it is
+ the least specific attribute.
+
+Tue Sep 10 21:08:18 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (lookup_host): Destroy cached address if resolve
+ fails; fix segfault if a second request in the session is
+ dispatched after the DNS lookup fails on the first.
+
+Mon Sep 9 22:26:03 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (RETRY_RET): Treat SSL truncation as a legitimate
+ persistent connection timeout.
+
+Fri Aug 30 21:58:45 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (read_response_block): Clear can_persist flag if an
+ EOF was read (fix for read-till-EOF response terminated by an
+ unclean SSL shutdown).
+
+Mon Aug 26 18:05:00 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c: Fix HAVE_LIMITS check (Blair Zajac).
+
+Sun Aug 25 23:29:06 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (do_connect): Add debug message for connection
+ attempt.
+
+Sun Aug 25 22:54:04 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.h (ne_addr_print): Make address argument const.
+
+Sun Aug 25 11:52:32 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_addr_print): New function.
+
+Sun Aug 25 10:09:10 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Fix interop with Tomcat/3.2 SSL server, which performs an unclean
+ shutdown on an HTTP/1.0 response without a C-L header.
+
+ * ne_request.c (read_response_block): Ignore SSL connection
+ truncation for a read-till-EOF response, where no reseponse
+ content has been read yet.
+ (ne_read_response_block): Always increase 'total' counter.
+
+Sun Aug 25 08:47:41 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (aborted): Handle code=0 case specifically, and
+ NE_SOCK_* as default.
+
+Sun Aug 25 08:24:48 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.h: Add `NE_SOCK_TRUNC' return value.
+
+ * ne_socket.c (error_ossl): Return NE_SOCK_TRUNC when an EOF is
+ received without a close_notify.
+
+Sat Aug 24 17:37:14 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.h (ne_inet_addr): New type.
+ (ne_addr_first, ne_addr_next): New public interface.
+ (ne_sock_connect): Change first parameter to ne_inet_addr.
+
+ * ne_socket.c: Predefine ne_inet_addr for ne_socket.h, replacing
+ ne_raw_addr.
+ (ne_addr_first, ne_addr_first): Renamed from addr_first,
+ addr_next; return type now ne_inet_addr; made public.
+ (ne_sock_connect): Fold in make_socket() macro; just connect to
+ single IP address passed in.
+
+ * ne_private.h (struct host_info): Renamed 'addr' to 'address',
+ dded 'current' field, removed 'resolved' field.
+
+ * ne_request.c (lookup_host): Adjust for addr->address rename.
+ (ne_begin_request): Call lookup_host if 'address' is NULL in
+ host_info structure, don't use 'resolved' flag.
+ (do_connect): Replaces init_socket; factor more code out from
+ open_connection. Loop over available addresses until an
+ ne_sock_connect call succeeds.
+ (open_connection): Moved code into do_connect.
+
+ * ne_session.c (ne_session_destroy): Adjust for addr->address
+ rename.
+
+Sat Aug 24 13:45:26 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (count_concat, do_concat): Compact into while()
+ loops.
+
+Sat Aug 24 13:36:04 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_private.h (VERSION_PRE11): Removed macro.
+ (struct ne_session_s): Add is_http11 field; removed version_major,
+ version_minor fields.
+
+ * ne_request.c (add_fixed_headers): Use is_http11 flag rather than
+ VERSION_PRE11 macro.
+ (ne_begin_request): Set and use is_http11 flag.
+
+ * ne_session.c (ne_version_pre_http11): Use is_http11 flag.
+ (ne_session_create): Don't set version_major, version_minor fields.
+
+Sat Aug 24 09:00:13 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (struct ne_request_s): Removed abs_path field.
+ (ne_set_request_uri): Removed function.
+ (ne_request_create): Set req->uri to be the actual Request-URI.
+ Don't use an absoluteURI in Request-URI if using SSL via a proxy
+ tunnel, or if passed-in path does not begin with a '/'.
+ (build_request): Use pre-determined Request-URI.
+ (proxy_tunnel): Pass true Request-URI to ne_request_create.
+ (ne_request_destroy): Don't free abs_path.
+
+Sat Aug 24 00:37:25 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (aborted): Fix handling of _CLOSED and _TIMEOUT
+ socket errors, and of non-socket errors. Presume ne_sock_error
+ cannot return NULL.
+
+Sat Aug 24 00:07:33 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_cookies.c (set_cookie_hdl): Ensure that each cookie field is
+ safe to free().
+
+Fri Aug 23 23:46:58 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (aborted): Close the connection after setting the
+ session error, otherwise the socket error is lost.
+
+Fri Aug 23 22:50:30 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_sock_init): Set SIGPIPE disposition before SSL
+ library initalization, so it happens even if SSL library
+ initialization fails.
+
+Fri Aug 23 22:03:26 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c [USE_GETADDRINFO] (make_socket): Pass SOCK_STREAM to
+ socket() rather than ai_socktype: on RHL6.2, ai_socktype is
+ returned as zero.
+
+Wed Aug 21 18:06:36 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c: Reinstate stdlib.h include.
+
+ * ne_socket.h: Reinstate sys/socket.h include.
+
+Wed Aug 21 12:58:47 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_addr_resolve): Accept IPv6 addresses enclosed in
+ square brackets.
+
+Wed Aug 21 09:37:24 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_uri.c (ne_uri_parse): Parse literal IPv6 address using the
+ RFC2732 `[address]' syntax.
+
+Mon Aug 19 17:18:45 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_addr_error): Override a horribly generic error
+ message from gai_strerror().
+
+Mon Aug 19 16:24:37 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.h: Remove netinet/in.h etc includes.
+ (ne_sock_addr): Add new opaque type.
+ (ne_addr_resolve, ne_addr_result, ne_addr_error, ne_addr_destroy):
+ New functions.
+ (ne_sock_connect): Changes address argument to `ne_sock_addr *'.
+ (ne_name_lookup): Removed function.
+
+ * ne_socket.c: Added netinet/in.h etc includes.
+ (ne_sock_addr, ne_raw_addr): Define types.
+ (make_socket): New macro.
+ (ne_addr_resolve): Replace ne_name_lookup; store results (multiple
+ addresses if returned) in returned ne_sock_addr object. Use
+ getaddrinfo() if available.
+ (raw_connect, addr_first, addr_next, ne_addr_result,
+ ne_addr_error, ne_addr_destroy): New functions.
+ (ne_sock_connect): Re-implement to loop through available
+ addresses until a connect() succeeds; use make_socket, raw_connect
+ auxiliaries.
+
+ * ne_private.h (struct host_info): Store an ne_sock_addr pointer.
+
+ * ne_request.c (lookup_host): Use new ne_addr_* interface.
+
+ * ne_session.c (ne_session_destroy): Destroy address objects.
+
+Mon Aug 19 00:19:49 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c: Move prng_seeded inside ifdef NEON_SSL region to
+ prevent unused variable warning for non-SSL build.
+
+Sun Aug 18 23:21:21 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.h (ne_strerror): Return buffer.
+
+Sun Aug 18 23:17:56 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (set_error): Use ne_strnzcpy.
+
+Sun Aug 18 23:14:07 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_strerror): Use ne_strnzcpy.
+
+Sun Aug 18 23:11:45 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.h (ne_strnzcpy): New macro.
+
+Sun Aug 18 22:48:27 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_sock_init): Check directly for SIGPIPE
+ definition rather than HAVE_SIGPIPE.
+
+Sun Aug 18 13:49:49 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (set_hostport): Use %u for printing unsigned int.
+
+Sun Aug 18 13:47:43 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.h (NE_DBG_SSL): New constant.
+
+ * ne_session.c [NEON_SSL] (everywhere): Use NE_DBG_SSL channel for
+ debugging messages.
+
+Sun Aug 18 08:17:19 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (match_hostname): Fix to use case-insensitive
+ string comparison.
+
+Sun Aug 18 08:10:12 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (check_identity): Check the commonName if no
+ alt. names of DNS type were found.
+
+Sun Aug 18 07:39:35 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (check_identity): Use the most specific commonName
+ attribute found, not the first. (for RFC2818 compliance)
+
+Sun Aug 18 01:54:53 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (match_hostname): Invert return value.
+ (check_identity): New function; split out commonName check from
+ check_certificate, check subjectAltName extension instead if
+ present.
+ (check_certificate): Use check_identity.
+
+Sat Aug 17 19:59:21 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (check_certificate): Extend debugging code to dump
+ the whole certificate chain, but #if 0 it by default.
+
+Mon Aug 12 12:04:51 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (aborted): Use NE_FMT_SSIZE_T to print ssize_t
+ value.
+
+Mon Aug 12 11:08:35 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Support PRNG seeding via EGD to make SSL work on platforms which
+ lack /dev/random:
+
+ * ne_socket.c (init_ssl): New function.
+ (ne_sock_init): Call init_ssl, set prng_seeded global on success.
+ (ne_sock_use_ssl_os): Fail early if prng_seeded is not set, and
+ RAND_status returns false.
+
+Tue Aug 6 07:18:30 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_sock_use_ssl_os): Remove goto-based error
+ handling. Don't call SSL_shutdown after SSL_connect fails.
+
+Mon Aug 5 23:18:55 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_ssl_keypw_prompt): Don't set SSL_CTX default
+ password callbacks, since these are never invoked. Implement
+ once, stub for !NEON_SSL is no longer needed.
+
+Mon Aug 5 21:01:54 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_ssl_load_pem): Pass private key prompt callback
+ to PEM_read_X509, PEM_read_PrivateKey (patch by Daniel Berlin).
+ Also handle errors properly; call ERR_get_error() to pop the
+ errors of the error stack.
+
+Mon Aug 5 20:15:10 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (provide_client_cert): Increase reference count on
+ key and certificate, to prevent them being free'd too early.
+
+Sun Aug 4 22:35:27 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Fix `retry_after_abort' test in request.c:
+
+ * ne_request.c (send_request): Don't use the 'persisted' flag
+ until after a new connection has been opened, when it may have
+ been reset.
+
+Sun Aug 4 17:26:37 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (struct ne_request_s): Remove reqbuf field.
+ (ne_request_create, ne_request_destroy): Don't (de)allocate reqbuf.
+ (build_request): Allocate the returned buffer internally.
+ (ne_begin_request): Destroy the buffer after use.
+
+Sun Aug 4 15:36:01 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_ssl_load_pem): Close file after use.
+
+Sun Aug 4 12:55:49 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Factor out EPIPE, ECONNRESET handling from write_raw:
+
+ * ne_socket.c (MAP_ERR): New macro.
+ (write_raw, error_ossl): Use MAP_ERR.
+
+Sun Aug 4 12:25:34 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_sock_switch_ssl): New function.
+
+Sun Aug 4 12:24:23 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_sock_switch_ssl): New function, really just for
+ test suite.
+
+Sat Aug 3 22:11:33 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c (ne_forget_auth): Fix segfault if either server or
+ proxy auth is not in use.
+
+Sat Aug 3 22:06:32 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_redirect.c (create, post_send, ne_redirect_register,
+ ne_redirect_location): Updated for new hook interface.
+
+Sat Aug 3 19:02:33 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Adjustment of hook interface and use: fixing a design flaw causing
+ a segfault in the auth hooks when two requests are used
+ concurrently for a single session during a CONNECT tunnel.
+
+ * ne_request.h, ne_session.h:
+ (ne_get_request_private, ne_get_session_private): Replace
+ ne_request_hook_private, ne_session_hook_private.
+ (ne_set_session_private, ne_set_request_private): Replace
+ ne_hook_session_accessor, ne_hook_request_accessor.
+
+ * ne_request.h (ne_create_request_fn, ne_pre_send_fn,
+ ne_post_send_fn): Add ne_request pointer as first argument.
+ (ne_hook_destroy_request): Take ne_destroy_req_fn function.
+ (ne_hook_destroy_session): Take ne_destroy_sess_fn function.
+
+ * ne_request.c (struct ne_request_s): Renamed `accessor_hooks'
+ field to `private'.
+ (get_private): Renamed from call_access; don't invoke function.
+ (ne_null_accessor): Removed function.
+
+ * ne_auth.c (struct auth_class): Store hook id.
+ (auth_session): Remove auth_request pointer.
+ (ah_create): Store auth_request pointer as request-private data.
+ (ah_pre_send, ah_post_send, ah_destroy): Retrieve auth_request
+ pointer from request-private data.
+ (register_hooks, ne_forget_auth): Use
+ ne_{get,set}_session_private.
+
+ * ne_locks.c (struct lh_req_cookie): New structure.
+ (struct ne_lock_store_s): Remove submit_locks field.
+ (lk_create, lk_pre_send, submit_lock, ne_lock_using_resource,
+ ne_lock_using_parent, lk_destroy): Adjust to use lh_req_cookie
+ pointer as request-private data.
+
+ * ne_cookies.c (create, pre_send): Adjust for hook prototype
+ changes.
+
+Wed Jul 31 23:46:17 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c [NEON_SSL]: Include limits.h for INT_MAX definition.
+
+Mon Jul 29 20:55:57 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c (struct auth_class): New structure; abstracts out
+ proxy/server generic auth handling more cleanly.
+ (ah_server_class, ah_proxy_class): Declare variables.
+ (auth_session): Reference an auth_class structure.
+ (auth_register): Replaces auth_create.
+ (ne_set_server_auth, ne_set_proxy_auth): Simplify, use
+ auth_register.
+ (everywhere): Reference req_hdr etc via ->spec-> reference.
+
+Sun Jul 28 12:29:23 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (proxy_tunnel): Reset 'persisted' flag, so that a
+ newly tunnelled connection is not treated as persistent.
+
+Sun Jul 28 12:26:49 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.h (CONCAT2, CONCAT3, CONCAT4): Removed macros.
+
+Thu Jul 25 23:16:00 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (send_request): Don't clear retry until a
+ status-line has been read.
+
+Thu Jul 25 00:03:17 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c (basic_challenge, request_basic): Use ne_concat not
+ the CONCAT? macros.
+
+ * ne_basic.c (ne_mkcol): Use ne_concat not the CONCAT2 macro.
+
+Wed Jul 24 00:16:39 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (count_concat, do_concat): Factored out from
+ ne_buffer_concat.
+ (ne_buffer_concat): Rewrite to use count_concat, do_concat.
+ (ne_concat): New (resurrected) function.
+
+Thu Jul 18 21:52:12 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (proxy_tunnel): Don't use server.hostport in
+ Request-URI; always include `:port' even if default port is used;
+ fix CONNECT through Inktomi Traffic-Server.
+
+Thu Jul 18 21:33:43 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (aborted, ne_set_request_body_fd): Use ne_strerror.
+
+ * ne_session.c (ne_ssl_load_pem, ne_ssl_load_pkcs12): Use ne_strerror.
+
+ * ne_basic.c (get_to_fd): Use ne_strerror.
+
+Thu Jul 18 20:19:30 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_strerror): New function.
+
+ * ne_socket.c (set_strerror): Move portability logic to
+ ne_strerror; just use that here.
+
+Thu Jul 18 20:00:46 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (read_raw, write_raw): Don't re-evaluate 'errno',
+ per Ulrich Drepper's advice.
+
+Wed Jul 17 23:47:01 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (struct ne_socket_s): Store buffer for error string.
+ (set_error, set_strerror): New macros.
+ (everywhere): Use set_error, set_strerror or ne_snprintf to set
+ the socket error string.
+
+Wed Jul 17 23:19:18 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.c (ne_version_match): Fix inverted minor version test.
+
+Sun Jul 14 20:13:59 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_uri.h (ne_uri): Store port as unsigned.
+
+ * ne_uri.c (ne_uri_defaultport): Return unsigned int, and zero for
+ undefined port.
+
+Sun Jul 14 20:07:35 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_session_proxy): Take port parameter as unsigned
+ int, as per ne_session_create.
+
+Sun Jul 14 20:03:21 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (strip_eol): Take ssize_t 'len' parameter.
+ (read_message_header): Use ssize_t for 'n'.
+
+Sun Jul 14 12:45:40 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_sock_use_ssl_os): Unconditionally enable
+ SSL_MODE_AUTO_RETRY now OpenSSL 0.9.6 is required.
+
+Sun Jul 14 12:15:40 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.h (NE_XML_MEDIA_TYPE): New definition.
+
+ * ne_acl.c (ne_acl_set),
+ * ne_props.c (ne_proppatch, propfind): Use NE_XML_MEDIA_TYPE,
+ rather than hard-coding the incorrect "text/xml" media type.
+
+Sun Jul 14 10:53:33 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.c (ne_version_match): Replace ne_version_minimum.
+
+Sat Jul 13 11:40:37 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_negotiate_ssl): Include socket error string in
+ session error if SSL negotiation fails.
+
+Sat Jul 13 11:27:50 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (error_ossl): New function.
+ (ERROR_SSL_STRING): Removed macro.
+ (CAST2INT): New macro; safety harness for OpenSSL compatibility.
+ (read_ossl, write_ossl): Use error_ossl, CAST2INT.
+ (ne_sock_use_ssl_os): Use error_ssl.
+
+Sat Jul 13 11:16:07 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c: Define ECONNRESET as WSAECONNRESET on Win32.
+
+Sat Jul 13 10:10:03 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_private.h (struct ne_session_s): Replace 'reqcount' with
+ 'persisted' flag.
+
+ * ne_request.c (ne_end_request): Set 'persisted' flag if
+ connection is left open.
+ (send_request): Adjust to allow retry if 'persisted' flag is set.
+ (init_socket): Clear 'persisted' flag here...
+ (open_connection): ... rather than here.
+
+Wed Jul 10 22:51:39 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (RETRY_RET): Retry on an NE_SOCK_RESET too.
+ (send_request): Fix to only retry if not on the first request on a
+ connection (close_not_retried test).
+
+Sun Jul 7 20:49:09 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.h: Add NE_SOCK_RESET return value; improve comments.
+
+ * ne_socket.c (read_raw, write_raw): Return NE_SOCK_RESET if an
+ ECONNRESET error is received when reading or writing.
+
+Sat Jul 6 13:30:15 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (read_status_line, discard_headers): New functions,
+ split out from send_request.
+ (send_request_body): Move debugging here from send_request.
+ (RETRY_RET): Renamed from CAN_RETRY.
+ (send_request): Simplify: remove complex 100-continue graceful
+ failure logic; use read_status_line, discard_headers, RETRY_RET.
+ Fix to only send request body once (expect_100_once test case).
+ Fix to not return NE_RETRY if reading status-line other than the
+ first fails (fail_eof_continued test case).
+
+Fri Jul 5 21:47:49 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (build_request): Fix from previous commit: clear
+ the buffer before building the request.
+
+Fri Jul 5 21:00:20 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (build_request): Fold Host header and Request-Line
+ into single ne_buffer_concat call. Don't set req->use_expect100
+ here. Fold an if/else into an ?:. Optimise to use
+ ne_buffer_append to add 100-continue, user-supplied headers, and
+ trailing EOL, since they all have known lengths.
+ (send_request): Take request data as argument.
+ (ne_begin_request): Call build_request here; pass to send_request.
+ Move Expect100 logic here.
+
+Fri Jul 5 17:12:56 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c (ne_read_file): Removed function.
+
+Fri Jul 5 17:10:11 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_compress.c (process_footer): Take unsigned char buffer.
+ Store calculated CRC in a uLong.
+ (do_inflate, gz_reader): Cast buffers to unsigned char for
+ strict compatibility with zlib interface.
+
+Wed Jul 3 19:21:17 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (struct ne_request_s): Use a fixed char array for
+ respbuf field.
+ (ne_request_create, ne_request_destroy): Don't allocate respbuf
+ dynamically.
+ (send_request): Move 'buffer' to appropriate scope.
+ (ne_request_dispatch): Remove 'buffer'; read into respbuf.
+
+Tue Jul 2 08:35:05 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (proxy_tunnel): Remove redundant sess->connected
+ assignment.
+
+Sun Jun 30 21:04:50 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (ne_begin_request): Only set host->resolved if
+ lookup is successful.
+
+Sun Jun 30 18:25:51 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (SOCK_ERR): New macro.
+ (struct ne_request_s): Remove 'forced_close' field.
+ (aborted): Renamed from set_sockerr; also closes connection and
+ prints message in debug log.
+ (send_request_body): Don't use set_sockerr or set forced_close.
+ (read_response_block, read_message_header): Use SOCK_ERR; adjust
+ to use aborted().
+ (ne_read_response_block, read_response_headers): Don't set
+ forced_close.
+ (CAN_RETRY): New macro.
+ (send_request): Adjust to use CAN_RETRY(); use aborted() to make
+ sure connection is closed in error cases.
+ (ne_begin_request): Don't close connection here in error cases;
+ don't use forced_close.
+ (open_connection): Adjust to use aborted() not set_sockerr().
+
+Sun Jun 30 17:26:41 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_close_connection): Clarify debug messages.
+
+Sun Jun 30 14:36:11 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (read_response_block): Fail on chunk size lines
+ which contain no valid chunk size digits.
+
+Sun Jun 30 12:35:35 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_negotiate_ssl): Use ne_get_session rather
+ than req->session.
+
+ * ne_request.c (struct header_handler, struct body_reader,
+ struct ne_request_s): Moved from ne_private.h.
+
+Sun Jun 30 12:13:58 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Cleanup of response handling:
+
+ * ne_private.h (struct ne_response): Replace 'is_chunked' field with
+ 'mode' enum.
+
+ * ne_request.c (te_hdr_handler): Set mode.
+ (connection_hdr_handler): Reset can_persist for 'close'.
+ (clength_hdr_handler): New function.
+ (ne_request_create): Use clength_hdr_handler to parse Content-Length
+ header.
+ (read_response_block, ne_read_response_block): Adapt for 'mode' enum;
+ simplify.
+ (normalize_response_length): Removed function.
+ (ne_begin_request): Fold in normalize_response_length logic.
+ (ne_end_request): Simplify logic.
+
+Sun Jun 30 11:08:26 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c: Remove X509_NAME workaround in favour of a
+ neon.mak change.
+
+Tue Jun 25 23:14:34 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c: Undefine X509_NAME if it is defined (by a Windows
+ header).
+
+Tue Jun 25 22:51:15 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c: Rename READ_BUFFER to RDBUFSIZ.
+
+Tue Jun 25 21:07:13 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_private.h (struct host_info): Store port as unsigned int.
+
+ * ne_session.c (set_hostport, set_hostinfo, ne_session_create):
+ Take port argument as unsigned int.
+
+ * ne_socket.c (ne_sock_connect): Take port argument as unsigned
+ int.
+
+Tue Jun 25 20:59:14 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.h [__GNUCC__] (NE_DEBUG): Remove implementation using
+ GNU C extensions.
+
+Sun Jun 23 22:47:52 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (set_request_uri): Renamed from ne_set_request_uri;
+ made static.
+ (ne_request_create): Update accordingly.
+
+ * ne_private.h (ne_set_request_uri): Removed prototype.
+
+Sun Jun 23 15:40:57 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (send_request, ne_request_destroy): Free
+ reason_phrase now it is malloc-allocated.
+
+Sun Jun 23 14:59:04 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Simplify given loss of const qualifier on ne_status.reason_phrase:
+
+ * ne_props.c (struct propstat): Remove r_phrase field.
+ (end_propstat, free_propset): Use status.reason_phrase not
+ r_phrase field.
+
+Sun Jun 23 14:42:22 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_207.h (ne_207_end_response, ne_207_end_propstat): Remove
+ status_line parameter from callbacks.
+
+ * ne_207.c (struct ne_207_parser_s): Remove status_line field.
+ (end_element): Don't store status_line.
+ (handle_error): Drop status_line argument, recreate dummy status
+ line from status object.
+ (end_response, end_propstat): Drop status_line arguments.
+
+ * ne_props.c (end_propstat, end_response): Drop status_line
+ arguments.
+
+Sun Jun 23 14:39:00 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.h (ne_status): Remove const qualifier from
+ 'reason_phrase' field.
+
+ * ne_utils.c (ne_parse_statusline): strdup the reason_phrase on
+ successful return.
+
+Sun Jun 23 11:39:24 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_compress.c (struct ne_decompress_s): Replace footer union
+ with buffer.
+ (BUF2UINT): New macro.
+ (process_footer): Convert footer to integer in a portable manner,
+ using BUF2UINT.
+
+Sun Jun 23 09:05:25 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_compress.c (ne_decompress_s): Use unsigned int for 32-bit
+ integers, not uLong (fix for 64-bit platforms).
+
+Wed Jun 19 18:46:40 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_session_destroy): Don't leak the proxy
+ hostname.
+
+Sun Jun 16 14:09:31 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (read_response_block): Use NE_FMT_SSIZE_T rather
+ than %d, cast field precision argument to int.
+ (ne_pull_request_body): Use ssize_t for store callback return
+ value, use NE_FMT_SSIZE_T rather than %d, cast field precision
+ argument to int.
+
+Sun Jun 16 12:15:19 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_negotiate_ssl): Don't leak peer certificate in
+ error cases. Fix spelling mistake in error message.
+
+Sun Jun 16 11:23:23 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (open_connection): When SSL negotation fails after
+ doing CONNECT request, use ne_close_connection so that
+ sess->connection is reset to 0, and ne_sock_close isn't called
+ twice for the socket.
+
+Wed Jun 12 23:22:20 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_props.c (ne_proppatch): Add missing call to
+ ne_lock_using_resource.
+
+Mon Jun 10 20:45:27 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c (verify_response): Remove redundant prototype, fix
+ sscanf format string to use signed integer.
+
+Mon Jun 10 20:13:57 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_compress.c (do_inflate): Continue calling inflate() whilst
+ unconsumed input remains: fix from Justin Erenkrantz
+ <jerenkrantz@apache.org>.
+
+Mon Jun 10 19:53:59 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_sock_readline): If a complete line is found in
+ the buffer, avoid the memmove() and simply copy the line directly
+ out of the buffer.
+
+Sun Jun 9 11:39:20 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_redirect.c (post_send): Perform simple relative URI
+ resolution.
+
+Tue Jun 4 16:51:54 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_uri.c (ne_path_parent): Simplify.
+
+Mon Jun 3 17:50:27 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_cookies.c (set_cookie_hdl): Avoid free'ing cookie name/value,
+ thanks to Dan Mullen.
+
+Mon Jun 3 17:45:33 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_base64): Use size_t for outlen.
+
+Mon Jun 3 17:42:34 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.h, ne_socket.h [WIN32]: Move ssize_t definition to
+ ne_socket.h.
+
+Mon Jun 3 17:27:21 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (read_response_block): Use correct types for
+ passing to/from ne_sock_*.
+
+Mon Jun 3 11:32:20 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_compress.c (ne_decompress_destroy): Don't fail if response
+ reader callback is never invoked.
+
+Sun Jun 2 12:51:35 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (read_ossl, read_raw): Call readable_{ossl,raw}
+ function here.
+ (ne_sock_read, ne_sock_peek, ne_sock_readline): Remove explicit
+ calls to ops->readable before ops->read.
+
+Thu May 30 22:00:07 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (ne_sock_readline): Optimise to use socket read
+ buffer directly, and use ->read (and ->readable) functions.
+
+Tue May 28 17:00:34 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_session_destroy): Don't free proxy.hostport,
+ since it's no longer set.
+
+Sun May 26 19:11:46 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.c: #error if no expat header is configured; flatten
+ nested #if's, include libxml/xmlversion.h if present.
+
+Sun May 26 19:09:04 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.c: Include libxml/xmlversion.h if present.
+
+Sun May 26 11:55:30 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (set_hostport): Renamed from get_hostport: set
+ host_info field directly; take defaultport argument.
+ (set_hostinfo): Don't use get_hostport.
+ (ne_session_create): Use set_hostinfo and set_hostport; pass
+ in default port correctly for http:/https:.
+
+Thu May 23 19:44:44 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.c (resolve_nspace): Split out from parse_element.
+ (ne_xml_get_attr): Take parser object, and optional
+ namespace; resolve the namespace if necessary.
+ (parse_element): Use resolve_nspace.
+
+ * ne_props.c (startelm): Use new ne_xml_get_attr interface.
+
+Wed May 22 22:29:05 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_dates.c: Renamed HAVE_TM_GMTOFF to HAVE_STRUCT_TM_TM_GMTOFF
+ from use of AC_CHECK_MEMBERS.
+
+Tue May 21 21:21:31 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_redirect.c (ne_redirect_register): Drop confirm, notify,
+ userdata arguments.
+ (struct redirect): Drop most fields; add a uri structure.
+ (auto_redirect): Removed function.
+ (post_send): Remove functionality which retries a request with a
+ different URI to automatically follow redirects. Qualify the URI
+ if non-absolute.
+ (create): Remove now redundant code.
+ (ne_redirect_location): Return an ne_uri object.
+
+Sun May 19 18:53:22 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_set_useragent): Use strcat/malloc/strcpy
+ directly, rather than CONCAT2; allow compiler optimisations.
+ (AGENT): Renamed from NEON_USERAGENT, append space.
+
+Sun May 19 17:31:43 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Move everything exported by ne_socket.h into ne_*/NE_* namespace;
+ purge inappropriate and unused interfaces. Renaming done by Olof
+ Oberg.
+
+ * ne_socket.h:
+
+ (SOCK_FULL): Removed constant.
+ (sock_call_progress, sock_transfer, sock_sendline,
+ sock_send_string, sock_readfile_blocked): Removed functions.
+
+ (NE_SOCK_ERROR, NE_SOCK_TIMEOUT, NE_SOCK_CLOSED):
+ Renamed constants.
+
+ (ne_progress, ne_block_reader): Renamed types.
+
+ (ne_register_progress, ne_sock_init, ne_sock_exit, ne_sock_read,
+ ne_sock_peek, ne_sock_block, ne_sock_fullwrite, ne_sock_readline,
+ ne_sock_connect, ne_sock_accept, ne_sock_fd, ne_sock_error,
+ ne_sock_read_timeout, ne_name_lookup, ne_service_lookup,
+ ne_sock_use_ssl, ne_sock_use_ssl_os): Renamed functions.
+
+ * ne_private.h, ne_request.c, ne_session.c: Update accordingly.
+
+ * ne_request.c (build_request): Return the ne_buffer pointer.
+ (send_request): Remove redundant strlen(), use known buffer
+ length.
+
+ * ne_request.h: Drop ne_block_reader definition.
+
+Sun May 19 13:32:12 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (ne_get_session, ne_get_request): Take const
+ request pointer.
+
+Sun May 19 13:21:17 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_buffer_ncreate): Renamed from
+ ne_buffer_create_sized.
+
+ * ne_session.c (check_certificate, provide_client_cert): Update
+ accordingly.
+
+ * ne_request.c (ne_request_create): Update accordingly.
+
+Sun May 19 13:12:14 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_token): Drop quotes parameter.
+ (ne_qtoken): Split out from ne_token.
+
+ * ne_basic.c (dav_hdr_handler, ne_content_type_handler): Use
+ ne_qtoken.
+
+ * ne_compress.c (find_token): Removed function.
+ (gz_reader): Compare header value directly against "gzip",
+ remove a stale comment.
+
+Sun May 19 09:45:28 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.h (sock_fullread): Return ssize_t; takes buflen as
+ size_t.
+ (sock_read, sock_peek): Fix prototypes to match actual definition.
+
+ * ne_socket.c (write_raw): Return ssize_t.
+
+Sat May 18 14:53:45 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.h (ne_buffer): Remove separate struct ne_buffer_s
+ definition.
+
+ * ne_string.c (ne_buffer_create_sized): Don't use struct
+ ne_buffer_s.
+
+Sun May 12 11:33:02 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_base64): Moved from base64.c.
+
+ * base64.c, base64.h: Removed files.
+
+ * Makefile.in: Updated accordingly.
+
+ * ne_auth.c: Don't include base64.h.
+
+Sun May 12 11:26:05 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.h (ne_utf8_decode, ne_utf8_encode): Removed functions.
+
+Sat May 11 15:42:24 2002 Joe Orton <joe@manyfish.co.uk>
+
+ As part of patch from Olof Oberg <mill@pedgr571.sn.umu.se>:
+
+ * ne_request.h (ne_destroy_fn): Renamed from typo'ed
+ ne_destory_fn.
+
+ * ne_request.c (ne_request_destroy, ne_hook_destroy_request,
+ ne_hook_destroy_session): Update accordingly.
+
+ * ne_session.c (ne_session_destroy): Update accordingly.
+
+Thu May 9 21:44:15 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Major improvements to socket layer to incorporate socket read
+ buffering and rewrite sock_readline, and add an abstraction layer
+ to simplify SSL support. Grunt work by Jeff Johnson
+ <jbj@redhat.com>
+
+ * ne_socket.c (struct iofns): New type.
+ (struct nsocket_s): Store 'ops' pointer to I/O functions in use
+ for the socket. Add buffer, bufpos, bufavail fields for read
+ buffering.
+ (sock_block, sock_read, sock_peek): Reimplement to add read
+ buffer, simplify to use I/O functions abstraction.
+ (readable_raw, read_raw, write_raw, readable_ossl, read_ossl,
+ write_ossl): Factored out from sock_read/fullwrite, avoiding
+ in-lined ifdefs.
+ (sock_fullwrite): Just use ops->write.
+ (sock_readline): Simplify greatly to exploit read-buffering, return
+ ssize_t.
+ (sock_fullread): Simplify, removing unnecessary local variables,
+ return ssize_t.
+ (create_sock, sock_enable_ssl_os): Set ops pointer.
+
+Wed May 8 11:54:48 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (sock_name_lookup): Avoid casts; use INADDR_NONE.
+ [!INADDR_NONE]: Define to (unsigned long) -1.
+
+Wed May 1 22:19:18 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.h (ne_lock): Document that ->token and ->owner fields
+ must be malloc-allocated if non-NULL.
+
+Wed May 1 22:15:41 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.c (get_ltoken_hdr): New function.
+ (ne_lock): Correctly parse Coded-URL from Lock-Token response
+ header.
+
+Wed May 1 22:03:08 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_redirect.c (post_send): Adjust for ne_uri_parse handling of
+ unspecified port.
+
+Wed May 1 22:00:50 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (provide_client_cert): Fail if peer certificate not
+ known when client cert requested.
+
+Wed May 1 21:58:35 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.h (ne_ssl_provide_fn): Adjust callback typedef to
+ return void.
+
+Wed May 1 21:52:40 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.h: Remove NE_SERVERAUTH and NE_AUTHPROXY; fix
+ NE_PROXYAUTH description.
+
+Wed May 1 21:32:54 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_uri.c (ne_uri_parse): For consistency, port field is 0 if
+ unspecified.
+
+Tue Apr 30 10:05:48 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (shave_string): Removed function.
+
+Tue Apr 23 21:19:53 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_props.c (start_propstat, startelm): Use ne_realloc not
+ realloc (thanks to Jeff Johnson).
+
+Tue Apr 23 20:55:56 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.c: Include parser.h or libxml/parser.h, depending on
+ which is found.
+
+Mon Apr 15 00:37:43 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (build_request, send_request): Simplify logic.
+
+Sun Apr 14 16:59:50 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_props.c: Remove unused accidental 'propstat' global.
+ (struct propstat): Add r_phrase field.
+ (end_propstat): Dup the reason_phrase string.
+ (free_propset): Free the reason_phrase. Avoid another possible
+ free(NULL) call.
+
+Sun Apr 14 12:00:54 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c (ne_content_type_handler): For text/* media types,
+ use default charset of ISO-8859-1.
+
+Sat Apr 13 23:11:07 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.h: Include trio.h if NEON_TRIO is defined.
+
+Sun Apr 7 17:38:14 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (read_response_headers): Don't zero-initialize hdr.
+
+Sun Apr 7 17:15:23 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (read_response_headers): Ignore whitespace between
+ header name and colon, simplify logic a little.
+
+Sun Apr 7 14:09:07 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_ssl_readable_dname): New function.
+
+Sun Apr 7 12:32:25 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_buffer_destroy): Remove redundant check for data
+ pointer being NULL.
+
+Wed Apr 3 19:44:59 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Optimisation/simplification of header name hashing.
+
+ * ne_request.c (hash_and_lower): Renamed from hdr_hash; convert
+ string to lower-case in-place too.
+ (lower_string): Removed function.
+ (ne_add_response_header_handler): Use hash_and_lower rather than
+ lower_string.
+ (HH_ITERATE): Change parameter name to 'ch'.
+
+Fri Mar 29 23:00:57 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_uri.c (ne_uri_parse): Minor optimisation.
+
+Mon Mar 25 21:45:36 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Pass a lock context around during LOCK processing; search for the
+ correct <activelock> element in the response body.
+
+ * ne_locks.c (ne_lock_create): Don't take a path argument.
+ (ne_unlock): Constify lock parameter.
+ (discover_results): Don't parse out href here...
+ (ld_create): do it here instead; renamed from create_private.
+ (lk_startelm): New function.
+ (lk_endelm): Renamed from end_element_lock.
+ (ne_lock): Require a Lock-Token response header; pass lock context
+ to callbacks. Copy lock back out.
+
+Mon Mar 25 21:35:42 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.h (NE_SSL_FAILMASK): New constant.
+ (NE_SSL_*): Shift right one bit.
+
+Mon Mar 25 21:21:18 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_close_connection): Return void.
+
+Mon Mar 25 20:09:33 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_props.c (free_propset): Avoid free(NULL).
+
+Mon Mar 11 19:59:04 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.c (ne_lock_using_parent): Iterate over the lock list by
+ hand: check for infinite depth locks with cover the parent too
+ (fixing if_covered_child test).
+
+Mon Mar 11 19:25:44 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (ne_request_dispatch): Move variable to scope in
+ which is is used.
+
+Sun Mar 10 22:04:58 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * Makefile.in (NEON_BASEOBJS): Always build ne_compress.o.
+
+Sun Mar 10 22:01:54 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_compress.c [!NEON_ZLIB] (ne_decompress_reader,
+ ne_decompress_destroy): Add stubs.
+
+Sun Mar 10 21:42:11 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.c (struct discover_ctx): Store an ne_session pointer.
+ (discover_results): If lock URI is not an absoluteURI, qualify it
+ using the server host/port/scheme from the session. Don't leak
+ the lock object.
+ (create_private): Simplify, use ne_lock_create.
+
+Thu Mar 7 20:08:07 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_uri.c (ne_uri_defaultport): Fix default port number for https
+ scheme.
+
+Wed Mar 6 21:22:23 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.c (lk_pre_send): Use an absoluteURI in the If: header.
+
+Wed Mar 6 21:15:00 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_uri.c (ne_uri_unparse): New function.
+
+Tue Mar 5 22:57:00 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_uri.c (ne_uri_cmp): Compare hostnames and schemes
+ case-insensitively, and compare empty abspath and "/" as
+ equivalent, as per RFC 2616.
+
+Tue Mar 5 20:53:54 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_uri.c (ne_uri_defaultport): New function.
+
+Mon Mar 4 21:10:29 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_uri.h (ne_uri): Renamed from struct uri.
+
+ * ne_uri.c (ne_path_parent): Renamed from uri_parent.
+ (ne_path_has_trailing_slash): Renamed from uri_has_trailing_slash.
+ (uri_abspath, uri_absolute): Removed.
+ (ne_uri_parse): Renamed from uri_parse, don't take a 'defaults'
+ parameter.
+ (ne_uri_free): Renamed from uri_free.
+ (ne_path_unescape): Renamed from uri_unescape.
+ (ne_path_escape): Renamed from uri_abspath_escape.
+ (ne_uri_cmp): Renamed from uri_cmp.
+ (ne_path_compare): Renamed from uri_compare.
+ (ne_path_childof): Renamed from uri_childof.
+
+ * ne_basic.c, ne_locks.c, ne_uri.c, ne_redirect.c, ne_session.c,
+ ne_session.h: all callers changed.
+
+Mon Mar 4 01:03:23 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (strip_eol): Fix potential segfault.
+
+Mon Mar 4 00:38:10 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.c (insert_lock): New function.
+ (ne_lockstore_add, submit_lock): use insert_lock.
+
+Mon Mar 4 00:33:39 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.c (ne_lockstore_remove): Free list item.
+
+Mon Mar 4 00:31:08 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.c (free_list): Really destroy the lock.
+ (ne_lock_free): Don't free the lock object itself.
+
+Mon Mar 4 00:17:18 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (ne_request_destroy): Free accessor hook list.
+
+Sun Mar 3 20:35:09 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Changes to lock interface; replacing "lock session" with a lock
+ store, which can be registered with an ne_session. Lock objects
+ now store URI as complete URI structure.
+
+ * ne_locks.h (struct ne_lock): Store URI as complete URI
+ structure. Remove next/prev fields.
+ (ne_lock_store): New type.
+
+ * ne_locks.c (struct lock_list): New type.
+ (struct ne_lock_store_s): Replaces ne_lock_session_s; store
+ lock_list pointers for stored locks, cursor, and locks to
+ submit.
+ (ne_lock_create): New function.
+ (lk_create): Renamed from create.
+ (lk_pre_send): Renamed from pre_send; adjust for lock list
+ type and to use URI path.
+ (free_list): New function; split out from old 'destroy'.
+ (lk_destroy): Renamed from destroy; use free_list.
+ (ne_lockstore_create, ne_lockstore_destroy,
+ ne_lockstore_first, ne_lockstore_next): New functions.
+ (ne_lockstore_register): Most of old ne_lock_register.
+ (submit_lock): Adjusted for lock_list type.
+ (ne_lockstore_findbyuri): Renamed from ne_lock_find; use
+ full URI structure.
+ (ne_lock_using_resource, ne_lock_using_parent): Adjusted
+ for lock_list/full URI changes.
+ (ne_lock_iterate): Removed function.
+ (ne_lockstore_add, ne_lockstore_remove): Renamed from
+ ne_lock_add, ne_lock_copy; adjusted for lock_list/full URI.
+ (ne_lock_copy): Adjusted for full URI.
+ (ne_lock_create, ne_lock_destroy): New function.
+ (ne_lock, ne_lock_refresh, ne_unlock): Adjusted for full URI.
+
+Sun Mar 3 15:23:40 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_uri.c (uri_cmp): New function.
+
+Sun Mar 3 11:01:30 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_fill_server_uri): New function.
+
+Mon Feb 25 21:25:27 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.c (version_string): Add zlib version.
+
+Mon Feb 25 20:49:07 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * (everywhere): Replace use of snprintf, vsnprintf with
+ ne_snprintf, ne_vsnprintf so that trio replacements are used when
+ appropriate.
+
+ * ne_dates.h: Pick up ne_utils.h for ne_{v,}snprintf defines.
+
+Sun Feb 24 11:23:05 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.h: Define ne_snprintf, ne_vsnprintf for trio or
+ non-trio builds.
+
+Sun Feb 24 11:20:42 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * Makefile.in (check-incl): Add target to check that each header
+ file can be included standalone.
+
+Sun Feb 24 11:17:54 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.h: Add missing sys/types.h include.
+
+Sun Feb 24 11:12:22 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.h: Remove HTTP_QUOTES, HTTP_WHITESPACE globals.
+
+ * ne_cookies.c (set_cookie_hdl): Don't use HTTP_QUOTES,
+ HTTP_WHITESPACE globals.
+
+Wed Feb 20 19:32:48 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (set_sockerr, ne_set_request_body_fd,
+ send_request): Use ne_set_error rather than accessing session
+ error directly.
+
+Tue Feb 19 21:34:59 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.c (version_string) [NEON_SOCKS]: Mention SOCKSv5
+ support.
+
+ * ne_socket.c (sock_init) [NEON_SOCKS]: Call SOCKSinit.
+
+Tue Feb 19 19:21:07 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (open_connection): Remove notify_status call
+ duplicated with ne_negotiate_ssl.
+
+Tue Feb 19 19:16:44 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (sock_get_version): Removed function.
+
+Tue Feb 19 19:12:52 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_ssl_provide_ccert): Moved outside ifdef
+ NEON_SSL.
+ [!NEON_SSL] (ne_ssl_load_pem, ne_ssl_load_pkcs12,
+ ne_ssl_keypw_prompt): Added stubs.
+
+Sun Feb 17 21:15:34 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_session_create, ne_session_destroy): Only use
+ the SSL context is SSL is being used for the session.
+
+Sun Feb 17 20:19:05 2002 Joe Orton <joe@manyfish.co.uk>
+
+ Add back client certificate support, much improved.
+
+ * ne_private.h (struct ne_session_s): Add client cert/key fields,
+ provider, privkey password callbacks.
+
+ * ne_socket.c (sock_init): Call PKCS12_PBE_add.
+ (sock_enable_ssl_os): Add optional 'appdata' argument.
+ (sock_enable_ssl): Adjust accordingly.
+
+ * ne_session.c (provide_client_cert, privkey_prompt,
+ ne_ssl_keypw_prompt, ne_ssl_load_pkcs12, ne_ssl_load_pem,
+ ne_ssl_provide_ccert): New functions.
+ (ne_negotiate_ssl): Pass session as appdata to sock_enable_ssl_os.
+
+Sun Feb 17 12:32:34 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (make_dname): New function.
+ (check_certificate): Use make_dname.
+
+Sun Feb 17 11:29:10 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c (struct get_context): Remove unused 'progress' field,
+ add 'session' field.
+ (get_to_fd, content_range_hdr_handler, clength_hdr_handler): Set
+ session error directly.
+ (clength_hdr_handler): Also fix check for expected range.
+ (everywhere): Initialize session field, don't set session error;
+ use NE_FMT_OFF_T to print off_t's rather than casting to long int.
+
+Sat Feb 16 23:24:10 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.h (NE_XML_STRIPWS): New element flag.
+
+ * ne_xml.c (start_element): Clear cdata buffer if not in mixed
+ mode. (char_data): Only strip leading whitespace if
+ NE_XML_STRIPWS is set for the element.
+
+Sat Feb 16 14:52:59 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_compress.c (enum state): New state NE_Z_AFTER_DATA.
+ (struct ne_decompress_s): Add fields for storing and parsing
+ stream footer; add checksum field for storing current crc.
+ (process_footer): New function.
+ (do_inflate): Compute checksum. Switch to AFTER_DATA state and
+ process footer after reading DEFLATE data.
+ (gz_reader): Fail on trailing content. Handle AFTER_DATA state.
+ (ne_decompress_destroy): Return error if final state was not
+ PASSTHROUGH, or FINISHED.
+ (ne_decompress_reader): Initialize crc.
+
+Sat Feb 16 14:26:54 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_compress.c (ne_decompress_destroy): Fix potential segfault
+ with use-after-free.
+
+Thu Feb 14 16:50:40 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (read_response_headers): Ignore header lines
+ without a ':', rather than failing the request.
+
+Tue Feb 12 20:17:49 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (read_response_block): Read chunk size as unsigned
+ using strtoul; check that it fits within an unsigned int (and
+ hence, probably a size_t).
+
+Tue Feb 12 20:15:13 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.h (STRIP_EOL): Removed macro.
+
+Mon Feb 11 22:11:03 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (match_hostname): Match fully-qualified hostnames
+ against commonName with leading "*." wildcard.
+
+Mon Feb 11 20:47:28 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (match_hostname): New function.
+ (check_certificate): Use it.
+
+Sun Feb 10 00:50:49 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (lookup_host): Set error string on lookup failure.
+
+Sun Feb 10 00:34:42 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (strip_eol): New function; more efficient
+ STRIP_EOL.
+ (send_request): Use strip_eol.
+ (read_message_header): Use strip_eol, simplify, remove redundant
+ variables.
+
+Sat Feb 9 21:02:31 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_set_error): Drop STRIP_EOL call.
+
+Sat Feb 9 21:01:01 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_set_error): Take printf-style format string +
+ varargs list.
+
+Sat Feb 9 16:15:09 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.h (SOCKET_READ_TIMEOUT): Moved to ne_socket.c.
+
+ * ne_socket.c (struct nsocket_s): Add rdtimeout field.
+ (create_sock): Initialize rdtimeout to SOCKET_READ_TIMEOUT.
+ (sock_read, sock_recv): Use ->rdtimeout field for read timeout.
+ (sock_set_read_timeout): New function.
+
+ * ne_private.h (struct ne_session_s): Add rdtimeout field.
+
+ * ne_session.c (ne_set_read_timeout): New function.
+
+ * ne_request.c (init_socket): New function.
+ (open_connection): Use init_socket.
+
+Sat Feb 9 15:11:59 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_session_destroy): Don't leak the server cert.
+
+Sat Feb 9 09:59:11 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (check_certificate): Only call verification
+ callback once per certificate; watch for the server cert
+ changing and fail if it does.
+
+Wed Feb 6 20:28:27 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (check_certificate): Only call verification
+ callback if failures is non-zero.
+ (ne_ssl_load_ca): Renamed from ne_ssl_add_ca.
+ (ne_ssl_load_default_ca): New function.
+
+Wed Feb 6 20:21:29 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (sock_init): Cache and return result of
+ initialization.
+
+Wed Feb 6 01:12:20 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (check_certificate): Ignore cert validity errors
+ from OpenSSL since these are duplicated.
+
+Wed Feb 6 01:08:57 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_negotiate_ssl): Fix for invalidating cached
+ SSL_SESSION.
+
+Wed Feb 6 01:03:37 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c [!NEON_SSL] (STUB): New function.
+ (ne_negotiate_ssl, ne_ssl_add_ca): Implement using STUB.
+
+Tue Feb 5 19:56:43 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.h (ne_ssl_certificate): New type.
+
+ * ne_session.c (ne_session_create) [NEON_SSL]: Create the SSL_CTX
+ structure.
+ (ne_ssl_get_context): Return the SSL_CTX rather than setting it.
+ (ne_session_destroy): Free the SSL_CTX.
+
+ (asn1time_to_string): Function moved in from sslcerts.c.
+ (check_certificate): Use OpenSSL's internal validity result.
+ Pass back an ne_ssl_certificate to the verification function;
+ including validity dates.
+ (ne_ssl_add_ca): New function, registers CA certs.
+
+Sat Feb 2 14:05:26 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (sock_enable_ssl_os): Take an optional SSL_SESSION
+ argument.
+
+ * ne_private.h (struct ne_session_s): Add an SSL_SESSION field.
+
+ * ne_session.c (ne_negotiate_ssl): Pass stored SSL session to
+ sock_enable_ssl_os, cache session after successful negotiation.
+ (ne_session_destroy): Free cached session.
+
+Sat Feb 2 10:45:46 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c, ne_utils.c: Globally replace ENABLE_SSL cpp symbol
+ with NEON_SSL.
+
+Sat Feb 2 09:43:27 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (check_certificate): Use 1K on-stack buffer.
+
+Sat Feb 2 08:27:08 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_private.h (struct host_info): Add 'resolved' flag.
+ (struct ne_session_s): Add scheme field, rename have_proxy to
+ use_proxy, remove proxy_decider.
+ (struct ne_request_s): Remove use_proxy field.
+
+ * ne_request.c (set_sockerr, ne_set_request_uri, build_request,
+ open_connection): Use session->use_proxy field to determine
+ whether proxy is used.
+ (ne_request_create): Drop use of proxy_decider callback.
+ (lookup_host): Moved here from ne_session.c.
+ (ne_begin_request): Lookup server/proxy hostname if not already
+ resolved.
+
+ * ne_session.c (ne_session_create): Moved within file; takes
+ scheme, and server hostname, port as arguments.
+ (ne_ssl_enable, ne_session_decide_proxy, ne_session_server):
+ Removed functions.
+ (ne_get_scheme): Simply return scheme field.
+
+Fri Feb 1 23:12:38 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (add_fixed_headers): Remove last traces of TLS
+ upgrade support.
+
+Thu Jan 31 20:50:12 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_private.h (struct ne_session_s): Rename use_secure to
+ use_ssl; removed nssl_context, added SSL_CTX, server cert, verify
+ callback pointers.
+
+ * ne_request.c (send_request): Remove support for TLS upgrade.
+ (open_connection): Use ne_negotiate_ssl; close socket properly if
+ negotiation fails.
+
+ * ne_session.c (ne_session_destroy): Free SSL_CTX stored in
+ session.
+ (ne_ssl_set_context, ne_ssl_set_verify, verify_err, getx509field,
+ check_context, ne_negotiate_ssl, ne_ssl_server_cert): New
+ functions.
+ (ne_set_secure_context, ne_set_request_secure_upgrade,
+ ne_set_accept_secure_upgrade): Removed functions.
+ (ne_ssl_enable): Renamed from ne_set_secure.
+
+ * ne_socket.c (struct nssl_context_s): Removed type.
+ (sock_create_ssl_context, sock_destroy_ssl_context,
+ sock_disable_*, key_prompt_cb, sock_set_key_prompt,
+ sock_set_client_cert): Removed functions.
+ (sock_enable_ssl_os): Renamed from sock_make_secure; take an
+ SSL_CTX pointer, and optionally pass out the SSL structure.
+ (sock_enable_ssl): New function.
+
+Wed Jan 30 19:47:42 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_buffer_concat, ne_buffer_zappend,
+ ne_buffer_append, ne_buffer_grow): Don't return success value,
+ presume universe ends at OOM.
+
+Sat Jan 26 10:57:42 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_compress.c: Renamed enum state constants to have prefix
+ NE_Z_, to avoid conflict with Windows headers (Branko Èibej).
+
+Mon Jan 14 20:26:31 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_concat): Removed function - it didn't work, and
+ it wasn't used.
+
+Mon Jan 14 02:09:38 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c (ne_content_type_handler): Parse charset parameter.
+
+Sun Jan 13 14:29:00 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c (ne_content_type_handler): Remove trailing '/' from
+ parsed type, fix search for parms separator (Greg Stein).
+
+Sun Jan 13 12:07:51 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_207.c (ne_simple_request): Drop unused Content-Type handling.
+
+Thu Jan 10 00:39:17 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (hdr_hash): Mark as inline.
+
+Tue Jan 8 22:03:42 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.c (add_timeout_header): New function. (ne_lock,
+ ne_lock_refresh): Send a Timeout header if lock->timeout is set.
+
+Mon Jan 7 21:48:38 2002 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.c (parse_timeout): Fix parsing lock timeout (Arun
+ Garg).
+
+Mon Dec 17 22:46:36 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_private.h (struct ne_session_s): Make expect100_works a plain
+ integer (rather than a bitfield).
+
+Sun Dec 9 14:04:27 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_buffer_grow, ne_buffer_create_sized): Don't
+ zero-fill new memory. (ne_buffer_concat): Zero terminate the
+ string as _grow doesn't do it.
+
+Sun Dec 9 13:31:55 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_buffer_zappend): Minor optimisation; implement
+ using ne_buffer_append.
+
+Sun Dec 9 13:18:35 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_buffer_concat): Optimise to use time O(n) [n ==
+ total string length).
+
+Sun Dec 9 11:57:56 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * Makefile.in (NEON_DAVOBJS): Remove ne_acl.o.
+
+Sat Dec 8 01:11:30 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (ne_pull_request_body): Use NE_FMT_SIZE_T in
+ debugging message; cast size_t to int to avoid GCC warning for
+ field size parameter. (set_body_size): Use NE_FMT_SIZE_T.
+
+ * ne_xml.c (ne_xml_parse): Similarly.
+
+Mon Dec 3 19:56:07 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c (ne_session_destroy): Return void.
+
+Sat Dec 1 18:37:43 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c (ah_create): Reset attempt counter
+ here... (ah_post_send): ...rather than here.
+
+Tue Nov 27 21:26:01 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (send_with_progress): Actually call the callback;
+ fix for correct sock_fullwrite return codes.
+
+Tue Nov 27 20:20:40 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_private.h (VERSION_PRE11): Define macro; as
+ ne_version_pre_http11.
+
+ * ne_session.c (ne_version_pre_http11): Use VERSION_PRE11.
+
+ * ne_request.c (add_fixed_headers, build_request, ne_end_request):
+ Use VERSION_PRE11.
+
+Sun Nov 18 19:32:56 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.c (discover_results): Check status is 2xx before
+ invoking callback; pass NULL lock and non-NULL status pointer in
+ failure cases. (create_private): Initialize lock to some "value
+ unspecified" defaults.
+
+Sun Nov 18 19:25:10 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c (auth_session): Rename 'tries' field to 'attempt'.
+ (get_credentials, ah_pre_send, ah_post_send): Increment attempt
+ counter only when requesting credentials; reset it to zero when no
+ auth failure is signaled.
+
+Sun Nov 18 15:49:00 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.h (ne_request_auth): Pass username and password as
+ buffers of size NE_ABUFSIZ to callback. Add 'attempt' argument.
+
+ * ne_auth.c (auth_session): Store username in buffer.
+ (get_credentials, basic_challenge, digest_challenge): Updated for
+ callback prototype changes. (ah_post_send): Request credentials,
+ and retry authentication until callback returns non-zero.
+
+Mon Nov 12 20:57:56 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c (get_to_fd): Really cope with short writes (thanks to
+ rado <dzusto@yahoo.com>).
+
+Sun Nov 4 15:09:03 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_props.h: Define NE_ELM_PROPS_UNUSED for picking element ids
+ for use with the propfind XML parser.
+
+Sat Nov 3 19:06:04 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_props.c (NSPACE): New macro. (set_body, pnamecmp, startelm,
+ free_propset): Handle property having NULL nspace element in
+ propfind code.
+
+Sun Oct 28 22:04:49 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.c (parse_element): Prevent false matches of found prefix
+ "abcde" against stored prefix "abcdeFGH". Compare
+ case-sensitively.
+
+Fri Oct 26 20:28:03 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (send_request): Fix case where persistent
+ connection times out, and improve error handling.
+
+Thu Oct 25 20:42:24 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_props.c (ne_proppatch): Really handle properties with a NULL
+ namespace correctly; use the "D:" prefix for elements in the
+ "DAV:" namespace; allow properties to have no namespace.
+
+Tue Oct 16 08:54:46 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.c (parse_element): Fail the parse if a namespace prefix
+ definition is given with an empty value.
+
+Tue Oct 16 08:52:40 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_props.h, ne_207.h: Move ne_propname definition into
+ ne_props.h.
+
+Tue Oct 16 08:49:42 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_props.c (ne_proppatch): Handle properties with a NULL nspace
+ field correctly.
+
+Sun Oct 7 19:31:06 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_acl.c (ne_acl_set) [USE_DAV_LOCKS]: Notify use of resource to
+ locking code.
+
+Sun Oct 7 17:45:01 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_acl.c, ne_acl.h: New files, contributed by Arun Garg
+ <arung@pspl.co.in>.
+
+ * Makefile.in: Add ne_acl.* to build.
+
+Sun Oct 7 16:10:05 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_private (struct ne_session_s): Add 'reqcount' field.
+
+ * ne_request.c (send_request): Refactor slightly; don't loop, but
+ return NE_RETRY when appropriate. Increment reqcount.
+ (ne_begin_request): Loop if send_request returns NE_RETRY.
+ (open_connection): Reset reqcount field.
+
+Tue Oct 2 21:11:39 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_dates.c (GMTOFF): New macro. (ne_iso8601_parse,
+ ne_rfc1123_parse, ne_rfc1036_parse, ne_asctime_parse): Use new
+ macro, fix up date handling on some platforms.
+
+Sat Sep 29 14:20:47 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_compress.c (gz_reader): Fix tests 4 and 7: don't try to
+ inflate after reading header if no bytes are left in the buffer.
+
+Sat Sep 29 14:04:11 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_compress.c: Fix API; return an opaque object which must
+ be destroyed later.
+
+ (ne_decompress_reader): Renamed from ne_gzip_response_body_reader.
+ Doesn't need the session object passed in any more.
+ (ne_decompress_destroy): Merge of co_destroy, co_post_end.
+
+Sat Sep 29 13:50:43 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (ne_get_session): New function.
+
+Sat Sep 29 12:52:31 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_compress.c (parse_header): Bail if flags are set to something
+ unexpected.
+
+Sat Sep 29 11:15:30 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_compress.c, ne_compress.h: New files.
+
+ * Makefile.in: Add deps for ne_compress.
+
+Thu Sep 27 09:05:24 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_redirect.c: Adapted for new hooks interface.
+
+ * ne_cookies.c: Adapted for new hooks interface.
+ (ne_cookie_register): New function.
+
+Thu Sep 27 09:01:03 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c, ne_locks.c: Adapted for new hooks interface. Store
+ pointer to per-request object in the per-session object.
+
+Thu Sep 27 08:48:16 2001 Joe Orton <joe@manyfish.co.uk>
+
+ Re-write hooks interface to register callbacks individually rather
+ than as a block. Inspired by the Apache 2.0/APR hooks interface.
+
+ * ne_private.h (struct hook): Store a callback, userdata, id.
+ (struct hook_request): Removed. (struct ne_session_s): Store
+ hooks lists for create_req, pre_send, post_send, destroy_req,
+ destroy_sess, accessor. (struct ne_request_s): Store accessor
+ hooks list.
+
+ * ne_request.c (ne_add_hooks): Removed.
+ (ne_hook_create_request, ne_hook_pre_send, ne_hook_post_send,
+ ne_hook_destroy_request, ne_hook_destroy_session,
+ ne_hook_session_accessor, ne_hook_request_accessor,
+ ne_null_accessor, call_access, add_hook): New functions.
+ (ne_request_create, ne_request_destroy, build_request,
+ ne_end_request): Adapt for new interface.
+
+ * ne_session.c (destroy_hooks): New function.
+ (ne_session_destroy): Use it to destroy hooks lists appropriately.
+
+Tue Sep 25 07:46:32 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.c: Only decode UTF-8 for parsers other than libxml 1.x.
+
+Tue Sep 25 07:33:09 2001 Mo DeJong <supermo@bayarea.net>
+
+ * src/ne_socket.c: Include <signal.h> instead of <sys/signal.h>.
+ (sock_init): Only use signal() to ignore SIGPIPE if both
+ HAVE_SIGNAL and HAVE_SIGPIPE are defined.
+
+Tue Sep 25 07:09:53 2001 Mo DeJong <supermo@bayarea.net>
+
+ * ne_socket.c (sock_init): Declare local variables before invoking
+ any instructions since that is not valid C code.
+
+Sun Sep 23 10:30:54 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c (struct auth_challenge): Make members const.
+ (clean_session): Free the realm string. (basic_challenge,
+ digest_challenge): strdup the realm string. (request_digest):
+ opaque is no longer stored quoted. (tokenize): New function.
+ (verify_response, auth_challenge): Rejig to use tokenize().
+
+Sat Sep 22 20:17:00 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_shave): Fix possible memory corruption when
+ result should be the empty string.
+
+Thu Sep 20 21:27:57 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (ne_pull_request_body): Add debugging dump of body
+ blocks.
+
+Thu Sep 20 21:23:43 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_private.h: Remove obsolete 'if_locks' member from struct
+ ne_request_s.
+
+Tue Sep 18 23:35:30 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c (ne_get_range): Handle write errors too.
+
+Tue Sep 18 22:14:49 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.h (ne_xml_validate_cb): Take userdata parameter.
+
+ * ne_xml.c (find_handler): Pass validate callback the handler's
+ userdata.
+
+ * ne_207.c, ne_props.c, ne_locks.c: All users changed.
+
+Tue Sep 18 21:49:14 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.c (ne_lock_refresh): New function.
+
+Tue Sep 18 21:17:29 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c (copy_or_move): Take a depth parameter, add depth
+ header, for COPY requests. (ne_copy): Take depth parameter, pass
+ through. (ne_move): Adjusted accordingly.
+
+Mon Sep 17 23:29:58 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.c (ne_debug_init): Set debug stream to be unbuffered if
+ setvbuf() is available.
+
+Mon Aug 27 00:36:37 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_207.c (start_element, end_element): Remember when context is
+ valid for a <propstat>, and only invoke callback then.
+
+Sun Aug 26 22:30:39 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c (ne_get_range): Better error handling. Cope with
+ Apache's 416 problem.
+
+Sun Aug 26 18:58:47 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c: Store unquoted challenge parameters in session
+ object, prevent having to unquote/free them >1 times.
+
+Sun Aug 26 18:57:51 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (sock_init): Do nothing on any calls after first.
+
+Sun Aug 26 12:45:04 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c (server_hdr_handler): Remove function. (ne_options):
+ Don't add server_hdr_handler.
+
+Tue Jul 17 11:25:06 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (sock_init): Set signal dispostion for SIGPIPE to
+ ignore.
+
+Sat Jun 30 12:11:44 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.c (ne_supports_ssl): New function.
+
+Tue Jun 19 21:57:49 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_dates.c (ne_iso8601_parse): Fix month off-by-one bug, use
+ separate vars for offsets. (ne_rfc1036_parse): Fix Y2K bug,
+ parsing problem.
+
+Tue Jun 19 21:57:42 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_dates.c (ne_iso8601_parse): New function.
+
+Sun Jun 10 15:39:40 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (send_with_progress): New function.
+ (send_request_body): Use send_with_progress to trigger progress
+ callbacks if necessary.
+
+Sat Jun 9 15:42:33 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.h: Bring back NE_ASC2HEX/HEX2ASC.
+
+ * ne_md5.c: Use them.
+
+Sat Jun 9 15:42:08 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_xml.h: Include ne_defs.h.
+
+Fri Jun 8 23:02:49 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.h, ne_socket.c: Update for includes (Mo DeJong).
+
+Fri Jun 8 21:34:00 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c (dav_hdr_handler): Use ne_token.
+
+Sat Jun 2 14:37:07 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_private.h: Renamed from http_private.h.
+
+Sat Jun 2 14:35:23 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_auth.c, ne_auth.h: Renamed from http_auth.c, ne_auth.h.
+
+Sat Jun 2 14:35:02 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_cookies.c, ne_cookies.h: Renamed from http_cookies.c,
+ http_cookies.h.
+
+Sat Jun 2 14:34:51 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_dates.c, ne_dates.h: Renamed from dates.c, dates.h
+
+Sat Jun 2 14:22:49 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_redirect.c, ne_redirect.h: Renamed from http_redirect.c,
+ http_redirec.h. Big rename... s/http_/ne_g/
+
+Sat Jun 2 12:54:51 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_md5.c (md5_process_block): Fix for word alignment issue on
+ Sparc from Kai Sommerfeld.
+
+Wed May 30 23:15:31 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c (ne_put, ne_get, ne_put_if_unmodified, ne_get_range,
+ ne_post): Take an integer fd rather than FILE * stream.
+ (get_to_fd): Write to fd rather than stream.
+
+Wed May 30 23:08:55 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_i18n.h, ne_i18n.c: Renamed from neon_i18n.h, neon_i18n.c.
+
+ * *.c: All changed accordingly.
+
+Wed May 30 23:02:47 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_defs.h: Renamed from neon_defs.h.
+
+ * *.h: All changed accordingly.
+
+Wed May 30 22:58:57 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_md5.c, ne_md5.h: Renamed from md5.c, neon_md5.h
+
+Wed May 30 22:55:19 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.h: In-line ne_debug for GCC which can cope with varargs
+ preprocessor macros.
+
+Wed May 30 00:43:05 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_auth.c (ah_use_body): Removed function. (digest_body): New
+ function. (request_digest): Use ne_pull_request_body to find the
+ MD5 digest of the request body, when necessary.
+
+Wed May 30 00:30:52 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_redirect.c: Store Request-URI, session pointer, and method
+ string in redirect object. Avoid looking inside
+ ne_request/ne_session internals.
+
+Wed May 30 00:04:30 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c: Re-implement request body handling in terms of a
+ callback which provides the request body blocks on demand. Remove
+ 'use_body' hook, in favour of the hooks calling
+ ne_pull_request_body when necessary. (ne_pull_request_body,
+ body_fd_send, body_string_send): New functions.
+ (send_request_body): Re-implemented using ne_pull_request_body.
+ (run_set_body_hooks): Removed function. (ne_set_request_body_fd):
+ Replacement for ne_set_request_body_stream, using a raw fd rather
+ than a FILE *.
+
+Tue May 29 22:39:39 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dav_basic.h, dav_basic.h: Removed.
+
+Tue May 29 22:38:54 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_207.c (ne_simple_request, etc): Copied in from dav_basic.c.
+
+Tue May 29 22:12:23 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.c, ne_locks.h, ne_props.c, ne_props.h, ne_207.c,
+ ne_207.h: Big rename. dav_* -> ne_*, and so on.
+
+Tue May 29 22:06:24 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c (ne_add_depth_header): Moved from dav_basic.c.
+
+Tue May 29 21:55:30 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_props.c, ne_props.h: Renamed from dav_props.c, dav_props.h.
+
+Tue May 29 21:43:15 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_207.c, ne_207.h: Renamed from dav_207.c, dav_207.h.
+
+Tue May 29 21:22:25 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_locks.c, ne_locks.h: Renamed from dav_locks.c, dav_locks.h.
+
+Tue May 29 21:21:44 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c (sock_fullwrite): Cast return value of SSL_write to
+ size_t to prevent comparison of signed with unsigned.
+
+Tue May 29 21:05:27 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c [!NEON_NODAV]: Move ne_copy, ne_mkcol, ne_move,
+ ne_delete in here.
+
+Tue May 29 20:12:50 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_uri.c, ne_uri.h: Renamed from uri.c, uri.h.
+
+Tue May 29 19:17:09 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_socket.c, ne_socket.h: Renamed from socket.c, nsocket.h.
+
+Tue May 29 18:58:51 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c (ne_mkcol, ne_copy, ne_move, ne_delete): Renamed from
+ dav_*.
+
+Tue May 29 17:58:09 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c (copy_or_move, dav_copy, dav_move, dav_delete,
+ dav_mkcol): Copied in from dav_basic.c.
+
+Tue May 29 17:55:33 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_basic.c, ne_basic.h: Renamed from http_basic.c, http_basic.h.
+
+Tue May 29 17:47:50 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_auth.c (ah_create, ah_pre_send): Add the response body
+ handler in pre_send, and only if qop=auth-int.
+
+Wed May 16 20:54:51 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (ne_get_request_headers): Removed function.
+
+Sat May 12 18:48:46 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c (read_message_header, read_response_headers): Use a
+ fixed-size char * buffer argument rather than an ne_buffer.
+ Append directly to it when header-folding.
+
+Mon May 7 10:42:38 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c (ne_token): Use an optimized search (strchr) if
+ quotes is NULL.
+
+Mon May 7 01:33:48 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_auth.c (basic_challenge, get_cnonce): Updated for ne_base64
+ change.
+
+Mon May 7 01:32:22 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * base64.c (ne_base64): Take length parameter. [BASE64_TEST]
+ (main): Remove function, obsoleted by test code.
+
+Wed May 2 12:06:59 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c, ne_string.h (ne_token, ne_shave): New functions,
+ destined to replace split_string, shave_string, etc.
+
+ * ne_string.c [SPLIT_STRING_TEST, PAIR_STRING_TEST] (main): Remove
+ tests, functions are obsolete.
+
+Tue May 1 22:14:14 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dates.c (ne_httpdate_parse): Moved from ne_utils.c.
+
+Tue May 1 21:55:45 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_utils.c, ne_utils.h: Renamed from http_utils.c, http_utils.h.
+ Big rename. http_* -> ne_*. neon_* -> ne_*. DEBUG() ->
+ NE_DEBUG(). DEBUG_* -> NE_DBG_*.
+
+Tue May 1 21:35:10 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_request.c: Updated for ne_buffer changes.
+
+Tue May 1 21:28:58 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.h (ne_buffer_size): Implement as macro.
+
+ * ne_string.c (ne_buffer_size): Remove function.
+
+Tue May 1 21:23:47 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c, ne_string.h: Make ne_buffer a transparent type, and
+ no longer be an implicit pointer type. (ne_buffer_*): All
+ changed. (ne_buffer_data, NE_BUFFER_CAST): Removed.
+
+Tue May 1 21:17:40 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c, ne_string.h: Renamed sbuffer -> ne_buffer.
+ Implicit pointer removed ne_buffer type.
+
+Tue May 1 21:12:15 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_string.c, ne_string.h: Renamed from string_utils.c,
+ string_utils.h (CVS copy'n'delete).
+
+Tue May 1 20:49:46 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * md5.c (ASC2HEX, HEX2ASC): Moved here from string_utils.h.
+
+ * string_utils.h: As above.
+
+Tue May 1 20:47:20 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c, http_request.h: Removed files.
+
+ * ne_request.c, ne_request.h: Copied from old http_request.[ch].
+ Renamed http_* -> ne_*.
+
+Tue May 1 20:43:11 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * hip_xml.c renamed to ne_xml.c, hip_xml.h renamed to ne_xml.h:
+ CVS repository copy'n'delete.
+
+Tue May 1 20:41:03 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * hip_xml.c, hip_xml.h: Big rename. hip_xml_* -> ne_xml_*.
+
+Tue May 1 20:37:13 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_basic.c, http_basic.h: Big rename. http_* -> ne_*.
+
+Tue May 1 19:59:01 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.c: Renamed http_* to ne_*.
+
+Tue May 1 19:55:47 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_alloc.h (NE_FREE): Renamed from HTTP_FREE() in http_utils.h
+
+Tue May 1 19:54:42 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * socket.c (sock_make_secure): Set SSL_MODE_AUTO_RETRY when
+ available.
+
+Mon Apr 30 00:36:34 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_session.[ch]: New files, split down from http_request.[ch].
+
+Sun Apr 29 15:02:23 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * uri.c [URITEST] (main): Remove, obsoleted by new test suite.
+
+Sun Apr 29 15:01:30 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * uri.c (uri_has_trailing_slash): Return false if uri is "".
+
+Sun Apr 29 13:53:41 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dates.c (ne_asctime_parse, ne_rfc1123_date, ne_rfc1036_parse):
+ Set tm_isdst to -1 in struct tm.
+
+Sun Apr 29 13:28:26 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_utils.c (http_parse_statusline): Skip leading whitespace.
+ (Johan Lindh). (http_parse_statusline): Ensure status-code is not
+ more than three digits.
+
+Sun Apr 29 13:26:47 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (build_request): Don't add "Content-Length: 0"
+ header if no body: Squid 2.3-STABLE1 doesn't like this.
+
+Sun Apr 29 13:25:16 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_auth.c (everywhere): Renamed md5_* -> ne_md5_*.
+
+Sun Apr 29 13:24:12 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * md5.c: Renamed md5_* -> ne_md5_*. (ne_ascii_to_md5,
+ ne_md5_to_ascii): Moved from string_utils.c.
+
+Thu Apr 26 22:39:05 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * uri.c (uri_parse): A zero-length URI is invalid.
+
+Wed Apr 25 23:11:51 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dav_props.c (startelm): Check for xml:lang attribute and store
+ as prop->lang. (dav_propset_lang): New function. (free_propset):
+ Free lang.
+
+Wed Apr 25 23:08:52 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * hip_xml.c (hip_xml_get_attr): New function.
+
+Sun Apr 22 21:48:06 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * uri.c (uri_parse): Skip a userinfo@ segment if present (Johan
+ Lindh <johan@link-Data.com>).
+
+Wed Apr 18 13:29:46 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dav_locks.c (dav_lock_copy): Allow owner to be NULL.
+
+Tue Apr 17 22:57:50 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_alloc.h, dav_locks.h: Add C++ inclusion safety.
+
+Tue Apr 17 22:56:50 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * uri.c (uri_parse): Correctly handle URIs with no scheme or
+ hostport segments (i.e. just a path).
+
+Tue Apr 10 00:29:25 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * socket.c [HAVE_SOCKS_H]: Include socks.h for SOCKSv5 support.
+
+Wed Apr 4 21:41:47 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_utils.h [WIN32]: Define ssize_t (Kai).
+
+Tue Apr 3 21:03:28 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dav_locks.c (dav_lock_discover): Cope with below API change.
+
+Tue Apr 3 20:43:50 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dav_props.c (propfind): Register the flat element handler here,
+ to pick up *any* properties and store them as 'flat' if they are
+ not handled by a handler further down the stack. (make_elms,
+ free_elms, dav_propfind_set_flat, dav_propfind_set_complex):
+ Removed functions. (dav_propfind_named): Take the list of
+ property names, and call set_body here.
+ (dav_propfind_set_private): New function.
+
+Tue Apr 3 09:33:09 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_auth.h: Added C++ inclusion safety. (Kai Sommerfeld)
+
+Mon Apr 2 02:39:18 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * hip_xml.c (sax_error): Add parse error callback for libxml.
+
+Mon Apr 2 02:23:06 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_redirect.c (post_send): Clean up and fix logic. Only check
+ for confirmation for same-server redirects.
+
+Mon Apr 2 02:13:48 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_redirect.c (http_redirect_location): New function.
+ (destroy): Removed function. (create): Free location.
+ (post_send): Only call notify callback for followed redirects.
+
+Mon Apr 2 01:55:27 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (http_set_request_uri): Allow using the '*' URI
+ even when using a proxy server.
+
+Mon Apr 2 01:32:06 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_redirect.c (post_send): Give up on trying to follow a
+ redirect to another server. Return HTTP_REDIRECT on such a
+ redirect.
+
+ * http_redirect.c (post_send): Fix leaks of URI object (Kai
+ Sommerfeld).
+
+Mon Apr 2 01:08:33 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (read_response_headers): Don't read more than 100
+ response headers.
+
+Mon Apr 2 00:54:43 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (http_request_dispatch): Remove mapping of auth
+ status codes to return values, the hook does it now.
+
+Mon Apr 2 00:53:20 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (http_set_request_uri): New function, split out
+ from http_request_create. (http_request_create): Use it.
+
+Mon Apr 2 00:51:23 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_auth.c (http_set_proxy_auth, http_set_server_auth): Add
+ failure codes. (ah_post_send): Return failure code if
+ authentication fails.
+
+Mon Apr 2 00:19:17 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_utils.c: Pick up xmlversion.h from libxml2.
+ (neon_version_string): Include libxml2 version string if defined.
+
+Sun Apr 1 21:40:00 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_basic.c (http_get_range): Fix total length
+ calculation. (Johan Lindh <johan@linkdata.se>).
+ (clength_hdr_handler): Use range->total.
+
+Sun Apr 1 21:26:09 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * hip_xml.c: Add expat2 support (Sam TH <sam@uchicago.edu>).
+
+Sun Apr 1 21:07:19 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * string_utils.h (CONCAT2, CONCAT3, CONCAT4): Use ne_malloc.
+
+Sun Apr 1 20:59:09 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dav_props.c (propfind, dav_proppatch): As below.
+
+Sun Apr 1 20:32:29 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_basic.c (http_post): Changed as per
+ http_set_request_body_buffer change.
+
+ * dav_locks.c (dav_lock): Likewise.
+
+Sun Apr 1 20:31:06 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (http_set_request_body_buffer): Pass in size
+ parameter too. (send_request_body): Use sized rather than
+ NUL-terminated buffer.
+
+Sun Apr 1 20:12:51 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_private.h: Added 'body_callback' request body type, and
+ body_cb, body_ud fields to http_req.
+
+ * http_request.c (http_set_request_body_provider): New function.
+ (set_body_size): New function, factored out from old
+ http_set_request_body_*. (http_set_request_body_stream,
+ http_set_request_body_buffer): Use it.
+
+Sun Apr 1 19:56:17 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dav_props.c: Replaced 'uri' and 'depth' fields in propfind
+ handler object with an 'http_req' pointer. (dav_propfind_create):
+ Create the request object here, and set the depth header.
+ (propfind): Changed accordingly. (dav_propfind_destroy): Destroy
+ request object too.
+
+ * dav_props.c (dav_propfind_get_request): New function.
+
+Fri Mar 30 16:50:51 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * hip_xml.c (start_element): Quote attributes in collect (Kai
+ Sommerfeld).
+
+Fri Mar 30 16:36:08 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_basic.c (http_put_if_unmodified): Changed as below.
+
+Thu Mar 22 14:05:52 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_utils.c (http_dateparse): Changed as below.
+
+ * http_auth.c (get_conce, basic_challenge): Likewise.
+
+Thu Mar 22 14:04:54 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dates.c (ne_rfc1123_date, ne_rfc1123_date, ne_asctime_parse,
+ ne_rfc1036_parse): Added ne_ prefix.
+
+Thu Mar 22 14:03:12 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * base64.c (ne_base64): Renamed from base64.
+
+Tue Mar 20 20:34:44 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dav_props.c (make_elms): Don't request UTF-8 decoding of
+ property values.
+
+Tue Mar 20 20:33:39 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * string_utils.c (ne_utf8_decode): New function.
+
+Mon Mar 19 22:08:45 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_basic.c (get_callback): Removed function. (http_get,
+ http_read_file, http_post): Use callbacks directly rather than
+ indirectly through get_callback.
+
+Mon Mar 19 21:55:19 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (notify_status, http_set_status,
+ http_set_progress): New functions: request status and progress
+ callbacks. (open_connection, lookup_host): Use notify_status to
+ trigger status callbacks, and register socket progress callbacks.
+
+Mon Mar 19 21:53:07 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * socket.c (sock_register_notify): Removed function.
+ (sock_connect_u): Renamed to sock_connect.
+ (sock_register_progress): Per-socket progress callbacks rather
+ than global ones. (sock_call_progress): Take socket argument.
+ (all callers changed).
+
+Mon Mar 19 21:52:50 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * socket.c (sock_get_version): New function.
+
+Mon Mar 19 13:59:21 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dav_props.c (propfind): Destroy the handler.
+
+Mon Mar 19 13:36:55 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dav_props.c (dav_propnames): New function.
+
+Wed Mar 14 22:42:12 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.h (http_begin_request, http_end_request,
+ http_read_response_block): New functions.
+ (http_request_dispatch): Reimplemented using new caller-pulls
+ interface.
+
+Wed Mar 14 22:20:38 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_auth.c (ah_post_send): If authentication fails (i.e. bad
+ credentials), clean the session details.
+
+Wed Mar 14 20:46:55 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_auth.c: Retry the request simply if it has not been tried
+ before with authentication details, otherwise, fail on 40[17].
+
+Wed Mar 14 20:12:52 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (open_connection): Make sure to close the
+ connection, and return HTTP_CONNECT if the SSL negotiation fails.
+
+Tue Mar 6 18:37:43 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_alloc.c (ne_strndup): Allocate n+1 bytes not 'n' (Kai
+ Sommerfeld).
+
+Mon Mar 5 01:05:31 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c: Moved local sbuffer variables of
+ http_request_dispatch into http_req members 'reqbuf' and
+ 'respbuf'. (build_request): Return a const char * of the request.
+ (send_request): Call build_request directly, use req->respbuf.
+ (http_request_dispatch): Don't call build_request. Removed 'goto'
+ exception handling (hoorah). (http_request_create,
+ http_request_destroy): Create and destroy reqbuf and respbuf here.
+
+Mon Mar 5 00:43:40 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (http_set_request_body_stream): Set
+ req->body_size and Content-Length header here: return success
+ value. (http_set_request_body_buffer): Likewise (but no return
+ value). (get_request_bodysize): Removed function.
+ (build_request): Add Content-Length: 0 header if no request body.
+
+Mon Mar 5 00:27:24 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_auth.c (http_forget_auth): New function.
+
+Mon Mar 5 00:25:15 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (http_request_hook_private): Renamed from
+ http_get_hook_private. (http_session_hook_private): New function.
+
+ * dav_locks.c (dav_lock_using_resource, dav_lock_using_parent):
+ Renamed simiarly.
+
+Sun Mar 4 23:12:12 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_auth.c: Moved per-request state into struct auth_request.
+ (request_digest): Take struct auth_request argument. (free_auth):
+ New function. (http_add_hooks): Pass free_auth as cleanup
+ function for auth session.
+
+Sun Mar 4 23:08:46 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_redirect.c (auto_redirect): Auto-redirect OPTIONS requests.
+ (free_redirect): New function. (http_redirect_register): Pass
+ cleanup function.
+
+Sun Mar 4 23:07:01 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dav_locks.c (dav_lock_unregister): Removed function.
+ (free_locks): New function. (dav_lock_register): Pass free_locks
+ as cleanup function for hooks.
+
+Sun Mar 4 22:54:57 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.h (http_add_hooks): Added fourth argument to
+ register a cleanup function for the cookie.
+
+Sun Mar 4 19:53:03 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_auth.c (request_digest): Use an sbuffer to create the
+ header value.
+
+Sun Mar 4 19:44:18 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_auth.c: Remove namespace protection for private
+ functions. s/http_auth/auth/g.
+
+Sun Mar 4 19:39:13 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_auth.c (ah_pre_send): Increase attempt counter here, ...
+ (ah_post_send): instead of here.
+
+Sun Mar 4 18:40:03 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (http_request_dispatch): Simplify post_send hook
+ invocation: run them until one doesn't return HTTP_OK. Don't run
+ pre_send hooks here. Loop while a hook returns HTTP_RETRY.
+ (build_request): Run pre_send hooks here.
+
+ * http_request.c (read_response_body): Call
+ normalize_response_length here.
+
+Sun Mar 4 18:12:26 2001 Joe Orton <joe@manyfish.co.uk>
+
+ Re-implemented HTTP authentication using generic hooks interface.
+
+ * http_auth.c: Added http_auth.h. (http_auth_init,
+ http_auth_set_creds_cb, http_auth_new_request,
+ http_auth_request_header): Removed functions, merged into new
+ hooks code. (ah_create, ah_post_send, ah_pre_send, ah_use_body,
+ ah_destroy): New functions. (auth_body_reader,
+ http_set_server_auth, http_set_proxy_auth): Moved over from
+ http_request.c and redone for hooks interface.
+
+ * http_request.c (http_set_server_auth, http_set_proxy_auth,
+ give_creds, auth_body_reader): Moved to http_auth.c.
+ (http_accept_always): Renamed from always_accept_response and made
+ public. (http_request_create, build_request,
+ http_request_dispatch): Removed authentication code.
+
+Tue Feb 27 19:49:42 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dav_props.c (set_body): Remove UTF-8 encoding again.
+
+Mon Feb 26 22:38:41 2001 Joe Orton <joe@manyfish.co.uk>
+
+ Patch from Kai Sommerfeld to remove URI escaping from inside neon.
+
+ * dav_207.c (end_element): Don't unescape href elements.
+
+ * http_request.c (http_request_create): Don't escape Request-URI.
+
+ * dav_basic.c (copy_or_move): Don't escape destination URI.
+
+Mon Feb 26 21:44:56 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dav_props.c (set_body): UTF-8 encode the property name and
+ value. (make_elms): Request UTF-8 decoding of property values.
+
+Mon Feb 26 21:40:14 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * hip_xml.c: Do perform UTF-8 decoding when using libxml.
+ (char_data): Fix UTF-8 decoding bug where the byte after a
+ multi-byte encoded sequence would be skipped.
+
+Sun Feb 25 20:04:05 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * string_utils.c (ne_utf8_encode): New function.
+
+Sun Feb 25 19:52:01 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * ne_alloc.c (ne_realloc): New function.
+
+Sun Feb 25 17:00:32 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * Makefile.in (all): Rename NEON_IS_BUNDLED to NEON_BUILD_BUNDLED.
+
+Sun Feb 25 16:52:43 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * Makefile.in (all): Build according to NEON_IS_BUNDLED.
+
+Fri Feb 23 23:38:10 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * Makefile.in: Fix deps: neon_config.h has gone.
+
+Fri Feb 23 22:57:47 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * dav_props.c (dav_simple_propfind): Support a NULL 'props'
+ argument to do an allprop request, as per the advertising
+ literature. Register a catch-all handler in this case.
+
+Fri Feb 23 22:16:42 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (http_session_destroy): Free up hooks list.
+
+Thu Feb 22 21:54:36 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.h (http_add_hooks): Make request_hooks 'const'.
+
+Thu Feb 15 08:36:56 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (read_response_body): Accept SOCK_CLOSED as
+ end-of-response if we don't have a Content-Length (and not
+ chunked). (Kai Sommerfeld).
+
+Thu Feb 15 08:36:23 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (add_fixed_headers): Don't add the Host header
+ here. (http_request_dispatch): Add it here instead.
+
+ * http_request.c (set_hostinfo): Dup the hostname.
+ (http_session_destroy): Free the hostname. (Kai Sommerfeld).
+
+Thu Feb 15 08:35:49 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_private.h: Make hostname in struct host_info char *. (Kai
+ Sommerfeld).
+
+Thu Feb 15 08:08:50 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_redirect.h: Add C++ header-inclusion safety macros (Kai
+ Sommerfeld <kai.sommerfeld@germany.sun.com>).
+
+Wed Feb 14 23:37:57 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (read_response_body): Use a size_t for readlen,
+ as read_response_block requires.
+
+Wed Feb 14 23:25:44 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_auth.c (request_digest): Fix incorrect signed-ness of
+ buffer.
+
+Wed Feb 14 23:22:13 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * uri.h, string_utils.h: Comment-out tokens after #endif.
+
+Sun Feb 4 14:36:11 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_redirect.c (post_send): Prototype change.
+
+Sun Feb 4 14:31:42 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * socket.c: Added key_prompt, key_userdata, key_file to
+ nssl_context. (sock_set_key_prompt, key_prompt_cb): New
+ functions. (sock_make_secure): Set ctx->key_file to private key
+ filename.
+
+Sun Feb 4 13:31:44 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.h: Make http_status argument of post_send a const
+ pointer.
+
+Sun Feb 4 10:38:12 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_request.c (set_sockerr): Only use the socket error if it is
+ NULL, else print generic "something went wrong"-type error
+ message.
+
+Sun Feb 4 10:29:37 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * socket.c (sock_set_client_cert): Call SSL_CTX_check_private_key
+ to ensure that the cert and private key match.
+
+Sun Feb 4 10:28:02 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * socket.c (sock_make_secure): In error cases after SSL_connect
+ succeeds, call SSL_shutdown and assign sock->ssl = NULL before
+ returning.
+
+Sat Feb 3 18:33:56 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * socket.c (sock_close): Call SSL_shutdown before close()'ing the
+ fd.
+
+Sat Feb 3 18:30:48 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * socket.c: Store an default SSL_CTX in nsocket, to be used when
+ no nssl_context is supplied. (create_socket): Create default
+ SSL_CTX (sock_close): Free it here. (sock_make_secure): Use it
+ here.
+
+Sat Feb 3 15:52:15 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * socket.c (sock_set_client_cert): New function.
+
+Sat Feb 3 15:48:51 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * socket.c: Rejig of nssl_context handling. An nssl_context is
+ now really a wrapper for an SSL_CTX. (sock_create_ssl_context):
+ Create the SSL_CTX here. (sock_disable_tlsv1, sock_disable_sslv2,
+ sock_disable_sslv3): Set the SSL_CTX option directly.
+ (sock_make_secure): Create an SSL_CTX if no nssl_context is
+ supplied, otherwise use SSL_CTX from nssl_context.
+
+Sun Jan 28 13:52:03 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * http_utils.c (neon_version_minimum): New function.
+
+Sun Jan 28 10:37:28 2001 Joe Orton <joe@manyfish.co.uk>
+
+ * neon_config.h.in: Removed file.
+
+ * http_request.c, http_utils.c: Don't include neon_config.h.
+
+Sat Jan 27 22:52:37 2001 Joe Orton <joe@light.plus.com>
+
+ * socket.c: Use closesocket() as NEON_CLOSE (Markus Fleck
+ <fleck@isoc.de>).
+
+Sat Jan 27 22:35:16 2001 Joe Orton <joe@light.plus.com>
+
+ * hip_xml.c: Add 'char_data' as libxml cdataBlock handler.
+
+Tue Jan 23 23:17:00 2001 Joe Orton <joe@light.plus.com>
+
+ * neon_config.h.in: Renamed from neon_config.h. Define
+ NEON_VERSION_MAJOR and NEON_VERSION_MINOR too: all picked up from
+ the NEON_VERSIONS macro.
+
+Sun Jan 21 22:07:34 2001 Joe Orton <joe@light.plus.com>
+
+ * string_utils.c (ne_concat): New function.
+
+Thu Jan 18 22:25:34 2001 Joe Orton <joe@light.plus.com>
+
+ * ne_alloc.h: Added ne_oom_callback.
+
+ * ne_alloc.c: Added DO_MALLOC macro to do the malloc and oom
+ callback test. (ne_malloc): Use DO_MALLOC. (ne_strdup,
+ ne_calloc, ne_strndup): Reimplement using DO_MALLOC rather than
+ calling ne_malloc().
+
+Tue Jan 16 20:16:35 2001 Joe Orton <joe@light.plus.com>
+
+ * neon_config.h: Bumped version to 0.10.1.
+
+Tue Jan 16 20:14:40 2001 Joe Orton <joe@light.plus.com>
+
+ * http_request.c (http_session_create): Default expect-100 support
+ to OFF.
+
+Mon Jan 15 22:59:33 2001 Joe Orton <joe@light.plus.com>
+
+ * neon_config.h: Bumped version to 0.10.0.
+
+Mon Jan 15 22:58:04 2001 Joe Orton <joe@light.plus.com>
+
+ * dav_basic.c (dav_simple_request): Use dav_207_ignore_unknown.
+
+Sun Jan 14 22:52:31 2001 Joe Orton <joe@light.plus.com>
+
+ * dav_props.c (propfind): Call dav_207_ignore_unknown.
+
+Sun Jan 14 22:49:06 2001 Joe Orton <joe@light.plus.com>
+
+ * dav_207.c: Don't handle unknown elements in normal handler.
+ (ignore_cc, dav_207_ignore_unknown): New functions, for ignoring
+ any unknown elements in the parse.
+
+Sun Jan 14 21:53:00 2001 Joe Orton <joe@light.plus.com>
+
+ * hip_xml.c: Renamed 'handlers' back to top_handlers.
+ (push_handler): Now, p->root->handlers points to BASE of stack,
+ p->top_handlers points to TOP of stack. (hip_xml_destroy):
+ Changed to start from new BASE of stack.
+
+Sun Jan 14 10:50:09 2001 Joe Orton <joe@light.plus.com>
+
+ * http_request.c (http_session_server): Do perform the DNS lookup
+ if we have a proxy_decider function, since that means we MIGHT
+ need to know the IP address of the origin server.
+ (http_request_create): Pass the real scheme back to the proxy
+ decider callback.
+
+Wed Jan 10 22:43:16 2001 Joe Orton <joe@light.plus.com>
+
+ * Makefile.in: Rename OBJ_EXT to NEON_OBJEXT. Remove
+ NEON_INTERFACE_VERSION, use NEON_LINK_FLAGS instead.
+
+Wed Jan 10 22:02:02 2001 Joe Orton <joe@light.plus.com>
+
+ * dav_locks.c (create_private): New function.
+ (dav_lock_discover): Switch to using new dav_propfind_set_complex
+ API.
+
+Wed Jan 10 21:59:36 2001 Joe Orton <joe@light.plus.com>
+
+ * dav_props.h (dav_propfind_set_complex): Switch the
+ 'sizeof_private' argument for a callback 'creator': the return
+ value of this callback is used as the 'private' field for the
+ current resource.
+
+Mon Jan 8 22:09:55 2001 Joe Orton <joe@light.plus.com>
+
+ * dav_locks.h (dav_lock_result): Re-order arguments. Make lock
+ object const.
+
+ * dav_locks.c (dav_lock_copy): New function. (discover_results):
+ Set lock->uri given href for current results. Free lock object
+ after passing to results.
+
+Sun Jan 7 21:55:14 2001 Joe Orton <joe@light.plus.com>
+
+ * dav_locks.c (dav_lock): Destroy XML parser after use. Remove
+ handling of Lock-Token header: it wasn't used and it leaked.
+
+Sun Jan 7 19:58:29 2001 Joe Orton <joe@light.plus.com>
+
+ * dav_props.c (free_propset): Free the property values, and the
+ result set URI too.
+
+Sun Jan 7 16:58:19 2001 Joe Orton <joe@light.plus.com>
+
+ * http_request.c (read_response_block): Fix handling of
+ SOCK_CLOSED from sock_read as end-of-connection.
+
+Sat Jan 6 15:02:57 2001 Joe Orton <joe@light.plus.com>
+
+ * hip_xml.c (struct hip_xml_parser): Renamed 'top_handlers' to
+ 'handlers' in hip_xml_parser. (push_handler): New function.
+ (hip_xml_push_handler, hip_xml_push_mixed_handler): Use
+ push_handler.
+
+ * hip_xml.c (find_handler): Begin the search for a new handler
+ from the handler of the current (parent) element, and work up the
+ stack.
+
+Sat Jan 6 11:15:17 2001 Joe Orton <joe@light.plus.com>
+
+ * hip_xml.c (find_handler): Display error message for unknown XML
+ element as 'elmname (in nspace)' rather than 'nspace:elmname'
+ since the latter produces confusing errors like
+ 'DAV::displayname'.
+
+Wed Jan 3 21:34:44 2001 Joe Orton <joe@light.plus.com>
+
+ * Makefile.in: Hard-code top_builddir as '..' (possibly wrong, but
+ true for all neon apps so far). Remove INCLUDES, now unused. Add
+ top_srcdir.
+
+Fri Dec 22 22:51:27 2000 Joe Orton <joe@light.plus.com>
+
+ * dav_props.c: Added 'has_props' field to propfind_handler struct.
+ (set_body): Only add leading 'prop' element if has_props is not
+ set. Set has_props. Don't add trailing </prop> element here.
+ (dav_propfind_named): ... add it here instead.
+ (dav_propfind_set_complex, dav_propfind_set_flat): New set_body
+ interface.
+
+Fri Dec 22 21:10:39 2000 Joe Orton <joe@light.plus.com>
+
+ * socket.c (sock_transfer): Don't use NEON_READ here, this is
+ for reading from a non-socket fd.
+
+Wed Dec 20 00:19:34 2000 Joe Orton <joe@light.plus.com>
+
+ * neon_config.h: Bumped version to 0.9.1.
+
+Wed Dec 20 00:19:09 2000 Joe Orton <joe@light.plus.com>
+
+ * dav_props.c (free_propset): Don't free the private structure,
+ make this the caller's responsibility.
+
+Wed Dec 20 00:12:36 2000 Joe Orton <joe@light.plus.com>
+
+ * dav_props.c (end_propstat): Rename propstat argument to
+ 'pstat_v' to kill warnings.
+
+Tue Dec 19 23:42:39 2000 Joe Orton <joe@light.plus.com>
+
+ * dav_props.c (start_response): Zero-out the private structure on
+ creation.
+
+Tue Dec 19 22:54:06 2000 Joe Orton <joe@light.plus.com>
+
+ * http_request.c (read_response_block): Rename local variable
+ 'socket' to 'sock'.
+
+Tue Dec 19 22:52:56 2000 Joe Orton <joe@light.plus.com>
+
+ * http_request.h: Rename argument from 'stat' in post_send
+ definition.
+
+Tue Dec 19 22:52:32 2000 Joe Orton <joe@light.plus.com>
+
+ * http_utils.h: Add 'const' to char * argument.
+
+Tue Dec 19 22:19:28 2000 Joe Orton <joe@light.plus.com>
+
+ * neon_config.h: Bumped version to 0.9.0.
+
+Tue Dec 19 22:12:19 2000 Joe Orton <joe@light.plus.com>
+
+ * Makefile.in: New file.
+
+Tue Dec 19 22:07:50 2000 Joe Orton <joe@light.plus.com>
+
+ * Makefile.incl: Removed file.
+
+Tue Dec 19 22:06:06 2000 Joe Orton <joe@light.plus.com>
+
+ * dav_locks.c (dav_lock_discover): New callback-based lock
+ discovery interface. Re-implemented using new propfind interface.
+
+Tue Dec 19 21:22:43 2000 Joe Orton <joe@light.plus.com>
+
+ * dav_props.h: Replace old dav_propfind_* interface with better
+ one. (dav_simple_propfind): Renamed from dav_get_props.
+ (dav_propfind_current_private, dav_propfind_set_complex,
+ dav_propfind_set_flat): New functions.
+ (dav_propfind_get_current_resource): Removed function.
+ (dav_propfind_named, dav_propfind_allprop): Change second argument
+ to be the results callback.
+
+ * dav_props.c: Replace implementatino of old interface with new
+ one. (dav_simple_propfind): Re-implemented on top of new
+ all-singing all-dancing dav_propfind_* interface.
+
+Sun Dec 17 18:24:50 2000 Joe Orton <joe@light.plus.com>
+
+ * dav_props.c: Add dav_get_props, and all its auxiliaries.
+
+Sun Dec 17 15:43:55 2000 Joe Orton <joe@light.plus.com>
+
+ * dav_props.c (propfind): Destroy the request after calling
+ http_get_status.
+
+Sun Dec 17 18:04:58 2000 Joe Orton <joe@light.plus.com>
+
+ * hip_xml.c (find_handler): Allow using NULL as name and nspace in
+ HIP_ELM_unknown elements.
+
+Sun Dec 17 18:03:03 2000 Joe Orton <joe@light.plus.com>
+
+ * dav_207.c (check_context): Don't handle the unknown element when
+ it is a child of the prop element, this prevents handling allprop
+ responses.
+
+Thu Dec 14 21:48:06 2000 Joe Orton <joe@light.plus.com>
+
+ * neon_config.h: Bumped version to 0.8.0.
+
+Thu Dec 14 21:43:31 2000 Joe Orton <joe@light.plus.com>
+
+ * dav_basic.c, dav_locks.c, dav_props.c (everywhere): Changed to
+ new response-status interface, and _class->klass change.
+
+Thu Dec 14 21:37:38 2000 Joe Orton <joe@light.plus.com>
+
+ * http_request.c (http_get_status): Add new response-status
+ interface.
+
+Thu Dec 14 21:30:25 2000 Joe Orton <joe@light.plus.com>
+
+ * http_basic.c (everywhere): Use new status interface.
+
+Thu Dec 14 21:25:03 2000 Joe Orton <joe@light.plus.com>
+
+ * http_private.h: Made http_status pointer in http_req a declared
+ object.
+
+ * http_request.h: Removed passing status pointer to
+ http_request_dispatch.
+
+ * http_request.c (everywhere): Removed passing extra http_status *
+ to auxiliaries, use req->status instead. Renamed '_class' to
+ 'klass' everywhere.
+
+Thu Dec 14 21:15:54 2000 Joe Orton <joe@light.plus.com>
+
+ * http_utils.h: Renamed '_class' member of http_status to 'klass'.
+ (http_parse_statusline): Change accordingly.
+
+Wed Dec 13 23:00:23 2000 Joe Orton <joe@light.plus.com>
+
+ * socket.c: Changes for pre-BONE BeOS (David Reid
+ <dreid@jetnet.co.uk>).
+
+Wed Dec 13 21:29:36 2000 Joe Orton <joe@light.plus.com>
+
+ * uri.c (ESCAPE): Explicitly cast the character to const unsigned
+ int. (uri_abspath_escape): Make 'pnt' a normal const char *.
+
+Wed Dec 13 21:17:31 2000 Joe Orton <joe@light.plus.com>
+
+ * http_request.c: Remove netinet/in.h include, add limits.h
+ include. (Peter Boos) (read_response_block): Make readlen a size_t
+ (David Reid).
+
+Wed Dec 13 21:08:08 2000 Joe Orton <joe@light.plus.com>
+
+ * ne_alloc.h [WIN32]: Include stdlib.h. (Peter Boos)
+
+Wed Dec 13 20:54:27 2000 Joe Orton <joe@light.plus.com>
+
+ Patches from Peter Boos and David Reid for Win32 and
+ BeOS changes respectively:
+
+ * socket.c: Add NEON_READ, NEON_WRITE, NEON_CLOSE macros to use
+ send/recv/closesocket for BeOS, send/recv/close for Win32,
+ write/read/close otherwise. Include WinSock2.h in Windows. Add
+ arpa/inet.h check. (sock_read, sock_write): Use the NEON_ macros.
+ (sock_connect, sock_close): Use NEON_CLOSE. (sock_init): Winsock
+ initialization. (sock_exit) Winsock cleanup. (sock_fullwrite):
+ Use size_t rather than ssize_t for 'sent'. (sock_connect,
+ sock_connect_u): Make 'port' parameter an unsigned short int.
+
+Wed Dec 13 20:42:18 2000 Joe Orton <joe@light.plus.com>
+
+ * http_basic.c (clength_hdr_handler): Use an off_t for len, to
+ avoid comparison with size_t.
+
+Wed Dec 13 20:38:59 2000 Joe Orton <joe@light.plus.com>
+
+ * hip_xml.c (char_data): Use an 'int' for wslen, avoid comparison
+ between size_t (which is signed) and int (which [is|might be?]
+ unsigned).
+
+Wed Dec 13 20:29:12 2000 Joe Orton <joe@light.plus.com>
+
+ * nsocket.h [WIN32]: Use Windows headers rather than Unixy ones.
+ (sock_exit): New function.
+
+Wed Dec 13 20:21:22 2000 Joe Orton <joe@light.plus.com>
+
+ * string_utils.c, string_utils.h, uri.h: Includes change (Peter
+ Boos).
+
+Wed Dec 13 20:20:09 2000 Joe Orton <joe@light.plus.com>
+
+ * http_auth.c (http_auth_response_body): Don't make
+ inline. Includes change. (both by Peter Boos).
+
+Wed Dec 13 20:18:38 2000 Joe Orton <joe@light.plus.com>
+
+ * uri.c (uri_unescape): Cast strtol return to (char). Includes
+ change as below (both by Peter Boos).
+
+Wed Dec 13 20:07:38 2000 Joe Orton <joe@light.plus.com>
+
+ * base64.c, dates.c, dates.h, dav_207.c, dav_207.h, dav_basic.h,
+ dav_locks.h, hip_xml.h, http_auth.h, http_basic.h, http_cookies.c,
+ http_redirect.c, http_redirect.h, http_request.h, http_utils.c,
+ md5.c, ne_alloc.c: Use #include "..." rather than #include <...>
+ for neon headers. (Peter Boos <PediB@colorfullife.com>).
+
+Thu Dec 7 21:45:02 2000 Joe Orton <joe@light.plus.com>
+
+ * socket.c (sock_read): Return zero immediately if a zero count
+ parameter is passed, following SUSv2 semantics.
+
+Thu Dec 7 21:41:36 2000 Joe Orton <joe@light.plus.com>
+
+ * nsocket.h (sock_readfile_blocked): Define an interface, allow
+ taking -1 as the length parameter. Only return SOCK_CLOSED if
+ length == -1 is NOT passed.
+
+Sun Nov 26 09:46:53 2000 Joe Orton <joe@light.plus.com>
+
+ * nsocket.h: Fix use of 'socket' in function prototypes.
+
+Sun Nov 19 00:29:48 2000 Joe Orton <joe@light.plus.com>
+
+ * nsocket.h: Increase read timeout to 120 seconds.
+
+Sun Nov 5 14:42:46 2000 Joe Orton <joe@light.plus.com>
+
+ * dav_locks.c: Fix element id's (fixes segfault when using locks).
+
+Thu Oct 26 22:28:17 2000 Joe Orton <joe@light.plus.com>
+
+ * socket.c (sock_peek): Return SOCK_CLOSED if recv() returns zero.
+
+Thu Oct 26 22:24:14 2000 Joe Orton <joe@light.plus.com>
+
+ * socket.c (sock_block): Return "got data" if SSL_pending
+ indicates data pending. Otherwise select on socket as normal.
+
+Thu Oct 26 22:15:14 2000 Joe Orton <joe@light.plus.com>
+
+ * socket.c (sock_readline, sock_peek): Check whether SSL
+ connection has been closed if SSL_peek returns 0 (thanks to Jeff
+ Costlow <j.costlow@f5.com>).
+
+Thu Oct 14 19:57:31 2000 Joe Orton <joe@light.plus.com>
+
+ * Makefile.incl: Fix spurius backslash at line 69 (thanks to
+ Dirk Bergstrom <dirk@juniper.net>).
+
+Sat Oct 14 19:51:44 2000 Joe Orton <joe@light.plus.com>
+
+ * dav_basic.c (copy_or_move): Use http_get_scheme rather than
+ hard-coding "http".
+
+2000-10-02 Joe Orton <joe@light.plus.com>
+
+ * http_request.c (http_get_scheme): New function.
+
+Tue Oct 10 19:56:42 2000 Joe Orton <joe@light.plus.com>
+
+ * neon_config.h: Bumped version to 0.7.5.
+
+Sat Oct 7 19:26:58 2000 Joe Orton <joe@light.plus.com>
+
+ * neon_config.h: Bumped version to 0.7.4.
+
+Sat Oct 7 19:19:37 2000 Joe Orton <joe@light.plus.com>
+
+ * http_auth.c (request_digest): Quote algorithm and qop parameters
+ in digest header.
+
+Sat Oct 7 19:15:29 2000 Joe Orton <joe@light.plus.com>
+
+ * socket.c (sock_connect_u): Don't leak the fd if connect fails
+ (David Sloat).
+
+Sat Sep 16 16:49:57 2000 Joe Orton <joe@light.plus.com>
+
+ * hip_xml.h: Add 'HIP_ELM_UNUSED', defining lowest element ID
+ which should be used.
+
+ * hip_xml.c, hip_xml.h (hip_xml_push_handler,
+ hip_xml_push_mixed_handler): Renamed from hip_xml_add_handler /
+ hip_xml_add_mixed_handler to reflect stack-like usage of handlers.
+ 'handlers' field of hip_xml_parser renamed to top_handler for same
+ reason (globally search'n'replaced).
+
+ * hip_xml.h: Documentation update.
+
+Thu Sep 14 22:37:33 2000 Joe Orton <joe@light.plus.com>
+
+ * http_auth.c (request_digest): Quote qop= value, fixes
+ IIS5 interop.
+
+Thu Sep 14 00:40:04 2000 Joe Orton <joe@light.plus.com>
+
+ * socket.c (sock_connect_u): If connect() fails, close the socket
+ before returning: thanks to David Sloat <d.sloat@f5.com>.
+
+Tue Sep 12 20:08:40 2000 Joe Orton <joe@light.plus.com>
+
+ * http_request.c (read_response_headers): Remove redundant
+ tolower().
+
+Tue Sep 12 00:41:39 2000 Joe Orton <joe@light.plus.com>
+
+ * neon_config.h: Bumped version to 0.7.3.
+
+Mon Sep 11 15:31:13 2000 Joe Orton <joe@light.plus.com>
+
+ * http_request.c, http_auth.c: Include snprintf.h if
+ HAVE_SNPRINTF_H is defined.
+
+Fri Sep 8 10:46:53 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_config.h: Bumped version to 0.7.2.
+
+Fri Sep 8 10:44:42 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * socket.c (sock_block): Return immediately if this is an SSL
+ socket.
+
+Thu Sep 7 00:31:12 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * hip_xml.h: Correct order of hip_xml_validate_cb arguments in
+ prototype (thanks to Greg Stein).
+
+Thu Sep 7 00:27:29 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_props.c (propfind): Don't destroy the handler after use.
+ (dav_propfind_destroy): New function.
+
+Thu Sep 7 00:08:45 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * Makefile.incl: Added targets for ne_alloc.o, string_utils.o,
+ uri.o, base64.o.
+
+Tue Aug 15 21:53:53 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_config.h: Bumped version to 0.7.1.
+
+Tue Aug 15 21:16:34 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (http_request_create): Only add authentication
+ response body callbacks if a supply-credentials callback has been
+ set for the session. (http_request_dispatch): Similarly for
+ response header callbacks.
+
+Mon Aug 14 09:28:38 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_config.h: Bumped version to 0.7.0.
+
+Mon Aug 14 09:23:54 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * string_utils.h (SBUFFER_CAST): New macro.
+
+Mon Aug 14 09:13:05 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_private.h: Use a hash table for storing response header
+ handlers. Added response header 'catchers', which are passed ALL
+ response headers.
+
+ * http_request.c (http_add_response_header_handler): Place the
+ handler in the correct hash bucket. (hdr_hash): New function.
+ (http_add_response_header_catcher): New function.
+ (http_request_destroy): Destroy the header catchers, and iterate
+ over the hash table to destroy the handlers.
+ (read_response_headers): Optimisation: hash and search for ':' in
+ a single loop. Remove another local variable. Iterate through
+ catchers too.
+
+Sun Aug 13 15:57:35 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_config.h: Bumped version to 0.6.1.
+
+Sun Aug 13 15:50:42 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (send_request): Only go through the loop at most
+ twice.
+
+Sun Aug 13 15:49:52 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_redirect.c (destroy): Don't free the redirect structure.
+
+Sat Aug 12 17:10:32 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_config.h: Bumped version to 0.6.0.
+
+Sat Aug 12 16:48:47 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (http_session_decide_proxy): New function.
+ (http_request_create): Call proxy "decider callback" to determine
+ whether to use the proxy server for a given request or not.
+
+Sat Aug 12 16:39:10 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * Makefile.incl: Updated for http_private.h and
+ http_redirect.[ch].
+
+Sat Aug 12 16:36:49 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c: Removed data structure definitions.
+
+ * http_private.h: New file, contains data structure definitions.
+ Interface NOT exported.
+
+Sat Aug 12 16:31:32 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_redirect.c (destroy): No return value.
+
+Sat Aug 12 16:04:02 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_redirect.[ch]: First cut at HTTP redirect handling.
+
+Sat Aug 12 11:05:13 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_config.h: Bumped version to 0.5.1.
+
+Sat Aug 12 02:04:15 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_locks.c (dav_lock_using_resource, dav_lock_using_parent):
+ Prevent segfault if locking is not in use.
+
+Fri Aug 11 17:19:06 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_config.h: Bumped version to 0.5.0.
+
+Fri Aug 11 16:31:23 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (read_message_header): Take a buffer for storing
+ continuation lines. (read_response_headers): No need to strip EOL
+ since read_message_header does this already. Use one less
+ variable.
+
+Fri Aug 4 22:12:04 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (send_request): Don't retry sending the request
+ more than once.
+
+Wed Aug 2 11:08:31 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * ne_alloc.[ch]: Renamed from xalloc.[ch].
+
+Wed Aug 2 02:15:32 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * socket.c (sock_transfer): Return SOCK_CLOSED, or set sock->error
+ appropriately on read failure.
+
+Tue Aug 1 13:04:27 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * socket.c, nsocket.h (sock_progress, sock_call_progress,
+ sock_transfer, sock_readfile_blocked): Use 'off_t' not 'size_t' as
+ file size type.
+
+Fri Jul 28 13:32:37 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_config.h: Bumped version to 0.4.2.
+
+Fri Jul 28 13:31:38 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (send_request): Fix sending request body after
+ getting 100-continue response.
+
+Fri Jul 28 11:26:47 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_config.h: Bumped version to 0.4.1.
+
+Fri Jul 28 10:32:34 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_config.h: Bumped version to 0.4.0.
+
+Fri Jul 28 10:28:21 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_basic.[ch] (http_post): New function, from Sander Alberink
+ <sander.alberink@cmg.nl>.
+
+Thu Jul 27 18:55:49 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_utils.c (neon_debug): No conditional compilation for
+ function body: compile it all regardless of whether debugging is
+ enabled or not, to allow applications to be debugged regardless of
+ whether debugging is compiled into the library or not.
+
+Thu Jul 27 16:59:26 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_basic.c (clength_hdr_handler): Cast off_t to long int for
+ printing.
+
+Tue Jul 25 18:14:15 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (read_message_header): Iterate over header
+ handler list before placing zero-terminator at ':': if a handler
+ has a NULL name field, pass it the entire header value.
+
+Tue Jul 25 18:00:49 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (http_get_request_headers): New function.
+
+Mon Jul 24 16:55:29 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_config.h: Bumped version to 0.3.9.
+
+Mon Jul 24 16:54:33 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_basic.h: Use 'off_t' in http_content_range.
+
+ * http_basic.c (http_get_range): Cast range values to (long int)
+ to prevent compiler warnings.
+
+Thu Jul 20 20:03:30 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.[ch], socket.c, http_basic.c: Include nsocket.h not
+ socket.h.
+
+Thu Jul 20 20:02:20 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_utils.c (version_string): Indicate which XML parser is
+ supported.
+
+Thu Jul 20 20:01:12 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * nsocket.h: Renamed from socket.h.
+
+Thu Jul 20 15:02:35 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_utils.c, socket.c, http_request.c: SSL_ENABLE renamaed to
+ ENABLE_SSL.
+
+Thu Jul 20 12:20:13 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * md5.c, http_auth.h: Include neon_md5.h.
+
+Thu Jul 20 12:19:23 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_md5.h: Renamed from md5.h.
+
+Wed Jul 19 22:33:46 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_basic.c (dav_simple_request): Don't leak ctype.value.
+
+Wed Jul 19 22:32:03 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_207.c (check_context): Accept unknown elements.
+
+Wed Jul 19 22:31:10 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_locks.c (dav_lock_iterate): Allow passing func as NULL.
+
+Wed Jul 19 22:26:13 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * socket.h (SOCKET_READ_TIMEOUT): Increase to 60.
+
+Wed Jul 19 22:25:51 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_locks.h: Include http_request.h.
+
+Mon Jul 17 11:41:16 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dates.c (asctime_parse, rfc1036_parse): Actually pass the string
+ to sscanf (thanks to lclint). (rfc1123_date): Check for gmtime()
+ returning NULL.
+
+Mon Jul 17 09:16:43 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_config.h: Bumped version to 0.3.1.
+
+Mon Jul 17 09:07:58 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_locks.c: Include limits.h: thanks to Paul D'Anna.
+
+Sun Jul 16 18:47:15 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_config.h: Bumped version to 0.3.0.
+
+Sun Jul 16 16:44:25 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_i18n.c (neon_i18n_init) [ENABLE_NLS && NEON_IS_LIBRARY]:
+ New compilation conditions.
+
+Sun Jul 16 16:41:12 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_i18n.c: New file.
+
+Sun Jul 16 16:15:02 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * string_utils.c (sbuffer_*): Change to assert postcondition
+ (buf->used == strlen(buf->data) + 1). (sbuffer_append): Fix
+ brokenness.
+
+Sun Jul 16 16:11:05 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * socket.c (sock_transfer): Increase sum length written correctly.
+
+Sun Jul 16 16:10:23 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (http_get_hook_private): New function.
+
+Sun Jul 16 16:07:11 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * hip_xml.c (find_handler): Call validate_cb for any handler which
+ recognizes the element. Allow return codes
+ HIP_XML_{VALID,INVALID,DECLINE} from validate_cb. If DECLINE is
+ returned, continue searching handlers until one returns
+ (IN)VALID. (start_element): Don't call validate_cb.
+
+ * hip_xml.c (start_element, end_element): In collect mode, don't
+ print namespace prefix if present.
+
+Sun Jul 16 15:30:19 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_locks.[ch]: New file, code mainly taken from cadaver and
+ adapted for neon HTTP request/response handling.
+
+Sun Jul 16 15:28:25 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_basic.c (copy_or_move, dav_move, dav_copy): Pass overwrite
+ as parameter.
+
+Sun Jul 16 15:26:24 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * uri.c (uri_compare): Fixed to only return equal if *shorter*
+ string has no trailing slash.
+
+Sat Jul 15 20:14:07 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_207.c (dav_207_get_current_response,
+ dav_207_get_current_propstat): New functions.
+
+ * dav_props.c (dav_propfind_get_current_resource): Implement using
+ dav_207_get_current_response.
+
+Sat Jul 15 17:36:37 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * xalloc.c (xcalloc): New function.
+
+Sat Jul 15 14:11:14 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_utils.[ch] and elsewhere: Replace 'class' field of
+ http_status with '_class' to be C++-safe. (patch from Tom
+ Bednarz).
+
+Thu Jul 6 18:48:52 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_basic.c (copy_or_move): Escape the destination URI.
+
+Thu Jul 6 18:45:51 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_props.c (end_response): Added description parameter.
+
+Thu Jul 6 18:43:14 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_207.[ch] (end_element): Fix handling of responsedescription.
+ Add "description" parameter to dav_207_end_response callback, and
+ pass the contents of responsedescription.
+
+ * dav_basic.c (handle_error, end_response, end_propstat): Pass
+ description and add to error string when present.
+
+Tue Jul 4 11:43:03 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_basic.c, dav_props.c, http_basic.c: Use
+ http_{add,print}_request_header rather than
+ http_get_request_header.
+
+Tue Jul 4 11:41:00 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.[ch] (http_add_request_header,
+ http_print_request_header): New functions.
+ (http_get_request_header): Removed function.
+
+Mon Jul 3 21:50:40 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c: Add basic support for TLS upgrade (RFC2817).
+ (http_set_request_secure_upgrade, http_set_accept_secure_upgrade):
+ New functions. (send_request): If upgrade is requested, and a 101
+ response is received, negotiate the TLS connection.
+ (add_fixed_headers): Add Upgrade header if necessary.
+
+Mon Jul 3 21:46:00 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (send_request): Don't go into an infinite loop.
+ (read_message_header): Simplyify checking for end-of-line.
+
+Tue Jun 13 00:29:42 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (http_session_proxy, http_session_server): Allow
+ calling >1 time per session, to switch servers. (send_request):
+ Only retry sending request once.
+
+Mon Jun 12 21:50:41 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (http_add_hooks): New function.
+
+Mon Jun 12 21:37:24 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_cookies.[ch]: Added basic cookies support.
+
+Mon Jun 12 21:33:33 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * socket.c (sock_create_ssl_context, sock_destroy_ssl_context,
+ sock_disable_tlsv1, sock_disable_sslv2, sock_disable_sslv3,
+ sock_make_secure): Added nssl_context handling.
+
+Mon Jun 12 21:29:52 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (http_request_dispatch, http_request_create,
+ http_request_destroy, http_set_request_body_buffer,
+ http_set_request_body_stream): Added hook support.
+
+Mon Jun 12 21:04:00 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (http_set_secure): Store an nssl_context.
+ (open_connection): Give the nssl_context.
+
+Sun Jun 11 16:37:52 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * sslcerts.c: Import of SSL support from mutt, relicensed under
+ the LGPL for use in neon by the author, Tommi Komulainen
+ <Tommi.Komulainen@iki.fi>.
+
+Sun Jun 11 11:30:16 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (set_sockerr): Updated to use sock_get_error.
+
+Sun Jun 11 11:29:29 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * uri.c (uri_parse): Allow scheme to be omitted.
+
+Fri Jun 9 20:39:24 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * socket.c (sock_get_error): New function. (sock_*): Set
+ sock->error and SOCK_ERROR on error.
+
+Mon May 29 16:32:46 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * uri.c (uri_abspath_escape): Allocate the exact amount of memory
+ needed.
+
+Mon May 29 15:53:33 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_basic.c (dav_simple_request): Correct invalid XML logic.
+
+Mon May 29 15:52:08 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * socket.c (create_sock, sock_accept, sock_get_fd): New
+ functions. (sock_connect_u): Use create_sock.
+
+Sun May 28 21:00:37 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_utils.c (neon_version_string): New function.
+
+Sun May 28 19:36:45 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * socket.c (sock_connect_u): Zero out allocated nsocket object.
+
+Thu May 25 01:27:04 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * *.h: Include other neon headers with <braces>.
+
+Thu May 25 01:02:12 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_props.c: Include stdlib.h for 'free'.
+
+Wed May 24 20:15:08 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (read_message_header): Return HTTP_RETRY if more
+ headers to read, HTTP_OK on end-of-headers.
+ (read_response_headers): Changed accordingly.
+
+Wed May 24 19:56:29 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (send_request_body): Return a SOCK_* code.
+ (send_request): Re-send request if socket has been closed (due to
+ persistent connection timeout).
+
+Wed May 24 19:00:01 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * hip_xml.c (find_element): Fix unknown element handling.
+
+Tue May 23 19:12:26 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_props.c (propfind): Destroy the request body sbuffer after
+ use.
+
+Tue May 23 15:43:42 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * socket.c (sock_make_secure) [SSL_ENABLE]: Conditionally compile
+ SSL code. [!SSL_ENABLE]: Return failure. (sock_close)
+ [SSL_ENABLE]: Conditionally compile SSL code.
+
+Tue May 23 15:37:53 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (http_session_create): Renamed from
+ http_session_init. (http_session_destroy): Renamed frmo
+ http_session_finish.
+
+Sun May 21 23:50:58 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (lookup_host): Use sock_name_lookup.
+
+Sun May 21 23:40:39 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (http_request_create): Allow passing NULL uri
+ (internal use only). (http_set_secure): New function.
+ (read_response_block, read_message_headers): Redone for new socket
+ API. (build_request): Moved http_auth_new_request calls here
+ (from http_request_dispatch). (send_request): Always call
+ open_connection before sending the request.
+ (read_message_header, read_response_headers): Looser check for
+ empty line. (normalize_response_length): Set response body length
+ to zero on 2xx class response whilst in CONNECT, if no other
+ response body length is given. (http_request_dispatch): Don't
+ close the connection on a HTTP/1.0 2xx class response after a
+ CONNECT request. (proxy_tunnel): New function.
+ (open_connection): Use an SSL connection where appropriate. Use
+ proxy_tunnel for tunnelling through a proxy.
+
+Sun May 21 01:35:40 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * src/socket.c: Added 'nsocket' ADT for handling sockets.
+ (sock_*): All changed to take 'nsocket *' argument rather than
+ integer file descriptor. Added 'sock_secure_details' to
+ sock_status enum. (sock_make_secure, sock_init): New function.
+ (sock_peek): Renamed from sock_recv. (send_file_*, recv_file_*):
+ Removed functions. (sock_name_lookup): Renamed from host_lookup.
+ (sock_service_lookup): Renamed from get_tcp_port. (sock_block,
+ sock_read, sock_fullwrite, sock_peek, sock_readline): Added SSL
+ support. (sock_transfer): Use sock_fullwrite and sock_read.
+
+Sun May 21 01:25:03 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (http_request_destroy): Free header handlers and
+ body readers.
+
+Sun May 21 01:24:30 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_props.h: Removed obsolte got_property callback type.
+
+Sun May 21 01:23:59 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_props.c (propfind): Free handler object after use.
+
+Sun May 21 01:23:12 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_207.c (dav_207_destroy): Don't try to free the 'response'
+ field.
+
+Sat May 20 21:45:32 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c: Changed 'te' enum of struct http_response to
+ 'is_chunked' boolean.
+
+Sun May 14 01:00:42 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_props.c (propfind): Return error on parse error.
+
+Sun May 14 00:40:50 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_config.h (NEON_VERSION): Bumped to 0.2.0.
+
+Sat May 13 23:31:28 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_defs.h (BEGIN_NEON_DECLS, END_NEON_DECLS): Added C++ safety
+ macros.
+
+ * *.h: Surround with C++ safety macros.
+
+Sat May 13 22:36:06 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * hip_xml.c (hip_xml_destroy): Free handlers.
+
+Sat May 13 21:12:14 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * hip_xml.c (hip_xml_valid): Reversed return value.
+
+Sat May 13 21:11:17 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_utils.c: Renamed http_debug_mask to neon_debug_mask,
+ similarly neon_debug_stream. (neon_debug_init): Renamed from
+ http_debug_init.
+
+Sat May 13 19:24:40 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_utils.c: Initialize http_debug_mask to zero.
+ (http_debug_init): New function.
+
+ * http_utils.h: Fixed #ifdef DEBUGGING. Only define relevant
+ DEBUG_* constants.
+
+Sat May 13 19:23:34 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_config.h: New file.
+
+ * http_request.c: Include neon_config.h for NEON_VERSION.
+
+Sat May 13 18:28:05 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_props.c (dav_propfind_create): Create a hip_xml_parser, a
+ 207 parser, register start+end response handlers with 207 layer.
+ (propfind): Fix allprop (Michael Sobolev).
+
+ * dav_basic.c (dav_simple_request): Create and destroy
+ hip_xml_parser and 207 parser appropriately.
+
+Sat May 13 18:24:49 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_207.c: Now takes an externally-declared hip_xml parser
+ pointer. (dav_207_create, dav_207_destroy): New functions.
+ (dav_207_init, dav_207_init_with_handler, dav_207_parse,
+ dav_207_error, dav_207_finish): Removed functions.
+
+Sat May 13 17:32:45 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * hip_xml.[ch]: Rewritten to use opaque hip_xml_parser pointer.
+ struct hip_xml_handler and struct hip_xml_state removed from
+ external interface. struct hip_xml_elm * passed to startelm_cb and
+ endelm_cb. (hip_xml_add_handler, hip_xml_valid, hip_xml_create,
+ hip_xml_destroy, hip_xml_set_error, hip_xml_get_error): New
+ functions. (hip_xml_init, hip_xml_destroy): Removed functions.
+
+Sat May 13 13:43:56 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon.h: Removed.
+
+Sat May 13 13:42:20 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * string_utils.h: Don't include config.h. (CONCAT*): Don't use
+ xmalloc, use malloc and abort manually.
+
+Sat May 13 13:32:46 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_utils.h, dates.h, http_basic.h: Don't include config.h
+
+Sat May 13 13:31:37 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * hip_xml.[ch], dav_207.c: Use HIP_ERR_SIZE for size of parser
+ error string.
+
+Sat May 13 13:30:40 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * Makefile.incl: Use obj_ext for object file extension.
+
+Thu May 11 18:21:53 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon.h: Bumped version to 0.1.1.
+
+Thu May 11 18:16:08 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_basic.c (get_to_fd): Fix short writes.
+
+Wed May 10 19:22:01 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon.h: Bumped version to 0.1.0.
+
+Wed May 10 17:46:48 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * uri.c (uri_parse, uri_free): New functions.
+
+Wed May 10 17:43:37 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_basic.c (get_to_fd, http_get): Set error appropriately if
+ fwrite() fails.
+
+Wed May 10 14:25:38 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_utils.c (http_debug): New function.
+
+Wed May 10 14:25:08 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_basic.c (get_callback): Call sock_call_progress.
+
+Wed May 10 14:24:20 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * socket.c (sock_call_progress): New function. (many places): Use
+ it.
+
+Wed May 10 14:22:48 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * uri.c (uri_has_trailing_slash): Moved from being inline.
+
+Tue May 9 23:34:25 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_props.c: Use handler as userdata for 207 callbacks, unified
+ handler and context structures. (start_prop, end_prop,
+ start_propelm, end_propelm): Removed functions.
+ (dav_propfind_get_current_resource): New function.
+
+Tue May 9 23:29:44 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * xalloc.[ch]: New files.
+
+Tue May 9 23:05:47 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_207.[ch]: Removed property and property element callbacks.
+
+Tue May 9 23:01:00 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_207.c: Use separate name/namespace for element names.
+ (dav_207_init_with_handler): New function. (end_element):
+ Unescape URI in href element.
+
+Tue May 9 19:54:07 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_props.c (dav_propfind_allprop, dav_propfind_named, propfind,
+ start_response, end_response, start_prop, end_prop, start_propelm,
+ end_propelm): New functions; PROPFIND support.
+
+Tue May 9 19:45:17 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (build_request): Renamed from make_request.
+
+Tue May 9 19:36:01 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * socket.[ch]: Added sock_block_reader.
+
+Tue May 9 15:52:56 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * uri.c (uri_childof): Return false when parent is the same length
+ as child.
+
+Sun May 7 15:07:49 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_207.c: Separated element namespace/names.
+
+Tue May 2 16:40:59 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * hip_xml.[ch]: Added HIP_XML_UTF8DECODE flag.
+
+Tue May 2 16:16:57 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * hip_xml.[ch]: Separate element name and namespace.
+
+Mon May 1 00:21:24 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_207.c (dav_accept_207): Moved function from dav_basic.c.
+
+ * dav_basic.c (dav_accept_207, dav_parse_xml_block): Removed
+ functions.
+
+Sun Apr 30 22:47:47 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_props.[ch]: Renamed dav_proppatch_item to
+ dav_proppatch_operation.
+
+Sun Apr 30 22:45:04 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * hip_xml.c (start_element): Clearer error message.
+
+Sun Apr 30 19:12:07 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_basic.c (http_content_type_handler, dav_hdr_handler): New
+ functions. (http_options): Handle DAV header.
+
+Sun Apr 30 18:08:53 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_props.c (dav_proppatch): New function.
+
+Sun Apr 30 18:05:55 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_basic.c (handle_error): New function. (end_response,
+ end_propstat): Use it. (dav_simple_request): Don't return the 207
+ error string if we get all 2xx class status elements.
+
+Sun Apr 30 16:56:41 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_basic.c (dav_add_depth_header): New function.
+
+Sun Apr 30 14:49:06 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_207.c (start_element): Unknown element is only a property if
+ the parent is DAV:propstat.
+
+Sun Apr 30 14:43:28 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_basic.c (end_response, end_propstat): Only write error line
+ if we have status information and the status is not a 424.
+
+Sun Apr 30 14:28:23 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_basic.h: Added DAV_DEPTH_*.
+
+Sun Apr 30 12:47:50 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_207.c (check_context): Allow (and ignore) unknown elements
+ anywhere other than as the root.
+
+Sun Apr 30 12:35:39 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * string_utils.h (ASC2HEX, HEX2ASC): New macros.
+
+Sun Apr 30 12:34:37 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_auth.c [STANDALONE]: Removed. (everywhere): Switch to using
+ md5_to_ascii rather than md5_hexify.
+
+Sun Apr 30 12:32:35 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (read_response_block): Fixed to return errors
+ properly and block length to parameter. (read_response_body):
+ Changed accordingly.
+
+Sun Apr 30 12:29:45 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * hip_xml.c (friendly_name): New function, was PRETTY_NAME macro.
+ (start_element, end_element): Fix COLLECT handling.
+ (hip_xml_parse): Only write parse error if the document has not
+ already been marked invalid.
+
+Sun Apr 30 12:28:36 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_basic.c (dav_simple_request): Rewritten for new 207
+ interface. (start_response, end_response, end_propstat): New
+ functions.
+
+Sun Apr 30 12:27:52 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_207.c (dav_207_error): Return the parser error.
+
+Sat Apr 29 14:46:48 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * socket.c (sock_register_progress, sock_register_notify): New
+ functions. (everywhere): Use progress + notify callbacks rather
+ than fe_*.
+
+Sat Apr 29 14:15:23 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * string_utils.c (md5_to_ascii, ascii_to_md5): New functions.
+
+Sat Apr 29 13:55:39 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * hip_xml.c (hip_xml_init): abort() on out-of-memory.
+
+Sat Apr 29 12:56:11 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon_i18n.h: New file.
+
+Sat Apr 29 12:55:24 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_207.[ch]: Re-implemented with sensible interface.
+
+Fri Apr 28 14:56:01 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_auth.c (http_auth_request_header): Renamed from
+ http_auth_request.
+
+ * http_request.c (make_request): As above.
+
+Thu Apr 13 11:52:14 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_basic.c (http_put): Switched URI and stream arguments.
+
+Thu Apr 13 09:51:21 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c: Added user_agent field to session structure.
+ (http_set_useragent): New function. (add_fixed_headers): Only set
+ user-agent if sess->user_agent is set.
+
+Thu Apr 13 09:49:32 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (lookup_host): New function, split from
+ set_hostinfo. (set_hostinfo): Doesn't perform DNS lookup.
+ (http_session_server): Don't do a DNS lookup if we have a proxy.
+
+Wed Apr 12 22:32:21 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (http_request_dispatch, http_request_create):
+ Store auth header values in local variables rather than request
+ structure. (http_request_create): Don't leak everything on error.
+ Handle http_auth_challenge return value.
+
+Wed Apr 12 22:30:06 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_basic.c (http_options): Pass server capabilites object,
+ parse Server header to detect Apache/1.3.6 and before, indicating
+ broken 100-continue support. (server_hdr_handler): New function.
+
+Mon Apr 10 17:42:07 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * socket.c: Use 'int' for return values.
+
+Mon Apr 10 17:41:40 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_auth.c (is_in_domain): Dummy implementation.
+
+Mon Apr 10 17:40:21 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c: Handle read() returning 0 when it shouldn't.
+ i18n'ized error messages.
+
+Mon Apr 10 14:45:09 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dates.[ch], md5.[ch], base64.[ch]: Imported date handling
+ utilities, MD5 checksum functions, and text->base64 converter.
+
+Mon Apr 10 14:44:08 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * Makefile.incl: Dependancies updated for socket.[ch].
+
+Mon Apr 10 14:43:36 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * dav_207.c: Replaced malloc() calls with xmalloc() calls.
+
+Mon Apr 10 14:42:35 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_auth.c, uri.c, string_utils.h: Replaced malloc() calls with
+ xmalloc() calls.
+
+Mon Apr 10 14:41:40 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * socket.[ch]: Imported socket handling utilities.
+
+Mon Apr 10 14:36:03 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * string_utils.h (CONCAT*): Use xmalloc.
+
+Mon Apr 10 13:52:17 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (set_sockerr): Added handling for socket errors.
+
+Sat Apr 8 13:49:07 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * string_utils.[ch]: Imported string utilites.
+
+Sat Apr 8 00:26:06 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (http_set_persist, http_set_expect100): New
+ functions.
+
+Sat Apr 8 00:25:37 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_basic.c (http_options): New function.
+
+Fri Apr 7 13:01:35 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * neon.h: New file.
+
+Fri Apr 7 12:59:40 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (normalize_response_length, read_response_body):
+ New functions. (http_add_response_body_reader): Take a callback
+ to determine whether the body reader wants to read the response
+ body.
+
+Fri Apr 7 11:46:41 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (http_set_server_auth, http_set_proxy_auth): New
+ functions. (give_creds): Use supplied callbacks for
+ authentication. (get_request_bodysize): Send Content-Length: 0 if
+ no entity-body is being sent with a request. (te_hdr_handler,
+ connection_hdr_handler): New functions. (make_request): Don't use
+ Expect: 100-continue if server is not HTTP/1.1 compliant.
+ (read_message_header): Only read until HTTP_MAXIMUM_HEADER_LENGTH
+ bytes of header have been read. (read_response_headers): No
+ hard-coded header handling. (http_request_create): Set
+ req->method_is_head here.
+
+Thu Apr 6 14:39:28 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * hip_xml.c [HIP_XML_DECODE_UTF8] (decode_utf8_double): New
+ function. (char_data) [HIP_XML_DECODE_UTF8]: Decode UTF-8.
+
+Tue Mar 28 13:54:51 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * Makefile.incl: Imported makefile fragment.
+
+Tue Mar 28 13:54:09 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.[ch] (http_get_error): New function.
+
+Thu Mar 23 18:48:42 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * hip_xml.[ch]: Imported generic XML parsing layer.
+
+ * dav_207.[ch]: Imported generic WebDAV 207 response handling.
+
+ * dav_basic.[ch]: Imported/implemented DAV response handling and
+ basic Class 1 namespace methods.
+
+Thu Mar 23 18:46:14 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.c (add_hooks, run_hooks, http_add_destroy_hook):
+ Adding hooks support. (add_fixed_headers): Send TE token in
+ Connection header. Only send Keep-Alive header & token to pre-1.1
+ origin servers (i.e., not proxies).
+
+Thu Mar 23 12:49:01 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_auth.[ch], uri.[ch]: Imported HTTP authentication and URI
+ handling modules.
+
+Thu Mar 23 12:47:05 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_utils.c: Imported HTTP utility functions.
+
+Thu Mar 23 12:44:38 2000 Joe Orton <joe@orton.demon.co.uk>
+
+ * http_request.[ch]: Implemented modular HTTP request handling.
+
+ * http_basic.[ch]: Implemented basic HTTP methods GET, PUT, and
+ PUT with If-Unmodified.
+