1Mon Jul  5 10:56:19 2004  Joe Orton  <joe@manyfish.co.uk>
2
3	* ne_compress.c (struct ne_decompress_s): Add acceptor field.
4	(gz_acceptor): New function.
5	(ne_decompress_reader): Fix to pass the user-supplied userdata
6	pointer to the user-supplied acceptor callback, via gz_acceptor.
7
8Mon Jul  5 10:52:40 2004  Joe Orton  <joe@manyfish.co.uk>
9
10	* ne_compress.c (do_inflate): Don't invoke the reader callback if
11	no bytes where produced by inflate().
12	(process_footer): Call the reader callback with size=0 to indicate
13	end-of-response for a good checksum match.
14
15Mon Jul  5 10:42:14 2004  Joe Orton  <joe@manyfish.co.uk>
16
17	* ne_compress.c (gz_destroy, gz_pre_send): New functions.
18	(ne_decompress_reader): Register pre-send and destroy hooks,
19	to initialize the compression context before each request attempt.
20	(Justin Erenkrantz).
21
22	* ne_private.h, ne_request.c (ne_kill_pre_send): New function.
23
24Sat Jul  3 14:33:56 2004  Joe Orton  <joe@manyfish.co.uk>
25
26	* ne_auth.c (auth_challenge): Fix to set got_qop in challenge
27	correctly (Hideaki Takahashi).
28
29Sun May  2 21:14:14 2004  Joe Orton  <joe@manyfish.co.uk>
30
31	Fix buffer overflow in RFC1036 date parser, CVE CAN-2004-0389.
32
33	* ne_dates.c (RFC1036_FORMAT): Specify maximum field with for day
34	name.
35	(ne_rfc1123_parse, ne_rfc1036_parse, ne_asctime_parse): Make
36	thread-safe; remove static buffers.
37
38Thu Mar 11 23:38:01 2004  Joe Orton  <joe@manyfish.co.uk>
39
40	* ne_openssl.c (provide_client_cert): Avoid malloc(0) when server
41	sends no CA names in CertificateRequest.
42	(ne_ssl_cert_write): Be paranoid and clear the OpenSSL error stack
43	on write failures.
44
45Sun May  2 16:59:39 2004  Joe Orton  <joe@manyfish.co.uk>
46
47	* ne_dates.c [RFC1123_TEST] (main): Remove embedded test cases.
48
49Fri Apr 16 11:44:34 2004  Joe Orton  <joe@manyfish.co.uk>
50
51	* Makefile.in (LIBS): Include NEON_LTLIBS.
52
53Wed Apr 14 10:39:53 2004  Joe Orton  <joe@manyfish.co.uk>
54
55	Fix format string vulnerabilities, CVE CAN-2004-0179:
56
57	* ne_207.c (ne_simple_request): Avoid format string
58	vulnerabilities.
59
60	* ne_xml.c (ne_xml_set_error): Likewise.
61
62	* ne_props.c (propfind): Likewise.
63
64	* ne_locks.c (ne_lock, ne_lock_refresh): Likewise.
65
66Wed Apr 14 10:33:46 2004  Joe Orton  <joe@manyfish.co.uk>
67
68	* ne_auth.c (ah_post_send): Avoid false positives from gcc
69	-Wformat-security.
70
71Tue Apr 13 20:51:41 2004  Joe Orton  <joe@manyfish.co.uk>
72
73	* ne_auth.c: Conditionally include gssapi_generic.h.
74
75Thu Apr  8 13:40:03 2004  Joe Orton  <joe@manyfish.co.uk>
76
77	* ne_props.h: Don't use an anonymous enum for the proppatch
78	operation type, as some C++ compilers don't like it.
79
80Sun Mar 28 02:59:58 2004  Joe Orton  <joe@manyfish.co.uk>
81
82	* ne_auth.c (get_cnonce): Only use RAND_pseudo_bytes() if the PRNG
83	is seeded.
84
85Fri Mar 26 12:16:15 2004  Joe Orton  <joe@manyfish.co.uk>
86
87	* ne_socket.c (init_ssl): Just initialize the SSL library; delay
88	seeding PRNG until really necessary (performance fix).
89	(seed_ssl_prng): Split from init_ssl.
90	(ne_sock_connect_ssl): Call seed_ssl_prng().
91	(ne_sock_init): Adjust since init_ssl() can't fail.
92
93Fri Mar 26 12:01:38 2004  Joe Orton  <joe@manyfish.co.uk>
94
95	* ne_utils.c: Include zlib.h before ne_*.h to fix issues
96	on platforms where zconf.h does "#define const".
97
98Fri Mar 26 11:55:06 2004  Joe Orton  <joe@manyfish.co.uk>
99
100	* ne_auth.c (get_gss_name, request_gssapi, gssapi_challenge,
101	auth_challenge): Implement the Negotiate auth scheme rather than
102	the obsolete GSS-Negotiate, and fix memory leaks.  Only accept
103	Negotiate challenges over SSL.
104
105Sun Feb 15 13:37:03 2004  Joe Orton  <joe@manyfish.co.uk>
106
107	* ne_ssl.h: Define that ne_ssl_readable_dname returns UTF-8
108	encoded strings.
109
110	* ne_openssl.c (ne_ssl_readable_dname): Convert dname strings to
111	UTF-8, or use "???".
112
113Sat Jan 24 16:49:30 2004  Joe Orton  <joe@manyfish.co.uk>
114
115	* ne_auth.c (basic_challenge): Cast first parameter to ne_base64
116	to unsigned char * to fix warnings with some compilers.
117
118Thu Nov 13 20:38:28 2003  Joe Orton  <joe@manyfish.co.uk>
119
120	* ne_request.c (ne_begin_request): Presume a 205 response has no
121	message-body too; RFC2616 compliance fix.
122
123Thu Nov 13 20:31:07 2003  Joe Orton  <joe@manyfish.co.uk>
124
125	* ne_auth.c (ah_post_send): Treat a 401 response to a CONNECT
126	request as a valid proxy auth challenge, to work around buggy
127	proxies.
128
129Wed Oct 22 22:19:19 2003  Joe Orton  <joe@manyfish.co.uk>
130
131	* ne_request.c (read_response_block): Treat an EOF without clean
132	SSL closure as a valid request body delimiter in any case.
133
134Wed Oct 22 21:44:48 2003  Joe Orton  <joe@manyfish.co.uk>
135
136	* ne_defs.h (ne_attribute): New macro.
137
138	* ne_request.h, ne_session.h, ne_utils.h: Use ne_attribute instead
139	of littering #ifdef __GNUC__ and __attribute__ everywhere.
140
141Tue Oct 21 20:03:47 2003  Joe Orton  <joe@manyfish.co.uk>
142
143	Fix various strict signedness bugs:
144
145	* ne_auth.c (auth_session): Make nonce_count argument unsigned.
146	(get_cnonce): Use unsigned data buffer.
147	(get_gss_name, gssapi_challenge): Use unsigned integers for status
148	variables.
149	(request_digest): Print nonce count as unsigned.
150	(verify_response): Make nonce_count unsigned.
151
152Tue Oct  7 20:52:06 2003  Joe Orton  <joe@manyfish.co.uk>
153
154	When using SSL via a proxy, don't leak server auth credentials to
155	the proxy, and vice versa.
156
157	* ne_auth.c (auth_session): Add context field.
158	(ah_create): Ignore challenges in a bad context.
159	(ah_pre_send, ah_destroy): Check that the request-private cookie
160	is not NULL.
161	(auth_register): Take an isproxy flag; set context field
162	appropriately in session structure.
163	(ne_set_server_auth, ne_set_proxy_auth): Adjust accordingly.
164
165Tue Oct  7 19:58:52 2003  Joe Orton  <joe@manyfish.co.uk>
166
167	* ne_openssl.c (ne_negotiate_ssl): If the returned cert chain was
168	NULL, try and create one from the peer certificate alone (fix for
169	use of SSLv2 connections).
170
171Mon Sep 29 21:57:40 2003  Joe Orton  <joe@manyfish.co.uk>
172
173	* ne_auth.c [WIN32]: Include windows.h to fix non-SSL build.
174
175Thu Sep 25 20:05:18 2003  Joe Orton  <joe@manyfish.co.uk>
176
177	* ne_xml.c (ne_xml_create): Specify an initial error string.
178
179Sun Sep 21 23:00:10 2003  Joe Orton  <joe@manyfish.co.uk>
180
181	* ne_cookies.c (set_cookie_hdl): Strip whitespace around cookie
182	name and value.
183
184Sun Sep 14 10:50:01 2003  Joe Orton  <joe@manyfish.co.uk>
185
186	* ne_socket.c (ne_addr_resolve): Use result of autoconf test for
187	working AI_ADDRCONFIG support.
188
189Sat Sep  6 12:05:00 2003  Joe Orton  <joe@manyfish.co.uk>
190
191	* ne_openssl.c (check_identity): Take an optional server address
192	argument; check identity against IPaddress extension too if given.
193	(check_certificate): Optionally pass server address to
194	check_identity.
195	(populate_cert): Adjust accordingly.
196
197Thu Sep  4 21:41:38 2003  Joe Orton  <joe@manyfish.co.uk>
198
199	* ne_socket.c (ne_sock_init): Succeed even if PRNG was not seeded.
200
201Thu Sep  4 21:33:34 2003  Joe Orton  <joe@manyfish.co.uk>
202
203	* ne_session.c (ne_set_useragent): Build and store the entire
204	User-Agent header field in sess->user_agent.
205
206	* ne_request.c (add_fixed_headers): Adjust accordingly; avoid
207	unnecessary calls to ne_buffer_*.
208
209Thu Sep  4 21:27:34 2003  Joe Orton  <joe@manyfish.co.uk>
210
211	* ne_socket.c: Include netinet/tcp.h.
212	(ne_sock_connect): Disable the Nagle algorithm; thanks to Jim
213	Whitehead and Teng Xu for the analysis.
214
215Thu Sep  4 11:24:04 2003  Joe Orton  <joe@manyfish.co.uk>
216
217	* ne_defs.h: Define ssize_t here for Win32.
218
219	* ne_socket.h: Don't define ssize_t here.
220
221Tue Sep  2 20:20:16 2003  Joe Orton  <joe@manyfish.co.uk>
222
223	* ne_auth.c (auth_challenge): Update to use ne_token not
224	split_string, patch by Tom Lee <i_am_gnomey@hotmail.com>.
225
226Wed Jul 30 21:54:38 2003  Joe Orton  <joe@manyfish.co.uk>
227
228	* ne_cookies.c (set_cookie_hdl): Fix NULL pointer dereference;
229	thanks to Markus Mueller <markus-m.mueller@ubs.com>.
230
231Fri Jul 25 11:05:52 2003  Joe Orton  <joe@manyfish.co.uk>
232
233	* ne_request.c (do_connect): On failure to connect, set error
234	string and call ne_sock_close directly rather than using
235	aborted(); fix leak of socket structure.
236
237Wed Jul 23 23:20:42 2003  Joe Orton  <joe@manyfish.co.uk>
238
239	Fix SEGV if inflateInit2 fails with Z_MEM_ERROR etc.
240
241	* ne_compress.c (set_zlib_error): New function.
242	(do_inflate, gz_reader): Use it.
243
244Wed Jul 23 22:50:50 2003  Joe Orton  <joe@manyfish.co.uk>
245
246	Add support for GSS-Negotiate; patch from Risko Gergely and Burjan
247	Gabor:
248
249	* ne_auth.c [HAVE_GSSAPI]: Include gssapi.h.
250	(auth_scheme): Add auth_scheme_gssapi.
251	(auth_session): Add gssapi_token.
252	(clean_session): Free gssapi_token.
253	(request_gssapi, get_gss_name, gssapi_challenge): New functions.
254	(tokenize): Handle challenge with single token.
255	(auth_challenge): Accept and process a GSS-Negotiate challenge.
256	(ah_pre_send): Send GSS-Negotiate handshake.
257
258Wed Jul 23 22:46:28 2003  Joe Orton  <joe@manyfish.co.uk>
259
260	* ne_207.c (ne_207_set_response_handlers,
261	ne_207_set_propstat_handlers): Fix to match declarations (thanks
262	to Diego T�rtara).
263
264Fri Jun 27 20:30:45 2003  Joe Orton  <joe@manyfish.co.uk>
265
266	* ne_openssl.c [OPENSSL_VERSION_NUMBER < 0x0090700fL]:
267	Fix build against OpenSSL < 0.9.7.
268
269Sun Jun 22 23:07:45 2003  Joe Orton  <joe@manyfish.co.uk>
270
271	* ne_session.c (ne_session_destroy): Replace unnecessary use of
272	NE_FREE with ne_free.
273	(set_hostinfo): Don't free hostport/hostinfo here.
274	(ne_session_proxy): Free existing proxy hostname here if
275	necessary.
276
277Sat Jun 21 12:58:25 2003  Joe Orton  <joe@manyfish.co.uk>
278
279	* ne_request.c (ne_begin_request): Set or clear is_http11 flag
280	for each request.
281
282Wed Jun 18 20:54:44 2003  Joe Orton  <joe@manyfish.co.uk>
283
284	* ne_socket.c: Add AI_ADDRCONFIG support;
285	[USE_CHECK_IPV6]: Define only if __linux__.
286	(init_ipv6) [USE_CHECK_IPV6]: New conditional.
287	(ne_addr_resolve) [USE_ADDRCONFIG]: Use AI_ADDRCONFIG.
288
289Wed Jun 18 20:03:13 2003  Joe Orton  <joe@manyfish.co.uk>
290
291	* ne_socket.c (ne_sock_create): New function (renamed from
292	create_sock).
293	(ne_sock_connect): Take an ne_socket *, return int.
294	(ne_sock_accept): Likewise.
295	(ne_sock_close): Only call ne_close if fd is non-negative.
296
297	* ne_request.c (aborted): Handle NE_SOCK_* errors specially.
298	(do_connect): Adapt for ne_sock_create/connect interface.  Set
299	sess->connected here on success.
300	(open_connection): Don't set sess->connected here.
301
302Sun Jun 15 12:14:22 2003  Joe Orton  <joe@manyfish.co.uk>
303
304	* ne_ssl.h (ne_ssl_cert_digest): Pass digest as a pointer rather
305	than an array.
306
307Sun Jun 15 11:00:09 2003  Joe Orton  <joe@manyfish.co.uk>
308
309	* ne_stubssl.c (ne_ssl_cert_cmp): Add stub.
310
311Wed May 28 21:37:27 2003  Joe Orton  <joe@manyfish.co.uk>
312
313	* ne_openssl.c (ne_ssl_context_create): Enable workarounds in
314	OpenSSL for better interop with buggy SSL servers.
315
316Fri May 23 23:13:30 2003  Joe Orton  <joe@manyfish.co.uk>
317
318	* ne_stubssl.c (ne_ssl_set_clicert): Add stub.
319
320Sat May 10 17:05:26 2003  Joe Orton  <joe@manyfish.co.uk>
321
322	* ne_xml.c: Rename struct ne_xml_handler to struct handler.
323
324Thu May  8 20:55:46 2003  Joe Orton  <joe@manyfish.co.uk>
325
326	* ne_openssl.c (ne_ssl_clicert_read): Pass "b" to fopen.
327
328Tue May  6 22:08:08 2003  Joe Orton  <joe@manyfish.co.uk>
329
330	* ne_openssl.c (check_certificate): Re-order verify failure
331	handling to allow caller to set a custom session error string.
332
333Tue May  6 20:21:27 2003  Joe Orton  <joe@manyfish.co.uk>
334
335	* ne_md5.c (md5_stream): Restore.
336
337Sat Apr 26 19:21:03 2003  Joe Orton  <joe@manyfish.co.uk>
338
339	* ne_request.c (te_hdr_handler): Treat presence of any T-E
340	response header as implying the response is chunked, regardless of
341	value.
342
343Sat Apr 26 18:11:24 2003  Joe Orton  <joe@manyfish.co.uk>
344
345	* ne_xml.c: Rename struct ne_xml_nspace to struct namespace.
346
347Wed Apr 23 22:19:29 2003  Joe Orton  <joe@manyfish.co.uk>
348
349	* ne_openssl.c (ne_ssl_cert_export): Don't bother checking for
350	i2d_X509() failure; no OpenSSL code ever checks, so everyone's
351	doomed if it really can fail.
352
353Wed Apr 23 22:01:23 2003  Joe Orton  <joe@manyfish.co.uk>
354
355	* ne_openssl.c (ne_ssl_cert_import, ne_ssl_cert_export,
356	ne_ssl_cert_write): Clear OpenSSL error stack on errors.
357
358Wed Apr 23 18:23:53 2003  Joe Orton  <joe@manyfish.co.uk>
359
360	* ne_stubssl.c (ne_ssl_cert_write, ne_ssl_cert_import,
361	ne_ssl_cert_export): Add stubs.
362
363Wed Apr 23 14:05:32 2003  Joe Orton  <joe@manyfish.co.uk>
364
365	* ne_openssl.c (ne_ssl_cert_write): New function.
366
367Tue Apr 22 23:21:22 2003  Joe Orton  <joe@manyfish.co.uk>
368
369	* ne_string.c (ne_unbase64): Optimise out some redundant branches.
370
371Tue Apr 22 20:24:44 2003  Joe Orton  <joe@manyfish.co.uk>
372
373	* ne_openssl.c (ne_ssl_cert_export, ne_ssl_cert_import,
374	ne_ssl_cert_cmp): New functions.
375
376Tue Apr 22 18:31:55 2003  Joe Orton  <joe@manyfish.co.uk>
377
378	* ne_string.c (ne_unbase64): New function.
379
380Tue Apr 22 15:53:41 2003  Joe Orton  <joe@manyfish.co.uk>
381
382	* ne_string.c (ne_base64): Fix encoding binary data; take unsigned
383	argument.
384
385Tue Apr 22 13:07:48 2003  Joe Orton  <joe@manyfish.co.uk>
386
387	* ne_stubssl.c (ne_ssl_cert_validity): Add stub.
388
389Tue Apr 22 09:22:26 2003  Joe Orton  <joe@manyfish.co.uk>
390
391	* ne_openssl.c (ne_ssl_cert_validity): New function.
392	(asn1time_to_string): Format into a fixed-size buffer.
393
394Tue Apr 22 08:38:30 2003  Joe Orton  <joe@manyfish.co.uk>
395
396	* ne_locks.c (ne_lock_discover, ne_lock): Don't leak the cdata
397	buffer.
398
399	* ne_props.c (ne_propfind_destroy): Don't leak the value buffer.
400
401Mon Apr 21 23:52:25 2003  Joe Orton  <joe@manyfish.co.uk>
402
403	* ne_xml.c (ne_xml_destroy): Free root element.
404
405Mon Apr 21 23:46:17 2003  Joe Orton  <joe@manyfish.co.uk>
406
407	* ne_openssl.c (dup_client_cert): Set decrypted state; dup the
408	friendly name.
409	(ne_ssl_clicert_free): Free friendly name.
410
411Mon Apr 21 19:44:55 2003  Joe Orton  <joe@manyfish.co.uk>
412
413	* ne_md5.h (ne_md5_buffer, ne_md5_stream): Remove unused
414	functions.
415
416Mon Apr 21 18:17:14 2003  Joe Orton  <joe@manyfish.co.uk>
417
418	* ne_locks.c, ne_207.c: s/NE_ELM_/ELM_/ since no element ids are
419	exported.
420
421Mon Apr 21 16:38:14 2003  Joe Orton  <joe@manyfish.co.uk>
422
423	Redesign the XML interface: have startelm callback map {nspace,
424	name} onto a state integer or decline.  Remove "valid"/"invalid";
425	don't abort the parse if no handler accepts an element.  Push
426	cdata accumulation down into the caller; drop collect mode,
427	stripws mode.
428
429	* ne_xml.h (ne_xml_elmid, struct ne_xml_elm): Removed.
430	(ne_xml_startelm_cb): Return a state/acceptance integer, take a
431	state integer, nspace, name and atts.
432	(ne_xml_endelm_cb, ne_xml_cdata_cb): Take a state integer.
433	(ne_xml_push_mixed_handler): Removed.
434	(ne_xml_push_handler): Removed element list argument.
435	(struct ne_xml_idmap, ne_xml_mapid): New interface.
436
437	* ne_xml.c (struct element): Replaces ne_xml_state.  Add name,
438	nspace, state fields.
439	(friendly_name, find_handler, parse_element,
440	ne_xml_push_mixed_handler, push_handler): Removed functions.
441	(declare_nspaces, expand_qname): Factored out from find_handler
442	and parse_element.
443	(start_element): Use expand_qname, declare_nspaces.  Find
444	appropriate handler here.  Guarantee not to pass a NULL atts array
445	to the start-element callback.  Drop collect mode.
446	(end_element): Drop collect mode
447	(ne_xml_push_handler): Fold push_handler back in.
448	(ne_xml_mapid): New function.
449
450	* ne_207.h (NE_ELM_*): Don't export element id.
451	(NE_207_STATE_PROP, NE_207_STATE_TOP): Export state integers.
452
453	* ne_207.c (struct ne_207_parser_s): Add cdata field.
454	(map207): Replace element list with idmap array.
455	(can_handle): New function, replacing check_context logic.
456	(start_element): Determine new state integer; only accept the
457	element in valid states.  Clear cdata.
458	(end_element): Use state rather than element id.  Do nothing for
459	end of 'response' element if element is incomplete.
460	(ne_207_create): Create cdata buffer.
461	(ne_207_destroy): Destroy cdata buffer.
462	(ne_207_ignore_unknown): Removed function.
463	(ne_simple_request): Don't call ne_207_ignore_unknown.
464
465	* ne_props.h (NE_PROPS_STATE_TOP): Define state.
466
467	* ne_props.c (struct ne_propfind_handler_s): Add value and depth
468	fields.
469	(ELM_flatprop): Define state.
470	(flat_elms): Removed array.
471	(chardata): Append to value field when in ELM_flatprop state.
472	(startelm): Decline everything other than elements within the
473	'prop' state.  Collect flatprop contents.
474	(endelm): Collect flatprop contents.
475
476	* ne_locks.c (struct discover_ctx, struct lock_ctx): Store cdata.
477	(element_map): Replace element list with idmap array.
478	(can_accept): Replaces check_context callback.
479	(ld_startelm, lk_cdata, ld_cdata): New functions.
480
481Mon Apr 14 00:04:20 2003  Joe Orton  <joe@manyfish.co.uk>
482
483	* ne_207.h (ne_207_start_response, ne_207_end_response,
484	ne_207_start_propstat, ne_207_end_propstat): Use ANSI-style
485	function pointers in typedefs.
486
487	* ne_207.c (struct ne_207_parser_s): Updated accordingly.
488
489Mon Apr 14 00:02:10 2003  Joe Orton  <joe@manyfish.co.uk>
490
491	* ne_request.c (read_response_block): Better error messages for
492	invalid chunks, don't use strncmp for a two-character comparison.
493
494Mon Apr  7 22:26:50 2003  Joe Orton  <joe@manyfish.co.uk>
495
496	* ne_stubssl.c (ne_ssl_cert_identity): New function.
497
498Mon Apr  7 22:16:16 2003  Joe Orton  <joe@manyfish.co.uk>
499
500	* ne_openssl.c (struct ne_ssl_certificate_s): Add identity field.
501	(check_identity): Add optional identity argument.
502	(populate_cert): Retrieve cert identity using check_identity.
503	(check_certificate): Pass extra NULL to check_identity.
504	(ne_ssl_cert_identity): New function.
505	(ne_ssl_cert_free): Free the identity field.
506
507Mon Apr  7 21:29:54 2003  Joe Orton  <joe@manyfish.co.uk>
508
509	* ne_openssl.c (check_identity): Take a string hostname rather
510	than a session object.
511	(check_certificate): Adjust accordingly.
512
513Sun Apr  6 21:26:05 2003  Joe Orton  <joe@manyfish.co.uk>
514
515	* ne_string.h (NE_HEX2ASC): Cast result to char to avoid warnings
516	with some compilers.
517
518Sun Apr  6 20:11:42 2003  Joe Orton  <joe@manyfish.co.uk>
519
520	* ne_openssl.c (ne_ssl_readable_dname): Include commonName or
521	emailAddress in returned string if either is the only attribute.
522
523Sun Mar 30 10:54:20 2003  Joe Orton  <joe@manyfish.co.uk>
524
525	Split decryption of client certs into two steps
526
527	* ne_openssl.c (ne_ssl_clicert_encrypted, ne_ssl_clicert_decrypt):
528	New functions.
529	(ne_ssl_client_cert_s): Add p12 and decrypted fields.
530	(find_friendly_name): New function.
531	(get_friendly_name): Removed function.
532	(ne_ssl_clicert_read): Drop password callback; on decrypt failure,
533	extract friendly name and set decrypted state of clicert.
534
535Sun Mar 30 10:54:01 2003  Joe Orton  <joe@manyfish.co.uk>
536
537	* ne_stubssl.c (ne_ssl_clicert_encrypted, ne_ssl_clicert_decrypt):
538	New stubs.
539	(ne_ssl_clicert_read): Adjusted for API change.
540
541Sat Mar 29 14:23:37 2003  Joe Orton  <joe@manyfish.co.uk>
542
543	* ne_openssl.c (ne_ssl_dname_cmp): New function.
544
545	* ne_stubssl.c (ne_ssl_dname_cmp): New function.
546
547Sat Mar 29 13:52:47 2003  Joe Orton  <joe@manyfish.co.uk>
548
549	* ne_openssl.c (struct ne_ssl_client_cert_s): Add 'friendly_name'
550	field.
551	(get_friendly_name, ne_ssl_clicert_name): New functions.
552	(ne_ssl_clicert_read): Store the cert's friendly name.
553
554	* ne_stubssl.c (ne_ssl_clicert_name): New function.
555
556Sat Mar 29 13:16:14 2003  Joe Orton  <joe@manyfish.co.uk>
557
558	* ne_openssl.c (ne_ssl_clicert_owner): New function.
559
560Fri Mar 28 22:12:57 2003  Joe Orton  <joe@manyfish.co.uk>
561
562	* ne_stubssl.c (ne_ssl_cert_digest): New function.
563
564	* ne_openssl.c (ne_ssl_cert_digest): New function.
565
566Wed Mar 26 20:41:57 2003  Joe Orton  <joe@manyfish.co.uk>
567
568	* ne_session.c (ne_ssl_trust_cert) [NEON_SSL]: Only build when SSL
569	support is present.
570
571Wed Mar 26 20:01:00 2003  Joe Orton  <joe@manyfish.co.uk>
572
573	Begin abstraction of SSL layer to better isolate
574	SSL-library-specific code, and to improve certificate handling
575	interface.
576
577	Drop support for PEM-encoded client certificates.
578
579	* ne_session.h (ne_ssl_trust_cert): Replaces ne_ssl_load_ca, in
580	conjunction with ne_ssl_load_cert.
581	(ne_ssl_trust_default_ca): Replaces ne_ssl_load_default_ca.
582	(ne_ssl_keypw_prompt): Removed function, no longer needed.
583	(ne_ssl_set_clicert): Replaces ne_ssl_load_pkcs12, in conjunction
584	with ne_ssl_clicert_read.
585	(ne_ssl_provide_clicert): Replaces ne_ssl_provide_ccert, callback
586	type changed.
587
588	* ne_openssl.c: New file; much code moved from ne_session.c.
589
590	* ne_privssl.h: New file, private interface between ne_socket.c
591	and ne_openssl.c.
592
593	* ne_ssl.h: New file.
594
595	* ne_private.h (struct ne_session_s): Store pointers to
596	ne_ssl_client_cert etc opaque objects, not OpenSSL structures.
597
598	* ne_session.c: Most of ne_ssl_* moved to ne_openssl.c.
599	(ne_session_create, ne_session_destroy): Use ne_ssl_cert_* etc to
600	manage cert objects.
601
602	* ne_socket.c (struct ne_socket_s): Replace SSL *, SSL_CTX *
603	pointers with an ne_ssl_socket * pointer.
604	(readable_ossl, error_ossl, read_ossl, write_ossl, ne_sock_close):
605	Compensate for above change.
606	(ne_sock_use_ssl): Removed function.
607	(ne_sock_switch_ssl): Pass in SSL * as void for time being.
608	(ne_sock_connect_ssl): Renamed and cleaned up version of
609	ne_sock_use_ssl_os.
610	(ne_sock_sslsock): New function.
611
612	* Makefile.in: Add deps for ne_openssl.c.
613
614Sun Mar 23 13:02:58 2003  Joe Orton  <joe@manyfish.co.uk>
615
616	* ne_session.c (ne_set_useragent): Use ne_malloc.
617
618Sat Mar 22 21:06:45 2003  Joe Orton  <joe@manyfish.co.uk>
619
620     * ne_socket.c (raw_connect): Fill in sin6_family or sin_family
621     since AIX 4.3 fails to do so.
622
623Wed Mar 19 20:44:11 2003  Joe Orton  <joe@manyfish.co.uk>
624
625	* ne_session.c [NEON_SSL] (free_client_cert): Build conditional on
626	NEON_SSL.
627
628Mon Mar 17 20:33:32 2003  Joe Orton  <joe@manyfish.co.uk>
629
630	* ne_socket.c: Include netdb.h conditional on HAVE_NETDB_H. (fix
631	build for older versions of CygWin).
632
633Sun Mar 16 23:30:20 2003  Joe Orton  <joe@manyfish.co.uk>
634
635	* ne_session.c (check_identity): Fix leak of subject alt. name
636	structures.
637
638Sun Mar 16 19:21:22 2003  Joe Orton  <joe@manyfish.co.uk>
639
640	* ne_session.c (free_client_cert): New function.
641	(ne_session_destroy, ne_ssl_load_pem, ne_ssl_load_pkcs12): Call
642	it; prevent memory leak if ne_ssl_load_{pem,pkcs12} are called >1
643	per session.
644
645Sun Mar 16 18:00:34 2003  Joe Orton  <joe@manyfish.co.uk>
646
647	* ne_session.c (provide_client_cert): Free peer certificate after
648	use.
649	(ne_session_destroy): Free client cert and key if present.
650
651Sun Mar 16 14:23:05 2003  Joe Orton  <joe@manyfish.co.uk>
652
653	* ne_xml.c [HAVE_EXPAT]: Include xmlparse.h for bundled expat
654	build.
655
656	* ne_utils.c: Only include expat.h if HAVE_XMLPARSE_H is not
657	defined.
658
659Wed Mar 12 15:04:13 2003  Joe Orton  <joe@manyfish.co.uk>
660
661	* ne_redirect.c (struct redirect): Add 'valid' field.
662	(post_send): Set and clear 'valid' to keep track of whether stored
663	URI is valid.
664	(ne_redirect_location): Return NULL if stored URI is not valid.
665
666Wed Mar 12 14:52:49 2003  Joe Orton  <joe@manyfish.co.uk>
667
668	* ne_uri.c (ne_uri_free): Zero-initialize structure after
669	free'ing.
670
671Tue Mar 11 22:01:11 2003  Joe Orton  <joe@manyfish.co.uk>
672
673	* ne_redirect.c (ne_redirect_location): Return NULL if no redirect
674	session is registered, rather than SEGV; Ralf Mattes
675	<rm@fabula.de>.
676
677Sun Mar  9 16:33:24 2003  Joe Orton  <joe@manyfish.co.uk>
678
679	Fix a memory leak if an XML parse error occurs during a PROPFIND
680	response:
681
682	* ne_props.c (ne_propfind_current_private): Return NULL if no
683	propset is being processed.
684	(free_propset): Free propset href here.
685	(end_response): Don't free propset href here.  Set current field
686	of handler to NULL after free'ing propset.
687	(ne_propfind_destroy): Free current propset if one was being
688	processed.
689
690Sun Mar  9 11:53:58 2003  Joe Orton  <joe@manyfish.co.uk>
691
692	* ne_207.c (ne_207_destroy): Fix possible leak of reason_phrase
693	string.
694
695Sun Mar  9 11:01:15 2003  Joe Orton  <joe@manyfish.co.uk>
696
697	* ne_utils.c (ne_parse_statusline): Use ne_strclean.
698
699	* ne_session.c (ne_get_error): Use ne_strclean.
700
701Sun Mar  9 10:53:52 2003  Joe Orton  <joe@manyfish.co.uk>
702
703	* ne_xml.c: Remove broken "UTF-8 decoding" support used for libxml
704	1.x.
705
706Sun Mar  9 09:55:26 2003  Joe Orton  <joe@manyfish.co.uk>
707
708	* ne_xml.c: Drop support for expat < 1.95.0 and libxml 1.x.
709
710	* ne_utils.c (version_string): Include expat version string.
711
712Sun Mar  9 09:54:00 2003  Joe Orton  <joe@manyfish.co.uk>
713
714	* ne_socket.c: Don't declare h_errno on Win32 either.
715
716Sun Mar  9 08:49:40 2003  Joe Orton  <joe@manyfish.co.uk>
717
718	* ne_string.c (do_concat) [HAVE_STPCPY]: Use stpcpy rather than
719	strlen/memcpy, when available.
720
721Mon Mar  3 22:17:04 2003  Joe Orton  <joe@manyfish.co.uk>
722
723	* ne_socket.c [!USE_GETADDRINFO && !HAVE_DECL_H_ERRNO): Declare
724	h_errno (fix build on SCO OpenServer 5.0).
725
726Sat Mar  1 21:22:19 2003  Joe Orton  <joe@manyfish.co.uk>
727
728	* ne_redirect.c (free_redirect): Fix once-per-session memory leak.
729
730Sat Mar  1 20:23:47 2003  Joe Orton  <joe@manyfish.co.uk>
731
732	Add implemention of simple memory leak tracking, for testing
733	purposes.
734
735	* ne_alloc.c [NEON_MEMLEAK] (tracking_malloc, ne_free_ml,
736	ne_malloc_ml, ne_calloc_ml, ne_realloc_ml, ne_strdup_ml,
737	ne_strndup_ml, ne_memleak_dump): New functions.
738
739	* memleak.h: New header.
740
741Sat Mar  1 13:44:26 2003  Joe Orton  <joe@manyfish.co.uk>
742
743	First step towards automated memory leak tests.
744
745	* ne_alloc.c (ne_free): New function.
746
747	* All files: replace use of free() with ne_free().
748
749Sat Mar  1 09:48:39 2003  Joe Orton  <joe@manyfish.co.uk>
750
751	* ne_uri.c (ne_path_unescape): Fix memory leak on invalid URI.
752
753Sat Mar  1 08:03:18 2003  Joe Orton  <joe@manyfish.co.uk>
754
755	* ne_string.c (ne_strclean): New function.
756
757Wed Feb 26 21:45:12 2003  Joe Orton  <joe@manyfish.co.uk>
758
759	* ne_request.c (ne_begin_request, proxy_tunnel, open_connection)
760	[NEON_SSL] Don't build CONNECT tunnel support code if SSL is not
761	supported.
762
763Wed Feb 26 21:44:18 2003  Joe Orton  <joe@manyfish.co.uk>
764
765	* ne_utils.c (ne_debug_init): Allow ne_debug_init(NULL, 0) to turn
766	off debugging.  Fix to produce debug output if the any of the
767	specified "channels" are active, not all.  (also fixing
768	NE_DBG_FLUSH support).
769
770Tue Feb 25 23:12:31 2003  Joe Orton  <joe@manyfish.co.uk>
771
772	* ne_compress.c (process_footer): Mention number of extra bytes in
773	error message for oversized footer.
774
775Sun Feb 23 21:19:20 2003  Joe Orton  <joe@manyfish.co.uk>
776
777	* ne_auth.c (verify_response): Fix to parse nonce count as hex
778	string rather than decimal; fix verification of >9 responses.
779
780Thu Feb 13 20:35:45 2003  Joe Orton  <joe@manyfish.co.uk>
781
782	* ne_session.c (ne_set_useragent): Fix to append "neon/x.y.z" to
783	application-supplied token rather prepend.
784
785Thu Feb 13 09:06:22 2003  Joe Orton  <joe@manyfish.co.uk>
786
787	* ne_request.c (open_connection): Fix for CONNECT tunnelling
788	(regression since 0.23.x), thanks to Nathan Hand
789	<Nathan.Hand@defence.gov.au>.
790
791Mon Feb  3 22:10:54 2003  Joe Orton  <joe@manyfish.co.uk>
792
793	Implement Daniel Stenberg's trick to avoid the slow AF_UNSPEC
794	lookups on Linux:
795
796	* ne_socket.c (init_ipv6, ipv6_disabled): New function and global.
797	(ne_sock_init): Call init_ipv6.
798	(ne_addr_resolve) [USE_GETADDRINFO]: Pass AF_INET in hints if
799	ipv6_disabled is set.
800
801Mon Feb  3 20:55:47 2003  Joe Orton  <joe@manyfish.co.uk>
802
803	* ne_socket.c [__hpux && USE_GETADDRINFO]: Undefine
804	USE_GETADDRINFO to work around broken implementation in HP-UX
805	11.11.
806
807Mon Jan 27 21:39:31 2003  Joe Orton  <joe@manyfish.co.uk>
808
809	* ne_socket.c (write_raw): Fix for handling EINTR during write(),
810	from Sergey N Ushakov.
811
812Thu Jan 16 21:59:03 2003  Joe Orton  <joe@manyfish.co.uk>
813
814	Allow _init after _finish to succeed: Sergey N Ushakov.
815	* ne_socket.c (init_result): New global variable.
816	(ne_sock_init): Use init_result global rather than result.
817	(ne_sock_finish): Clear init_result.
818
819Fri Dec 27 17:03:17 2002  Joe Orton  <joe@manyfish.co.uk>
820
821	* ne_request.c (build_request): Remove redundant call to
822	ne_buffer_clear.
823
824Fri Dec 27 14:38:08 2002  Joe Orton  <joe@manyfish.co.uk>
825
826	* ne_request.c (ne_request_create): strdup the method string.
827	(ne_request_destroy): free the method.
828
829Mon Dec 23 17:04:32 2002  Joe Orton  <joe@manyfish.co.uk>
830
831	* ne_socket.c (ne_write, ne_read, ne_close, ne_errno): Renamed
832	macros from NEON_WRITE, NEON_READ, NEON_CLOSE, NEON_ERRNO.
833	All callers changed.
834
835Mon Dec 23 16:58:43 2002  Joe Orton  <joe@manyfish.co.uk>
836
837	Add proper Win32 socket error handling, merged efforts of Johan
838	Lindh and Sergey N Ushakov <ushakov@int.com.ru>:
839
840	* ne_socket.c (ne_errno, NE_ISINTR, NE_ISRESET, NE_ISCLOSED): New
841	macros.
842	[WIN32] (print_error): New function.
843	(set_strerror) [WIN32]: Use print_error.
844	(readable_raw, read_raw, write_raw): Use new error handling
845	macros.
846	(ne_addr_resolve) [WIN32]: Use WSAGetLastError() rather than
847	h_errno.
848	(ne_addr_error) [WIN32]: Use print_error.
849
850Tue Dec 10 21:41:26 2002  Joe Orton  <joe@manyfish.co.uk>
851
852	* ne_socket.c (ne_iaddr_print): Renamed from ne_addr_print for
853	consistency with other ne_iaddr_ functions.
854
855Sun Dec  8 20:08:31 2002  Joe Orton  <joe@manyfish.co.uk>
856
857	* ne_auth.c (get_cnonce): Use GetCurrentThreadId() on Win32.
858
859Sun Nov 24 18:45:32 2002  Joe Orton  <joe@manyfish.co.uk>
860
861	* ne_auth.c: Remove qop_values and algorithm_names arrays.
862	(request_digest): Inlined qop, algorithm name lookups accordingly.
863
864Sun Nov 24 16:45:39 2002  Joe Orton  <joe@manyfish.co.uk>
865
866	* ne_auth.h: Renamed ne_request_auth typedef to ne_auth_creds.
867
868	* ne_auth.c (auth_session): Renamed reqcreds, recreds_ud fields to
869	creds, userdata.
870	(auth_register, ne_set_proxy_auth, ne_set_server_auth): Update for
871	ne_request_auth rename.
872
873Fri Nov 22 17:39:35 2002  Joe Orton  <joe@manyfish.co.uk>
874
875	* ne_auth.c (auth_challenge): Fix support for RFC2617-style digest
876	auth; notice the qop= parameter in challenge.  Fix leak of parsed
877	qop array.
878
879Fri Nov 22 17:08:01 2002  Joe Orton  <joe@manyfish.co.uk>
880
881	* ne_auth.c (get_cnonce): Rewrite to use either pseudo-random data
882	from the SSL library (if available), or really-not-random data
883	from gettimeofday/getpid otherwise.
884
885Sun Nov 17 22:13:49 2002  Joe Orton  <joe@manyfish.co.uk>
886
887	* ne_socket.c (ne_addr_print) [USE_GETADDRINFO]: Use the SACAST()
888	macro.
889
890Sun Nov 17 19:29:23 2002  Joe Orton  <joe@manyfish.co.uk>
891
892	* ne_socket.c (ne_sock_connect): Make address argument const.
893	(raw_connect): Make address argument const; adjust to use a copy
894	of the sockaddr structure, which is correct anyway.
895	(ne_addr_first, ne_addr_next): Make return pointer const.
896
897	* ne_private.h (struct host_info): Store current address as const.
898
899Sun Nov 17 19:03:01 2002  Joe Orton  <joe@manyfish.co.uk>
900
901	* ne_socket.c (ne_register_progress): Removed function.
902
903	* ne_socket.h (ne_block_reader, ne_progress,
904	ne_register_progress): Removed.
905
906	* ne_request.c (do_connect): Don't call ne_register_progress.
907
908	* ne_request.h: Add ne_block_reader typedef.
909
910	* ne_session.h: Include sys/types.h; add ne_progress typedef.
911
912Sun Nov 17 18:59:29 2002  Joe Orton  <joe@manyfish.co.uk>
913
914	* ne_socket.c (ne_iaddr_make, ne_iaddr_cmp, ne_iaddr_free):
915	New functions.
916
917Mon Nov 11 19:51:24 2002  Joe Orton  <joe@manyfish.co.uk>
918
919	Allow discovery of document encoding.
920
921	* ne_xml.c [HAVE_EXPAT]: (struct ne_xml_parser_s): Add encoding
922	field.  (decl_handler): New function.
923	(ne_xml_doc_encoding): New function.
924
925Mon Nov 11 19:48:43 2002  Joe Orton  <joe@manyfish.co.uk>
926
927	* ne_xml.c (sax_handler): Use sax_error for fatal error callback.
928
929Fri Oct 11 23:50:01 2002  Joe Orton  <joe@manyfish.co.uk>
930
931	* ne_private.h (struct ne_session_s): Change 'connected' to be a
932	simple boolean flag.
933
934	* ne_session.c (ne_close_connection): Treat 'connected' as a
935	boolean.
936
937	* ne_request.c (open_connection): Greatly simplified.
938
939Fri Oct 11 00:46:52 2002  Joe Orton  <joe@manyfish.co.uk>
940
941	* ne_props.c (end_propstat): Fix NULL pointer dereference
942	if no status object is given.
943
944Tue Oct  8 20:10:24 2002  Joe Orton  <joe@manyfish.co.uk>
945
946	* ne_xml.c (ne_xml_create) [!HAVE_EXPAT]: Set 'replaceEntities'
947	flag in created parser so that entities are dereferenced in
948	attribute values.
949
950Mon Oct  7 22:08:46 2002  Joe Orton  <joe@manyfish.co.uk>
951
952	* ne_socket.c (init_ssl): Attempt to seed PRNG using EGD socket at
953	path EGD_PATH or a set of predetermined locations if EGD_PATH is
954	not defined.  No longer try $EGDSOCKET or $HOME/.entropy.
955
956Mon Oct  7 21:32:33 2002  Joe Orton  <joe@manyfish.co.uk>
957
958	* ne_auth.c (register_hooks): Removed function.
959	(auth_register): Fold in register_hooks.
960
961Tue Sep 24 21:24:44 2002  Joe Orton  <joe@manyfish.co.uk>
962
963	* ne_request.c (ne_request_create): Pass Request-URI to
964	create_request hooks.
965
966Tue Sep 24 20:42:45 2002  Joe Orton  <joe@manyfish.co.uk>
967
968	* ne_socket.c [__hpux]: Define _XOPEN_SOURCE_EXTENDED to 1, to
969	pick up h_errno definition on HP-UX 10.20.
970
971Wed Sep 18 21:46:28 2002  Joe Orton  <joe@manyfish.co.uk>
972
973	* ne_compress.c (struct ne_decompress_s): Add zstrinit field.
974	(gz_reader): Set zstrinit after inflateInit2 succeeds.
975	(ne_decompress_destroy): Only call inflateEnd if zstrinit is set.
976
977Wed Sep 18 19:56:00 2002  Joe Orton  <joe@manyfish.co.uk>
978
979	* ne_auth.c: Remove incomplete domain support.
980
981Tue Sep 17 21:05:11 2002  Joe Orton  <joe@manyfish.co.uk>
982
983	Fix rejection of server certificates which have commonName as the
984	least specific attribute.
985
986	* ne_session.c (check_identity): Don't ignore commonName if it is
987	the least specific attribute.
988
989Tue Sep 10 21:08:18 2002  Joe Orton  <joe@manyfish.co.uk>
990
991	* ne_request.c (lookup_host): Destroy cached address if resolve
992	fails; fix segfault if a second request in the session is
993	dispatched after the DNS lookup fails on the first.
994
995Mon Sep  9 22:26:03 2002  Joe Orton  <joe@manyfish.co.uk>
996
997	* ne_request.c (RETRY_RET): Treat SSL truncation as a legitimate
998	persistent connection timeout.
999
1000Fri Aug 30 21:58:45 2002  Joe Orton  <joe@manyfish.co.uk>
1001
1002	* ne_request.c (read_response_block): Clear can_persist flag if an
1003	EOF was read (fix for read-till-EOF response terminated by an
1004	unclean SSL shutdown).
1005
1006Mon Aug 26 18:05:00 2002  Joe Orton  <joe@manyfish.co.uk>
1007
1008	* ne_socket.c: Fix HAVE_LIMITS check (Blair Zajac).
1009
1010Sun Aug 25 23:29:06 2002  Joe Orton  <joe@manyfish.co.uk>
1011
1012	* ne_request.c (do_connect): Add debug message for connection
1013	attempt.
1014
1015Sun Aug 25 22:54:04 2002  Joe Orton  <joe@manyfish.co.uk>
1016
1017	* ne_socket.h (ne_addr_print): Make address argument const.
1018
1019Sun Aug 25 11:52:32 2002  Joe Orton  <joe@manyfish.co.uk>
1020
1021	* ne_socket.c (ne_addr_print): New function.
1022
1023Sun Aug 25 10:09:10 2002  Joe Orton  <joe@manyfish.co.uk>
1024
1025	Fix interop with Tomcat/3.2 SSL server, which performs an unclean
1026	shutdown on an HTTP/1.0 response without a C-L header.
1027
1028	* ne_request.c (read_response_block): Ignore SSL connection
1029	truncation for a read-till-EOF response, where no reseponse
1030	content has been read yet.
1031	(ne_read_response_block): Always increase 'total' counter.
1032
1033Sun Aug 25 08:47:41 2002  Joe Orton  <joe@manyfish.co.uk>
1034
1035	* ne_request.c (aborted): Handle code=0 case specifically, and
1036	NE_SOCK_* as default.
1037
1038Sun Aug 25 08:24:48 2002  Joe Orton  <joe@manyfish.co.uk>
1039
1040	* ne_socket.h: Add `NE_SOCK_TRUNC' return value.
1041
1042	* ne_socket.c (error_ossl): Return NE_SOCK_TRUNC when an EOF is
1043	received without a close_notify.
1044
1045Sat Aug 24 17:37:14 2002  Joe Orton  <joe@manyfish.co.uk>
1046
1047	* ne_socket.h (ne_inet_addr): New type.
1048	(ne_addr_first, ne_addr_next): New public interface.
1049	(ne_sock_connect): Change first parameter to ne_inet_addr.
1050
1051	* ne_socket.c: Predefine ne_inet_addr for ne_socket.h, replacing
1052	ne_raw_addr.
1053	(ne_addr_first, ne_addr_first): Renamed from addr_first,
1054	addr_next; return type now ne_inet_addr; made public.
1055	(ne_sock_connect): Fold in make_socket() macro; just connect to
1056	single IP address passed in.
1057
1058	* ne_private.h (struct host_info): Renamed 'addr' to 'address',
1059	dded 'current' field, removed 'resolved' field.
1060
1061	* ne_request.c (lookup_host): Adjust for addr->address rename.
1062	(ne_begin_request): Call lookup_host if 'address' is NULL in
1063	host_info structure, don't use 'resolved' flag.
1064	(do_connect): Replaces init_socket; factor more code out from
1065	open_connection.  Loop over available addresses until an
1066	ne_sock_connect call succeeds.
1067	(open_connection): Moved code into do_connect.
1068
1069	* ne_session.c (ne_session_destroy): Adjust for addr->address
1070	rename.
1071
1072Sat Aug 24 13:45:26 2002  Joe Orton  <joe@manyfish.co.uk>
1073
1074	* ne_string.c (count_concat, do_concat): Compact into while()
1075	loops.
1076
1077Sat Aug 24 13:36:04 2002  Joe Orton  <joe@manyfish.co.uk>
1078
1079	* ne_private.h (VERSION_PRE11): Removed macro.
1080	(struct ne_session_s): Add is_http11 field; removed version_major,
1081	version_minor fields.
1082
1083	* ne_request.c (add_fixed_headers): Use is_http11 flag rather than
1084	VERSION_PRE11 macro.
1085	(ne_begin_request): Set and use is_http11 flag.
1086
1087	* ne_session.c (ne_version_pre_http11): Use is_http11 flag.
1088	(ne_session_create): Don't set version_major, version_minor fields.
1089
1090Sat Aug 24 09:00:13 2002  Joe Orton  <joe@manyfish.co.uk>
1091
1092	* ne_request.c (struct ne_request_s): Removed abs_path field.
1093	(ne_set_request_uri): Removed function.
1094	(ne_request_create): Set req->uri to be the actual Request-URI.
1095	Don't use an absoluteURI in Request-URI if using SSL via a proxy
1096	tunnel, or if passed-in path does not begin with a '/'.
1097	(build_request): Use pre-determined Request-URI.
1098	(proxy_tunnel): Pass true Request-URI to ne_request_create.
1099	(ne_request_destroy): Don't free abs_path.
1100
1101Sat Aug 24 00:37:25 2002  Joe Orton  <joe@manyfish.co.uk>
1102
1103	* ne_request.c (aborted): Fix handling of _CLOSED and _TIMEOUT
1104	socket errors, and of non-socket errors.  Presume ne_sock_error
1105	cannot return NULL.
1106
1107Sat Aug 24 00:07:33 2002  Joe Orton  <joe@manyfish.co.uk>
1108
1109	* ne_cookies.c (set_cookie_hdl): Ensure that each cookie field is
1110	safe to free().
1111
1112Fri Aug 23 23:46:58 2002  Joe Orton  <joe@manyfish.co.uk>
1113
1114	* ne_request.c (aborted): Close the connection after setting the
1115	session error, otherwise the socket error is lost.
1116
1117Fri Aug 23 22:50:30 2002  Joe Orton  <joe@manyfish.co.uk>
1118
1119	* ne_socket.c (ne_sock_init): Set SIGPIPE disposition before SSL
1120	library initalization, so it happens even if SSL library
1121	initialization fails.
1122
1123Fri Aug 23 22:03:26 2002  Joe Orton  <joe@manyfish.co.uk>
1124
1125	* ne_socket.c [USE_GETADDRINFO] (make_socket): Pass SOCK_STREAM to
1126	socket() rather than ai_socktype: on RHL6.2, ai_socktype is
1127	returned as zero.
1128
1129Wed Aug 21 18:06:36 2002  Joe Orton  <joe@manyfish.co.uk>
1130
1131	* ne_socket.c: Reinstate stdlib.h include.
1132
1133	* ne_socket.h: Reinstate sys/socket.h include.
1134
1135Wed Aug 21 12:58:47 2002  Joe Orton  <joe@manyfish.co.uk>
1136
1137	* ne_socket.c (ne_addr_resolve): Accept IPv6 addresses enclosed in
1138	square brackets.
1139
1140Wed Aug 21 09:37:24 2002  Joe Orton  <joe@manyfish.co.uk>
1141
1142	* ne_uri.c (ne_uri_parse): Parse literal IPv6 address using the
1143	RFC2732 `[address]' syntax.
1144
1145Mon Aug 19 17:18:45 2002  Joe Orton  <joe@manyfish.co.uk>
1146
1147	* ne_socket.c (ne_addr_error): Override a horribly generic error
1148	message from gai_strerror().
1149
1150Mon Aug 19 16:24:37 2002  Joe Orton  <joe@manyfish.co.uk>
1151
1152	* ne_socket.h: Remove netinet/in.h etc includes.
1153	(ne_sock_addr): Add new opaque type.
1154	(ne_addr_resolve, ne_addr_result, ne_addr_error, ne_addr_destroy):
1155	New functions.
1156	(ne_sock_connect): Changes address argument to `ne_sock_addr *'.
1157	(ne_name_lookup): Removed function.
1158
1159	* ne_socket.c: Added netinet/in.h etc includes.
1160	(ne_sock_addr, ne_raw_addr): Define types.
1161	(make_socket): New macro.
1162	(ne_addr_resolve): Replace ne_name_lookup; store results (multiple
1163	addresses if returned) in returned ne_sock_addr object.  Use
1164	getaddrinfo() if available.
1165	(raw_connect, addr_first, addr_next, ne_addr_result,
1166	ne_addr_error, ne_addr_destroy): New functions.
1167	(ne_sock_connect): Re-implement to loop through available
1168	addresses until a connect() succeeds; use make_socket, raw_connect
1169	auxiliaries.
1170
1171	* ne_private.h (struct host_info): Store an ne_sock_addr pointer.
1172
1173	* ne_request.c (lookup_host): Use new ne_addr_* interface.
1174
1175	* ne_session.c (ne_session_destroy): Destroy address objects.
1176
1177Mon Aug 19 00:19:49 2002  Joe Orton  <joe@manyfish.co.uk>
1178
1179	* ne_socket.c: Move prng_seeded inside ifdef NEON_SSL region to
1180	prevent unused variable warning for non-SSL build.
1181
1182Sun Aug 18 23:21:21 2002  Joe Orton  <joe@manyfish.co.uk>
1183
1184	* ne_string.h (ne_strerror): Return buffer.
1185
1186Sun Aug 18 23:17:56 2002  Joe Orton  <joe@manyfish.co.uk>
1187
1188	* ne_socket.c (set_error): Use ne_strnzcpy.
1189
1190Sun Aug 18 23:14:07 2002  Joe Orton  <joe@manyfish.co.uk>
1191
1192	* ne_string.c (ne_strerror): Use ne_strnzcpy.
1193
1194Sun Aug 18 23:11:45 2002  Joe Orton  <joe@manyfish.co.uk>
1195
1196	* ne_string.h (ne_strnzcpy): New macro.
1197
1198Sun Aug 18 22:48:27 2002  Joe Orton  <joe@manyfish.co.uk>
1199
1200	* ne_socket.c (ne_sock_init): Check directly for SIGPIPE
1201	definition rather than HAVE_SIGPIPE.
1202
1203Sun Aug 18 13:49:49 2002  Joe Orton  <joe@manyfish.co.uk>
1204
1205	* ne_session.c (set_hostport): Use %u for printing unsigned int.
1206
1207Sun Aug 18 13:47:43 2002  Joe Orton  <joe@manyfish.co.uk>
1208
1209	* ne_utils.h (NE_DBG_SSL): New constant.
1210
1211	* ne_session.c [NEON_SSL] (everywhere): Use NE_DBG_SSL channel for
1212	debugging messages.
1213
1214Sun Aug 18 08:17:19 2002  Joe Orton  <joe@manyfish.co.uk>
1215
1216	* ne_session.c (match_hostname): Fix to use case-insensitive
1217	string comparison.
1218
1219Sun Aug 18 08:10:12 2002  Joe Orton  <joe@manyfish.co.uk>
1220
1221	* ne_session.c (check_identity): Check the commonName if no
1222	alt. names of DNS type were found.
1223
1224Sun Aug 18 07:39:35 2002  Joe Orton  <joe@manyfish.co.uk>
1225
1226	* ne_session.c (check_identity): Use the most specific commonName
1227	attribute found, not the first.  (for RFC2818 compliance)
1228
1229Sun Aug 18 01:54:53 2002  Joe Orton  <joe@manyfish.co.uk>
1230
1231	* ne_session.c (match_hostname): Invert return value.
1232	(check_identity): New function; split out commonName check from
1233	check_certificate, check subjectAltName extension instead if
1234	present.
1235	(check_certificate): Use check_identity.
1236
1237Sat Aug 17 19:59:21 2002  Joe Orton  <joe@manyfish.co.uk>
1238
1239	* ne_session.c (check_certificate): Extend debugging code to dump
1240	the whole certificate chain, but #if 0 it by default.
1241
1242Mon Aug 12 12:04:51 2002  Joe Orton  <joe@manyfish.co.uk>
1243
1244	* ne_request.c (aborted): Use NE_FMT_SSIZE_T to print ssize_t
1245	value.
1246
1247Mon Aug 12 11:08:35 2002  Joe Orton  <joe@manyfish.co.uk>
1248
1249	Support PRNG seeding via EGD to make SSL work on platforms which
1250	lack /dev/random:
1251
1252	* ne_socket.c (init_ssl): New function.
1253	(ne_sock_init): Call init_ssl, set prng_seeded global on success.
1254	(ne_sock_use_ssl_os): Fail early if prng_seeded is not set, and
1255	RAND_status returns false.
1256
1257Tue Aug  6 07:18:30 2002  Joe Orton  <joe@manyfish.co.uk>
1258
1259	* ne_socket.c (ne_sock_use_ssl_os): Remove goto-based error
1260	handling.  Don't call SSL_shutdown after SSL_connect fails.
1261
1262Mon Aug  5 23:18:55 2002  Joe Orton  <joe@manyfish.co.uk>
1263
1264	* ne_session.c (ne_ssl_keypw_prompt): Don't set SSL_CTX default
1265	password callbacks, since these are never invoked.  Implement
1266	once, stub for !NEON_SSL is no longer needed.
1267
1268Mon Aug  5 21:01:54 2002  Joe Orton  <joe@manyfish.co.uk>
1269
1270	* ne_session.c (ne_ssl_load_pem): Pass private key prompt callback
1271	to PEM_read_X509, PEM_read_PrivateKey (patch by Daniel Berlin).
1272	Also handle errors properly; call ERR_get_error() to pop the
1273	errors of the error stack.
1274
1275Mon Aug  5 20:15:10 2002  Joe Orton  <joe@manyfish.co.uk>
1276
1277	* ne_session.c (provide_client_cert): Increase reference count on
1278	key and certificate, to prevent them being free'd too early.
1279
1280Sun Aug  4 22:35:27 2002  Joe Orton  <joe@manyfish.co.uk>
1281
1282	Fix `retry_after_abort' test in request.c:
1283
1284	* ne_request.c (send_request): Don't use the 'persisted' flag
1285	until after a new connection has been opened, when it may have
1286	been reset.
1287
1288Sun Aug  4 17:26:37 2002  Joe Orton  <joe@manyfish.co.uk>
1289
1290	* ne_request.c (struct ne_request_s): Remove reqbuf field.
1291	(ne_request_create, ne_request_destroy): Don't (de)allocate reqbuf.
1292	(build_request): Allocate the returned buffer internally.
1293	(ne_begin_request): Destroy the buffer after use.
1294
1295Sun Aug  4 15:36:01 2002  Joe Orton  <joe@manyfish.co.uk>
1296
1297	* ne_session.c (ne_ssl_load_pem): Close file after use.
1298
1299Sun Aug  4 12:55:49 2002  Joe Orton  <joe@manyfish.co.uk>
1300
1301	Factor out EPIPE, ECONNRESET handling from write_raw:
1302
1303	* ne_socket.c (MAP_ERR): New macro.
1304	(write_raw, error_ossl): Use MAP_ERR.
1305
1306Sun Aug  4 12:25:34 2002  Joe Orton  <joe@manyfish.co.uk>
1307
1308	* ne_socket.c (ne_sock_switch_ssl): New function.
1309
1310Sun Aug  4 12:24:23 2002  Joe Orton  <joe@manyfish.co.uk>
1311
1312	* ne_socket.c (ne_sock_switch_ssl): New function, really just for
1313	test suite.
1314
1315Sat Aug  3 22:11:33 2002  Joe Orton  <joe@manyfish.co.uk>
1316
1317	* ne_auth.c (ne_forget_auth): Fix segfault if either server or
1318	proxy auth is not in use.
1319
1320Sat Aug  3 22:06:32 2002  Joe Orton  <joe@manyfish.co.uk>
1321
1322	* ne_redirect.c (create, post_send, ne_redirect_register,
1323	ne_redirect_location): Updated for new hook interface.
1324
1325Sat Aug  3 19:02:33 2002  Joe Orton  <joe@manyfish.co.uk>
1326
1327	Adjustment of hook interface and use: fixing a design flaw causing
1328	a segfault in the auth hooks when two requests are used
1329	concurrently for a single session during a CONNECT tunnel.
1330
1331	* ne_request.h, ne_session.h:
1332	(ne_get_request_private, ne_get_session_private): Replace
1333	ne_request_hook_private, ne_session_hook_private.
1334	(ne_set_session_private, ne_set_request_private): Replace
1335	ne_hook_session_accessor, ne_hook_request_accessor.
1336
1337	* ne_request.h (ne_create_request_fn, ne_pre_send_fn,
1338	ne_post_send_fn): Add ne_request pointer as first argument.
1339	(ne_hook_destroy_request): Take ne_destroy_req_fn function.
1340	(ne_hook_destroy_session): Take ne_destroy_sess_fn function.
1341
1342	* ne_request.c (struct ne_request_s): Renamed `accessor_hooks'
1343	field to `private'.
1344	(get_private): Renamed from call_access; don't invoke function.
1345	(ne_null_accessor): Removed function.
1346
1347	* ne_auth.c (struct auth_class): Store hook id.
1348	(auth_session): Remove auth_request pointer.
1349	(ah_create): Store auth_request pointer as request-private data.
1350	(ah_pre_send, ah_post_send, ah_destroy): Retrieve auth_request
1351	pointer from request-private data.
1352	(register_hooks, ne_forget_auth): Use
1353	ne_{get,set}_session_private.
1354
1355	* ne_locks.c (struct lh_req_cookie): New structure.
1356	(struct ne_lock_store_s): Remove submit_locks field.
1357	(lk_create, lk_pre_send, submit_lock, ne_lock_using_resource,
1358	ne_lock_using_parent, lk_destroy): Adjust to use lh_req_cookie
1359	pointer as request-private data.
1360
1361	* ne_cookies.c (create, pre_send): Adjust for hook prototype
1362	changes.
1363
1364Wed Jul 31 23:46:17 2002  Joe Orton  <joe@manyfish.co.uk>
1365
1366	* ne_socket.c [NEON_SSL]: Include limits.h for INT_MAX definition.
1367
1368Mon Jul 29 20:55:57 2002  Joe Orton  <joe@manyfish.co.uk>
1369
1370	* ne_auth.c (struct auth_class): New structure; abstracts out
1371	proxy/server generic auth handling more cleanly.
1372	(ah_server_class, ah_proxy_class): Declare variables.
1373	(auth_session): Reference an auth_class structure.
1374	(auth_register): Replaces auth_create.
1375	(ne_set_server_auth, ne_set_proxy_auth): Simplify, use
1376	auth_register.
1377	(everywhere): Reference req_hdr etc via ->spec-> reference.
1378
1379Sun Jul 28 12:29:23 2002  Joe Orton  <joe@manyfish.co.uk>
1380
1381	* ne_request.c (proxy_tunnel): Reset 'persisted' flag, so that a
1382	newly tunnelled connection is not treated as persistent.
1383
1384Sun Jul 28 12:26:49 2002  Joe Orton  <joe@manyfish.co.uk>
1385
1386	* ne_string.h (CONCAT2, CONCAT3, CONCAT4): Removed macros.
1387
1388Thu Jul 25 23:16:00 2002  Joe Orton  <joe@manyfish.co.uk>
1389
1390	* ne_request.c (send_request): Don't clear retry until a
1391	status-line has been read.
1392
1393Thu Jul 25 00:03:17 2002  Joe Orton  <joe@manyfish.co.uk>
1394
1395	* ne_auth.c (basic_challenge, request_basic): Use ne_concat not
1396	the CONCAT? macros.
1397
1398	* ne_basic.c (ne_mkcol): Use ne_concat not the CONCAT2 macro.
1399
1400Wed Jul 24 00:16:39 2002  Joe Orton  <joe@manyfish.co.uk>
1401
1402	* ne_string.c (count_concat, do_concat): Factored out from
1403	ne_buffer_concat.
1404	(ne_buffer_concat): Rewrite to use count_concat, do_concat.
1405	(ne_concat): New (resurrected) function.
1406
1407Thu Jul 18 21:52:12 2002  Joe Orton  <joe@manyfish.co.uk>
1408
1409	* ne_request.c (proxy_tunnel): Don't use server.hostport in
1410	Request-URI; always include `:port' even if default port is used;
1411	fix CONNECT through Inktomi Traffic-Server.
1412
1413Thu Jul 18 21:33:43 2002  Joe Orton  <joe@manyfish.co.uk>
1414
1415	* ne_request.c (aborted, ne_set_request_body_fd): Use ne_strerror.
1416
1417	* ne_session.c (ne_ssl_load_pem, ne_ssl_load_pkcs12): Use ne_strerror.
1418
1419	* ne_basic.c (get_to_fd): Use ne_strerror.
1420
1421Thu Jul 18 20:19:30 2002  Joe Orton  <joe@manyfish.co.uk>
1422
1423	* ne_string.c (ne_strerror): New function.
1424
1425	* ne_socket.c (set_strerror): Move portability logic to
1426	ne_strerror; just use that here.
1427
1428Thu Jul 18 20:00:46 2002  Joe Orton  <joe@manyfish.co.uk>
1429
1430	* ne_socket.c (read_raw, write_raw): Don't re-evaluate 'errno',
1431	per Ulrich Drepper's advice.
1432
1433Wed Jul 17 23:47:01 2002  Joe Orton  <joe@manyfish.co.uk>
1434
1435	* ne_socket.c (struct ne_socket_s): Store buffer for error string.
1436	(set_error, set_strerror): New macros.
1437	(everywhere): Use set_error, set_strerror or ne_snprintf to set
1438	the socket error string.
1439
1440Wed Jul 17 23:19:18 2002  Joe Orton  <joe@manyfish.co.uk>
1441
1442	* ne_utils.c (ne_version_match): Fix inverted minor version test.
1443
1444Sun Jul 14 20:13:59 2002  Joe Orton  <joe@manyfish.co.uk>
1445
1446	* ne_uri.h (ne_uri): Store port as unsigned.
1447
1448	* ne_uri.c (ne_uri_defaultport): Return unsigned int, and zero for
1449	undefined port.
1450
1451Sun Jul 14 20:07:35 2002  Joe Orton  <joe@manyfish.co.uk>
1452
1453	* ne_session.c (ne_session_proxy): Take port parameter as unsigned
1454	int, as per ne_session_create.
1455
1456Sun Jul 14 20:03:21 2002  Joe Orton  <joe@manyfish.co.uk>
1457
1458	* ne_request.c (strip_eol): Take ssize_t 'len' parameter.
1459	(read_message_header): Use ssize_t for 'n'.
1460
1461Sun Jul 14 12:45:40 2002  Joe Orton  <joe@manyfish.co.uk>
1462
1463	* ne_socket.c (ne_sock_use_ssl_os): Unconditionally enable
1464	SSL_MODE_AUTO_RETRY now OpenSSL 0.9.6 is required.
1465
1466Sun Jul 14 12:15:40 2002  Joe Orton  <joe@manyfish.co.uk>
1467
1468	* ne_xml.h (NE_XML_MEDIA_TYPE): New definition.
1469
1470	* ne_acl.c (ne_acl_set),
1471	* ne_props.c (ne_proppatch, propfind): Use NE_XML_MEDIA_TYPE,
1472	rather than hard-coding the incorrect "text/xml" media type.
1473
1474Sun Jul 14 10:53:33 2002  Joe Orton  <joe@manyfish.co.uk>
1475
1476	* ne_utils.c (ne_version_match): Replace ne_version_minimum.
1477
1478Sat Jul 13 11:40:37 2002  Joe Orton  <joe@manyfish.co.uk>
1479
1480	* ne_session.c (ne_negotiate_ssl): Include socket error string in
1481	session error if SSL negotiation fails.
1482
1483Sat Jul 13 11:27:50 2002  Joe Orton  <joe@manyfish.co.uk>
1484
1485	* ne_socket.c (error_ossl): New function.
1486	(ERROR_SSL_STRING): Removed macro.
1487	(CAST2INT): New macro; safety harness for OpenSSL compatibility.
1488	(read_ossl, write_ossl): Use error_ossl, CAST2INT.
1489	(ne_sock_use_ssl_os): Use error_ssl.
1490
1491Sat Jul 13 11:16:07 2002  Joe Orton  <joe@manyfish.co.uk>
1492
1493	* ne_socket.c: Define ECONNRESET as WSAECONNRESET on Win32.
1494
1495Sat Jul 13 10:10:03 2002  Joe Orton  <joe@manyfish.co.uk>
1496
1497	* ne_private.h (struct ne_session_s): Replace 'reqcount' with
1498	'persisted' flag.
1499
1500	* ne_request.c (ne_end_request): Set 'persisted' flag if
1501	connection is left open.
1502	(send_request): Adjust to allow retry if 'persisted' flag is set.
1503	(init_socket): Clear 'persisted' flag here...
1504	(open_connection): ... rather than here.
1505
1506Wed Jul 10 22:51:39 2002  Joe Orton  <joe@manyfish.co.uk>
1507
1508	* ne_request.c (RETRY_RET): Retry on an NE_SOCK_RESET too.
1509	(send_request): Fix to only retry if not on the first request on a
1510	connection (close_not_retried test).
1511
1512Sun Jul  7 20:49:09 2002  Joe Orton  <joe@manyfish.co.uk>
1513
1514	* ne_socket.h: Add NE_SOCK_RESET return value; improve comments.
1515
1516	* ne_socket.c (read_raw, write_raw): Return NE_SOCK_RESET if an
1517	ECONNRESET error is received when reading or writing.
1518
1519Sat Jul  6 13:30:15 2002  Joe Orton  <joe@manyfish.co.uk>
1520
1521	* ne_request.c (read_status_line, discard_headers): New functions,
1522	split out from send_request.
1523	(send_request_body): Move debugging here from send_request.
1524	(RETRY_RET): Renamed from CAN_RETRY.
1525	(send_request): Simplify: remove complex 100-continue graceful
1526	failure logic; use read_status_line, discard_headers, RETRY_RET.
1527	Fix to only send request body once (expect_100_once test case).
1528	Fix to not return NE_RETRY if reading status-line other than the
1529	first fails (fail_eof_continued test case).
1530
1531Fri Jul  5 21:47:49 2002  Joe Orton  <joe@manyfish.co.uk>
1532
1533	* ne_request.c (build_request): Fix from previous commit: clear
1534	the buffer before building the request.
1535
1536Fri Jul  5 21:00:20 2002  Joe Orton  <joe@manyfish.co.uk>
1537
1538	* ne_request.c (build_request): Fold Host header and Request-Line
1539	into single ne_buffer_concat call.  Don't set req->use_expect100
1540	here.  Fold an if/else into an ?:.  Optimise to use
1541	ne_buffer_append to add 100-continue, user-supplied headers, and
1542	trailing EOL, since they all have known lengths.
1543	(send_request): Take request data as argument.
1544	(ne_begin_request): Call build_request here; pass to send_request.
1545	Move Expect100 logic here.
1546
1547Fri Jul  5 17:12:56 2002  Joe Orton  <joe@manyfish.co.uk>
1548
1549	* ne_basic.c (ne_read_file): Removed function.
1550
1551Fri Jul  5 17:10:11 2002  Joe Orton  <joe@manyfish.co.uk>
1552
1553	* ne_compress.c (process_footer): Take unsigned char buffer.
1554	Store calculated CRC in a uLong.
1555	(do_inflate, gz_reader): Cast buffers to unsigned char for
1556	strict compatibility with zlib interface.
1557
1558Wed Jul  3 19:21:17 2002  Joe Orton  <joe@manyfish.co.uk>
1559
1560	* ne_request.c (struct ne_request_s): Use a fixed char array for
1561	respbuf field.
1562	(ne_request_create, ne_request_destroy): Don't allocate respbuf
1563	dynamically.
1564	(send_request): Move 'buffer' to appropriate scope.
1565	(ne_request_dispatch): Remove 'buffer'; read into respbuf.
1566
1567Tue Jul  2 08:35:05 2002  Joe Orton  <joe@manyfish.co.uk>
1568
1569	* ne_request.c (proxy_tunnel): Remove redundant sess->connected
1570	assignment.
1571
1572Sun Jun 30 21:04:50 2002  Joe Orton  <joe@manyfish.co.uk>
1573
1574	* ne_request.c (ne_begin_request): Only set host->resolved if
1575	lookup is successful.
1576
1577Sun Jun 30 18:25:51 2002  Joe Orton  <joe@manyfish.co.uk>
1578
1579	* ne_request.c (SOCK_ERR): New macro.
1580	(struct ne_request_s): Remove 'forced_close' field.
1581	(aborted): Renamed from set_sockerr; also closes connection and
1582	prints message in debug log.
1583	(send_request_body): Don't use set_sockerr or set forced_close.
1584	(read_response_block, read_message_header): Use SOCK_ERR; adjust
1585	to use aborted().
1586	(ne_read_response_block, read_response_headers): Don't set
1587	forced_close.
1588	(CAN_RETRY): New macro.
1589	(send_request): Adjust to use CAN_RETRY(); use aborted() to make
1590	sure connection is closed in error cases.
1591	(ne_begin_request): Don't close connection here in error cases;
1592	don't use forced_close.
1593	(open_connection): Adjust to use aborted() not set_sockerr().
1594
1595Sun Jun 30 17:26:41 2002  Joe Orton  <joe@manyfish.co.uk>
1596
1597	* ne_session.c (ne_close_connection): Clarify debug messages.
1598
1599Sun Jun 30 14:36:11 2002  Joe Orton  <joe@manyfish.co.uk>
1600
1601	* ne_request.c (read_response_block): Fail on chunk size lines
1602	which contain no valid chunk size digits.
1603
1604Sun Jun 30 12:35:35 2002  Joe Orton  <joe@manyfish.co.uk>
1605
1606	* ne_session.c (ne_negotiate_ssl): Use ne_get_session rather
1607	than req->session.
1608
1609	* ne_request.c (struct header_handler, struct body_reader,
1610	struct ne_request_s): Moved from ne_private.h.
1611
1612Sun Jun 30 12:13:58 2002  Joe Orton  <joe@manyfish.co.uk>
1613
1614	Cleanup of response handling:
1615
1616	* ne_private.h (struct ne_response): Replace 'is_chunked' field with
1617	'mode' enum.
1618
1619	* ne_request.c (te_hdr_handler): Set mode.
1620	(connection_hdr_handler): Reset can_persist for 'close'.
1621	(clength_hdr_handler): New function.
1622	(ne_request_create): Use clength_hdr_handler to parse Content-Length
1623	header.
1624	(read_response_block, ne_read_response_block): Adapt for 'mode' enum;
1625	simplify.
1626	(normalize_response_length): Removed function.
1627	(ne_begin_request): Fold in normalize_response_length logic.
1628	(ne_end_request): Simplify logic.
1629
1630Sun Jun 30 11:08:26 2002  Joe Orton  <joe@manyfish.co.uk>
1631
1632	* ne_session.c: Remove X509_NAME workaround in favour of a
1633	neon.mak change.
1634
1635Tue Jun 25 23:14:34 2002  Joe Orton  <joe@manyfish.co.uk>
1636
1637	* ne_session.c: Undefine X509_NAME if it is defined (by a Windows
1638	header).
1639
1640Tue Jun 25 22:51:15 2002  Joe Orton  <joe@manyfish.co.uk>
1641
1642	* ne_socket.c: Rename READ_BUFFER to RDBUFSIZ.
1643
1644Tue Jun 25 21:07:13 2002  Joe Orton  <joe@manyfish.co.uk>
1645
1646	* ne_private.h (struct host_info): Store port as unsigned int.
1647
1648	* ne_session.c (set_hostport, set_hostinfo, ne_session_create):
1649	Take port argument as unsigned int.
1650
1651	* ne_socket.c (ne_sock_connect): Take port argument as unsigned
1652	int.
1653
1654Tue Jun 25 20:59:14 2002  Joe Orton  <joe@manyfish.co.uk>
1655
1656	* ne_utils.h [__GNUCC__] (NE_DEBUG): Remove implementation using
1657	GNU C extensions.
1658
1659Sun Jun 23 22:47:52 2002  Joe Orton  <joe@manyfish.co.uk>
1660
1661	* ne_request.c (set_request_uri): Renamed from ne_set_request_uri;
1662	made static.
1663	(ne_request_create): Update accordingly.
1664
1665	* ne_private.h (ne_set_request_uri): Removed prototype.
1666
1667Sun Jun 23 15:40:57 2002  Joe Orton  <joe@manyfish.co.uk>
1668
1669	* ne_request.c (send_request, ne_request_destroy): Free
1670	reason_phrase now it is malloc-allocated.
1671
1672Sun Jun 23 14:59:04 2002  Joe Orton  <joe@manyfish.co.uk>
1673
1674	Simplify given loss of const qualifier on ne_status.reason_phrase:
1675
1676	* ne_props.c (struct propstat): Remove r_phrase field.
1677	(end_propstat, free_propset): Use status.reason_phrase not
1678	r_phrase field.
1679
1680Sun Jun 23 14:42:22 2002  Joe Orton  <joe@manyfish.co.uk>
1681
1682	* ne_207.h (ne_207_end_response, ne_207_end_propstat): Remove
1683	status_line parameter from callbacks.
1684
1685	* ne_207.c (struct ne_207_parser_s): Remove status_line field.
1686	(end_element): Don't store status_line.
1687	(handle_error): Drop status_line argument, recreate dummy status
1688	line from status object.
1689	(end_response, end_propstat): Drop status_line arguments.
1690
1691	* ne_props.c (end_propstat, end_response): Drop status_line
1692	arguments.
1693
1694Sun Jun 23 14:39:00 2002  Joe Orton  <joe@manyfish.co.uk>
1695
1696	* ne_utils.h (ne_status): Remove const qualifier from
1697	'reason_phrase' field.
1698
1699	* ne_utils.c (ne_parse_statusline): strdup the reason_phrase on
1700	successful return.
1701
1702Sun Jun 23 11:39:24 2002  Joe Orton  <joe@manyfish.co.uk>
1703
1704	* ne_compress.c (struct ne_decompress_s): Replace footer union
1705	with buffer.
1706	(BUF2UINT): New macro.
1707	(process_footer): Convert footer to integer in a portable manner,
1708	using BUF2UINT.
1709
1710Sun Jun 23 09:05:25 2002  Joe Orton  <joe@manyfish.co.uk>
1711
1712	* ne_compress.c (ne_decompress_s): Use unsigned int for 32-bit
1713	integers, not uLong (fix for 64-bit platforms).
1714
1715Wed Jun 19 18:46:40 2002  Joe Orton  <joe@manyfish.co.uk>
1716
1717	* ne_session.c (ne_session_destroy): Don't leak the proxy
1718	hostname.
1719
1720Sun Jun 16 14:09:31 2002  Joe Orton  <joe@manyfish.co.uk>
1721
1722	* ne_request.c (read_response_block): Use NE_FMT_SSIZE_T rather
1723	than %d, cast field precision argument to int.
1724	(ne_pull_request_body): Use ssize_t for store callback return
1725	value, use NE_FMT_SSIZE_T rather than %d, cast field precision
1726	argument to int.
1727
1728Sun Jun 16 12:15:19 2002  Joe Orton  <joe@manyfish.co.uk>
1729
1730	* ne_session.c (ne_negotiate_ssl): Don't leak peer certificate in
1731	error cases.  Fix spelling mistake in error message.
1732
1733Sun Jun 16 11:23:23 2002  Joe Orton  <joe@manyfish.co.uk>
1734
1735	* ne_request.c (open_connection): When SSL negotation fails after
1736	doing CONNECT request, use ne_close_connection so that
1737	sess->connection is reset to 0, and ne_sock_close isn't called
1738	twice for the socket.
1739
1740Wed Jun 12 23:22:20 2002  Joe Orton  <joe@manyfish.co.uk>
1741
1742	* ne_props.c (ne_proppatch): Add missing call to
1743	ne_lock_using_resource.
1744
1745Mon Jun 10 20:45:27 2002  Joe Orton  <joe@manyfish.co.uk>
1746
1747	* ne_auth.c (verify_response): Remove redundant prototype, fix
1748	sscanf format string to use signed integer.
1749
1750Mon Jun 10 20:13:57 2002  Joe Orton  <joe@manyfish.co.uk>
1751
1752	* ne_compress.c (do_inflate): Continue calling inflate() whilst
1753	unconsumed input remains: fix from Justin Erenkrantz
1754	<jerenkrantz@apache.org>.
1755
1756Mon Jun 10 19:53:59 2002  Joe Orton  <joe@manyfish.co.uk>
1757
1758	* ne_socket.c (ne_sock_readline): If a complete line is found in
1759	the buffer, avoid the memmove() and simply copy the line directly
1760	out of the buffer.
1761
1762Sun Jun  9 11:39:20 2002  Joe Orton  <joe@manyfish.co.uk>
1763
1764	* ne_redirect.c (post_send): Perform simple relative URI
1765	resolution.
1766
1767Tue Jun  4 16:51:54 2002  Joe Orton  <joe@manyfish.co.uk>
1768
1769	* ne_uri.c (ne_path_parent): Simplify.
1770
1771Mon Jun  3 17:50:27 2002  Joe Orton  <joe@manyfish.co.uk>
1772
1773	* ne_cookies.c (set_cookie_hdl): Avoid free'ing cookie name/value,
1774	thanks to Dan Mullen.
1775
1776Mon Jun  3 17:45:33 2002  Joe Orton  <joe@manyfish.co.uk>
1777
1778	* ne_string.c (ne_base64): Use size_t for outlen.
1779
1780Mon Jun  3 17:42:34 2002  Joe Orton  <joe@manyfish.co.uk>
1781
1782	* ne_utils.h, ne_socket.h [WIN32]: Move ssize_t definition to
1783	ne_socket.h.
1784
1785Mon Jun  3 17:27:21 2002  Joe Orton  <joe@manyfish.co.uk>
1786
1787	* ne_request.c (read_response_block): Use correct types for
1788	passing to/from ne_sock_*.
1789
1790Mon Jun  3 11:32:20 2002  Joe Orton  <joe@manyfish.co.uk>
1791
1792	* ne_compress.c (ne_decompress_destroy): Don't fail if response
1793	reader callback is never invoked.
1794
1795Sun Jun  2 12:51:35 2002  Joe Orton  <joe@manyfish.co.uk>
1796
1797	* ne_socket.c (read_ossl, read_raw): Call readable_{ossl,raw}
1798	function here.
1799	(ne_sock_read, ne_sock_peek, ne_sock_readline): Remove explicit
1800	calls to ops->readable before ops->read.
1801
1802Thu May 30 22:00:07 2002  Joe Orton  <joe@manyfish.co.uk>
1803
1804	* ne_socket.c (ne_sock_readline): Optimise to use socket read
1805	buffer directly, and use ->read (and ->readable) functions.
1806
1807Tue May 28 17:00:34 2002  Joe Orton  <joe@manyfish.co.uk>
1808
1809	* ne_session.c (ne_session_destroy): Don't free proxy.hostport,
1810	since it's no longer set.
1811
1812Sun May 26 19:11:46 2002  Joe Orton  <joe@manyfish.co.uk>
1813
1814	* ne_xml.c: #error if no expat header is configured; flatten
1815	nested #if's, include libxml/xmlversion.h if present.
1816
1817Sun May 26 19:09:04 2002  Joe Orton  <joe@manyfish.co.uk>
1818
1819	* ne_utils.c: Include libxml/xmlversion.h if present.
1820
1821Sun May 26 11:55:30 2002  Joe Orton  <joe@manyfish.co.uk>
1822
1823	* ne_session.c (set_hostport): Renamed from get_hostport: set
1824	host_info field directly; take defaultport argument.
1825	(set_hostinfo): Don't use get_hostport.
1826	(ne_session_create): Use set_hostinfo and set_hostport; pass
1827	in default port correctly for http:/https:.
1828
1829Thu May 23 19:44:44 2002  Joe Orton  <joe@manyfish.co.uk>
1830
1831	* ne_xml.c (resolve_nspace): Split out from parse_element.
1832	(ne_xml_get_attr): Take parser object, and optional
1833	namespace; resolve the namespace if necessary.
1834	(parse_element): Use resolve_nspace.
1835
1836	* ne_props.c (startelm): Use new ne_xml_get_attr interface.
1837
1838Wed May 22 22:29:05 2002  Joe Orton  <joe@manyfish.co.uk>
1839
1840	* ne_dates.c: Renamed HAVE_TM_GMTOFF to HAVE_STRUCT_TM_TM_GMTOFF
1841	from use of AC_CHECK_MEMBERS.
1842
1843Tue May 21 21:21:31 2002  Joe Orton  <joe@manyfish.co.uk>
1844
1845	* ne_redirect.c (ne_redirect_register): Drop confirm, notify,
1846	userdata arguments.
1847	(struct redirect): Drop most fields; add a uri structure.
1848	(auto_redirect): Removed function.
1849	(post_send): Remove functionality which retries a request with a
1850	different URI to automatically follow redirects.  Qualify the URI
1851	if non-absolute.
1852	(create): Remove now redundant code.
1853	(ne_redirect_location): Return an ne_uri object.
1854
1855Sun May 19 18:53:22 2002  Joe Orton  <joe@manyfish.co.uk>
1856
1857	* ne_session.c (ne_set_useragent): Use strcat/malloc/strcpy
1858	directly, rather than CONCAT2; allow compiler optimisations.
1859	(AGENT): Renamed from NEON_USERAGENT, append space.
1860
1861Sun May 19 17:31:43 2002  Joe Orton  <joe@manyfish.co.uk>
1862
1863	Move everything exported by ne_socket.h into ne_*/NE_* namespace;
1864	purge inappropriate and unused interfaces.  Renaming done by Olof
1865	Oberg.
1866
1867	* ne_socket.h:
1868
1869	(SOCK_FULL): Removed constant.
1870	(sock_call_progress, sock_transfer, sock_sendline,
1871	sock_send_string, sock_readfile_blocked): Removed functions.
1872
1873	(NE_SOCK_ERROR, NE_SOCK_TIMEOUT, NE_SOCK_CLOSED):
1874	Renamed constants.
1875
1876	(ne_progress, ne_block_reader): Renamed types.
1877
1878	(ne_register_progress, ne_sock_init, ne_sock_exit, ne_sock_read,
1879	ne_sock_peek, ne_sock_block, ne_sock_fullwrite, ne_sock_readline,
1880	ne_sock_connect, ne_sock_accept, ne_sock_fd, ne_sock_error,
1881	ne_sock_read_timeout, ne_name_lookup, ne_service_lookup,
1882	ne_sock_use_ssl, ne_sock_use_ssl_os): Renamed functions.
1883
1884	* ne_private.h, ne_request.c, ne_session.c: Update accordingly.
1885
1886	* ne_request.c (build_request): Return the ne_buffer pointer.
1887	(send_request): Remove redundant strlen(), use known buffer
1888	length.
1889
1890	* ne_request.h: Drop ne_block_reader definition.
1891
1892Sun May 19 13:32:12 2002  Joe Orton  <joe@manyfish.co.uk>
1893
1894	* ne_request.c (ne_get_session, ne_get_request): Take const
1895	request pointer.
1896
1897Sun May 19 13:21:17 2002  Joe Orton  <joe@manyfish.co.uk>
1898
1899	* ne_string.c (ne_buffer_ncreate): Renamed from
1900	ne_buffer_create_sized.
1901
1902	* ne_session.c (check_certificate, provide_client_cert): Update
1903	accordingly.
1904
1905	* ne_request.c (ne_request_create): Update accordingly.
1906
1907Sun May 19 13:12:14 2002  Joe Orton  <joe@manyfish.co.uk>
1908
1909	* ne_string.c (ne_token): Drop quotes parameter.
1910	(ne_qtoken): Split out from ne_token.
1911
1912	* ne_basic.c (dav_hdr_handler, ne_content_type_handler): Use
1913	ne_qtoken.
1914
1915	* ne_compress.c (find_token): Removed function.
1916	(gz_reader): Compare header value directly against "gzip",
1917	remove a stale comment.
1918
1919Sun May 19 09:45:28 2002  Joe Orton  <joe@manyfish.co.uk>
1920
1921	* ne_socket.h (sock_fullread): Return ssize_t; takes buflen as
1922	size_t.
1923	(sock_read, sock_peek): Fix prototypes to match actual definition.
1924
1925	* ne_socket.c (write_raw): Return ssize_t.
1926
1927Sat May 18 14:53:45 2002  Joe Orton  <joe@manyfish.co.uk>
1928
1929	* ne_string.h (ne_buffer): Remove separate struct ne_buffer_s
1930	definition.
1931
1932	* ne_string.c (ne_buffer_create_sized): Don't use struct
1933	ne_buffer_s.
1934
1935Sun May 12 11:33:02 2002  Joe Orton  <joe@manyfish.co.uk>
1936
1937	* ne_string.c (ne_base64): Moved from base64.c.
1938
1939	* base64.c, base64.h: Removed files.
1940
1941	* Makefile.in: Updated accordingly.
1942
1943	* ne_auth.c: Don't include base64.h.
1944
1945Sun May 12 11:26:05 2002  Joe Orton  <joe@manyfish.co.uk>
1946
1947	* ne_string.h (ne_utf8_decode, ne_utf8_encode): Removed functions.
1948
1949Sat May 11 15:42:24 2002  Joe Orton  <joe@manyfish.co.uk>
1950
1951	As part of patch from Olof Oberg <mill@pedgr571.sn.umu.se>:
1952
1953	* ne_request.h (ne_destroy_fn): Renamed from typo'ed
1954	ne_destory_fn.
1955
1956	* ne_request.c (ne_request_destroy, ne_hook_destroy_request,
1957	ne_hook_destroy_session): Update accordingly.
1958
1959	* ne_session.c (ne_session_destroy): Update accordingly.
1960
1961Thu May  9 21:44:15 2002  Joe Orton  <joe@manyfish.co.uk>
1962
1963	Major improvements to socket layer to incorporate socket read
1964	buffering and rewrite sock_readline, and add an abstraction layer
1965	to simplify SSL support.  Grunt work by Jeff Johnson
1966	<jbj@redhat.com>
1967
1968	* ne_socket.c (struct iofns): New type.
1969	(struct nsocket_s): Store 'ops' pointer to I/O functions in use
1970	for the socket.  Add buffer, bufpos, bufavail fields for read
1971	buffering.
1972	(sock_block, sock_read, sock_peek): Reimplement to add read
1973	buffer, simplify to use I/O functions abstraction.
1974	(readable_raw, read_raw, write_raw, readable_ossl, read_ossl,
1975	write_ossl): Factored out from sock_read/fullwrite, avoiding
1976	in-lined ifdefs.
1977	(sock_fullwrite): Just use ops->write.
1978	(sock_readline): Simplify greatly to exploit read-buffering, return
1979	ssize_t.
1980	(sock_fullread): Simplify, removing unnecessary local variables,
1981	return ssize_t.
1982	(create_sock, sock_enable_ssl_os): Set ops pointer.
1983
1984Wed May  8 11:54:48 2002  Joe Orton  <joe@manyfish.co.uk>
1985
1986	* ne_socket.c (sock_name_lookup): Avoid casts; use INADDR_NONE.
1987	[!INADDR_NONE]: Define to (unsigned long) -1.
1988
1989Wed May  1 22:19:18 2002  Joe Orton  <joe@manyfish.co.uk>
1990
1991	* ne_locks.h (ne_lock): Document that ->token and ->owner fields
1992	must be malloc-allocated if non-NULL.
1993
1994Wed May  1 22:15:41 2002  Joe Orton  <joe@manyfish.co.uk>
1995
1996	* ne_locks.c (get_ltoken_hdr): New function.
1997	(ne_lock): Correctly parse Coded-URL from Lock-Token response
1998	header.
1999
2000Wed May  1 22:03:08 2002  Joe Orton  <joe@manyfish.co.uk>
2001
2002	* ne_redirect.c (post_send): Adjust for ne_uri_parse handling of
2003	unspecified port.
2004
2005Wed May  1 22:00:50 2002  Joe Orton  <joe@manyfish.co.uk>
2006
2007	* ne_session.c (provide_client_cert): Fail if peer certificate not
2008	known when client cert requested.
2009
2010Wed May  1 21:58:35 2002  Joe Orton  <joe@manyfish.co.uk>
2011
2012	* ne_session.h (ne_ssl_provide_fn): Adjust callback typedef to
2013	return void.
2014
2015Wed May  1 21:52:40 2002  Joe Orton  <joe@manyfish.co.uk>
2016
2017	* ne_request.h: Remove NE_SERVERAUTH and NE_AUTHPROXY; fix
2018	NE_PROXYAUTH description.
2019
2020Wed May  1 21:32:54 2002  Joe Orton  <joe@manyfish.co.uk>
2021
2022	* ne_uri.c (ne_uri_parse): For consistency, port field is 0 if
2023	unspecified.
2024
2025Tue Apr 30 10:05:48 2002  Joe Orton  <joe@manyfish.co.uk>
2026
2027	* ne_string.c (shave_string): Removed function.
2028
2029Tue Apr 23 21:19:53 2002  Joe Orton  <joe@manyfish.co.uk>
2030
2031	* ne_props.c (start_propstat, startelm): Use ne_realloc not
2032	realloc (thanks to Jeff Johnson).
2033
2034Tue Apr 23 20:55:56 2002  Joe Orton  <joe@manyfish.co.uk>
2035
2036	* ne_xml.c: Include parser.h or libxml/parser.h, depending on
2037	which is found.
2038
2039Mon Apr 15 00:37:43 2002  Joe Orton  <joe@manyfish.co.uk>
2040
2041	* ne_request.c (build_request, send_request): Simplify logic.
2042
2043Sun Apr 14 16:59:50 2002  Joe Orton  <joe@manyfish.co.uk>
2044
2045	* ne_props.c: Remove unused accidental 'propstat' global.
2046	(struct propstat): Add r_phrase field.
2047	(end_propstat): Dup the reason_phrase string.
2048	(free_propset): Free the reason_phrase.  Avoid another possible
2049	free(NULL) call.
2050
2051Sun Apr 14 12:00:54 2002  Joe Orton  <joe@manyfish.co.uk>
2052
2053	* ne_basic.c (ne_content_type_handler): For text/* media types,
2054	use default charset of ISO-8859-1.
2055
2056Sat Apr 13 23:11:07 2002  Joe Orton  <joe@manyfish.co.uk>
2057
2058	* ne_utils.h: Include trio.h if NEON_TRIO is defined.
2059
2060Sun Apr  7 17:38:14 2002  Joe Orton  <joe@manyfish.co.uk>
2061
2062	* ne_request.c (read_response_headers): Don't zero-initialize hdr.
2063
2064Sun Apr  7 17:15:23 2002  Joe Orton  <joe@manyfish.co.uk>
2065
2066	* ne_request.c (read_response_headers): Ignore whitespace between
2067	header name and colon, simplify logic a little.
2068
2069Sun Apr  7 14:09:07 2002  Joe Orton  <joe@manyfish.co.uk>
2070
2071	* ne_session.c (ne_ssl_readable_dname): New function.
2072
2073Sun Apr  7 12:32:25 2002  Joe Orton  <joe@manyfish.co.uk>
2074
2075	* ne_string.c (ne_buffer_destroy): Remove redundant check for data
2076	pointer being NULL.
2077
2078Wed Apr  3 19:44:59 2002  Joe Orton  <joe@manyfish.co.uk>
2079
2080	Optimisation/simplification of header name hashing.
2081
2082	* ne_request.c (hash_and_lower): Renamed from hdr_hash; convert
2083	string to lower-case in-place too.
2084	(lower_string): Removed function.
2085	(ne_add_response_header_handler): Use hash_and_lower rather than
2086	lower_string.
2087	(HH_ITERATE): Change parameter name to 'ch'.
2088
2089Fri Mar 29 23:00:57 2002  Joe Orton  <joe@manyfish.co.uk>
2090
2091	* ne_uri.c (ne_uri_parse): Minor optimisation.
2092
2093Mon Mar 25 21:45:36 2002  Joe Orton  <joe@manyfish.co.uk>
2094
2095	Pass a lock context around during LOCK processing; search for the
2096	correct <activelock> element in the response body.
2097
2098	* ne_locks.c (ne_lock_create): Don't take a path argument.
2099	(ne_unlock): Constify lock parameter.
2100	(discover_results): Don't parse out href here...
2101	(ld_create): do it here instead; renamed from create_private.
2102	(lk_startelm): New function.
2103	(lk_endelm): Renamed from end_element_lock.
2104	(ne_lock): Require a Lock-Token response header; pass lock context
2105	to callbacks.  Copy lock back out.
2106
2107Mon Mar 25 21:35:42 2002  Joe Orton  <joe@manyfish.co.uk>
2108
2109	* ne_session.h (NE_SSL_FAILMASK): New constant.
2110	(NE_SSL_*): Shift right one bit.
2111
2112Mon Mar 25 21:21:18 2002  Joe Orton  <joe@manyfish.co.uk>
2113
2114	* ne_session.c (ne_close_connection): Return void.
2115
2116Mon Mar 25 20:09:33 2002  Joe Orton  <joe@manyfish.co.uk>
2117
2118	* ne_props.c (free_propset): Avoid free(NULL).
2119
2120Mon Mar 11 19:59:04 2002  Joe Orton  <joe@manyfish.co.uk>
2121
2122	* ne_locks.c (ne_lock_using_parent): Iterate over the lock list by
2123	hand: check for infinite depth locks with cover the parent too
2124	(fixing if_covered_child test).
2125
2126Mon Mar 11 19:25:44 2002  Joe Orton  <joe@manyfish.co.uk>
2127
2128	* ne_request.c (ne_request_dispatch): Move variable to scope in
2129	which is is used.
2130
2131Sun Mar 10 22:04:58 2002  Joe Orton  <joe@manyfish.co.uk>
2132
2133	* Makefile.in (NEON_BASEOBJS): Always build ne_compress.o.
2134
2135Sun Mar 10 22:01:54 2002  Joe Orton  <joe@manyfish.co.uk>
2136
2137	* ne_compress.c [!NEON_ZLIB] (ne_decompress_reader,
2138	ne_decompress_destroy): Add stubs.
2139
2140Sun Mar 10 21:42:11 2002  Joe Orton  <joe@manyfish.co.uk>
2141
2142	* ne_locks.c (struct discover_ctx): Store an ne_session pointer.
2143	(discover_results): If lock URI is not an absoluteURI, qualify it
2144	using the server host/port/scheme from the session.  Don't leak
2145	the lock object.
2146	(create_private): Simplify, use ne_lock_create.
2147
2148Thu Mar  7 20:08:07 2002  Joe Orton  <joe@manyfish.co.uk>
2149
2150	* ne_uri.c (ne_uri_defaultport): Fix default port number for https
2151	scheme.
2152
2153Wed Mar  6 21:22:23 2002  Joe Orton  <joe@manyfish.co.uk>
2154
2155	* ne_locks.c (lk_pre_send): Use an absoluteURI in the If: header.
2156
2157Wed Mar  6 21:15:00 2002  Joe Orton  <joe@manyfish.co.uk>
2158
2159	* ne_uri.c (ne_uri_unparse): New function.
2160
2161Tue Mar  5 22:57:00 2002  Joe Orton  <joe@manyfish.co.uk>
2162
2163	* ne_uri.c (ne_uri_cmp): Compare hostnames and schemes
2164	case-insensitively, and compare empty abspath and "/" as
2165	equivalent, as per RFC 2616.
2166
2167Tue Mar  5 20:53:54 2002  Joe Orton  <joe@manyfish.co.uk>
2168
2169	* ne_uri.c (ne_uri_defaultport): New function.
2170
2171Mon Mar  4 21:10:29 2002  Joe Orton  <joe@manyfish.co.uk>
2172
2173	* ne_uri.h (ne_uri): Renamed from struct uri.
2174
2175	* ne_uri.c (ne_path_parent): Renamed from uri_parent.
2176	(ne_path_has_trailing_slash): Renamed from uri_has_trailing_slash.
2177	(uri_abspath, uri_absolute): Removed.
2178	(ne_uri_parse): Renamed from uri_parse, don't take a 'defaults'
2179	parameter.
2180	(ne_uri_free): Renamed from uri_free.
2181	(ne_path_unescape): Renamed from uri_unescape.
2182	(ne_path_escape): Renamed from uri_abspath_escape.
2183	(ne_uri_cmp): Renamed from uri_cmp.
2184	(ne_path_compare): Renamed from uri_compare.
2185	(ne_path_childof): Renamed from uri_childof.
2186
2187	* ne_basic.c, ne_locks.c, ne_uri.c, ne_redirect.c, ne_session.c,
2188	ne_session.h: all callers changed.
2189
2190Mon Mar  4 01:03:23 2002  Joe Orton  <joe@manyfish.co.uk>
2191
2192	* ne_request.c (strip_eol): Fix potential segfault.
2193
2194Mon Mar  4 00:38:10 2002  Joe Orton  <joe@manyfish.co.uk>
2195
2196	* ne_locks.c (insert_lock): New function.
2197	(ne_lockstore_add, submit_lock): use insert_lock.
2198
2199Mon Mar  4 00:33:39 2002  Joe Orton  <joe@manyfish.co.uk>
2200
2201	* ne_locks.c (ne_lockstore_remove): Free list item.
2202
2203Mon Mar  4 00:31:08 2002  Joe Orton  <joe@manyfish.co.uk>
2204
2205	* ne_locks.c (free_list): Really destroy the lock.
2206	(ne_lock_free): Don't free the lock object itself.
2207
2208Mon Mar  4 00:17:18 2002  Joe Orton  <joe@manyfish.co.uk>
2209
2210	* ne_request.c (ne_request_destroy): Free accessor hook list.
2211
2212Sun Mar  3 20:35:09 2002  Joe Orton  <joe@manyfish.co.uk>
2213
2214	Changes to lock interface; replacing "lock session" with a lock
2215	store, which can be registered with an ne_session.  Lock objects
2216	now store URI as complete URI structure.
2217
2218	* ne_locks.h (struct ne_lock): Store URI as complete URI
2219	structure.  Remove next/prev fields.
2220	(ne_lock_store): New type.
2221
2222	* ne_locks.c (struct lock_list): New type.
2223	(struct ne_lock_store_s): Replaces ne_lock_session_s; store
2224	lock_list pointers for stored locks, cursor, and locks to
2225	submit.
2226	(ne_lock_create): New function.
2227	(lk_create): Renamed from create.
2228	(lk_pre_send): Renamed from pre_send; adjust for lock list
2229	type and to use URI path.
2230	(free_list): New function; split out from old 'destroy'.
2231	(lk_destroy): Renamed from destroy; use free_list.
2232	(ne_lockstore_create, ne_lockstore_destroy,
2233	ne_lockstore_first, ne_lockstore_next): New functions.
2234	(ne_lockstore_register): Most of old ne_lock_register.
2235	(submit_lock): Adjusted for lock_list type.
2236	(ne_lockstore_findbyuri): Renamed from ne_lock_find; use
2237	full URI structure.
2238	(ne_lock_using_resource, ne_lock_using_parent): Adjusted
2239	for lock_list/full URI changes.
2240	(ne_lock_iterate): Removed function.
2241	(ne_lockstore_add, ne_lockstore_remove): Renamed from
2242	ne_lock_add, ne_lock_copy; adjusted for lock_list/full URI.
2243	(ne_lock_copy): Adjusted for full URI.
2244	(ne_lock_create, ne_lock_destroy): New function.
2245	(ne_lock, ne_lock_refresh, ne_unlock): Adjusted for full URI.
2246
2247Sun Mar  3 15:23:40 2002  Joe Orton  <joe@manyfish.co.uk>
2248
2249	* ne_uri.c (uri_cmp): New function.
2250
2251Sun Mar  3 11:01:30 2002  Joe Orton  <joe@manyfish.co.uk>
2252
2253	* ne_session.c (ne_fill_server_uri): New function.
2254
2255Mon Feb 25 21:25:27 2002  Joe Orton  <joe@manyfish.co.uk>
2256
2257	* ne_utils.c (version_string): Add zlib version.
2258
2259Mon Feb 25 20:49:07 2002  Joe Orton  <joe@manyfish.co.uk>
2260
2261	* (everywhere): Replace use of snprintf, vsnprintf with
2262	ne_snprintf, ne_vsnprintf so that trio replacements are used when
2263	appropriate.
2264
2265	* ne_dates.h: Pick up ne_utils.h for ne_{v,}snprintf defines.
2266
2267Sun Feb 24 11:23:05 2002  Joe Orton  <joe@manyfish.co.uk>
2268
2269	* ne_utils.h: Define ne_snprintf, ne_vsnprintf for trio or
2270	non-trio builds.
2271
2272Sun Feb 24 11:20:42 2002  Joe Orton  <joe@manyfish.co.uk>
2273
2274	* Makefile.in (check-incl): Add target to check that each header
2275	file can be included standalone.
2276
2277Sun Feb 24 11:17:54 2002  Joe Orton  <joe@manyfish.co.uk>
2278
2279	* ne_xml.h: Add missing sys/types.h include.
2280
2281Sun Feb 24 11:12:22 2002  Joe Orton  <joe@manyfish.co.uk>
2282
2283	* ne_utils.h: Remove HTTP_QUOTES, HTTP_WHITESPACE globals.
2284
2285	* ne_cookies.c (set_cookie_hdl): Don't use HTTP_QUOTES,
2286	HTTP_WHITESPACE globals.
2287
2288Wed Feb 20 19:32:48 2002  Joe Orton  <joe@manyfish.co.uk>
2289
2290	* ne_request.c (set_sockerr, ne_set_request_body_fd,
2291	send_request): Use ne_set_error rather than accessing session
2292	error directly.
2293
2294Tue Feb 19 21:34:59 2002  Joe Orton  <joe@manyfish.co.uk>
2295
2296	* ne_utils.c (version_string) [NEON_SOCKS]: Mention SOCKSv5
2297	support.
2298
2299	* ne_socket.c (sock_init) [NEON_SOCKS]: Call SOCKSinit.
2300
2301Tue Feb 19 19:21:07 2002  Joe Orton  <joe@manyfish.co.uk>
2302
2303	* ne_request.c (open_connection): Remove notify_status call
2304	duplicated with ne_negotiate_ssl.
2305
2306Tue Feb 19 19:16:44 2002  Joe Orton  <joe@manyfish.co.uk>
2307
2308	* ne_socket.c (sock_get_version): Removed function.
2309
2310Tue Feb 19 19:12:52 2002  Joe Orton  <joe@manyfish.co.uk>
2311
2312	* ne_session.c (ne_ssl_provide_ccert): Moved outside ifdef
2313	NEON_SSL.
2314	[!NEON_SSL] (ne_ssl_load_pem, ne_ssl_load_pkcs12,
2315	ne_ssl_keypw_prompt): Added stubs.
2316
2317Sun Feb 17 21:15:34 2002  Joe Orton  <joe@manyfish.co.uk>
2318
2319	* ne_session.c (ne_session_create, ne_session_destroy): Only use
2320	the SSL context is SSL is being used for the session.
2321
2322Sun Feb 17 20:19:05 2002  Joe Orton  <joe@manyfish.co.uk>
2323
2324	Add back client certificate support, much improved.
2325
2326	* ne_private.h (struct ne_session_s): Add client cert/key fields,
2327	provider, privkey password callbacks.
2328
2329	* ne_socket.c (sock_init): Call PKCS12_PBE_add.
2330	(sock_enable_ssl_os): Add optional 'appdata' argument.
2331	(sock_enable_ssl): Adjust accordingly.
2332
2333	* ne_session.c (provide_client_cert, privkey_prompt,
2334	ne_ssl_keypw_prompt, ne_ssl_load_pkcs12, ne_ssl_load_pem,
2335	ne_ssl_provide_ccert): New functions.
2336	(ne_negotiate_ssl): Pass session as appdata to sock_enable_ssl_os.
2337
2338Sun Feb 17 12:32:34 2002  Joe Orton  <joe@manyfish.co.uk>
2339
2340	* ne_session.c (make_dname): New function.
2341	(check_certificate): Use make_dname.
2342
2343Sun Feb 17 11:29:10 2002  Joe Orton  <joe@manyfish.co.uk>
2344
2345	* ne_basic.c (struct get_context): Remove unused 'progress' field,
2346	add 'session' field.
2347	(get_to_fd, content_range_hdr_handler, clength_hdr_handler): Set
2348	session error directly.
2349	(clength_hdr_handler): Also fix check for expected range.
2350	(everywhere): Initialize session field, don't set session error;
2351	use NE_FMT_OFF_T to print off_t's rather than casting to long int.
2352
2353Sat Feb 16 23:24:10 2002  Joe Orton  <joe@manyfish.co.uk>
2354
2355	* ne_xml.h (NE_XML_STRIPWS): New element flag.
2356
2357	* ne_xml.c (start_element): Clear cdata buffer if not in mixed
2358	mode.  (char_data): Only strip leading whitespace if
2359	NE_XML_STRIPWS is set for the element.
2360
2361Sat Feb 16 14:52:59 2002  Joe Orton  <joe@manyfish.co.uk>
2362
2363	* ne_compress.c (enum state): New state NE_Z_AFTER_DATA.
2364	(struct ne_decompress_s): Add fields for storing and parsing
2365	stream footer; add checksum field for storing current crc.
2366	(process_footer): New function.
2367	(do_inflate): Compute checksum.  Switch to AFTER_DATA state and
2368	process footer after reading DEFLATE data.
2369	(gz_reader): Fail on trailing content.  Handle AFTER_DATA state.
2370	(ne_decompress_destroy): Return error if final state was not
2371	PASSTHROUGH, or FINISHED.
2372	(ne_decompress_reader): Initialize crc.
2373
2374Sat Feb 16 14:26:54 2002  Joe Orton  <joe@manyfish.co.uk>
2375
2376	* ne_compress.c (ne_decompress_destroy): Fix potential segfault
2377	with use-after-free.
2378
2379Thu Feb 14 16:50:40 2002  Joe Orton  <joe@manyfish.co.uk>
2380
2381	* ne_request.c (read_response_headers): Ignore header lines
2382	without a ':', rather than failing the request.
2383
2384Tue Feb 12 20:17:49 2002  Joe Orton  <joe@manyfish.co.uk>
2385
2386	* ne_request.c (read_response_block): Read chunk size as unsigned
2387	using strtoul; check that it fits within an unsigned int (and
2388	hence, probably a size_t).
2389
2390Tue Feb 12 20:15:13 2002  Joe Orton  <joe@manyfish.co.uk>
2391
2392	* ne_string.h (STRIP_EOL): Removed macro.
2393
2394Mon Feb 11 22:11:03 2002  Joe Orton  <joe@manyfish.co.uk>
2395
2396	* ne_session.c (match_hostname): Match fully-qualified hostnames
2397	against commonName with leading "*." wildcard.
2398
2399Mon Feb 11 20:47:28 2002  Joe Orton  <joe@manyfish.co.uk>
2400
2401	* ne_session.c (match_hostname): New function.
2402	(check_certificate): Use it.
2403
2404Sun Feb 10 00:50:49 2002  Joe Orton  <joe@manyfish.co.uk>
2405
2406	* ne_request.c (lookup_host): Set error string on lookup failure.
2407
2408Sun Feb 10 00:34:42 2002  Joe Orton  <joe@manyfish.co.uk>
2409
2410	* ne_request.c (strip_eol): New function; more efficient
2411	STRIP_EOL.
2412	(send_request): Use strip_eol.
2413	(read_message_header): Use strip_eol, simplify, remove redundant
2414	variables.
2415
2416Sat Feb  9 21:02:31 2002  Joe Orton  <joe@manyfish.co.uk>
2417
2418	* ne_session.c (ne_set_error): Drop STRIP_EOL call.
2419
2420Sat Feb  9 21:01:01 2002  Joe Orton  <joe@manyfish.co.uk>
2421
2422	* ne_session.c (ne_set_error): Take printf-style format string +
2423	varargs list.
2424
2425Sat Feb  9 16:15:09 2002  Joe Orton  <joe@manyfish.co.uk>
2426
2427	* ne_socket.h (SOCKET_READ_TIMEOUT): Moved to ne_socket.c.
2428
2429	* ne_socket.c (struct nsocket_s): Add rdtimeout field.
2430	(create_sock): Initialize rdtimeout to SOCKET_READ_TIMEOUT.
2431	(sock_read, sock_recv): Use ->rdtimeout field for read timeout.
2432	(sock_set_read_timeout): New function.
2433
2434	* ne_private.h (struct ne_session_s): Add rdtimeout field.
2435
2436	* ne_session.c (ne_set_read_timeout): New function.
2437
2438	* ne_request.c (init_socket): New function.
2439	(open_connection): Use init_socket.
2440
2441Sat Feb  9 15:11:59 2002  Joe Orton  <joe@manyfish.co.uk>
2442
2443	* ne_session.c (ne_session_destroy): Don't leak the server cert.
2444
2445Sat Feb  9 09:59:11 2002  Joe Orton  <joe@manyfish.co.uk>
2446
2447	* ne_session.c (check_certificate): Only call verification
2448	callback once per certificate; watch for the server cert
2449	changing and fail if it does.
2450
2451Wed Feb  6 20:28:27 2002  Joe Orton  <joe@manyfish.co.uk>
2452
2453	* ne_session.c (check_certificate): Only call verification
2454	callback if failures is non-zero.
2455	(ne_ssl_load_ca): Renamed from ne_ssl_add_ca.
2456	(ne_ssl_load_default_ca): New function.
2457
2458Wed Feb  6 20:21:29 2002  Joe Orton  <joe@manyfish.co.uk>
2459
2460	* ne_socket.c (sock_init): Cache and return result of
2461	initialization.
2462
2463Wed Feb  6 01:12:20 2002  Joe Orton  <joe@manyfish.co.uk>
2464
2465	* ne_session.c (check_certificate): Ignore cert validity errors
2466	from OpenSSL since these are duplicated.
2467
2468Wed Feb  6 01:08:57 2002  Joe Orton  <joe@manyfish.co.uk>
2469
2470	* ne_session.c (ne_negotiate_ssl): Fix for invalidating cached
2471	SSL_SESSION.
2472
2473Wed Feb  6 01:03:37 2002  Joe Orton  <joe@manyfish.co.uk>
2474
2475	* ne_session.c [!NEON_SSL] (STUB): New function.
2476	(ne_negotiate_ssl, ne_ssl_add_ca): Implement using STUB.
2477
2478Tue Feb  5 19:56:43 2002  Joe Orton  <joe@manyfish.co.uk>
2479
2480	* ne_session.h (ne_ssl_certificate): New type.
2481
2482	* ne_session.c (ne_session_create) [NEON_SSL]: Create the SSL_CTX
2483	structure.
2484	(ne_ssl_get_context): Return the SSL_CTX rather than setting it.
2485	(ne_session_destroy): Free the SSL_CTX.
2486
2487	(asn1time_to_string): Function moved in from sslcerts.c.
2488	(check_certificate): Use OpenSSL's internal validity result.
2489	Pass back an ne_ssl_certificate to the verification function;
2490	including validity dates.
2491	(ne_ssl_add_ca): New function, registers CA certs.
2492
2493Sat Feb  2 14:05:26 2002  Joe Orton  <joe@manyfish.co.uk>
2494
2495	* ne_socket.c (sock_enable_ssl_os): Take an optional SSL_SESSION
2496	argument.
2497
2498	* ne_private.h (struct ne_session_s): Add an SSL_SESSION field.
2499
2500	* ne_session.c (ne_negotiate_ssl): Pass stored SSL session to
2501	sock_enable_ssl_os, cache session after successful negotiation.
2502	(ne_session_destroy): Free cached session.
2503
2504Sat Feb  2 10:45:46 2002  Joe Orton  <joe@manyfish.co.uk>
2505
2506	* ne_socket.c, ne_utils.c: Globally replace ENABLE_SSL cpp symbol
2507	with NEON_SSL.
2508
2509Sat Feb  2 09:43:27 2002  Joe Orton  <joe@manyfish.co.uk>
2510
2511	* ne_session.c (check_certificate): Use 1K on-stack buffer.
2512
2513Sat Feb  2 08:27:08 2002  Joe Orton  <joe@manyfish.co.uk>
2514
2515	* ne_private.h (struct host_info): Add 'resolved' flag.
2516	(struct ne_session_s): Add scheme field, rename have_proxy to
2517	use_proxy, remove proxy_decider.
2518	(struct ne_request_s): Remove use_proxy field.
2519
2520	* ne_request.c (set_sockerr, ne_set_request_uri, build_request,
2521	open_connection): Use session->use_proxy field to determine
2522	whether proxy is used.
2523	(ne_request_create): Drop use of proxy_decider callback.
2524	(lookup_host): Moved here from ne_session.c.
2525	(ne_begin_request): Lookup server/proxy hostname if not already
2526	resolved.
2527
2528	* ne_session.c (ne_session_create): Moved within file; takes
2529	scheme, and server hostname, port as arguments.
2530	(ne_ssl_enable, ne_session_decide_proxy, ne_session_server):
2531	Removed functions.
2532	(ne_get_scheme): Simply return scheme field.
2533
2534Fri Feb  1 23:12:38 2002  Joe Orton  <joe@manyfish.co.uk>
2535
2536	* ne_request.c (add_fixed_headers): Remove last traces of TLS
2537	upgrade support.
2538
2539Thu Jan 31 20:50:12 2002  Joe Orton  <joe@manyfish.co.uk>
2540
2541	* ne_private.h (struct ne_session_s): Rename use_secure to
2542	use_ssl; removed nssl_context, added SSL_CTX, server cert, verify
2543	callback pointers.
2544
2545	* ne_request.c (send_request): Remove support for TLS upgrade.
2546	(open_connection): Use ne_negotiate_ssl; close socket properly if
2547	negotiation fails.
2548
2549	* ne_session.c (ne_session_destroy): Free SSL_CTX stored in
2550	session.
2551	(ne_ssl_set_context, ne_ssl_set_verify, verify_err, getx509field,
2552	check_context, ne_negotiate_ssl, ne_ssl_server_cert): New
2553	functions.
2554	(ne_set_secure_context, ne_set_request_secure_upgrade,
2555	ne_set_accept_secure_upgrade): Removed functions.
2556	(ne_ssl_enable): Renamed from ne_set_secure.
2557
2558	* ne_socket.c (struct nssl_context_s): Removed type.
2559	(sock_create_ssl_context, sock_destroy_ssl_context,
2560	sock_disable_*, key_prompt_cb, sock_set_key_prompt,
2561	sock_set_client_cert): Removed functions.
2562	(sock_enable_ssl_os): Renamed from sock_make_secure; take an
2563	SSL_CTX pointer, and optionally pass out the SSL structure.
2564	(sock_enable_ssl): New function.
2565
2566Wed Jan 30 19:47:42 2002  Joe Orton  <joe@manyfish.co.uk>
2567
2568	* ne_string.c (ne_buffer_concat, ne_buffer_zappend,
2569	ne_buffer_append, ne_buffer_grow): Don't return success value,
2570	presume universe ends at OOM.
2571
2572Sat Jan 26 10:57:42 2002  Joe Orton  <joe@manyfish.co.uk>
2573
2574	* ne_compress.c: Renamed enum state constants to have prefix
2575	NE_Z_, to avoid conflict with Windows headers (Branko �ibej).
2576
2577Mon Jan 14 20:26:31 2002  Joe Orton  <joe@manyfish.co.uk>
2578
2579	* ne_string.c (ne_concat): Removed function - it didn't work, and
2580	it wasn't used.
2581
2582Mon Jan 14 02:09:38 2002  Joe Orton  <joe@manyfish.co.uk>
2583
2584	* ne_basic.c (ne_content_type_handler): Parse charset parameter.
2585
2586Sun Jan 13 14:29:00 2002  Joe Orton  <joe@manyfish.co.uk>
2587
2588	* ne_basic.c (ne_content_type_handler): Remove trailing '/' from
2589	parsed type, fix search for parms separator (Greg Stein).
2590
2591Sun Jan 13 12:07:51 2002  Joe Orton  <joe@manyfish.co.uk>
2592
2593	* ne_207.c (ne_simple_request): Drop unused Content-Type handling.
2594
2595Thu Jan 10 00:39:17 2002  Joe Orton  <joe@manyfish.co.uk>
2596
2597	* ne_request.c (hdr_hash): Mark as inline.
2598
2599Tue Jan  8 22:03:42 2002  Joe Orton  <joe@manyfish.co.uk>
2600
2601	* ne_locks.c (add_timeout_header): New function.  (ne_lock,
2602	ne_lock_refresh): Send a Timeout header if lock->timeout is set.
2603
2604Mon Jan  7 21:48:38 2002  Joe Orton  <joe@manyfish.co.uk>
2605
2606	* ne_locks.c (parse_timeout): Fix parsing lock timeout (Arun
2607	Garg).
2608
2609Mon Dec 17 22:46:36 2001  Joe Orton  <joe@manyfish.co.uk>
2610
2611	* ne_private.h (struct ne_session_s): Make expect100_works a plain
2612	integer (rather than a bitfield).
2613
2614Sun Dec  9 14:04:27 2001  Joe Orton  <joe@manyfish.co.uk>
2615
2616	* ne_string.c (ne_buffer_grow, ne_buffer_create_sized): Don't
2617	zero-fill new memory.  (ne_buffer_concat): Zero terminate the
2618	string as _grow doesn't do it.
2619
2620Sun Dec  9 13:31:55 2001  Joe Orton  <joe@manyfish.co.uk>
2621
2622	* ne_string.c (ne_buffer_zappend): Minor optimisation; implement
2623	using ne_buffer_append.
2624
2625Sun Dec  9 13:18:35 2001  Joe Orton  <joe@manyfish.co.uk>
2626
2627	* ne_string.c (ne_buffer_concat): Optimise to use time O(n) [n ==
2628	total string length).
2629
2630Sun Dec  9 11:57:56 2001  Joe Orton  <joe@manyfish.co.uk>
2631
2632	* Makefile.in (NEON_DAVOBJS): Remove ne_acl.o.
2633
2634Sat Dec  8 01:11:30 2001  Joe Orton  <joe@manyfish.co.uk>
2635
2636	* ne_request.c (ne_pull_request_body): Use NE_FMT_SIZE_T in
2637	debugging message; cast size_t to int to avoid GCC warning for
2638	field size parameter.  (set_body_size): Use NE_FMT_SIZE_T.
2639
2640	* ne_xml.c (ne_xml_parse): Similarly.
2641
2642Mon Dec  3 19:56:07 2001  Joe Orton  <joe@manyfish.co.uk>
2643
2644	* ne_session.c (ne_session_destroy): Return void.
2645
2646Sat Dec  1 18:37:43 2001  Joe Orton  <joe@manyfish.co.uk>
2647
2648	* ne_auth.c (ah_create): Reset attempt counter
2649	here... (ah_post_send): ...rather than here.
2650
2651Tue Nov 27 21:26:01 2001  Joe Orton  <joe@manyfish.co.uk>
2652
2653	* ne_request.c (send_with_progress): Actually call the callback;
2654	fix for correct sock_fullwrite return codes.
2655
2656Tue Nov 27 20:20:40 2001  Joe Orton  <joe@manyfish.co.uk>
2657
2658	* ne_private.h (VERSION_PRE11): Define macro; as
2659	ne_version_pre_http11.
2660
2661	* ne_session.c (ne_version_pre_http11): Use VERSION_PRE11.
2662
2663	* ne_request.c (add_fixed_headers, build_request, ne_end_request):
2664	Use VERSION_PRE11.
2665
2666Sun Nov 18 19:32:56 2001  Joe Orton  <joe@manyfish.co.uk>
2667
2668	* ne_locks.c (discover_results): Check status is 2xx before
2669	invoking callback; pass NULL lock and non-NULL status pointer in
2670	failure cases.  (create_private): Initialize lock to some "value
2671	unspecified" defaults.
2672
2673Sun Nov 18 19:25:10 2001  Joe Orton  <joe@manyfish.co.uk>
2674
2675	* ne_auth.c (auth_session): Rename 'tries' field to 'attempt'.
2676	(get_credentials, ah_pre_send, ah_post_send): Increment attempt
2677	counter only when requesting credentials; reset it to zero when no
2678	auth failure is signaled.
2679
2680Sun Nov 18 15:49:00 2001  Joe Orton  <joe@manyfish.co.uk>
2681
2682	* ne_auth.h (ne_request_auth): Pass username and password as
2683	buffers of size NE_ABUFSIZ to callback.  Add 'attempt' argument.
2684
2685	* ne_auth.c (auth_session): Store username in buffer.
2686	(get_credentials, basic_challenge, digest_challenge): Updated for
2687	callback prototype changes.  (ah_post_send): Request credentials,
2688	and retry authentication until callback returns non-zero.
2689
2690Mon Nov 12 20:57:56 2001  Joe Orton  <joe@manyfish.co.uk>
2691
2692	* ne_basic.c (get_to_fd): Really cope with short writes (thanks to
2693	rado <dzusto@yahoo.com>).
2694
2695Sun Nov  4 15:09:03 2001  Joe Orton  <joe@manyfish.co.uk>
2696
2697	* ne_props.h: Define NE_ELM_PROPS_UNUSED for picking element ids
2698	for use with the propfind XML parser.
2699
2700Sat Nov  3 19:06:04 2001  Joe Orton  <joe@manyfish.co.uk>
2701
2702	* ne_props.c (NSPACE): New macro.  (set_body, pnamecmp, startelm,
2703	free_propset): Handle property having NULL nspace element in
2704	propfind code.
2705
2706Sun Oct 28 22:04:49 2001  Joe Orton  <joe@manyfish.co.uk>
2707
2708	* ne_xml.c (parse_element): Prevent false matches of found prefix
2709	"abcde" against stored prefix "abcdeFGH".  Compare
2710	case-sensitively.
2711
2712Fri Oct 26 20:28:03 2001  Joe Orton  <joe@manyfish.co.uk>
2713
2714	* ne_request.c (send_request): Fix case where persistent
2715	connection times out, and improve error handling.
2716
2717Thu Oct 25 20:42:24 2001  Joe Orton  <joe@manyfish.co.uk>
2718
2719	* ne_props.c (ne_proppatch): Really handle properties with a NULL
2720	namespace correctly; use the "D:" prefix for elements in the
2721	"DAV:" namespace; allow properties to have no namespace.
2722
2723Tue Oct 16 08:54:46 2001  Joe Orton  <joe@manyfish.co.uk>
2724
2725	* ne_xml.c (parse_element): Fail the parse if a namespace prefix
2726	definition is given with an empty value.
2727
2728Tue Oct 16 08:52:40 2001  Joe Orton  <joe@manyfish.co.uk>
2729
2730	* ne_props.h, ne_207.h: Move ne_propname definition into
2731	ne_props.h.
2732
2733Tue Oct 16 08:49:42 2001  Joe Orton  <joe@manyfish.co.uk>
2734
2735	* ne_props.c (ne_proppatch): Handle properties with a NULL nspace
2736	field correctly.
2737
2738Sun Oct  7 19:31:06 2001  Joe Orton  <joe@manyfish.co.uk>
2739
2740	* ne_acl.c (ne_acl_set) [USE_DAV_LOCKS]: Notify use of resource to
2741	locking code.
2742
2743Sun Oct  7 17:45:01 2001  Joe Orton  <joe@manyfish.co.uk>
2744
2745	* ne_acl.c, ne_acl.h: New files, contributed by Arun Garg
2746	<arung@pspl.co.in>.
2747
2748	* Makefile.in: Add ne_acl.* to build.
2749
2750Sun Oct  7 16:10:05 2001  Joe Orton  <joe@manyfish.co.uk>
2751
2752	* ne_private (struct ne_session_s): Add 'reqcount' field.
2753
2754	* ne_request.c (send_request): Refactor slightly; don't loop, but
2755	return NE_RETRY when appropriate.  Increment reqcount.
2756	(ne_begin_request): Loop if send_request returns NE_RETRY.
2757	(open_connection): Reset reqcount field.
2758
2759Tue Oct  2 21:11:39 2001  Joe Orton  <joe@manyfish.co.uk>
2760
2761	* ne_dates.c (GMTOFF): New macro.  (ne_iso8601_parse,
2762	ne_rfc1123_parse, ne_rfc1036_parse, ne_asctime_parse): Use new
2763	macro, fix up date handling on some platforms.
2764
2765Sat Sep 29 14:20:47 2001  Joe Orton  <joe@manyfish.co.uk>
2766
2767	* ne_compress.c (gz_reader): Fix tests 4 and 7: don't try to
2768	inflate after reading header if no bytes are left in the buffer.
2769
2770Sat Sep 29 14:04:11 2001  Joe Orton  <joe@manyfish.co.uk>
2771
2772	* ne_compress.c: Fix API; return an opaque object which must
2773	be destroyed later.
2774
2775	(ne_decompress_reader): Renamed from ne_gzip_response_body_reader.
2776	Doesn't need the session object passed in any more.
2777	(ne_decompress_destroy): Merge of co_destroy, co_post_end.
2778
2779Sat Sep 29 13:50:43 2001  Joe Orton  <joe@manyfish.co.uk>
2780
2781	* ne_request.c (ne_get_session): New function.
2782
2783Sat Sep 29 12:52:31 2001  Joe Orton  <joe@manyfish.co.uk>
2784
2785	* ne_compress.c (parse_header): Bail if flags are set to something
2786	unexpected.
2787
2788Sat Sep 29 11:15:30 2001  Joe Orton  <joe@manyfish.co.uk>
2789
2790	* ne_compress.c, ne_compress.h: New files.
2791
2792	* Makefile.in: Add deps for ne_compress.
2793
2794Thu Sep 27 09:05:24 2001  Joe Orton  <joe@manyfish.co.uk>
2795
2796	* ne_redirect.c: Adapted for new hooks interface.
2797
2798	* ne_cookies.c: Adapted for new hooks interface.
2799	(ne_cookie_register): New function.
2800
2801Thu Sep 27 09:01:03 2001  Joe Orton  <joe@manyfish.co.uk>
2802
2803	* ne_auth.c, ne_locks.c: Adapted for new hooks interface.  Store
2804	pointer to per-request object in the per-session object.
2805
2806Thu Sep 27 08:48:16 2001  Joe Orton  <joe@manyfish.co.uk>
2807
2808	Re-write hooks interface to register callbacks individually rather
2809	than as a block.  Inspired by the Apache 2.0/APR hooks interface.
2810
2811	* ne_private.h (struct hook): Store a callback, userdata, id.
2812	(struct hook_request): Removed.  (struct ne_session_s): Store
2813	hooks lists for create_req, pre_send, post_send, destroy_req,
2814	destroy_sess, accessor.  (struct ne_request_s): Store accessor
2815	hooks list.
2816
2817	* ne_request.c (ne_add_hooks): Removed.
2818	(ne_hook_create_request, ne_hook_pre_send, ne_hook_post_send,
2819	ne_hook_destroy_request, ne_hook_destroy_session,
2820	ne_hook_session_accessor, ne_hook_request_accessor,
2821	ne_null_accessor, call_access, add_hook): New functions.
2822	(ne_request_create, ne_request_destroy, build_request,
2823	ne_end_request): Adapt for new interface.
2824
2825	* ne_session.c (destroy_hooks): New function.
2826	(ne_session_destroy): Use it to destroy hooks lists appropriately.
2827
2828Tue Sep 25 07:46:32 2001  Joe Orton  <joe@manyfish.co.uk>
2829
2830	* ne_xml.c: Only decode UTF-8 for parsers other than libxml 1.x.
2831
2832Tue Sep 25 07:33:09 2001  Mo DeJong  <supermo@bayarea.net>
2833
2834	* src/ne_socket.c: Include <signal.h> instead of <sys/signal.h>.
2835	(sock_init): Only use signal() to ignore SIGPIPE if both
2836	HAVE_SIGNAL and HAVE_SIGPIPE are defined.
2837
2838Tue Sep 25 07:09:53 2001  Mo DeJong  <supermo@bayarea.net>
2839
2840	* ne_socket.c (sock_init): Declare local variables before invoking
2841	any instructions since that is not valid C code.
2842
2843Sun Sep 23 10:30:54 2001  Joe Orton  <joe@manyfish.co.uk>
2844
2845	* ne_auth.c (struct auth_challenge): Make members const.
2846	(clean_session): Free the realm string.  (basic_challenge,
2847	digest_challenge): strdup the realm string.  (request_digest):
2848	opaque is no longer stored quoted.  (tokenize): New function.
2849	(verify_response, auth_challenge): Rejig to use tokenize().
2850
2851Sat Sep 22 20:17:00 2001  Joe Orton  <joe@manyfish.co.uk>
2852
2853	* ne_string.c (ne_shave): Fix possible memory corruption when
2854	result should be the empty string.
2855
2856Thu Sep 20 21:27:57 2001  Joe Orton  <joe@manyfish.co.uk>
2857
2858	* ne_request.c (ne_pull_request_body): Add debugging dump of body
2859	blocks.
2860
2861Thu Sep 20 21:23:43 2001  Joe Orton  <joe@manyfish.co.uk>
2862
2863	* ne_private.h: Remove obsolete 'if_locks' member from struct
2864	ne_request_s.
2865
2866Tue Sep 18 23:35:30 2001  Joe Orton  <joe@manyfish.co.uk>
2867
2868	* ne_basic.c (ne_get_range): Handle write errors too.
2869
2870Tue Sep 18 22:14:49 2001  Joe Orton  <joe@manyfish.co.uk>
2871
2872	* ne_xml.h (ne_xml_validate_cb): Take userdata parameter.
2873
2874	* ne_xml.c (find_handler): Pass validate callback the handler's
2875	userdata.
2876
2877	* ne_207.c, ne_props.c, ne_locks.c: All users changed.
2878
2879Tue Sep 18 21:49:14 2001  Joe Orton  <joe@manyfish.co.uk>
2880
2881	* ne_locks.c (ne_lock_refresh): New function.
2882
2883Tue Sep 18 21:17:29 2001  Joe Orton  <joe@manyfish.co.uk>
2884
2885	* ne_basic.c (copy_or_move): Take a depth parameter, add depth
2886	header, for COPY requests.  (ne_copy): Take depth parameter, pass
2887	through.  (ne_move): Adjusted accordingly.
2888
2889Mon Sep 17 23:29:58 2001  Joe Orton  <joe@manyfish.co.uk>
2890
2891	* ne_utils.c (ne_debug_init): Set debug stream to be unbuffered if
2892	setvbuf() is available.
2893
2894Mon Aug 27 00:36:37 2001  Joe Orton  <joe@manyfish.co.uk>
2895
2896	* ne_207.c (start_element, end_element): Remember when context is
2897	valid for a <propstat>, and only invoke callback then.
2898
2899Sun Aug 26 22:30:39 2001  Joe Orton  <joe@manyfish.co.uk>
2900
2901	* ne_basic.c (ne_get_range): Better error handling.  Cope with
2902	Apache's 416 problem.
2903
2904Sun Aug 26 18:58:47 2001  Joe Orton  <joe@manyfish.co.uk>
2905
2906	* ne_auth.c: Store unquoted challenge parameters in session
2907	object, prevent having to unquote/free them >1 times.
2908
2909Sun Aug 26 18:57:51 2001  Joe Orton  <joe@manyfish.co.uk>
2910
2911	* ne_socket.c (sock_init): Do nothing on any calls after first.
2912
2913Sun Aug 26 12:45:04 2001  Joe Orton  <joe@manyfish.co.uk>
2914
2915	* ne_basic.c (server_hdr_handler): Remove function. (ne_options):
2916	Don't add server_hdr_handler.
2917
2918Tue Jul 17 11:25:06 2001  Joe Orton  <joe@manyfish.co.uk>
2919
2920	* ne_socket.c (sock_init): Set signal dispostion for SIGPIPE to
2921	ignore.
2922
2923Sat Jun 30 12:11:44 2001  Joe Orton  <joe@manyfish.co.uk>
2924
2925	* ne_utils.c (ne_supports_ssl): New function.
2926
2927Tue Jun 19 21:57:49 2001  Joe Orton  <joe@manyfish.co.uk>
2928
2929	* ne_dates.c (ne_iso8601_parse): Fix month off-by-one bug, use
2930	separate vars for offsets.  (ne_rfc1036_parse): Fix Y2K bug,
2931	parsing problem.
2932
2933Tue Jun 19 21:57:42 2001  Joe Orton  <joe@manyfish.co.uk>
2934
2935	* ne_dates.c (ne_iso8601_parse): New function.
2936
2937Sun Jun 10 15:39:40 2001  Joe Orton  <joe@manyfish.co.uk>
2938
2939	* ne_request.c (send_with_progress): New function.
2940	(send_request_body): Use send_with_progress to trigger progress
2941	callbacks if necessary.
2942
2943Sat Jun  9 15:42:33 2001  Joe Orton  <joe@manyfish.co.uk>
2944
2945	* ne_string.h: Bring back NE_ASC2HEX/HEX2ASC.
2946
2947	* ne_md5.c: Use them.
2948
2949Sat Jun  9 15:42:08 2001  Joe Orton  <joe@manyfish.co.uk>
2950
2951	* ne_xml.h: Include ne_defs.h.
2952
2953Fri Jun  8 23:02:49 2001  Joe Orton  <joe@manyfish.co.uk>
2954
2955	* ne_socket.h, ne_socket.c: Update for includes (Mo DeJong).
2956
2957Fri Jun  8 21:34:00 2001  Joe Orton  <joe@manyfish.co.uk>
2958
2959	* ne_basic.c (dav_hdr_handler): Use ne_token.
2960
2961Sat Jun  2 14:37:07 2001  Joe Orton  <joe@manyfish.co.uk>
2962
2963	* ne_private.h: Renamed from http_private.h.
2964
2965Sat Jun  2 14:35:23 2001  Joe Orton  <joe@manyfish.co.uk>
2966
2967	* ne_auth.c, ne_auth.h: Renamed from http_auth.c, ne_auth.h.
2968
2969Sat Jun  2 14:35:02 2001  Joe Orton  <joe@manyfish.co.uk>
2970
2971	* ne_cookies.c, ne_cookies.h: Renamed from http_cookies.c,
2972	http_cookies.h.
2973
2974Sat Jun  2 14:34:51 2001  Joe Orton  <joe@manyfish.co.uk>
2975
2976	* ne_dates.c, ne_dates.h: Renamed from dates.c, dates.h
2977
2978Sat Jun  2 14:22:49 2001  Joe Orton  <joe@manyfish.co.uk>
2979
2980	* ne_redirect.c, ne_redirect.h: Renamed from http_redirect.c,
2981	http_redirec.h. Big rename... s/http_/ne_g/
2982
2983Sat Jun  2 12:54:51 2001  Joe Orton  <joe@manyfish.co.uk>
2984
2985	* ne_md5.c (md5_process_block): Fix for word alignment issue on
2986	Sparc from Kai Sommerfeld.
2987
2988Wed May 30 23:15:31 2001  Joe Orton  <joe@manyfish.co.uk>
2989
2990	* ne_basic.c (ne_put, ne_get, ne_put_if_unmodified, ne_get_range,
2991	ne_post): Take an integer fd rather than FILE * stream.
2992	(get_to_fd): Write to fd rather than stream.
2993
2994Wed May 30 23:08:55 2001  Joe Orton  <joe@manyfish.co.uk>
2995
2996	* ne_i18n.h, ne_i18n.c: Renamed from neon_i18n.h, neon_i18n.c.
2997
2998	* *.c: All changed accordingly.
2999
3000Wed May 30 23:02:47 2001  Joe Orton  <joe@manyfish.co.uk>
3001
3002	* ne_defs.h: Renamed from neon_defs.h.
3003
3004	* *.h: All changed accordingly.
3005
3006Wed May 30 22:58:57 2001  Joe Orton  <joe@manyfish.co.uk>
3007
3008	* ne_md5.c, ne_md5.h: Renamed from md5.c, neon_md5.h
3009
3010Wed May 30 22:55:19 2001  Joe Orton  <joe@manyfish.co.uk>
3011
3012	* ne_utils.h: In-line ne_debug for GCC which can cope with varargs
3013	preprocessor macros.
3014
3015Wed May 30 00:43:05 2001  Joe Orton  <joe@manyfish.co.uk>
3016
3017	* http_auth.c (ah_use_body): Removed function.  (digest_body): New
3018	function.  (request_digest): Use ne_pull_request_body to find the
3019	MD5 digest of the request body, when necessary.
3020
3021Wed May 30 00:30:52 2001  Joe Orton  <joe@manyfish.co.uk>
3022
3023	* http_redirect.c: Store Request-URI, session pointer, and method
3024	string in redirect object.  Avoid looking inside
3025	ne_request/ne_session internals.
3026
3027Wed May 30 00:04:30 2001  Joe Orton  <joe@manyfish.co.uk>
3028
3029	* ne_request.c: Re-implement request body handling in terms of a
3030	callback which provides the request body blocks on demand.  Remove
3031	'use_body' hook, in favour of the hooks calling
3032	ne_pull_request_body when necessary.  (ne_pull_request_body,
3033	body_fd_send, body_string_send): New functions.
3034	(send_request_body): Re-implemented using ne_pull_request_body.
3035	(run_set_body_hooks): Removed function.  (ne_set_request_body_fd):
3036	Replacement for ne_set_request_body_stream, using a raw fd rather
3037	than a FILE *.
3038
3039Tue May 29 22:39:39 2001  Joe Orton  <joe@manyfish.co.uk>
3040
3041	* dav_basic.h, dav_basic.h: Removed.
3042
3043Tue May 29 22:38:54 2001  Joe Orton  <joe@manyfish.co.uk>
3044
3045	* ne_207.c (ne_simple_request, etc): Copied in from dav_basic.c.
3046
3047Tue May 29 22:12:23 2001  Joe Orton  <joe@manyfish.co.uk>
3048
3049	* ne_locks.c, ne_locks.h, ne_props.c, ne_props.h, ne_207.c,
3050	ne_207.h: Big rename. dav_* -> ne_*, and so on.
3051
3052Tue May 29 22:06:24 2001  Joe Orton  <joe@manyfish.co.uk>
3053
3054	* ne_basic.c (ne_add_depth_header): Moved from dav_basic.c.
3055
3056Tue May 29 21:55:30 2001  Joe Orton  <joe@manyfish.co.uk>
3057
3058	* ne_props.c, ne_props.h: Renamed from dav_props.c, dav_props.h.
3059
3060Tue May 29 21:43:15 2001  Joe Orton  <joe@manyfish.co.uk>
3061
3062	* ne_207.c, ne_207.h: Renamed from dav_207.c, dav_207.h.
3063
3064Tue May 29 21:22:25 2001  Joe Orton  <joe@manyfish.co.uk>
3065
3066	* ne_locks.c, ne_locks.h: Renamed from dav_locks.c, dav_locks.h.
3067
3068Tue May 29 21:21:44 2001  Joe Orton  <joe@manyfish.co.uk>
3069
3070	* ne_socket.c (sock_fullwrite): Cast return value of SSL_write to
3071	size_t to prevent comparison of signed with unsigned.
3072
3073Tue May 29 21:05:27 2001  Joe Orton  <joe@manyfish.co.uk>
3074
3075	* ne_basic.c [!NEON_NODAV]: Move ne_copy, ne_mkcol, ne_move,
3076	ne_delete in here.
3077
3078Tue May 29 20:12:50 2001  Joe Orton  <joe@manyfish.co.uk>
3079
3080	* ne_uri.c, ne_uri.h: Renamed from uri.c, uri.h.
3081
3082Tue May 29 19:17:09 2001  Joe Orton  <joe@manyfish.co.uk>
3083
3084	* ne_socket.c, ne_socket.h: Renamed from socket.c, nsocket.h.
3085
3086Tue May 29 18:58:51 2001  Joe Orton  <joe@manyfish.co.uk>
3087
3088	* ne_basic.c (ne_mkcol, ne_copy, ne_move, ne_delete): Renamed from
3089	dav_*.
3090
3091Tue May 29 17:58:09 2001  Joe Orton  <joe@manyfish.co.uk>
3092
3093	* ne_basic.c (copy_or_move, dav_copy, dav_move, dav_delete,
3094	dav_mkcol): Copied in from dav_basic.c.
3095
3096Tue May 29 17:55:33 2001  Joe Orton  <joe@manyfish.co.uk>
3097
3098	* ne_basic.c, ne_basic.h: Renamed from http_basic.c, http_basic.h.
3099
3100Tue May 29 17:47:50 2001  Joe Orton  <joe@manyfish.co.uk>
3101
3102	* http_auth.c (ah_create, ah_pre_send): Add the response body
3103	handler in pre_send, and only if qop=auth-int.
3104
3105Wed May 16 20:54:51 2001  Joe Orton  <joe@manyfish.co.uk>
3106
3107	* ne_request.c (ne_get_request_headers): Removed function.
3108
3109Sat May 12 18:48:46 2001  Joe Orton  <joe@manyfish.co.uk>
3110
3111	* ne_request.c (read_message_header, read_response_headers): Use a
3112	fixed-size char * buffer argument rather than an ne_buffer.
3113	Append directly to it when header-folding.
3114
3115Mon May  7 10:42:38 2001  Joe Orton  <joe@manyfish.co.uk>
3116
3117	* ne_string.c (ne_token): Use an optimized search (strchr) if
3118	quotes is NULL.
3119
3120Mon May  7 01:33:48 2001  Joe Orton  <joe@manyfish.co.uk>
3121
3122	* http_auth.c (basic_challenge, get_cnonce): Updated for ne_base64
3123	change.
3124
3125Mon May  7 01:32:22 2001  Joe Orton  <joe@manyfish.co.uk>
3126
3127	* base64.c (ne_base64): Take length parameter.  [BASE64_TEST]
3128	(main): Remove function, obsoleted by test code.
3129
3130Wed May  2 12:06:59 2001  Joe Orton  <joe@manyfish.co.uk>
3131
3132	* ne_string.c, ne_string.h (ne_token, ne_shave): New functions,
3133	destined to replace split_string, shave_string, etc.
3134
3135	* ne_string.c [SPLIT_STRING_TEST, PAIR_STRING_TEST] (main): Remove
3136	tests, functions are obsolete.
3137
3138Tue May  1 22:14:14 2001  Joe Orton  <joe@manyfish.co.uk>
3139
3140	* dates.c (ne_httpdate_parse): Moved from ne_utils.c.
3141
3142Tue May  1 21:55:45 2001  Joe Orton  <joe@manyfish.co.uk>
3143
3144	* ne_utils.c, ne_utils.h: Renamed from http_utils.c, http_utils.h.
3145	Big rename.  http_* -> ne_*. neon_* -> ne_*. DEBUG() ->
3146	NE_DEBUG().  DEBUG_* -> NE_DBG_*.
3147
3148Tue May  1 21:35:10 2001  Joe Orton  <joe@manyfish.co.uk>
3149
3150	* ne_request.c: Updated for ne_buffer changes.
3151
3152Tue May  1 21:28:58 2001  Joe Orton  <joe@manyfish.co.uk>
3153
3154	* ne_string.h (ne_buffer_size): Implement as macro.
3155
3156	* ne_string.c (ne_buffer_size): Remove function.
3157
3158Tue May  1 21:23:47 2001  Joe Orton  <joe@manyfish.co.uk>
3159
3160	* ne_string.c, ne_string.h: Make ne_buffer a transparent type, and
3161	no longer be an implicit pointer type.  (ne_buffer_*): All
3162	changed.  (ne_buffer_data, NE_BUFFER_CAST): Removed.
3163
3164Tue May  1 21:17:40 2001  Joe Orton  <joe@manyfish.co.uk>
3165
3166	* ne_string.c, ne_string.h: Renamed sbuffer -> ne_buffer.
3167	Implicit pointer removed ne_buffer type.
3168
3169Tue May  1 21:12:15 2001  Joe Orton  <joe@manyfish.co.uk>
3170
3171	* ne_string.c, ne_string.h: Renamed from string_utils.c,
3172	string_utils.h (CVS copy'n'delete).
3173
3174Tue May  1 20:49:46 2001  Joe Orton  <joe@manyfish.co.uk>
3175
3176	* md5.c (ASC2HEX, HEX2ASC): Moved here from string_utils.h.
3177
3178	* string_utils.h: As above.
3179
3180Tue May  1 20:47:20 2001  Joe Orton  <joe@manyfish.co.uk>
3181
3182	* http_request.c, http_request.h: Removed files.
3183
3184	* ne_request.c, ne_request.h: Copied from old http_request.[ch].
3185	Renamed http_* -> ne_*.
3186
3187Tue May  1 20:43:11 2001  Joe Orton  <joe@manyfish.co.uk>
3188
3189	* hip_xml.c renamed to ne_xml.c, hip_xml.h renamed to ne_xml.h:
3190	CVS repository copy'n'delete.
3191
3192Tue May  1 20:41:03 2001  Joe Orton  <joe@manyfish.co.uk>
3193
3194	* hip_xml.c, hip_xml.h: Big rename. hip_xml_* -> ne_xml_*.
3195
3196Tue May  1 20:37:13 2001  Joe Orton  <joe@manyfish.co.uk>
3197
3198	* http_basic.c, http_basic.h: Big rename. http_* -> ne_*.
3199
3200Tue May  1 19:59:01 2001  Joe Orton  <joe@manyfish.co.uk>
3201
3202	* ne_session.c: Renamed http_* to ne_*.
3203
3204Tue May  1 19:55:47 2001  Joe Orton  <joe@manyfish.co.uk>
3205
3206	* ne_alloc.h (NE_FREE): Renamed from HTTP_FREE() in http_utils.h
3207
3208Tue May  1 19:54:42 2001  Joe Orton  <joe@manyfish.co.uk>
3209
3210	* socket.c (sock_make_secure): Set SSL_MODE_AUTO_RETRY when
3211	available.
3212
3213Mon Apr 30 00:36:34 2001  Joe Orton  <joe@manyfish.co.uk>
3214
3215	* ne_session.[ch]: New files, split down from http_request.[ch].
3216
3217Sun Apr 29 15:02:23 2001  Joe Orton  <joe@manyfish.co.uk>
3218
3219	* uri.c [URITEST] (main): Remove, obsoleted by new test suite.
3220
3221Sun Apr 29 15:01:30 2001  Joe Orton  <joe@manyfish.co.uk>
3222
3223	* uri.c (uri_has_trailing_slash): Return false if uri is "".
3224
3225Sun Apr 29 13:53:41 2001  Joe Orton  <joe@manyfish.co.uk>
3226
3227	* dates.c (ne_asctime_parse, ne_rfc1123_date, ne_rfc1036_parse):
3228	Set tm_isdst to -1 in struct tm.
3229
3230Sun Apr 29 13:28:26 2001  Joe Orton  <joe@manyfish.co.uk>
3231
3232	* http_utils.c (http_parse_statusline): Skip leading whitespace.
3233	(Johan Lindh).  (http_parse_statusline): Ensure status-code is not
3234	more than three digits.
3235
3236Sun Apr 29 13:26:47 2001  Joe Orton  <joe@manyfish.co.uk>
3237
3238	* http_request.c (build_request): Don't add "Content-Length: 0"
3239	header if no body: Squid 2.3-STABLE1 doesn't like this.
3240
3241Sun Apr 29 13:25:16 2001  Joe Orton  <joe@manyfish.co.uk>
3242
3243	* http_auth.c (everywhere): Renamed md5_* -> ne_md5_*.
3244
3245Sun Apr 29 13:24:12 2001  Joe Orton  <joe@manyfish.co.uk>
3246
3247	* md5.c: Renamed md5_* -> ne_md5_*.  (ne_ascii_to_md5,
3248	ne_md5_to_ascii): Moved from string_utils.c.
3249
3250Thu Apr 26 22:39:05 2001  Joe Orton  <joe@manyfish.co.uk>
3251
3252	* uri.c (uri_parse): A zero-length URI is invalid.
3253
3254Wed Apr 25 23:11:51 2001  Joe Orton  <joe@manyfish.co.uk>
3255
3256	* dav_props.c (startelm): Check for xml:lang attribute and store
3257	as prop->lang.  (dav_propset_lang): New function.  (free_propset):
3258	Free lang.
3259
3260Wed Apr 25 23:08:52 2001  Joe Orton  <joe@manyfish.co.uk>
3261
3262	* hip_xml.c (hip_xml_get_attr): New function.
3263
3264Sun Apr 22 21:48:06 2001  Joe Orton  <joe@manyfish.co.uk>
3265
3266	* uri.c (uri_parse): Skip a userinfo@ segment if present (Johan
3267	Lindh <johan@link-Data.com>).
3268
3269Wed Apr 18 13:29:46 2001  Joe Orton  <joe@manyfish.co.uk>
3270
3271	* dav_locks.c (dav_lock_copy): Allow owner to be NULL.
3272
3273Tue Apr 17 22:57:50 2001  Joe Orton  <joe@manyfish.co.uk>
3274
3275	* ne_alloc.h, dav_locks.h: Add C++ inclusion safety.
3276
3277Tue Apr 17 22:56:50 2001  Joe Orton  <joe@manyfish.co.uk>
3278
3279	* uri.c (uri_parse): Correctly handle URIs with no scheme or
3280	hostport segments (i.e. just a path).
3281
3282Tue Apr 10 00:29:25 2001  Joe Orton  <joe@manyfish.co.uk>
3283
3284	* socket.c [HAVE_SOCKS_H]: Include socks.h for SOCKSv5 support.
3285
3286Wed Apr  4 21:41:47 2001  Joe Orton  <joe@manyfish.co.uk>
3287
3288	* http_utils.h [WIN32]: Define ssize_t (Kai).
3289
3290Tue Apr  3 21:03:28 2001  Joe Orton  <joe@manyfish.co.uk>
3291
3292	* dav_locks.c (dav_lock_discover): Cope with below API change.
3293
3294Tue Apr  3 20:43:50 2001  Joe Orton  <joe@manyfish.co.uk>
3295
3296	* dav_props.c (propfind): Register the flat element handler here,
3297	to pick up *any* properties and store them as 'flat' if they are
3298	not handled by a handler further down the stack.  (make_elms,
3299	free_elms, dav_propfind_set_flat, dav_propfind_set_complex):
3300	Removed functions.  (dav_propfind_named): Take the list of
3301	property names, and call set_body here.
3302	(dav_propfind_set_private): New function.
3303
3304Tue Apr  3 09:33:09 2001  Joe Orton  <joe@manyfish.co.uk>
3305
3306	* http_auth.h: Added C++ inclusion safety. (Kai Sommerfeld)
3307
3308Mon Apr  2 02:39:18 2001  Joe Orton  <joe@manyfish.co.uk>
3309
3310	* hip_xml.c (sax_error): Add parse error callback for libxml.
3311
3312Mon Apr  2 02:23:06 2001  Joe Orton  <joe@manyfish.co.uk>
3313
3314	* http_redirect.c (post_send): Clean up and fix logic.  Only check
3315	for confirmation for same-server redirects.
3316
3317Mon Apr  2 02:13:48 2001  Joe Orton  <joe@manyfish.co.uk>
3318
3319	* http_redirect.c (http_redirect_location): New function.
3320	(destroy): Removed function.  (create): Free location.
3321	(post_send): Only call notify callback for followed redirects.
3322
3323Mon Apr  2 01:55:27 2001  Joe Orton  <joe@manyfish.co.uk>
3324
3325	* http_request.c (http_set_request_uri): Allow using the '*' URI
3326	even when using a proxy server.
3327
3328Mon Apr  2 01:32:06 2001  Joe Orton  <joe@manyfish.co.uk>
3329
3330	* http_redirect.c (post_send): Give up on trying to follow a
3331	redirect to another server.  Return HTTP_REDIRECT on such a
3332	redirect.
3333
3334	* http_redirect.c (post_send): Fix leaks of URI object (Kai
3335	Sommerfeld).
3336
3337Mon Apr  2 01:08:33 2001  Joe Orton  <joe@manyfish.co.uk>
3338
3339	* http_request.c (read_response_headers): Don't read more than 100
3340	response headers.
3341
3342Mon Apr  2 00:54:43 2001  Joe Orton  <joe@manyfish.co.uk>
3343
3344	* http_request.c (http_request_dispatch): Remove mapping of auth
3345	status codes to return values, the hook does it now.
3346
3347Mon Apr  2 00:53:20 2001  Joe Orton  <joe@manyfish.co.uk>
3348
3349	* http_request.c (http_set_request_uri): New function, split out
3350	from http_request_create. (http_request_create): Use it.
3351
3352Mon Apr  2 00:51:23 2001  Joe Orton  <joe@manyfish.co.uk>
3353
3354	* http_auth.c (http_set_proxy_auth, http_set_server_auth): Add
3355	failure codes.  (ah_post_send): Return failure code if
3356	authentication fails.
3357
3358Mon Apr  2 00:19:17 2001  Joe Orton  <joe@manyfish.co.uk>
3359
3360	* http_utils.c: Pick up xmlversion.h from libxml2.
3361	(neon_version_string): Include libxml2 version string if defined.
3362
3363Sun Apr  1 21:40:00 2001  Joe Orton  <joe@manyfish.co.uk>
3364
3365	* http_basic.c (http_get_range): Fix total length
3366	calculation. (Johan Lindh <johan@linkdata.se>).
3367	(clength_hdr_handler): Use range->total.
3368
3369Sun Apr  1 21:26:09 2001  Joe Orton  <joe@manyfish.co.uk>
3370
3371	* hip_xml.c: Add expat2 support (Sam TH <sam@uchicago.edu>).
3372
3373Sun Apr  1 21:07:19 2001  Joe Orton  <joe@manyfish.co.uk>
3374
3375	* string_utils.h (CONCAT2, CONCAT3, CONCAT4): Use ne_malloc.
3376
3377Sun Apr  1 20:59:09 2001  Joe Orton  <joe@manyfish.co.uk>
3378
3379	* dav_props.c (propfind, dav_proppatch): As below.
3380
3381Sun Apr  1 20:32:29 2001  Joe Orton  <joe@manyfish.co.uk>
3382
3383	* http_basic.c (http_post): Changed as per
3384	http_set_request_body_buffer change.
3385
3386	* dav_locks.c (dav_lock): Likewise.
3387
3388Sun Apr  1 20:31:06 2001  Joe Orton  <joe@manyfish.co.uk>
3389
3390	* http_request.c (http_set_request_body_buffer): Pass in size
3391	parameter too.  (send_request_body): Use sized rather than
3392	NUL-terminated buffer.
3393
3394Sun Apr  1 20:12:51 2001  Joe Orton  <joe@manyfish.co.uk>
3395
3396	* http_private.h: Added 'body_callback' request body type, and
3397	body_cb, body_ud fields to http_req.
3398
3399	* http_request.c (http_set_request_body_provider): New function.
3400	(set_body_size): New function, factored out from old
3401	http_set_request_body_*.  (http_set_request_body_stream,
3402	http_set_request_body_buffer): Use it.
3403
3404Sun Apr  1 19:56:17 2001  Joe Orton  <joe@manyfish.co.uk>
3405
3406	* dav_props.c: Replaced 'uri' and 'depth' fields in propfind
3407	handler object with an 'http_req' pointer.  (dav_propfind_create):
3408	Create the request object here, and set the depth header.
3409	(propfind): Changed accordingly.  (dav_propfind_destroy): Destroy
3410	request object too.
3411
3412	* dav_props.c (dav_propfind_get_request): New function.
3413
3414Fri Mar 30 16:50:51 2001  Joe Orton  <joe@manyfish.co.uk>
3415
3416	* hip_xml.c (start_element): Quote attributes in collect (Kai
3417	Sommerfeld).
3418
3419Fri Mar 30 16:36:08 2001  Joe Orton  <joe@manyfish.co.uk>
3420
3421	* http_basic.c (http_put_if_unmodified): Changed as below.
3422
3423Thu Mar 22 14:05:52 2001  Joe Orton  <joe@manyfish.co.uk>
3424
3425	* http_utils.c (http_dateparse): Changed as below.
3426
3427	* http_auth.c (get_conce, basic_challenge): Likewise.
3428
3429Thu Mar 22 14:04:54 2001  Joe Orton  <joe@manyfish.co.uk>
3430
3431	* dates.c (ne_rfc1123_date, ne_rfc1123_date, ne_asctime_parse,
3432	ne_rfc1036_parse): Added ne_ prefix.
3433
3434Thu Mar 22 14:03:12 2001  Joe Orton  <joe@manyfish.co.uk>
3435
3436	* base64.c (ne_base64): Renamed from base64.
3437
3438Tue Mar 20 20:34:44 2001  Joe Orton  <joe@manyfish.co.uk>
3439
3440	* dav_props.c (make_elms): Don't request UTF-8 decoding of
3441	property values.
3442
3443Tue Mar 20 20:33:39 2001  Joe Orton  <joe@manyfish.co.uk>
3444
3445	* string_utils.c (ne_utf8_decode): New function.
3446
3447Mon Mar 19 22:08:45 2001  Joe Orton  <joe@manyfish.co.uk>
3448
3449	* http_basic.c (get_callback): Removed function.  (http_get,
3450	http_read_file, http_post): Use callbacks directly rather than
3451	indirectly through get_callback.
3452
3453Mon Mar 19 21:55:19 2001  Joe Orton  <joe@manyfish.co.uk>
3454
3455	* http_request.c (notify_status, http_set_status,
3456	http_set_progress): New functions: request status and progress
3457	callbacks.  (open_connection, lookup_host): Use notify_status to
3458	trigger status callbacks, and register socket progress callbacks.
3459
3460Mon Mar 19 21:53:07 2001  Joe Orton  <joe@manyfish.co.uk>
3461
3462	* socket.c (sock_register_notify): Removed function.
3463	(sock_connect_u): Renamed to sock_connect.
3464	(sock_register_progress): Per-socket progress callbacks rather
3465	than global ones.  (sock_call_progress): Take socket argument.
3466	(all callers changed).
3467
3468Mon Mar 19 21:52:50 2001  Joe Orton  <joe@manyfish.co.uk>
3469
3470	* socket.c (sock_get_version): New function.
3471
3472Mon Mar 19 13:59:21 2001  Joe Orton  <joe@manyfish.co.uk>
3473
3474	* dav_props.c (propfind): Destroy the handler.
3475
3476Mon Mar 19 13:36:55 2001  Joe Orton  <joe@manyfish.co.uk>
3477
3478	* dav_props.c (dav_propnames): New function.
3479
3480Wed Mar 14 22:42:12 2001  Joe Orton  <joe@manyfish.co.uk>
3481
3482	* http_request.h (http_begin_request, http_end_request,
3483	http_read_response_block): New functions.
3484	(http_request_dispatch): Reimplemented using new caller-pulls
3485	interface.
3486
3487Wed Mar 14 22:20:38 2001  Joe Orton  <joe@manyfish.co.uk>
3488
3489	* http_auth.c (ah_post_send): If authentication fails (i.e. bad
3490	credentials), clean the session details.
3491
3492Wed Mar 14 20:46:55 2001  Joe Orton  <joe@manyfish.co.uk>
3493
3494	* http_auth.c: Retry the request simply if it has not been tried
3495	before with authentication details, otherwise, fail on 40[17].
3496
3497Wed Mar 14 20:12:52 2001  Joe Orton  <joe@manyfish.co.uk>
3498
3499	* http_request.c (open_connection): Make sure to close the
3500	connection, and return HTTP_CONNECT if the SSL negotiation fails.
3501
3502Tue Mar  6 18:37:43 2001  Joe Orton  <joe@manyfish.co.uk>
3503
3504	* ne_alloc.c (ne_strndup): Allocate n+1 bytes not 'n' (Kai
3505	Sommerfeld).
3506
3507Mon Mar  5 01:05:31 2001  Joe Orton  <joe@manyfish.co.uk>
3508
3509	* http_request.c: Moved local sbuffer variables of
3510	http_request_dispatch into http_req members 'reqbuf' and
3511	'respbuf'.  (build_request): Return a const char * of the request.
3512	(send_request): Call build_request directly, use req->respbuf.
3513	(http_request_dispatch): Don't call build_request.  Removed 'goto'
3514	exception handling (hoorah).  (http_request_create,
3515	http_request_destroy): Create and destroy reqbuf and respbuf here.
3516
3517Mon Mar  5 00:43:40 2001  Joe Orton  <joe@manyfish.co.uk>
3518
3519	* http_request.c (http_set_request_body_stream): Set
3520	req->body_size and Content-Length header here: return success
3521	value.  (http_set_request_body_buffer): Likewise (but no return
3522	value).  (get_request_bodysize): Removed function.
3523	(build_request): Add Content-Length: 0 header if no request body.
3524
3525Mon Mar  5 00:27:24 2001  Joe Orton  <joe@manyfish.co.uk>
3526
3527	* http_auth.c (http_forget_auth): New function.
3528
3529Mon Mar  5 00:25:15 2001  Joe Orton  <joe@manyfish.co.uk>
3530
3531	* http_request.c (http_request_hook_private): Renamed from
3532	http_get_hook_private.  (http_session_hook_private): New function.
3533
3534	* dav_locks.c (dav_lock_using_resource, dav_lock_using_parent):
3535	Renamed simiarly.
3536
3537Sun Mar  4 23:12:12 2001  Joe Orton  <joe@manyfish.co.uk>
3538
3539	* http_auth.c: Moved per-request state into struct auth_request.
3540	(request_digest): Take struct auth_request argument.  (free_auth):
3541	New function.  (http_add_hooks): Pass free_auth as cleanup
3542	function for auth session.
3543
3544Sun Mar  4 23:08:46 2001  Joe Orton  <joe@manyfish.co.uk>
3545
3546	* http_redirect.c (auto_redirect): Auto-redirect OPTIONS requests.
3547	(free_redirect): New function.  (http_redirect_register): Pass
3548	cleanup function.
3549
3550Sun Mar  4 23:07:01 2001  Joe Orton  <joe@manyfish.co.uk>
3551
3552	* dav_locks.c (dav_lock_unregister): Removed function.
3553	(free_locks): New function.  (dav_lock_register): Pass free_locks
3554	as cleanup function for hooks.
3555
3556Sun Mar  4 22:54:57 2001  Joe Orton  <joe@manyfish.co.uk>
3557
3558	* http_request.h (http_add_hooks): Added fourth argument to
3559	register a cleanup function for the cookie.
3560
3561Sun Mar  4 19:53:03 2001  Joe Orton  <joe@manyfish.co.uk>
3562
3563	* http_auth.c (request_digest): Use an sbuffer to create the
3564	header value.
3565
3566Sun Mar  4 19:44:18 2001  Joe Orton  <joe@manyfish.co.uk>
3567
3568	* http_auth.c: Remove namespace protection for private
3569	functions. s/http_auth/auth/g.
3570
3571Sun Mar  4 19:39:13 2001  Joe Orton  <joe@manyfish.co.uk>
3572
3573	* http_auth.c (ah_pre_send): Increase attempt counter here, ...
3574	(ah_post_send): instead of here.
3575
3576Sun Mar  4 18:40:03 2001  Joe Orton  <joe@manyfish.co.uk>
3577
3578	* http_request.c (http_request_dispatch): Simplify post_send hook
3579	invocation: run them until one doesn't return HTTP_OK. Don't run
3580	pre_send hooks here.  Loop while a hook returns HTTP_RETRY.
3581	(build_request): Run pre_send hooks here.
3582
3583	* http_request.c (read_response_body): Call
3584	normalize_response_length here.
3585
3586Sun Mar  4 18:12:26 2001  Joe Orton  <joe@manyfish.co.uk>
3587
3588	Re-implemented HTTP authentication using generic hooks interface.
3589
3590	* http_auth.c: Added http_auth.h.  (http_auth_init,
3591	http_auth_set_creds_cb, http_auth_new_request,
3592	http_auth_request_header): Removed functions, merged into new
3593	hooks code.  (ah_create, ah_post_send, ah_pre_send, ah_use_body,
3594	ah_destroy): New functions.  (auth_body_reader,
3595	http_set_server_auth, http_set_proxy_auth): Moved over from
3596	http_request.c and redone for hooks interface.
3597
3598	* http_request.c (http_set_server_auth, http_set_proxy_auth,
3599	give_creds, auth_body_reader): Moved to http_auth.c.
3600	(http_accept_always): Renamed from always_accept_response and made
3601	public.  (http_request_create, build_request,
3602	http_request_dispatch): Removed authentication code.
3603
3604Tue Feb 27 19:49:42 2001  Joe Orton  <joe@manyfish.co.uk>
3605
3606	* dav_props.c (set_body): Remove UTF-8 encoding again.
3607
3608Mon Feb 26 22:38:41 2001  Joe Orton  <joe@manyfish.co.uk>
3609
3610	Patch from Kai Sommerfeld to remove URI escaping from inside neon.
3611
3612	* dav_207.c (end_element): Don't unescape href elements.
3613
3614	* http_request.c (http_request_create): Don't escape Request-URI.
3615
3616	* dav_basic.c (copy_or_move): Don't escape destination URI.
3617
3618Mon Feb 26 21:44:56 2001  Joe Orton  <joe@manyfish.co.uk>
3619
3620	* dav_props.c (set_body): UTF-8 encode the property name and
3621	value.  (make_elms): Request UTF-8 decoding of property values.
3622
3623Mon Feb 26 21:40:14 2001  Joe Orton  <joe@manyfish.co.uk>
3624
3625	* hip_xml.c: Do perform UTF-8 decoding when using libxml.
3626	(char_data): Fix UTF-8 decoding bug where the byte after a
3627	multi-byte encoded sequence would be skipped.
3628
3629Sun Feb 25 20:04:05 2001  Joe Orton  <joe@manyfish.co.uk>
3630
3631	* string_utils.c (ne_utf8_encode): New function.
3632
3633Sun Feb 25 19:52:01 2001  Joe Orton  <joe@manyfish.co.uk>
3634
3635	* ne_alloc.c (ne_realloc): New function.
3636
3637Sun Feb 25 17:00:32 2001  Joe Orton  <joe@manyfish.co.uk>
3638
3639	* Makefile.in (all): Rename NEON_IS_BUNDLED to NEON_BUILD_BUNDLED.
3640
3641Sun Feb 25 16:52:43 2001  Joe Orton  <joe@manyfish.co.uk>
3642
3643	* Makefile.in (all): Build according to NEON_IS_BUNDLED.
3644
3645Fri Feb 23 23:38:10 2001  Joe Orton  <joe@manyfish.co.uk>
3646
3647	* Makefile.in: Fix deps: neon_config.h has gone.
3648
3649Fri Feb 23 22:57:47 2001  Joe Orton  <joe@manyfish.co.uk>
3650
3651	* dav_props.c (dav_simple_propfind): Support a NULL 'props'
3652	argument to do an allprop request, as per the advertising
3653	literature.  Register a catch-all handler in this case.
3654
3655Fri Feb 23 22:16:42 2001  Joe Orton  <joe@manyfish.co.uk>
3656
3657	* http_request.c (http_session_destroy): Free up hooks list.
3658
3659Thu Feb 22 21:54:36 2001  Joe Orton  <joe@manyfish.co.uk>
3660
3661	* http_request.h (http_add_hooks): Make request_hooks 'const'.
3662
3663Thu Feb 15 08:36:56 2001  Joe Orton  <joe@manyfish.co.uk>
3664
3665	* http_request.c (read_response_body): Accept SOCK_CLOSED as
3666	end-of-response if we don't have a Content-Length (and not
3667	chunked). (Kai Sommerfeld).
3668
3669Thu Feb 15 08:36:23 2001  Joe Orton  <joe@manyfish.co.uk>
3670
3671	* http_request.c (add_fixed_headers): Don't add the Host header
3672	here.  (http_request_dispatch): Add it here instead.
3673
3674	* http_request.c (set_hostinfo): Dup the hostname.
3675	(http_session_destroy): Free the hostname.  (Kai Sommerfeld).
3676
3677Thu Feb 15 08:35:49 2001  Joe Orton  <joe@manyfish.co.uk>
3678
3679	* http_private.h: Make hostname in struct host_info char *. (Kai
3680	Sommerfeld).
3681
3682Thu Feb 15 08:08:50 2001  Joe Orton  <joe@manyfish.co.uk>
3683
3684	* http_redirect.h: Add C++ header-inclusion safety macros (Kai
3685	Sommerfeld <kai.sommerfeld@germany.sun.com>).
3686
3687Wed Feb 14 23:37:57 2001  Joe Orton  <joe@manyfish.co.uk>
3688
3689	* http_request.c (read_response_body): Use a size_t for readlen,
3690	as read_response_block requires.
3691
3692Wed Feb 14 23:25:44 2001  Joe Orton  <joe@manyfish.co.uk>
3693
3694	* http_auth.c (request_digest): Fix incorrect signed-ness of
3695	buffer.
3696
3697Wed Feb 14 23:22:13 2001  Joe Orton  <joe@manyfish.co.uk>
3698
3699	* uri.h, string_utils.h: Comment-out tokens after #endif.
3700
3701Sun Feb  4 14:36:11 2001  Joe Orton  <joe@manyfish.co.uk>
3702
3703	* http_redirect.c (post_send): Prototype change.
3704
3705Sun Feb  4 14:31:42 2001  Joe Orton  <joe@manyfish.co.uk>
3706
3707	* socket.c: Added key_prompt, key_userdata, key_file to
3708	nssl_context.  (sock_set_key_prompt, key_prompt_cb): New
3709	functions.  (sock_make_secure): Set ctx->key_file to private key
3710	filename.
3711
3712Sun Feb  4 13:31:44 2001  Joe Orton  <joe@manyfish.co.uk>
3713
3714	* http_request.h: Make http_status argument of post_send a const
3715	pointer.
3716
3717Sun Feb  4 10:38:12 2001  Joe Orton  <joe@manyfish.co.uk>
3718
3719	* http_request.c (set_sockerr): Only use the socket error if it is
3720	NULL, else print generic "something went wrong"-type error
3721	message.
3722
3723Sun Feb  4 10:29:37 2001  Joe Orton  <joe@manyfish.co.uk>
3724
3725	* socket.c (sock_set_client_cert): Call SSL_CTX_check_private_key
3726	to ensure that the cert and private key match.
3727
3728Sun Feb  4 10:28:02 2001  Joe Orton  <joe@manyfish.co.uk>
3729
3730	* socket.c (sock_make_secure): In error cases after SSL_connect
3731	succeeds, call SSL_shutdown and assign sock->ssl = NULL before
3732	returning.
3733
3734Sat Feb  3 18:33:56 2001  Joe Orton  <joe@manyfish.co.uk>
3735
3736	* socket.c (sock_close): Call SSL_shutdown before close()'ing the
3737	fd.
3738
3739Sat Feb  3 18:30:48 2001  Joe Orton  <joe@manyfish.co.uk>
3740
3741	* socket.c: Store an default SSL_CTX in nsocket, to be used when
3742	no nssl_context is supplied.  (create_socket): Create default
3743	SSL_CTX (sock_close): Free it here.  (sock_make_secure): Use it
3744	here.
3745
3746Sat Feb  3 15:52:15 2001  Joe Orton  <joe@manyfish.co.uk>
3747
3748	* socket.c (sock_set_client_cert): New function.
3749
3750Sat Feb  3 15:48:51 2001  Joe Orton  <joe@manyfish.co.uk>
3751
3752	* socket.c: Rejig of nssl_context handling.  An nssl_context is
3753	now really a wrapper for an SSL_CTX.  (sock_create_ssl_context):
3754	Create the SSL_CTX here.  (sock_disable_tlsv1, sock_disable_sslv2,
3755	sock_disable_sslv3): Set the SSL_CTX option directly.
3756	(sock_make_secure): Create an SSL_CTX if no nssl_context is
3757	supplied, otherwise use SSL_CTX from nssl_context.
3758
3759Sun Jan 28 13:52:03 2001  Joe Orton  <joe@manyfish.co.uk>
3760
3761	* http_utils.c (neon_version_minimum): New function.
3762
3763Sun Jan 28 10:37:28 2001  Joe Orton  <joe@manyfish.co.uk>
3764
3765	* neon_config.h.in: Removed file.
3766
3767	* http_request.c, http_utils.c: Don't include neon_config.h.
3768
3769Sat Jan 27 22:52:37 2001  Joe Orton  <joe@light.plus.com>
3770
3771	* socket.c: Use closesocket() as NEON_CLOSE (Markus Fleck
3772	<fleck@isoc.de>).
3773
3774Sat Jan 27 22:35:16 2001  Joe Orton  <joe@light.plus.com>
3775
3776	* hip_xml.c: Add 'char_data' as libxml cdataBlock handler.
3777
3778Tue Jan 23 23:17:00 2001  Joe Orton  <joe@light.plus.com>
3779
3780	* neon_config.h.in: Renamed from neon_config.h.  Define
3781	NEON_VERSION_MAJOR and NEON_VERSION_MINOR too: all picked up from
3782	the NEON_VERSIONS macro.
3783
3784Sun Jan 21 22:07:34 2001  Joe Orton  <joe@light.plus.com>
3785
3786	* string_utils.c (ne_concat): New function.
3787
3788Thu Jan 18 22:25:34 2001  Joe Orton  <joe@light.plus.com>
3789
3790	* ne_alloc.h: Added ne_oom_callback.
3791
3792	* ne_alloc.c: Added DO_MALLOC macro to do the malloc and oom
3793	callback test.  (ne_malloc): Use DO_MALLOC.  (ne_strdup,
3794	ne_calloc, ne_strndup): Reimplement using DO_MALLOC rather than
3795	calling ne_malloc().
3796
3797Tue Jan 16 20:16:35 2001  Joe Orton  <joe@light.plus.com>
3798
3799	* neon_config.h: Bumped version to 0.10.1.
3800
3801Tue Jan 16 20:14:40 2001  Joe Orton  <joe@light.plus.com>
3802
3803	* http_request.c (http_session_create): Default expect-100 support
3804	to OFF.
3805
3806Mon Jan 15 22:59:33 2001  Joe Orton  <joe@light.plus.com>
3807
3808	* neon_config.h: Bumped version to 0.10.0.
3809
3810Mon Jan 15 22:58:04 2001  Joe Orton  <joe@light.plus.com>
3811
3812	* dav_basic.c (dav_simple_request): Use dav_207_ignore_unknown.
3813
3814Sun Jan 14 22:52:31 2001  Joe Orton  <joe@light.plus.com>
3815
3816	* dav_props.c (propfind): Call dav_207_ignore_unknown.
3817
3818Sun Jan 14 22:49:06 2001  Joe Orton  <joe@light.plus.com>
3819
3820	* dav_207.c: Don't handle unknown elements in normal handler.
3821	(ignore_cc, dav_207_ignore_unknown): New functions, for ignoring
3822	any unknown elements in the parse.
3823
3824Sun Jan 14 21:53:00 2001  Joe Orton  <joe@light.plus.com>
3825
3826	* hip_xml.c: Renamed 'handlers' back to top_handlers.
3827	(push_handler): Now, p->root->handlers points to BASE of stack,
3828	p->top_handlers points to TOP of stack.  (hip_xml_destroy):
3829	Changed to start from new BASE of stack.
3830
3831Sun Jan 14 10:50:09 2001  Joe Orton  <joe@light.plus.com>
3832
3833	* http_request.c (http_session_server): Do perform the DNS lookup
3834	if we have a proxy_decider function, since that means we MIGHT
3835	need to know the IP address of the origin server.
3836	(http_request_create): Pass the real scheme back to the proxy
3837	decider callback.
3838
3839Wed Jan 10 22:43:16 2001  Joe Orton  <joe@light.plus.com>
3840
3841	* Makefile.in: Rename OBJ_EXT to NEON_OBJEXT.  Remove
3842	NEON_INTERFACE_VERSION, use NEON_LINK_FLAGS instead.
3843
3844Wed Jan 10 22:02:02 2001  Joe Orton  <joe@light.plus.com>
3845
3846	* dav_locks.c (create_private): New function.
3847	(dav_lock_discover): Switch to using new dav_propfind_set_complex
3848	API.
3849
3850Wed Jan 10 21:59:36 2001  Joe Orton  <joe@light.plus.com>
3851
3852	* dav_props.h (dav_propfind_set_complex): Switch the
3853	'sizeof_private' argument for a callback 'creator': the return
3854	value of this callback is used as the 'private' field for the
3855	current resource.
3856
3857Mon Jan  8 22:09:55 2001  Joe Orton  <joe@light.plus.com>
3858
3859	* dav_locks.h (dav_lock_result): Re-order arguments.  Make lock
3860	object const.
3861
3862	* dav_locks.c (dav_lock_copy): New function.  (discover_results):
3863	Set lock->uri given href for current results.  Free lock object
3864	after passing to results.
3865
3866Sun Jan  7 21:55:14 2001  Joe Orton  <joe@light.plus.com>
3867
3868	* dav_locks.c (dav_lock): Destroy XML parser after use.  Remove
3869	handling of Lock-Token header: it wasn't used and it leaked.
3870
3871Sun Jan  7 19:58:29 2001  Joe Orton  <joe@light.plus.com>
3872
3873	* dav_props.c (free_propset): Free the property values, and the
3874	result set URI too.
3875
3876Sun Jan  7 16:58:19 2001  Joe Orton  <joe@light.plus.com>
3877
3878	* http_request.c (read_response_block): Fix handling of
3879	SOCK_CLOSED from sock_read as end-of-connection.
3880
3881Sat Jan  6 15:02:57 2001  Joe Orton  <joe@light.plus.com>
3882
3883	* hip_xml.c (struct hip_xml_parser): Renamed 'top_handlers' to
3884	'handlers' in hip_xml_parser.  (push_handler): New function.
3885	(hip_xml_push_handler, hip_xml_push_mixed_handler): Use
3886	push_handler.
3887
3888	* hip_xml.c (find_handler): Begin the search for a new handler
3889	from the handler of the current (parent) element, and work up the
3890	stack.
3891
3892Sat Jan  6 11:15:17 2001  Joe Orton  <joe@light.plus.com>
3893
3894	* hip_xml.c (find_handler): Display error message for unknown XML
3895	element as 'elmname (in nspace)' rather than 'nspace:elmname'
3896	since the latter produces confusing errors like
3897	'DAV::displayname'.
3898
3899Wed Jan  3 21:34:44 2001  Joe Orton  <joe@light.plus.com>
3900
3901	* Makefile.in: Hard-code top_builddir as '..' (possibly wrong, but
3902	true for all neon apps so far).  Remove INCLUDES, now unused.  Add
3903	top_srcdir.
3904
3905Fri Dec 22 22:51:27 2000  Joe Orton  <joe@light.plus.com>
3906
3907	* dav_props.c: Added 'has_props' field to propfind_handler struct.
3908	(set_body): Only add leading 'prop' element if has_props is not
3909	set.  Set has_props.  Don't add trailing </prop> element here.
3910	(dav_propfind_named): ... add it here instead.
3911	(dav_propfind_set_complex, dav_propfind_set_flat): New set_body
3912	interface.
3913
3914Fri Dec 22 21:10:39 2000  Joe Orton  <joe@light.plus.com>
3915
3916	* socket.c (sock_transfer): Don't use NEON_READ here, this is
3917	for reading from a non-socket fd.
3918
3919Wed Dec 20 00:19:34 2000  Joe Orton  <joe@light.plus.com>
3920
3921	* neon_config.h: Bumped version to 0.9.1.
3922
3923Wed Dec 20 00:19:09 2000  Joe Orton  <joe@light.plus.com>
3924
3925	* dav_props.c (free_propset): Don't free the private structure,
3926	make this the caller's responsibility.
3927
3928Wed Dec 20 00:12:36 2000  Joe Orton  <joe@light.plus.com>
3929
3930	* dav_props.c (end_propstat): Rename propstat argument to
3931	'pstat_v' to kill warnings.
3932
3933Tue Dec 19 23:42:39 2000  Joe Orton  <joe@light.plus.com>
3934
3935	* dav_props.c (start_response): Zero-out the private structure on
3936	creation.
3937
3938Tue Dec 19 22:54:06 2000  Joe Orton  <joe@light.plus.com>
3939
3940	* http_request.c (read_response_block): Rename local variable
3941	'socket' to 'sock'.
3942
3943Tue Dec 19 22:52:56 2000  Joe Orton  <joe@light.plus.com>
3944
3945	* http_request.h: Rename argument from 'stat' in post_send
3946	definition.
3947
3948Tue Dec 19 22:52:32 2000  Joe Orton  <joe@light.plus.com>
3949
3950	* http_utils.h: Add 'const' to char * argument.
3951
3952Tue Dec 19 22:19:28 2000  Joe Orton  <joe@light.plus.com>
3953
3954	* neon_config.h: Bumped version to 0.9.0.
3955
3956Tue Dec 19 22:12:19 2000  Joe Orton  <joe@light.plus.com>
3957
3958	* Makefile.in: New file.
3959
3960Tue Dec 19 22:07:50 2000  Joe Orton  <joe@light.plus.com>
3961
3962	* Makefile.incl: Removed file.
3963
3964Tue Dec 19 22:06:06 2000  Joe Orton  <joe@light.plus.com>
3965
3966	* dav_locks.c (dav_lock_discover): New callback-based lock
3967	discovery interface.  Re-implemented using new propfind interface.
3968
3969Tue Dec 19 21:22:43 2000  Joe Orton  <joe@light.plus.com>
3970
3971	* dav_props.h: Replace old dav_propfind_* interface with better
3972	one.  (dav_simple_propfind): Renamed from dav_get_props.
3973	(dav_propfind_current_private, dav_propfind_set_complex,
3974	dav_propfind_set_flat): New functions.
3975	(dav_propfind_get_current_resource): Removed function.
3976	(dav_propfind_named, dav_propfind_allprop): Change second argument
3977	to be the results callback.
3978
3979	* dav_props.c: Replace implementatino of old interface with new
3980	one.  (dav_simple_propfind): Re-implemented on top of new
3981	all-singing all-dancing dav_propfind_* interface.
3982
3983Sun Dec 17 18:24:50 2000  Joe Orton  <joe@light.plus.com>
3984
3985	* dav_props.c: Add dav_get_props, and all its auxiliaries.
3986
3987Sun Dec 17 15:43:55 2000  Joe Orton  <joe@light.plus.com>
3988
3989	* dav_props.c (propfind): Destroy the request after calling
3990	http_get_status.
3991
3992Sun Dec 17 18:04:58 2000  Joe Orton  <joe@light.plus.com>
3993
3994	* hip_xml.c (find_handler): Allow using NULL as name and nspace in
3995	HIP_ELM_unknown elements.
3996
3997Sun Dec 17 18:03:03 2000  Joe Orton  <joe@light.plus.com>
3998
3999	* dav_207.c (check_context): Don't handle the unknown element when
4000	it is a child of the prop element, this prevents handling allprop
4001	responses.
4002
4003Thu Dec 14 21:48:06 2000  Joe Orton  <joe@light.plus.com>
4004
4005	* neon_config.h: Bumped version to 0.8.0.
4006
4007Thu Dec 14 21:43:31 2000  Joe Orton  <joe@light.plus.com>
4008
4009	* dav_basic.c, dav_locks.c, dav_props.c (everywhere): Changed to
4010	new response-status interface, and _class->klass change.
4011
4012Thu Dec 14 21:37:38 2000  Joe Orton  <joe@light.plus.com>
4013
4014	* http_request.c (http_get_status): Add new response-status
4015	interface.
4016
4017Thu Dec 14 21:30:25 2000  Joe Orton  <joe@light.plus.com>
4018
4019	* http_basic.c (everywhere): Use new status interface.
4020
4021Thu Dec 14 21:25:03 2000  Joe Orton  <joe@light.plus.com>
4022
4023	* http_private.h: Made http_status pointer in http_req a declared
4024	object.
4025
4026	* http_request.h: Removed passing status pointer to
4027	http_request_dispatch.
4028
4029	* http_request.c (everywhere): Removed passing extra http_status *
4030	to auxiliaries, use req->status instead.  Renamed '_class' to
4031	'klass' everywhere.
4032
4033Thu Dec 14 21:15:54 2000  Joe Orton  <joe@light.plus.com>
4034
4035	* http_utils.h: Renamed '_class' member of http_status to 'klass'.
4036	(http_parse_statusline): Change accordingly.
4037
4038Wed Dec 13 23:00:23 2000  Joe Orton  <joe@light.plus.com>
4039
4040	* socket.c: Changes for pre-BONE BeOS (David Reid
4041	<dreid@jetnet.co.uk>).
4042
4043Wed Dec 13 21:29:36 2000  Joe Orton  <joe@light.plus.com>
4044
4045	* uri.c (ESCAPE): Explicitly cast the character to const unsigned
4046	int.  (uri_abspath_escape): Make 'pnt' a normal const char *.
4047
4048Wed Dec 13 21:17:31 2000  Joe Orton  <joe@light.plus.com>
4049
4050	* http_request.c: Remove netinet/in.h include, add limits.h
4051	include. (Peter Boos) (read_response_block): Make readlen a size_t
4052	(David Reid).
4053
4054Wed Dec 13 21:08:08 2000  Joe Orton  <joe@light.plus.com>
4055
4056	* ne_alloc.h [WIN32]: Include stdlib.h. (Peter Boos)
4057
4058Wed Dec 13 20:54:27 2000  Joe Orton  <joe@light.plus.com>
4059
4060	Patches from Peter Boos and David Reid for Win32 and
4061	BeOS changes respectively:
4062
4063	* socket.c: Add NEON_READ, NEON_WRITE, NEON_CLOSE macros to use
4064	send/recv/closesocket for BeOS, send/recv/close for Win32,
4065	write/read/close otherwise.  Include WinSock2.h in Windows.  Add
4066	arpa/inet.h check. (sock_read, sock_write): Use the NEON_ macros.
4067	(sock_connect, sock_close): Use NEON_CLOSE. (sock_init): Winsock
4068	initialization.  (sock_exit) Winsock cleanup.  (sock_fullwrite):
4069	Use size_t rather than ssize_t for 'sent'.  (sock_connect,
4070	sock_connect_u): Make 'port' parameter an unsigned short int.
4071
4072Wed Dec 13 20:42:18 2000  Joe Orton  <joe@light.plus.com>
4073
4074	* http_basic.c (clength_hdr_handler): Use an off_t for len, to
4075	avoid comparison with size_t.
4076
4077Wed Dec 13 20:38:59 2000  Joe Orton  <joe@light.plus.com>
4078
4079	* hip_xml.c (char_data): Use an 'int' for wslen, avoid comparison
4080	between size_t (which is signed) and int (which [is|might be?]
4081	unsigned).
4082
4083Wed Dec 13 20:29:12 2000  Joe Orton  <joe@light.plus.com>
4084
4085	* nsocket.h [WIN32]: Use Windows headers rather than Unixy ones.
4086	(sock_exit): New function.
4087
4088Wed Dec 13 20:21:22 2000  Joe Orton  <joe@light.plus.com>
4089
4090	* string_utils.c, string_utils.h, uri.h: Includes change (Peter
4091	Boos).
4092
4093Wed Dec 13 20:20:09 2000  Joe Orton  <joe@light.plus.com>
4094
4095	* http_auth.c (http_auth_response_body): Don't make
4096	inline. Includes change.  (both by Peter Boos).
4097
4098Wed Dec 13 20:18:38 2000  Joe Orton  <joe@light.plus.com>
4099
4100	* uri.c (uri_unescape): Cast strtol return to (char). Includes
4101	change as below (both by Peter Boos).
4102
4103Wed Dec 13 20:07:38 2000  Joe Orton  <joe@light.plus.com>
4104
4105	* base64.c, dates.c, dates.h, dav_207.c, dav_207.h, dav_basic.h,
4106	dav_locks.h, hip_xml.h, http_auth.h, http_basic.h, http_cookies.c,
4107	http_redirect.c, http_redirect.h, http_request.h, http_utils.c,
4108	md5.c, ne_alloc.c: Use #include "..." rather than #include <...>
4109	for neon headers. (Peter Boos <PediB@colorfullife.com>).
4110
4111Thu Dec  7 21:45:02 2000  Joe Orton  <joe@light.plus.com>
4112
4113	* socket.c (sock_read): Return zero immediately if a zero count
4114	parameter is passed, following SUSv2 semantics.
4115
4116Thu Dec  7 21:41:36 2000  Joe Orton  <joe@light.plus.com>
4117
4118	* nsocket.h (sock_readfile_blocked): Define an interface, allow
4119	taking -1 as the length parameter.  Only return SOCK_CLOSED if
4120	length == -1 is NOT passed.
4121
4122Sun Nov 26 09:46:53 2000  Joe Orton  <joe@light.plus.com>
4123
4124	* nsocket.h: Fix use of 'socket' in function prototypes.
4125
4126Sun Nov 19 00:29:48 2000  Joe Orton  <joe@light.plus.com>
4127
4128	* nsocket.h: Increase read timeout to 120 seconds.
4129
4130Sun Nov  5 14:42:46 2000  Joe Orton  <joe@light.plus.com>
4131
4132	* dav_locks.c: Fix element id's (fixes segfault when using locks).
4133
4134Thu Oct 26 22:28:17 2000  Joe Orton  <joe@light.plus.com>
4135
4136	* socket.c (sock_peek): Return SOCK_CLOSED if recv() returns zero.
4137
4138Thu Oct 26 22:24:14 2000  Joe Orton  <joe@light.plus.com>
4139
4140	* socket.c (sock_block): Return "got data" if SSL_pending
4141	indicates data pending.  Otherwise select on socket as normal.
4142
4143Thu Oct 26 22:15:14 2000  Joe Orton  <joe@light.plus.com>
4144
4145	* socket.c (sock_readline, sock_peek): Check whether SSL
4146	connection has been closed if SSL_peek returns 0 (thanks to Jeff
4147	Costlow <j.costlow@f5.com>).
4148
4149Thu Oct 14 19:57:31 2000  Joe Orton  <joe@light.plus.com>
4150
4151	* Makefile.incl: Fix spurius backslash at line 69 (thanks to
4152	Dirk Bergstrom <dirk@juniper.net>).
4153
4154Sat Oct 14 19:51:44 2000  Joe Orton  <joe@light.plus.com>
4155
4156	* dav_basic.c (copy_or_move): Use http_get_scheme rather than
4157	hard-coding "http".
4158
41592000-10-02  Joe Orton  <joe@light.plus.com>
4160
4161	* http_request.c (http_get_scheme): New function.
4162
4163Tue Oct 10 19:56:42 2000  Joe Orton  <joe@light.plus.com>
4164
4165	* neon_config.h: Bumped version to 0.7.5.
4166
4167Sat Oct  7 19:26:58 2000  Joe Orton  <joe@light.plus.com>
4168
4169	* neon_config.h: Bumped version to 0.7.4.
4170
4171Sat Oct  7 19:19:37 2000  Joe Orton  <joe@light.plus.com>
4172
4173	* http_auth.c (request_digest): Quote algorithm and qop parameters
4174	in digest header.
4175
4176Sat Oct  7 19:15:29 2000  Joe Orton  <joe@light.plus.com>
4177
4178	* socket.c (sock_connect_u): Don't leak the fd if connect fails
4179	(David Sloat).
4180
4181Sat Sep 16 16:49:57 2000  Joe Orton  <joe@light.plus.com>
4182
4183	* hip_xml.h: Add 'HIP_ELM_UNUSED', defining lowest element ID
4184	which should be used.
4185
4186	* hip_xml.c, hip_xml.h (hip_xml_push_handler,
4187	hip_xml_push_mixed_handler): Renamed from hip_xml_add_handler /
4188	hip_xml_add_mixed_handler to reflect stack-like usage of handlers.
4189	'handlers' field of hip_xml_parser renamed to top_handler for same
4190	reason (globally search'n'replaced).
4191
4192	* hip_xml.h: Documentation update.
4193
4194Thu Sep 14 22:37:33 2000  Joe Orton  <joe@light.plus.com>
4195
4196	* http_auth.c (request_digest): Quote qop= value, fixes
4197	IIS5 interop.
4198
4199Thu Sep 14 00:40:04 2000  Joe Orton  <joe@light.plus.com>
4200
4201	* socket.c (sock_connect_u): If connect() fails, close the socket
4202	before returning: thanks to David Sloat <d.sloat@f5.com>.
4203
4204Tue Sep 12 20:08:40 2000  Joe Orton  <joe@light.plus.com>
4205
4206	* http_request.c (read_response_headers): Remove redundant
4207	tolower().
4208
4209Tue Sep 12 00:41:39 2000  Joe Orton  <joe@light.plus.com>
4210
4211	* neon_config.h: Bumped version to 0.7.3.
4212
4213Mon Sep 11 15:31:13 2000  Joe Orton  <joe@light.plus.com>
4214
4215	* http_request.c, http_auth.c: Include snprintf.h if
4216	HAVE_SNPRINTF_H is defined.
4217
4218Fri Sep  8 10:46:53 2000  Joe Orton  <joe@orton.demon.co.uk>
4219
4220	* neon_config.h: Bumped version to 0.7.2.
4221
4222Fri Sep  8 10:44:42 2000  Joe Orton  <joe@orton.demon.co.uk>
4223
4224	* socket.c (sock_block): Return immediately if this is an SSL
4225	socket.
4226
4227Thu Sep  7 00:31:12 2000  Joe Orton  <joe@orton.demon.co.uk>
4228
4229	* hip_xml.h: Correct order of hip_xml_validate_cb arguments in
4230	prototype (thanks to Greg Stein).
4231
4232Thu Sep  7 00:27:29 2000  Joe Orton  <joe@orton.demon.co.uk>
4233
4234	* dav_props.c (propfind): Don't destroy the handler after use.
4235	(dav_propfind_destroy): New function.
4236
4237Thu Sep  7 00:08:45 2000  Joe Orton  <joe@orton.demon.co.uk>
4238
4239	* Makefile.incl: Added targets for ne_alloc.o, string_utils.o,
4240	uri.o, base64.o.
4241
4242Tue Aug 15 21:53:53 2000  Joe Orton  <joe@orton.demon.co.uk>
4243
4244	* neon_config.h: Bumped version to 0.7.1.
4245
4246Tue Aug 15 21:16:34 2000  Joe Orton  <joe@orton.demon.co.uk>
4247
4248	* http_request.c (http_request_create): Only add authentication
4249	response body callbacks if a supply-credentials callback has been
4250	set for the session.  (http_request_dispatch): Similarly for
4251	response header callbacks.
4252
4253Mon Aug 14 09:28:38 2000  Joe Orton  <joe@orton.demon.co.uk>
4254
4255	* neon_config.h: Bumped version to 0.7.0.
4256
4257Mon Aug 14 09:23:54 2000  Joe Orton  <joe@orton.demon.co.uk>
4258
4259	* string_utils.h (SBUFFER_CAST): New macro.
4260
4261Mon Aug 14 09:13:05 2000  Joe Orton  <joe@orton.demon.co.uk>
4262
4263	* http_private.h: Use a hash table for storing response header
4264	handlers.  Added response header 'catchers', which are passed ALL
4265	response headers.
4266
4267	* http_request.c (http_add_response_header_handler): Place the
4268	handler in the correct hash bucket. (hdr_hash): New function.
4269	(http_add_response_header_catcher): New function.
4270	(http_request_destroy): Destroy the header catchers, and iterate
4271	over the hash table to destroy the handlers.
4272	(read_response_headers): Optimisation: hash and search for ':' in
4273	a single loop.  Remove another local variable.  Iterate through
4274	catchers too.
4275
4276Sun Aug 13 15:57:35 2000  Joe Orton  <joe@orton.demon.co.uk>
4277
4278	* neon_config.h: Bumped version to 0.6.1.
4279
4280Sun Aug 13 15:50:42 2000  Joe Orton  <joe@orton.demon.co.uk>
4281
4282	* http_request.c (send_request): Only go through the loop at most
4283	twice.
4284
4285Sun Aug 13 15:49:52 2000  Joe Orton  <joe@orton.demon.co.uk>
4286
4287	* http_redirect.c (destroy): Don't free the redirect structure.
4288
4289Sat Aug 12 17:10:32 2000  Joe Orton  <joe@orton.demon.co.uk>
4290
4291	* neon_config.h: Bumped version to 0.6.0.
4292
4293Sat Aug 12 16:48:47 2000  Joe Orton  <joe@orton.demon.co.uk>
4294
4295	* http_request.c (http_session_decide_proxy): New function.
4296	(http_request_create): Call proxy "decider callback" to determine
4297	whether to use the proxy server for a given request or not.
4298
4299Sat Aug 12 16:39:10 2000  Joe Orton  <joe@orton.demon.co.uk>
4300
4301	* Makefile.incl: Updated for http_private.h and
4302	http_redirect.[ch].
4303
4304Sat Aug 12 16:36:49 2000  Joe Orton  <joe@orton.demon.co.uk>
4305
4306	* http_request.c: Removed data structure definitions.
4307
4308	* http_private.h: New file, contains data structure definitions.
4309	Interface NOT exported.
4310
4311Sat Aug 12 16:31:32 2000  Joe Orton  <joe@orton.demon.co.uk>
4312
4313	* http_redirect.c (destroy): No return value.
4314
4315Sat Aug 12 16:04:02 2000  Joe Orton  <joe@orton.demon.co.uk>
4316
4317	* http_redirect.[ch]: First cut at HTTP redirect handling.
4318
4319Sat Aug 12 11:05:13 2000  Joe Orton  <joe@orton.demon.co.uk>
4320
4321	* neon_config.h: Bumped version to 0.5.1.
4322
4323Sat Aug 12 02:04:15 2000  Joe Orton  <joe@orton.demon.co.uk>
4324
4325	* dav_locks.c (dav_lock_using_resource, dav_lock_using_parent):
4326	Prevent segfault if locking is not in use.
4327
4328Fri Aug 11 17:19:06 2000  Joe Orton  <joe@orton.demon.co.uk>
4329
4330	* neon_config.h: Bumped version to 0.5.0.
4331
4332Fri Aug 11 16:31:23 2000  Joe Orton  <joe@orton.demon.co.uk>
4333
4334	* http_request.c (read_message_header): Take a buffer for storing
4335	continuation lines. (read_response_headers): No need to strip EOL
4336	since read_message_header does this already.  Use one less
4337	variable.
4338
4339Fri Aug  4 22:12:04 2000  Joe Orton  <joe@orton.demon.co.uk>
4340
4341	* http_request.c (send_request): Don't retry sending the request
4342	more than once.
4343
4344Wed Aug  2 11:08:31 2000  Joe Orton  <joe@orton.demon.co.uk>
4345
4346	* ne_alloc.[ch]: Renamed from xalloc.[ch].
4347
4348Wed Aug  2 02:15:32 2000  Joe Orton  <joe@orton.demon.co.uk>
4349
4350	* socket.c (sock_transfer): Return SOCK_CLOSED, or set sock->error
4351	appropriately on read failure.
4352
4353Tue Aug  1 13:04:27 2000  Joe Orton  <joe@orton.demon.co.uk>
4354
4355	* socket.c, nsocket.h (sock_progress, sock_call_progress,
4356	sock_transfer, sock_readfile_blocked): Use 'off_t' not 'size_t' as
4357	file size type.
4358
4359Fri Jul 28 13:32:37 2000  Joe Orton  <joe@orton.demon.co.uk>
4360
4361	* neon_config.h: Bumped version to 0.4.2.
4362
4363Fri Jul 28 13:31:38 2000  Joe Orton  <joe@orton.demon.co.uk>
4364
4365	* http_request.c (send_request): Fix sending request body after
4366	getting 100-continue response.
4367
4368Fri Jul 28 11:26:47 2000  Joe Orton  <joe@orton.demon.co.uk>
4369
4370	* neon_config.h: Bumped version to 0.4.1.
4371
4372Fri Jul 28 10:32:34 2000  Joe Orton  <joe@orton.demon.co.uk>
4373
4374	* neon_config.h: Bumped version to 0.4.0.
4375
4376Fri Jul 28 10:28:21 2000  Joe Orton  <joe@orton.demon.co.uk>
4377
4378	* http_basic.[ch] (http_post): New function, from Sander Alberink
4379	<sander.alberink@cmg.nl>.
4380
4381Thu Jul 27 18:55:49 2000  Joe Orton  <joe@orton.demon.co.uk>
4382
4383	* http_utils.c (neon_debug): No conditional compilation for
4384	function body: compile it all regardless of whether debugging is
4385	enabled or not, to allow applications to be debugged regardless of
4386	whether debugging is compiled into the library or not.
4387
4388Thu Jul 27 16:59:26 2000  Joe Orton  <joe@orton.demon.co.uk>
4389
4390	* http_basic.c (clength_hdr_handler): Cast off_t to long int for
4391	printing.
4392
4393Tue Jul 25 18:14:15 2000  Joe Orton  <joe@orton.demon.co.uk>
4394
4395	* http_request.c (read_message_header): Iterate over header
4396	handler list before placing zero-terminator at ':': if a handler
4397	has a NULL name field, pass it the entire header value.
4398
4399Tue Jul 25 18:00:49 2000  Joe Orton  <joe@orton.demon.co.uk>
4400
4401	* http_request.c (http_get_request_headers): New function.
4402
4403Mon Jul 24 16:55:29 2000  Joe Orton  <joe@orton.demon.co.uk>
4404
4405	* neon_config.h: Bumped version to 0.3.9.
4406
4407Mon Jul 24 16:54:33 2000  Joe Orton  <joe@orton.demon.co.uk>
4408
4409	* http_basic.h: Use 'off_t' in http_content_range.
4410
4411	* http_basic.c (http_get_range): Cast range values to (long int)
4412	to prevent compiler warnings.
4413
4414Thu Jul 20 20:03:30 2000  Joe Orton  <joe@orton.demon.co.uk>
4415
4416	* http_request.[ch], socket.c, http_basic.c: Include nsocket.h not
4417	socket.h.
4418
4419Thu Jul 20 20:02:20 2000  Joe Orton  <joe@orton.demon.co.uk>
4420
4421	* http_utils.c (version_string): Indicate which XML parser is
4422	supported.
4423
4424Thu Jul 20 20:01:12 2000  Joe Orton  <joe@orton.demon.co.uk>
4425
4426	* nsocket.h: Renamed from socket.h.
4427
4428Thu Jul 20 15:02:35 2000  Joe Orton  <joe@orton.demon.co.uk>
4429
4430	* http_utils.c, socket.c, http_request.c: SSL_ENABLE renamaed to
4431	ENABLE_SSL.
4432
4433Thu Jul 20 12:20:13 2000  Joe Orton  <joe@orton.demon.co.uk>
4434
4435	* md5.c, http_auth.h: Include neon_md5.h.
4436
4437Thu Jul 20 12:19:23 2000  Joe Orton  <joe@orton.demon.co.uk>
4438
4439	* neon_md5.h: Renamed from md5.h.
4440
4441Wed Jul 19 22:33:46 2000  Joe Orton  <joe@orton.demon.co.uk>
4442
4443	* dav_basic.c (dav_simple_request): Don't leak ctype.value.
4444
4445Wed Jul 19 22:32:03 2000  Joe Orton  <joe@orton.demon.co.uk>
4446
4447	* dav_207.c (check_context): Accept unknown elements.
4448
4449Wed Jul 19 22:31:10 2000  Joe Orton  <joe@orton.demon.co.uk>
4450
4451	* dav_locks.c (dav_lock_iterate): Allow passing func as NULL.
4452
4453Wed Jul 19 22:26:13 2000  Joe Orton  <joe@orton.demon.co.uk>
4454
4455	* socket.h (SOCKET_READ_TIMEOUT): Increase to 60.
4456
4457Wed Jul 19 22:25:51 2000  Joe Orton  <joe@orton.demon.co.uk>
4458
4459	* dav_locks.h: Include http_request.h.
4460
4461Mon Jul 17 11:41:16 2000  Joe Orton  <joe@orton.demon.co.uk>
4462
4463	* dates.c (asctime_parse, rfc1036_parse): Actually pass the string
4464	to sscanf (thanks to lclint).  (rfc1123_date): Check for gmtime()
4465	returning NULL.
4466
4467Mon Jul 17 09:16:43 2000  Joe Orton  <joe@orton.demon.co.uk>
4468
4469	* neon_config.h: Bumped version to 0.3.1.
4470
4471Mon Jul 17 09:07:58 2000  Joe Orton  <joe@orton.demon.co.uk>
4472
4473	* dav_locks.c: Include limits.h: thanks to Paul D'Anna.
4474
4475Sun Jul 16 18:47:15 2000  Joe Orton  <joe@orton.demon.co.uk>
4476
4477	* neon_config.h: Bumped version to 0.3.0.
4478
4479Sun Jul 16 16:44:25 2000  Joe Orton  <joe@orton.demon.co.uk>
4480
4481	* neon_i18n.c (neon_i18n_init) [ENABLE_NLS && NEON_IS_LIBRARY]:
4482	New compilation conditions.
4483
4484Sun Jul 16 16:41:12 2000  Joe Orton  <joe@orton.demon.co.uk>
4485
4486	* neon_i18n.c: New file.
4487
4488Sun Jul 16 16:15:02 2000  Joe Orton  <joe@orton.demon.co.uk>
4489
4490	* string_utils.c (sbuffer_*): Change to assert postcondition
4491	(buf->used == strlen(buf->data) + 1).  (sbuffer_append): Fix
4492	brokenness.
4493
4494Sun Jul 16 16:11:05 2000  Joe Orton  <joe@orton.demon.co.uk>
4495
4496	* socket.c (sock_transfer): Increase sum length written correctly.
4497
4498Sun Jul 16 16:10:23 2000  Joe Orton  <joe@orton.demon.co.uk>
4499
4500	* http_request.c (http_get_hook_private): New function.
4501
4502Sun Jul 16 16:07:11 2000  Joe Orton  <joe@orton.demon.co.uk>
4503
4504	* hip_xml.c (find_handler): Call validate_cb for any handler which
4505	recognizes the element.  Allow return codes
4506	HIP_XML_{VALID,INVALID,DECLINE} from validate_cb.  If DECLINE is
4507	returned, continue searching handlers until one returns
4508	(IN)VALID.  (start_element): Don't call validate_cb.
4509
4510	* hip_xml.c (start_element, end_element): In collect mode, don't
4511	print namespace prefix if present.
4512
4513Sun Jul 16 15:30:19 2000  Joe Orton  <joe@orton.demon.co.uk>
4514
4515	* dav_locks.[ch]: New file, code mainly taken from cadaver and
4516	adapted for neon HTTP request/response handling.
4517
4518Sun Jul 16 15:28:25 2000  Joe Orton  <joe@orton.demon.co.uk>
4519
4520	* dav_basic.c (copy_or_move, dav_move, dav_copy): Pass overwrite
4521	as parameter.
4522
4523Sun Jul 16 15:26:24 2000  Joe Orton  <joe@orton.demon.co.uk>
4524
4525	* uri.c (uri_compare): Fixed to only return equal if *shorter*
4526	string has no trailing slash.
4527
4528Sat Jul 15 20:14:07 2000  Joe Orton  <joe@orton.demon.co.uk>
4529
4530	* dav_207.c (dav_207_get_current_response,
4531	dav_207_get_current_propstat): New functions.
4532
4533	* dav_props.c (dav_propfind_get_current_resource): Implement using
4534	dav_207_get_current_response.
4535
4536Sat Jul 15 17:36:37 2000  Joe Orton  <joe@orton.demon.co.uk>
4537
4538	* xalloc.c (xcalloc): New function.
4539
4540Sat Jul 15 14:11:14 2000  Joe Orton  <joe@orton.demon.co.uk>
4541
4542	* http_utils.[ch] and elsewhere: Replace 'class' field of
4543	http_status with '_class' to be C++-safe. (patch from Tom
4544	Bednarz).
4545
4546Thu Jul  6 18:48:52 2000  Joe Orton  <joe@orton.demon.co.uk>
4547
4548	* dav_basic.c (copy_or_move): Escape the destination URI.
4549
4550Thu Jul  6 18:45:51 2000  Joe Orton  <joe@orton.demon.co.uk>
4551
4552	* dav_props.c (end_response): Added description parameter.
4553
4554Thu Jul  6 18:43:14 2000  Joe Orton  <joe@orton.demon.co.uk>
4555
4556	* dav_207.[ch] (end_element): Fix handling of responsedescription.
4557	Add "description" parameter to dav_207_end_response callback, and
4558	pass the contents of responsedescription.
4559
4560	* dav_basic.c (handle_error, end_response, end_propstat): Pass
4561	description and add to error string when present.
4562
4563Tue Jul  4 11:43:03 2000  Joe Orton  <joe@orton.demon.co.uk>
4564
4565	* dav_basic.c, dav_props.c, http_basic.c: Use
4566	http_{add,print}_request_header rather than
4567	http_get_request_header.
4568
4569Tue Jul  4 11:41:00 2000  Joe Orton  <joe@orton.demon.co.uk>
4570
4571	* http_request.[ch] (http_add_request_header,
4572	http_print_request_header): New functions.
4573	(http_get_request_header): Removed function.
4574
4575Mon Jul  3 21:50:40 2000  Joe Orton  <joe@orton.demon.co.uk>
4576
4577	* http_request.c: Add basic support for TLS upgrade (RFC2817).
4578	(http_set_request_secure_upgrade, http_set_accept_secure_upgrade):
4579	New functions.  (send_request): If upgrade is requested, and a 101
4580	response is received, negotiate the TLS connection.
4581	(add_fixed_headers): Add Upgrade header if necessary.
4582
4583Mon Jul  3 21:46:00 2000  Joe Orton  <joe@orton.demon.co.uk>
4584
4585	* http_request.c (send_request): Don't go into an infinite loop.
4586	(read_message_header): Simplyify checking for end-of-line.
4587
4588Tue Jun 13 00:29:42 2000  Joe Orton  <joe@orton.demon.co.uk>
4589
4590	* http_request.c (http_session_proxy, http_session_server): Allow
4591	calling >1 time per session, to switch servers.  (send_request):
4592	Only retry sending request once.
4593
4594Mon Jun 12 21:50:41 2000  Joe Orton  <joe@orton.demon.co.uk>
4595
4596	* http_request.c (http_add_hooks): New function.
4597
4598Mon Jun 12 21:37:24 2000  Joe Orton  <joe@orton.demon.co.uk>
4599
4600	* http_cookies.[ch]: Added basic cookies support.
4601
4602Mon Jun 12 21:33:33 2000  Joe Orton  <joe@orton.demon.co.uk>
4603
4604	* socket.c (sock_create_ssl_context, sock_destroy_ssl_context,
4605	sock_disable_tlsv1, sock_disable_sslv2, sock_disable_sslv3,
4606	sock_make_secure): Added nssl_context handling.
4607
4608Mon Jun 12 21:29:52 2000  Joe Orton  <joe@orton.demon.co.uk>
4609
4610	* http_request.c (http_request_dispatch, http_request_create,
4611	http_request_destroy, http_set_request_body_buffer,
4612	http_set_request_body_stream): Added hook support.
4613
4614Mon Jun 12 21:04:00 2000  Joe Orton  <joe@orton.demon.co.uk>
4615
4616	* http_request.c (http_set_secure): Store an nssl_context.
4617	(open_connection): Give the nssl_context.
4618
4619Sun Jun 11 16:37:52 2000  Joe Orton  <joe@orton.demon.co.uk>
4620
4621	* sslcerts.c: Import of SSL support from mutt, relicensed under
4622	the LGPL for use in neon by the author, Tommi Komulainen
4623	<Tommi.Komulainen@iki.fi>.
4624
4625Sun Jun 11 11:30:16 2000  Joe Orton  <joe@orton.demon.co.uk>
4626
4627	* http_request.c (set_sockerr): Updated to use sock_get_error.
4628
4629Sun Jun 11 11:29:29 2000  Joe Orton  <joe@orton.demon.co.uk>
4630
4631	* uri.c (uri_parse): Allow scheme to be omitted.
4632
4633Fri Jun  9 20:39:24 2000  Joe Orton  <joe@orton.demon.co.uk>
4634
4635	* socket.c (sock_get_error): New function.  (sock_*): Set
4636	sock->error and SOCK_ERROR on error.
4637
4638Mon May 29 16:32:46 2000  Joe Orton  <joe@orton.demon.co.uk>
4639
4640	* uri.c (uri_abspath_escape): Allocate the exact amount of memory
4641	needed.
4642
4643Mon May 29 15:53:33 2000  Joe Orton  <joe@orton.demon.co.uk>
4644
4645	* dav_basic.c (dav_simple_request): Correct invalid XML logic.
4646
4647Mon May 29 15:52:08 2000  Joe Orton  <joe@orton.demon.co.uk>
4648
4649	* socket.c (create_sock, sock_accept, sock_get_fd): New
4650	functions.  (sock_connect_u): Use create_sock.
4651
4652Sun May 28 21:00:37 2000  Joe Orton  <joe@orton.demon.co.uk>
4653
4654	* http_utils.c (neon_version_string): New function.
4655
4656Sun May 28 19:36:45 2000  Joe Orton  <joe@orton.demon.co.uk>
4657
4658	* socket.c (sock_connect_u): Zero out allocated nsocket object.
4659
4660Thu May 25 01:27:04 2000  Joe Orton  <joe@orton.demon.co.uk>
4661
4662	* *.h: Include other neon headers with <braces>.
4663
4664Thu May 25 01:02:12 2000  Joe Orton  <joe@orton.demon.co.uk>
4665
4666	* dav_props.c: Include stdlib.h for 'free'.
4667
4668Wed May 24 20:15:08 2000  Joe Orton  <joe@orton.demon.co.uk>
4669
4670	* http_request.c (read_message_header): Return HTTP_RETRY if more
4671	headers to read, HTTP_OK on end-of-headers.
4672	(read_response_headers): Changed accordingly.
4673
4674Wed May 24 19:56:29 2000  Joe Orton  <joe@orton.demon.co.uk>
4675
4676	* http_request.c (send_request_body): Return a SOCK_* code.
4677	(send_request): Re-send request if socket has been closed (due to
4678	persistent connection timeout).
4679
4680Wed May 24 19:00:01 2000  Joe Orton  <joe@orton.demon.co.uk>
4681
4682	* hip_xml.c (find_element): Fix unknown element handling.
4683
4684Tue May 23 19:12:26 2000  Joe Orton  <joe@orton.demon.co.uk>
4685
4686	* dav_props.c (propfind): Destroy the request body sbuffer after
4687	use.
4688
4689Tue May 23 15:43:42 2000  Joe Orton  <joe@orton.demon.co.uk>
4690
4691	* socket.c (sock_make_secure) [SSL_ENABLE]: Conditionally compile
4692	SSL code. [!SSL_ENABLE]: Return failure.  (sock_close)
4693	[SSL_ENABLE]: Conditionally compile SSL code.
4694
4695Tue May 23 15:37:53 2000  Joe Orton  <joe@orton.demon.co.uk>
4696
4697	* http_request.c (http_session_create): Renamed from
4698	http_session_init.  (http_session_destroy): Renamed frmo
4699	http_session_finish.
4700
4701Sun May 21 23:50:58 2000  Joe Orton  <joe@orton.demon.co.uk>
4702
4703	* http_request.c (lookup_host): Use sock_name_lookup.
4704
4705Sun May 21 23:40:39 2000  Joe Orton  <joe@orton.demon.co.uk>
4706
4707	* http_request.c (http_request_create): Allow passing NULL uri
4708	(internal use only).  (http_set_secure): New function.
4709	(read_response_block, read_message_headers): Redone for new socket
4710	API.  (build_request): Moved http_auth_new_request calls here
4711	(from http_request_dispatch).  (send_request): Always call
4712	open_connection before sending the request.
4713	(read_message_header, read_response_headers): Looser check for
4714	empty line.  (normalize_response_length): Set response body length
4715	to zero on 2xx class response whilst in CONNECT, if no other
4716	response body length is given.  (http_request_dispatch): Don't
4717	close the connection on a HTTP/1.0 2xx class response after a
4718	CONNECT request.  (proxy_tunnel): New function.
4719	(open_connection): Use an SSL connection where appropriate.  Use
4720	proxy_tunnel for tunnelling through a proxy.
4721
4722Sun May 21 01:35:40 2000  Joe Orton  <joe@orton.demon.co.uk>
4723
4724	* src/socket.c: Added 'nsocket' ADT for handling sockets.
4725	(sock_*): All changed to take 'nsocket *' argument rather than
4726	integer file descriptor.  Added 'sock_secure_details' to
4727	sock_status enum.  (sock_make_secure, sock_init): New function.
4728	(sock_peek): Renamed from sock_recv.  (send_file_*, recv_file_*):
4729	Removed functions.  (sock_name_lookup): Renamed from host_lookup.
4730	(sock_service_lookup): Renamed from get_tcp_port.  (sock_block,
4731	sock_read, sock_fullwrite, sock_peek, sock_readline): Added SSL
4732	support.  (sock_transfer): Use sock_fullwrite and sock_read.
4733
4734Sun May 21 01:25:03 2000  Joe Orton  <joe@orton.demon.co.uk>
4735
4736	* http_request.c (http_request_destroy): Free header handlers and
4737	body readers.
4738
4739Sun May 21 01:24:30 2000  Joe Orton  <joe@orton.demon.co.uk>
4740
4741	* dav_props.h: Removed obsolte got_property callback type.
4742
4743Sun May 21 01:23:59 2000  Joe Orton  <joe@orton.demon.co.uk>
4744
4745	* dav_props.c (propfind): Free handler object after use.
4746
4747Sun May 21 01:23:12 2000  Joe Orton  <joe@orton.demon.co.uk>
4748
4749	* dav_207.c (dav_207_destroy): Don't try to free the 'response'
4750	field.
4751
4752Sat May 20 21:45:32 2000  Joe Orton  <joe@orton.demon.co.uk>
4753
4754	* http_request.c: Changed 'te' enum of struct http_response to
4755	'is_chunked' boolean.
4756
4757Sun May 14 01:00:42 2000  Joe Orton  <joe@orton.demon.co.uk>
4758
4759	* dav_props.c (propfind): Return error on parse error.
4760
4761Sun May 14 00:40:50 2000  Joe Orton  <joe@orton.demon.co.uk>
4762
4763	* neon_config.h (NEON_VERSION): Bumped to 0.2.0.
4764
4765Sat May 13 23:31:28 2000  Joe Orton  <joe@orton.demon.co.uk>
4766
4767	* neon_defs.h (BEGIN_NEON_DECLS, END_NEON_DECLS): Added C++ safety
4768	macros.
4769
4770	* *.h: Surround with C++ safety macros.
4771
4772Sat May 13 22:36:06 2000  Joe Orton  <joe@orton.demon.co.uk>
4773
4774	* hip_xml.c (hip_xml_destroy): Free handlers.
4775
4776Sat May 13 21:12:14 2000  Joe Orton  <joe@orton.demon.co.uk>
4777
4778	* hip_xml.c (hip_xml_valid): Reversed return value.
4779
4780Sat May 13 21:11:17 2000  Joe Orton  <joe@orton.demon.co.uk>
4781
4782	* http_utils.c: Renamed http_debug_mask to neon_debug_mask,
4783	similarly neon_debug_stream.  (neon_debug_init): Renamed from
4784	http_debug_init.
4785
4786Sat May 13 19:24:40 2000  Joe Orton  <joe@orton.demon.co.uk>
4787
4788	* http_utils.c: Initialize http_debug_mask to zero.
4789	(http_debug_init): New function.
4790
4791	* http_utils.h: Fixed #ifdef DEBUGGING. Only define relevant
4792	DEBUG_* constants.
4793
4794Sat May 13 19:23:34 2000  Joe Orton  <joe@orton.demon.co.uk>
4795
4796	* neon_config.h: New file.
4797
4798	* http_request.c: Include neon_config.h for NEON_VERSION.
4799
4800Sat May 13 18:28:05 2000  Joe Orton  <joe@orton.demon.co.uk>
4801
4802	* dav_props.c (dav_propfind_create): Create a hip_xml_parser, a
4803	207 parser, register start+end response handlers with 207 layer.
4804	(propfind): Fix allprop (Michael Sobolev).
4805
4806	* dav_basic.c (dav_simple_request): Create and destroy
4807	hip_xml_parser and 207 parser appropriately.
4808
4809Sat May 13 18:24:49 2000  Joe Orton  <joe@orton.demon.co.uk>
4810
4811	* dav_207.c: Now takes an externally-declared hip_xml parser
4812	pointer. (dav_207_create, dav_207_destroy): New functions.
4813	(dav_207_init, dav_207_init_with_handler, dav_207_parse,
4814	dav_207_error, dav_207_finish): Removed functions.
4815
4816Sat May 13 17:32:45 2000  Joe Orton  <joe@orton.demon.co.uk>
4817
4818	* hip_xml.[ch]: Rewritten to use opaque hip_xml_parser pointer.
4819	struct hip_xml_handler and struct hip_xml_state removed from
4820	external interface. struct hip_xml_elm * passed to startelm_cb and
4821	endelm_cb. (hip_xml_add_handler, hip_xml_valid, hip_xml_create,
4822	hip_xml_destroy, hip_xml_set_error, hip_xml_get_error): New
4823	functions.  (hip_xml_init, hip_xml_destroy): Removed functions.
4824
4825Sat May 13 13:43:56 2000  Joe Orton  <joe@orton.demon.co.uk>
4826
4827	* neon.h: Removed.
4828
4829Sat May 13 13:42:20 2000  Joe Orton  <joe@orton.demon.co.uk>
4830
4831	* string_utils.h: Don't include config.h. (CONCAT*): Don't use
4832	xmalloc, use malloc and abort manually.
4833
4834Sat May 13 13:32:46 2000  Joe Orton  <joe@orton.demon.co.uk>
4835
4836	* http_utils.h, dates.h, http_basic.h: Don't include config.h
4837
4838Sat May 13 13:31:37 2000  Joe Orton  <joe@orton.demon.co.uk>
4839
4840	* hip_xml.[ch], dav_207.c: Use HIP_ERR_SIZE for size of parser
4841	error string.
4842
4843Sat May 13 13:30:40 2000  Joe Orton  <joe@orton.demon.co.uk>
4844
4845	* Makefile.incl: Use obj_ext for object file extension.
4846
4847Thu May 11 18:21:53 2000  Joe Orton  <joe@orton.demon.co.uk>
4848
4849	* neon.h: Bumped version to 0.1.1.
4850
4851Thu May 11 18:16:08 2000  Joe Orton  <joe@orton.demon.co.uk>
4852
4853	* http_basic.c (get_to_fd): Fix short writes.
4854
4855Wed May 10 19:22:01 2000  Joe Orton  <joe@orton.demon.co.uk>
4856
4857	* neon.h: Bumped version to 0.1.0.
4858
4859Wed May 10 17:46:48 2000  Joe Orton  <joe@orton.demon.co.uk>
4860
4861	* uri.c (uri_parse, uri_free): New functions.
4862
4863Wed May 10 17:43:37 2000  Joe Orton  <joe@orton.demon.co.uk>
4864
4865	* http_basic.c (get_to_fd, http_get): Set error appropriately if
4866	fwrite() fails.
4867
4868Wed May 10 14:25:38 2000  Joe Orton  <joe@orton.demon.co.uk>
4869
4870	* http_utils.c (http_debug): New function.
4871
4872Wed May 10 14:25:08 2000  Joe Orton  <joe@orton.demon.co.uk>
4873
4874	* http_basic.c (get_callback): Call sock_call_progress.
4875
4876Wed May 10 14:24:20 2000  Joe Orton  <joe@orton.demon.co.uk>
4877
4878	* socket.c (sock_call_progress): New function.  (many places): Use
4879	it.
4880
4881Wed May 10 14:22:48 2000  Joe Orton  <joe@orton.demon.co.uk>
4882
4883	* uri.c (uri_has_trailing_slash): Moved from being inline.
4884
4885Tue May  9 23:34:25 2000  Joe Orton  <joe@orton.demon.co.uk>
4886
4887	* dav_props.c: Use handler as userdata for 207 callbacks, unified
4888	handler and context structures.  (start_prop, end_prop,
4889	start_propelm, end_propelm): Removed functions.
4890	(dav_propfind_get_current_resource): New function.
4891
4892Tue May  9 23:29:44 2000  Joe Orton  <joe@orton.demon.co.uk>
4893
4894	* xalloc.[ch]: New files.
4895
4896Tue May  9 23:05:47 2000  Joe Orton  <joe@orton.demon.co.uk>
4897
4898	* dav_207.[ch]: Removed property and property element callbacks.
4899
4900Tue May  9 23:01:00 2000  Joe Orton  <joe@orton.demon.co.uk>
4901
4902	* dav_207.c: Use separate name/namespace for element names.
4903	(dav_207_init_with_handler): New function.  (end_element):
4904	Unescape URI in href element.
4905
4906Tue May  9 19:54:07 2000  Joe Orton  <joe@orton.demon.co.uk>
4907
4908	* dav_props.c (dav_propfind_allprop, dav_propfind_named, propfind,
4909	start_response, end_response, start_prop, end_prop, start_propelm,
4910	end_propelm): New functions; PROPFIND support.
4911
4912Tue May  9 19:45:17 2000  Joe Orton  <joe@orton.demon.co.uk>
4913
4914	* http_request.c (build_request): Renamed from make_request.
4915
4916Tue May  9 19:36:01 2000  Joe Orton  <joe@orton.demon.co.uk>
4917
4918	* socket.[ch]: Added sock_block_reader.
4919
4920Tue May  9 15:52:56 2000  Joe Orton  <joe@orton.demon.co.uk>
4921
4922	* uri.c (uri_childof): Return false when parent is the same length
4923	as child.
4924
4925Sun May  7 15:07:49 2000  Joe Orton  <joe@orton.demon.co.uk>
4926
4927	* dav_207.c: Separated element namespace/names.
4928
4929Tue May  2 16:40:59 2000  Joe Orton  <joe@orton.demon.co.uk>
4930
4931	* hip_xml.[ch]: Added HIP_XML_UTF8DECODE flag.
4932
4933Tue May  2 16:16:57 2000  Joe Orton  <joe@orton.demon.co.uk>
4934
4935	* hip_xml.[ch]: Separate element name and namespace.
4936
4937Mon May  1 00:21:24 2000  Joe Orton  <joe@orton.demon.co.uk>
4938
4939	* dav_207.c (dav_accept_207): Moved function from dav_basic.c.
4940
4941	* dav_basic.c (dav_accept_207, dav_parse_xml_block): Removed
4942	functions.
4943
4944Sun Apr 30 22:47:47 2000  Joe Orton  <joe@orton.demon.co.uk>
4945
4946	* dav_props.[ch]: Renamed dav_proppatch_item to
4947	dav_proppatch_operation.
4948
4949Sun Apr 30 22:45:04 2000  Joe Orton  <joe@orton.demon.co.uk>
4950
4951	* hip_xml.c (start_element): Clearer error message.
4952
4953Sun Apr 30 19:12:07 2000  Joe Orton  <joe@orton.demon.co.uk>
4954
4955	* http_basic.c (http_content_type_handler, dav_hdr_handler): New
4956	functions.  (http_options): Handle DAV header.
4957
4958Sun Apr 30 18:08:53 2000  Joe Orton  <joe@orton.demon.co.uk>
4959
4960	* dav_props.c (dav_proppatch): New function.
4961
4962Sun Apr 30 18:05:55 2000  Joe Orton  <joe@orton.demon.co.uk>
4963
4964	* dav_basic.c (handle_error): New function.  (end_response,
4965	end_propstat): Use it.  (dav_simple_request): Don't return the 207
4966	error string if we get all 2xx class status elements.
4967
4968Sun Apr 30 16:56:41 2000  Joe Orton  <joe@orton.demon.co.uk>
4969
4970	* dav_basic.c (dav_add_depth_header): New function.
4971
4972Sun Apr 30 14:49:06 2000  Joe Orton  <joe@orton.demon.co.uk>
4973
4974	* dav_207.c (start_element): Unknown element is only a property if
4975	the parent is DAV:propstat.
4976
4977Sun Apr 30 14:43:28 2000  Joe Orton  <joe@orton.demon.co.uk>
4978
4979	* dav_basic.c (end_response, end_propstat): Only write error line
4980	if we have status information and the status is not a 424.
4981
4982Sun Apr 30 14:28:23 2000  Joe Orton  <joe@orton.demon.co.uk>
4983
4984	* dav_basic.h: Added DAV_DEPTH_*.
4985
4986Sun Apr 30 12:47:50 2000  Joe Orton  <joe@orton.demon.co.uk>
4987
4988	* dav_207.c (check_context): Allow (and ignore) unknown elements
4989	anywhere other than as the root.
4990
4991Sun Apr 30 12:35:39 2000  Joe Orton  <joe@orton.demon.co.uk>
4992
4993	* string_utils.h (ASC2HEX, HEX2ASC): New macros.
4994
4995Sun Apr 30 12:34:37 2000  Joe Orton  <joe@orton.demon.co.uk>
4996
4997	* http_auth.c [STANDALONE]: Removed. (everywhere): Switch to using
4998	md5_to_ascii rather than md5_hexify.
4999
5000Sun Apr 30 12:32:35 2000  Joe Orton  <joe@orton.demon.co.uk>
5001
5002	* http_request.c (read_response_block): Fixed to return errors
5003	properly and block length to parameter.  (read_response_body):
5004	Changed accordingly.
5005
5006Sun Apr 30 12:29:45 2000  Joe Orton  <joe@orton.demon.co.uk>
5007
5008	* hip_xml.c (friendly_name): New function, was PRETTY_NAME macro.
5009	(start_element, end_element): Fix COLLECT handling.
5010	(hip_xml_parse): Only write parse error if the document has not
5011	already been marked invalid.
5012
5013Sun Apr 30 12:28:36 2000  Joe Orton  <joe@orton.demon.co.uk>
5014
5015	* dav_basic.c (dav_simple_request): Rewritten for new 207
5016	interface.  (start_response, end_response, end_propstat): New
5017	functions.
5018
5019Sun Apr 30 12:27:52 2000  Joe Orton  <joe@orton.demon.co.uk>
5020
5021	* dav_207.c (dav_207_error): Return the parser error.
5022
5023Sat Apr 29 14:46:48 2000  Joe Orton  <joe@orton.demon.co.uk>
5024
5025	* socket.c (sock_register_progress, sock_register_notify): New
5026	functions.  (everywhere): Use progress + notify callbacks rather
5027	than fe_*.
5028
5029Sat Apr 29 14:15:23 2000  Joe Orton  <joe@orton.demon.co.uk>
5030
5031	* string_utils.c (md5_to_ascii, ascii_to_md5): New functions.
5032
5033Sat Apr 29 13:55:39 2000  Joe Orton  <joe@orton.demon.co.uk>
5034
5035	* hip_xml.c (hip_xml_init): abort() on out-of-memory.
5036
5037Sat Apr 29 12:56:11 2000  Joe Orton  <joe@orton.demon.co.uk>
5038
5039	* neon_i18n.h: New file.
5040
5041Sat Apr 29 12:55:24 2000  Joe Orton  <joe@orton.demon.co.uk>
5042
5043	* dav_207.[ch]: Re-implemented with sensible interface.
5044
5045Fri Apr 28 14:56:01 2000  Joe Orton  <joe@orton.demon.co.uk>
5046
5047	* http_auth.c (http_auth_request_header): Renamed from
5048	http_auth_request.
5049
5050	* http_request.c (make_request): As above.
5051
5052Thu Apr 13 11:52:14 2000  Joe Orton  <joe@orton.demon.co.uk>
5053
5054	* http_basic.c (http_put): Switched URI and stream arguments.
5055
5056Thu Apr 13 09:51:21 2000  Joe Orton  <joe@orton.demon.co.uk>
5057
5058	* http_request.c: Added user_agent field to session structure.
5059	(http_set_useragent): New function.  (add_fixed_headers): Only set
5060	user-agent if sess->user_agent is set.
5061
5062Thu Apr 13 09:49:32 2000  Joe Orton  <joe@orton.demon.co.uk>
5063
5064	* http_request.c (lookup_host): New function, split from
5065	set_hostinfo.  (set_hostinfo): Doesn't perform DNS lookup.
5066	(http_session_server): Don't do a DNS lookup if we have a proxy.
5067
5068Wed Apr 12 22:32:21 2000  Joe Orton  <joe@orton.demon.co.uk>
5069
5070	* http_request.c (http_request_dispatch, http_request_create):
5071	Store auth header values in local variables rather than request
5072	structure.  (http_request_create): Don't leak everything on error.
5073	Handle http_auth_challenge return value.
5074
5075Wed Apr 12 22:30:06 2000  Joe Orton  <joe@orton.demon.co.uk>
5076
5077	* http_basic.c (http_options): Pass server capabilites object,
5078	parse Server header to detect Apache/1.3.6 and before, indicating
5079	broken 100-continue support.  (server_hdr_handler): New function.
5080
5081Mon Apr 10 17:42:07 2000  Joe Orton  <joe@orton.demon.co.uk>
5082
5083	* socket.c: Use 'int' for return values.
5084
5085Mon Apr 10 17:41:40 2000  Joe Orton  <joe@orton.demon.co.uk>
5086
5087	* http_auth.c (is_in_domain): Dummy implementation.
5088
5089Mon Apr 10 17:40:21 2000  Joe Orton  <joe@orton.demon.co.uk>
5090
5091	* http_request.c: Handle read() returning 0 when it shouldn't.
5092	i18n'ized error messages.
5093
5094Mon Apr 10 14:45:09 2000  Joe Orton  <joe@orton.demon.co.uk>
5095
5096	* dates.[ch], md5.[ch], base64.[ch]: Imported date handling
5097	utilities, MD5 checksum functions, and text->base64 converter.
5098
5099Mon Apr 10 14:44:08 2000  Joe Orton  <joe@orton.demon.co.uk>
5100
5101	* Makefile.incl: Dependancies updated for socket.[ch].
5102
5103Mon Apr 10 14:43:36 2000  Joe Orton  <joe@orton.demon.co.uk>
5104
5105	* dav_207.c: Replaced malloc() calls with xmalloc() calls.
5106
5107Mon Apr 10 14:42:35 2000  Joe Orton  <joe@orton.demon.co.uk>
5108
5109	* http_auth.c, uri.c, string_utils.h: Replaced malloc() calls with
5110	xmalloc() calls.
5111
5112Mon Apr 10 14:41:40 2000  Joe Orton  <joe@orton.demon.co.uk>
5113
5114	* socket.[ch]: Imported socket handling utilities.
5115
5116Mon Apr 10 14:36:03 2000  Joe Orton  <joe@orton.demon.co.uk>
5117
5118	* string_utils.h (CONCAT*): Use xmalloc.
5119
5120Mon Apr 10 13:52:17 2000  Joe Orton  <joe@orton.demon.co.uk>
5121
5122	* http_request.c (set_sockerr): Added handling for socket errors.
5123
5124Sat Apr  8 13:49:07 2000  Joe Orton  <joe@orton.demon.co.uk>
5125
5126	* string_utils.[ch]: Imported string utilites.
5127
5128Sat Apr  8 00:26:06 2000  Joe Orton  <joe@orton.demon.co.uk>
5129
5130	* http_request.c (http_set_persist, http_set_expect100): New
5131	functions.
5132
5133Sat Apr  8 00:25:37 2000  Joe Orton  <joe@orton.demon.co.uk>
5134
5135	* http_basic.c (http_options): New function.
5136
5137Fri Apr  7 13:01:35 2000  Joe Orton  <joe@orton.demon.co.uk>
5138
5139	* neon.h: New file.
5140
5141Fri Apr  7 12:59:40 2000  Joe Orton  <joe@orton.demon.co.uk>
5142
5143	* http_request.c (normalize_response_length, read_response_body):
5144	New functions.  (http_add_response_body_reader): Take a callback
5145	to determine whether the body reader wants to read the response
5146	body.
5147
5148Fri Apr  7 11:46:41 2000  Joe Orton  <joe@orton.demon.co.uk>
5149
5150	* http_request.c (http_set_server_auth, http_set_proxy_auth): New
5151	functions.  (give_creds): Use supplied callbacks for
5152	authentication.  (get_request_bodysize): Send Content-Length: 0 if
5153	no entity-body is being sent with a request.  (te_hdr_handler,
5154	connection_hdr_handler): New functions.  (make_request): Don't use
5155	Expect: 100-continue if server is not HTTP/1.1 compliant.
5156	(read_message_header): Only read until HTTP_MAXIMUM_HEADER_LENGTH
5157	bytes of header have been read.  (read_response_headers): No
5158	hard-coded header handling.  (http_request_create): Set
5159	req->method_is_head here.
5160
5161Thu Apr  6 14:39:28 2000  Joe Orton  <joe@orton.demon.co.uk>
5162
5163	* hip_xml.c [HIP_XML_DECODE_UTF8] (decode_utf8_double): New
5164	function.  (char_data) [HIP_XML_DECODE_UTF8]: Decode UTF-8.
5165
5166Tue Mar 28 13:54:51 2000  Joe Orton  <joe@orton.demon.co.uk>
5167
5168	* Makefile.incl: Imported makefile fragment.
5169
5170Tue Mar 28 13:54:09 2000  Joe Orton  <joe@orton.demon.co.uk>
5171
5172	* http_request.[ch] (http_get_error): New function.
5173
5174Thu Mar 23 18:48:42 2000  Joe Orton  <joe@orton.demon.co.uk>
5175
5176	* hip_xml.[ch]: Imported generic XML parsing layer.
5177
5178	* dav_207.[ch]: Imported generic WebDAV 207 response handling.
5179
5180	* dav_basic.[ch]: Imported/implemented DAV response handling and
5181	basic Class 1 namespace methods.
5182
5183Thu Mar 23 18:46:14 2000  Joe Orton  <joe@orton.demon.co.uk>
5184
5185	* http_request.c (add_hooks, run_hooks, http_add_destroy_hook):
5186	Adding hooks support.  (add_fixed_headers): Send TE token in
5187	Connection header. Only send Keep-Alive header & token to pre-1.1
5188	origin servers (i.e., not proxies).
5189
5190Thu Mar 23 12:49:01 2000  Joe Orton  <joe@orton.demon.co.uk>
5191
5192	* http_auth.[ch], uri.[ch]: Imported HTTP authentication and URI
5193	handling modules.
5194
5195Thu Mar 23 12:47:05 2000  Joe Orton  <joe@orton.demon.co.uk>
5196
5197	* http_utils.c: Imported HTTP utility functions.
5198
5199Thu Mar 23 12:44:38 2000  Joe Orton  <joe@orton.demon.co.uk>
5200
5201	* http_request.[ch]: Implemented modular HTTP request handling.
5202
5203	* http_basic.[ch]: Implemented basic HTTP methods GET, PUT, and
5204	PUT with If-Unmodified.
5205
5206