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