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