]> sjero.net Git - wget/blobdiff - src/ChangeLog
[svn] Removed string_t.c from the list of source files in Makefiles.
[wget] / src / ChangeLog
index 1d520fb6bca0ac7a6b0d6e3ab8ec71b8a2c33afb..36b8928cd87b9abd328c4c46685be8e5a4a8aa18 100644 (file)
+2005-04-05  Mauro Tortonesi  <mauro@ferrara.linux.it>
+
+       * Makefile.in: removed string_t.c from list of source files.
+
+2005-04-04  Mauro Tortonesi  <mauro@ferrara.linux.it>
+
+       * string_t.c: Removed.
+       
+       * string_t.h: Removed.
+
+2005-04-02  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * url.c (rewrite_shorthand_url): Only accept recognized schemes.
+       That way "foo:80" will correctly be rewritten to "http://foo:80"
+       instead of left unchanged and ultimately rejected because of
+       "unsupported scheme foo".
+
+2005-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * utils.c (number_to_string): Avoid explicit 64-bit constants;
+       construct them by multiplication at compile-time.
+
+       * utils.c, elsewhere: Don't append "L" to 32-bit integer
+       constants; we aren't really compilable on 16-bit systems anyway.
+
+       * hash.c (prime_size): Remove primes larger than 2^31, but include
+       2^31-1, which is prime.
+
+2005-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * utils.c (string_set_to_array): New function.
+
+       * convert.c: Replace the use of "slists" with sets/hash-tables,
+       which in fact suit the intended purpose much better.
+       downloaded_html_list is removed altogether.
+
+2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * ftp.h (enum): Rename GLOBALL, GETALL, and GETONE to
+       GLOB_GLOBALL, GLOB_GETALL, and GLOB_GETONE to avoid conflict with
+       Linux headers.
+
+2005-03-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * utils.c (numdigit): More correct handling of negative numbers.
+
+2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (gethttp): Print the human-readable size.
+
+       * ftp.c (getftp): Print the human-readable size of the file to be
+       downloaded.
+
+       * utils.c (human_readable): New function.
+
+       * utils.c: Renamed "legible" to "with_thousand_seps",
+       "legible_large_int" to "with_thousand_seps_large", and "legible_1"
+       to "add_thousand_seps".
+
+2005-03-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (gethttp): Inhibit persistent connections when talking to
+       proxies, as mandated by RFC 2068.
+
+2005-03-20  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * url.c (unescape_single_char): New function.
+       (url_escape_dir): Use it to unescape slashes in directory
+       components.
+       (url_string): Escape unsafe chars in host name, except for the ':'
+       charaters, which can appear in IPv6 addresses.
+
+       * main.c (main): Don't access the cookie jar directly.
+
+       * log.c (escnonprint_internal): Correctly calculate the needed
+       string size.  Don't forget the buffer's new size after having
+       reallocated it.
+       (log_cleanup): New function.  Free the escnonprint ring data.
+
+       * init.c (cleanup): Don't free the cookie jar explicitly, it is
+       now done by http_cleanup.
+       (cleanup): opt.user_headers is now a vector, free it with
+       free_vec.
+
+       * http.c (gethttp): Make sure to free the request data, the status
+       message, and the response data before returning from the function.
+       (save_cookies): New function.
+       (http_cleanup): Free the cookie jar here.
+
+       * hash.c: Renamed string_hash to hash_string and ptrhash to
+       hash_pointer.  Exported hash_pointer.
+
+       * xmalloc.c: Organized malloc_table (previously malloc_debug) as a
+       simple EQ hash table.  register_ptr and unregister_ptr are now of
+       O(1) complexity.
+
+       * xmalloc.c: Renamed "*_debug" to debugging_* and "*_real" to
+       checking_*.
+
+2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * utils.c (debug_test_md5): Moved to gen-md5.c.
+
+       * mswindows.h: Don't declare inet_ntop, since we don't use it.
+
+       * mswindows.h: For consistency, also wrap closesocket, it being
+       a Winsock call.
+
+       * mswindows.h: Don't declare sleep and usleep; we're defining
+       xsleep now.
+
+       * mswindows.h (mkdir): Don't special-case Borland C, _mkdir
+       works there as well.
+
+       * host.c: Don't include winsock header files; the correct ones
+       are already included by mswindows.h.
+
+       * mswindows.c (xsleep): Round toward the nearest millisecond
+       in an attempt to avoid average short sleeps.
+
+       * utils.c (wtimer_granularity): Report correct values for
+       Windows timers and for high-resolution timers.
+
+       * utils.c (wtimer_initialize_once): New function, called to
+       initialize the timer frequency.
+
+       * utils.c: Replace the use of GetSystemTime with high-resolution
+       counters under Windows.  When high-resolution counters are
+       unavailable, use GetTickCount().
+
+2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * retr.c (fd_read_body): Undo the 2004-11-18 change.  Instead,
+       always be "exact".
+
+2005-03-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * ftp-basic.c (ftp_login): Don't free the string if ftp_response
+       returned an error status because the line didn't get allocated in
+       the first place.
+
+2005-03-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (read_http_response_head): Limit the response size to 64k
+       bytes.
+
+       * retr.c (fd_read_hunk): Accept a MAXSIZE argument that limits the
+       number of bytes the function is allowed to allocate.
+       (fd_read_line): Limit the line to 4096 bytes.
+
+2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * wget.h: Include options.h after wgint has been defined.
+
+       * options.h (struct options): Declare options processed with
+       cmd_bytes as wgint, not long.
+
+2005-03-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * init.c (cmd_file): Use concat_strings.
+
+       * http.c (basic_authentication_encode): Use concat_strings.
+
+       * ftp-ls.c (ftp_index): Use concat_strings.
+
+       * ftp-basic.c (ftp_request): Use concat_strings.
+
+       * utils.c (concat_strings): New function.
+
+2005-03-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * init.c (simple_atof): Handle negative numbers; skip whitespace
+       before the number.
+       (simple_atoi): Ditto.  Also, check for overflow and underflow.
+       (cmd_number): Bail out on negative numbers.
+       (parse_bytes_helper): Ditto.
+
+2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (gethttp): Handle multiple Set-Cookie headers sent by
+       remote server.
+
+2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * init.c (defaults): Use passive FTP by default.
+
+2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * mswindows.c: Provide wrappers to Winsock functions that set
+       errno to WSAGetLastError() in case of failure.  Also provide a
+       Windows-specific version of strerror.
+
+       * mswindows.h: Wrap calls to socket, bind, connect, recv, send,
+       select, getsockname, getpeername, and setsockopt.
+
+2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * url.c (url_parse): Reject port numbers larger than 65535.  We
+       also check for overflow while parsing port numbers.
+
+2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * utils.c (read_file): Don't use wgint for file size; LFS won't
+       work since the file is mmap'ed as a whole.
+
+       * options.h: Don't include stdio.h.
+
+       * log.c: Ditto.
+
+       * init.c: Disambiguate assignment from non-zero test to avoid
+       Borland C warning.
+
+       * http.c (response_new): Don't needlessly post-increment count.
+
+       * hash.c: Include stdio.h.
+
+       * gnu-md5.h: Don't include stdio.h.
+
+       * getopt.h (struct option): Always use const.
+
+       * ftp.c (getftp): Avoid unnecessary assignment to RES to avoid
+       Borland C warning.
+
+       * ftp-ls.c: Disambiguate assignment from non-zero test to avoid
+       Borland C warning.
+
+       * cmpt.c (strptime_internal): Don't initialize rp_backup when
+       !_NL_CURRENT to avoid Borland C warning.
+
+2005-03-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * utils.c (fopen_excl): Fix parse error when O_BINARY is
+       available.
+
+2005-03-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * url.c (url_file_name): Don't allow hosts named ".." to be
+       appended as path elements.
+
+2005-03-03  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * retr.c (retrieve_url): Escape location header.
+
+       * http.c (print_server_response_1): Escape server response when
+       printing it.
+       (gethttp): Escape host name, status message, location header, and
+       content type.
+       (http_loop): Escape error message from server.
+
+       * host.c (lookup_host): Escape host name when printing it.
+
+       * ftp.c (getftp): Escape user name when printing it.
+       (getftp): Escape remote file and directory for printing.
+       (getftp): Escape server listing when printing it.
+       (ftp_retrieve_list): Escape link name and file name.
+       (ftp_retrieve_glob): Escape file name.
+
+       * ftp-basic.c (ftp_response): Escape server response when printing
+       it.
+
+       * cookies.c (parse_set_cookies): Escape the cookie field when
+       printing it.
+       (parse_set_cookies): Escape contents of remote header.
+       (cookie_handle_set_cookie): Escape host name and cookie domain.
+
+       * connect.c (connect_to_ip): Escape the host name.
+
+       * log.c (escnonprint): New function, used for printing strings
+       coming from the server that possibly contain non-ASCII characters.
+       (escnonprint_uri): Ditto.
+
+2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * ftp.c (getftp): Ditto.
+
+       * http.c (gethttp): When we're not supposed to overwrite files,
+       use fopen_excl to open the file and recompute the file name.
+
+       * log.c (redirect_output): Use unique_create to avoid a race
+       condition.
+
+       * mswindows.c (fake_fork_child): Use unique_create.
+
+       * utils.c (fopen_excl): New function that opens a stdio stream
+       with the O_EXCL flag (where available).
+       (unique_create): New function, like unique_name, but also creating
+       the file and returning a file pointer.
+       (fork_to_background): Use unique_create to create the file
+       immediately to avoid race condition with multiple instances of
+       wget -b.
+
+2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * host.c (lookup_host): Test for AI_ADDRCONFIG directly, instead
+       of checking for HAVE_GETADDRINFO_AI_ADDRCONFIG.
+
+2005-02-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * host.c (is_valid_ipv6_address): Move here from url.c.
+       (lookup_host): If the address is numeric, don't print the
+       "resolving..." line, don't set up DNS timeouts, and set the
+       AI_NUMERICHOST hint, where available.
+
+2005-02-26  Gisle Vanem  <giva@bgnett.no>
+
+       * utils.c: Use the nnnLL syntax under GCC.  Define struct_stat to
+       struct _stati64 under __MINGW32__ as well as under MS VC.
+
+2005-02-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * utils.c: Use the nnnI64 syntax for __int64 constants under all
+       Windows compilers.
+       (SPRINTF_WGINT): Use "%I64" under all Windows compilers.
+
+       * mswindows.h (WGINT_MAX): Use the nnnI64 syntax for
+       __int64 constants under all Windows compilers.
+       (struct_stat): Use `struct stati64' under Borland C.
+       (fstat): Don't redefine to _fstati64 under Borland.
+
+       * mswindows.c: Define str_to_int64 under Borland C as well as
+       under (older) Visual C.
+
+2005-02-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * ftp.c (getftp): Initialize err to suppress compiler warning.
+
+2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * ftp.c (ftp_expected_bytes): Fix bug that caused infloop because
+       of not correctly skipping the '(' character.
+
+2005-02-24  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * mswindows.c (wget_ftello): Removed.
+
+       * mswindows.h: Remove bogus definition of stat.
+       (wget_ftello): Remove the leftover ftello replacement.
+
+2005-02-20  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * mswindows.c (wget_ftello): Wget's replacement for ftello.
+
+       * utils.c (file_size): Use ftello where available.
+
+       * ftp-ls.c (ftp_parse_unix_ls): Use str_to_wgint to parse the file
+       size.
+       (ftp_parse_winnt_ls): Ditto.
+
+       * ftp-basic.c (ftp_size): Use str_to_wgint to convert number to
+       wgint; pass 10 instead of 0 as the BASE argument.
+
+       * ftp.c (ftp_expected_bytes): Use str_to_wgint to parse the file
+       size.
+
+       * sysdep.h (LARGE_INT_FMT): Use __int64 as LARGE_INT on
+       MSVC/Windows; print it with "%I64".
+
+       * wget.h: Define a `wgint' type, normally aliased to (the possibly
+       64-bit variant of) off_t.
+
+       * all: Use `wgint' instead of `long' for numeric variables that
+       can hold file sizes.
+
+       * utils.c (number_to_string): Support printing of `wgint'
+       argument.
+       (number_to_static_string): New function.
+
+       * all: Replace printf("%ld", long_value) with printf("%s",
+       number_to_static_string(wgint_value)).
+
+2005-02-18  Mauro Tortonesi <mauro@ferrara.linux.it>
+
+       * main.c: Added the --ftp-passwd command line option.
+
+       * init.c: Renamed command passwd to ftppasswd.
+
+2005-02-11  Mauro Tortonesi <mauro@ferrara.linux.it>
+       
+       * string_t.c: Fixed a bug in do_escape and triggered escape of
+       backslashes in string_escape to avoid ambiguities in the result
+       string.
+       
+2005-02-10  Mauro Tortonesi <mauro@ferrara.linux.it>
+
+       * string.h: Renamed to string_t.h to fix a compilation conflict 
+       with the string.h header in the standard C library.
+       
+       * string.c: Renamed to string_t.c for consistency with string.h.
+       
+       * string_t.c: Ditto.
+
+       * string_t.h: Ditto.
+       
+2004-12-31  Mauro Tortonesi <mauro@ferrara.linux.it>
+
+       * string.c: New file.
+
+       * string.h: New file.
+
+       * Makefile.in: Added string.c to the list of modules to compile.
+
+       * main.c: Updated copyright.
+
+2004-11-18  Ulf Harnhammar <ulf.harnhammar.9485@student.uu.se>
+
+       * ftp-ls.c: Fixed a problem in ftp_parse_winnt_ls that could allow a
+       malicious remote FTP server to crash wget.
+
+2004-11-18  Hans-Andreas Engel <engel@node.ch>
+
+       * http.c: Enable --convert-links (-k) when a single page is downloaded
+       via --output-document (-O).
+
+2004-11-18  Mauro Tortonesi <mauro@deepspace6.net>
+
+       * connect.c: Minor correction to the comment in front of fd_peek.
+
+2004-11-18  Leonid Petrov <nouser@lpetrov.net>
+
+       * retr.c: Fix a timeout problem in fd_read_body when using http_proxy.
+
+2004-11-15  YAMAZAKI Makoto <Yamazaki.Makoto@fujixerox.co.jp>
+
+       * netrc.c: Fix termination by assertion bug in netrc parsing.
+
+2004-05-09  David Fritz  <zeroxdf@att.net>
+
+       * mswindows.c (fake_fork): Pass entire command line to the child
+       process.
+
+2004-03-31  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (gethttp): Fix typo: SCHEME_SSL -> SCHEME_HTTPS.
+
+2004-03-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (gethttp): Send the Proxy-Authorization header over
+       non-SSL connections too.
+
+2004-03-25  David Fritz  <zeroxdf@att.net>
+
+       * mswindows.c (fake_fork_child): Ignore error code when
+       OpenFileMapping() fails; assume it failed because the object does
+       not exist.
+
+2004-03-24  David Fritz  <zeroxdf@att.net>
+
+       * mswindows.c (fake_fork): New function.
+
+       * mswindows.c (fork_to_background): Use it.
+
+2004-03-19  David Fritz  <zeroxdf@att.net>
+
+       * mswindows.c (ws_hangup): Incorporate old fork_to_background()
+       code.  Add event name argument.
+       (fork_to_backgorund): Now a simple wrapper around ws_hangup().
+       (ws_handler): Correctly handle the case when neither CTRLC_BACKGND
+       nor CTRLBREAK_BACKGND are defined.  Don't bother handling close,
+       logoff, or shutdown events.  Call ws_hangup() with the correct
+       event name; don't assume it was CTRL+Break.
+
+2004-03-19  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * url.c (url_parse): Decode %HH sequences in host name.
+
+2004-03-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * convert.c (local_quote_string): Quote "#" as "%23" and "%" as
+       "%25" when creating links to local files.
+
+2004-03-02  David Fritz  <zeroxdf@att.net>
+
+       * mswindows.c (ws_percenttitle): Guard against future changes by
+       doing nothing if the proper variables have not been initialized.
+       Clamp percentage value.
+
+2004-03-04  Gisle Vanem  <giva@bgnett.no>
+
+       * retr.c (fd_read_body): Don't change console title if quiet.
+
+2004-02-25  David Fritz  <zeroxdf@att.net>
+
+       * mswindows.c (set_sleep_mode): Remove argument and return value.
+       Call GetModuleHandle() instead of LoadLibrary()/FreeLibrary() for
+       kernel32.dll.  Use typedef for function-pointer.  Don't cast
+       l-value.  Don't use dereference operator when calling through
+       function-pointer.
+       (ws_startup): Update call to set_sleep_mode().
+       (ws_cleanup): Remove call to set_sleep_mode().
+
+2004-02-23  David Fritz  <zeroxdf@att.net>
+
+       * http.c (http_loop): Ditto.
+
+       * ftp.c (ftp_loop_internal): Update call to ws_changetitle().
+
+       * main.c (main): Don't bother calling ws_changetitle().
+
+       * mswindows.h (ws_changetitle): Update prototype.
+
+       * mswindows.c (ws_changetitle): Remove second argument.  Use
+       xfree_null().
+       (ws_percenttitle): Only update title when percentage has changed.
+
+2004-02-23  David Fritz  <zeroxdf@att.net>
+
+       * mswindows.h: Ditto.
+
+       * mswindows.c: Misc. formatting/comment tweaks throughout.
+
+2004-02-20  David Fritz  <zeroxdf@att.net>
+
+       * main.c (print_help): Remove call to ws_help().
+
+       * mswindows.c (ws_help): Remove.
+
+       * mswindows.h (ws_help): Remove.
+
+2004-02-16  David Fritz  <zeroxdf@att.net>
+
+       * init.c (home_dir): Use aprintf() instead of xmalloc()/sprintf().
+       Under Windows, if $HOME is not defined, use the directory that
+       contains the Wget binary instead of hard-coded `C:\'.
+       (wgetrc_file_name): Under Windows, look for $HOME/.wgetrc then, if
+       not found, look for wget.ini in the directory of the Wget binary.
+
+       * mswindows.c (ws_mypath): Employ slightly more robust methodology.
+       Strip trailing path separator.
+
+2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (gethttp): Respect --ignore-length.
+       (gethttp): Inhibit keep-alive if --ignore-length is specified.
+
+2004-02-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (sockaddr_set_data): Zero out
+       sockaddr_in/sockaddr_in6.  Apparently BSD-derived stacks need this
+       when binding a socket to local address.
+
+2004-02-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * hash.c: Make the file compilable outside Wget source tree when
+       -DSTANDALONE is used.
+
+2004-01-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * utils.c (determine_screen_width): Return 0 if not running on
+       Windows or on a TIOCGWINSZ-capable system.
+
+2004-01-28  David Fritz  <zeroxdf@att.net>
+
+       * utils.c (determine_screen_width): Correctly determine console
+       width under Windows.
+
+2004-01-28  Christian Biere  <christianbiere@gmx.de>
+
+       * progress.c (bar_set_params): Fixed syntax error when HAVE_ISATTY
+       was undefined.
+
+       * ftp.c (ftp_loop_internal): Allocate a larger buffer in case
+       "try" gets translated to something large.  Ditto in http_loop in
+       http.c.
+
+       * http.c (response_header_copy): Don't write to buf[BUFSIZE].
+
+       * ftp-opie.c (skey_response): Eliminate unnecessary string
+       concatenation; just call gen_md5_update twice.
+
+2004-01-25  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * utils.c (xsleep): Don't call usleep with values larger than
+       1,000,000.
+
+2003-12-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (gethttp): Fix generation of `Content-Length'.
+
+2003-12-15  Gisle Vanem  <giva@bgnett.no>
+
+       * url.c (url_skip_credentials): Fixed return value; 'url' if no
+       credentials.
+
+2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * url.c (url_skip_credentials): Return a pointer directly.
+
+2003-12-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * url.c (url_file_name): Ditto.
+       (parse_errors): Ditto.
+
+       * retr.c (retr_rate): Ditto.
+
+       * progress.c (create_image): Ditto.
+
+       * netrc.c (parse_netrc): Ditto.
+
+       * main.c (struct cmdline_option): Ditto.
+       (redirect_output_signal): Ditto.
+
+       * init.c (commands): Ditto.
+
+       * ftp-ls.c (ftp_index): Ditto.
+
+       * cookies.c (check_domain_match): Declare the pointer to a literal
+       string as `const'.
+
+2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * retr.c (fd_read_body): Pass total size to progress_create, not
+       the remaining amount.
+
+2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * retr.c (fd_read_body): Don't fiddle with "interactive timeout"
+       if read timeout is unset.
+
+2003-12-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (bind_local): Don't set the IPV6_V6ONLY option on the
+       socket.
+
+2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * url.c (url_file_name): Respect the setting of
+       opt.protocol_directories.
+
+       * main.c (main): Only check for ret=='?' when longindex is unset.
+       (option_data): New option --protocol-directories.
+
+2003-12-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * ftp.c (getftp): Ditto.
+
+       * http.c (gethttp): Correctly calculate bandwidth as total data
+       read divided with download time.
+
+       * retr.c (fd_read_body): Separate the return values for data
+       written and read.
+
+2003-12-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (H_REDIRECTED): Respect the HTTP/1.1 "303 See Other"
+       response code.
+       Suggested by Dan Razzell.
+
+2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * retr.c (fd_read_body): Report the amount of data *written* as
+       amount_read.  This is not entirely logical, but that's what the
+       callers expect, and it's not easy to change.
+
+       * ftp.c (ftp_loop_internal): Ditto.
+
+       * http.c (http_loop): Be smarter about assigning restval; if we're
+       in the nth pass of a download, simply use the information we have
+       about how much data has been retrieved as restval.
+
+       * ftp.c (getftp): Ditto for FTP "REST" command.
+
+       * http.c (gethttp): When the server doesn't respect range, skip
+       the first RESTVAL bytes of the read body.  Never truncate the
+       output file.
+
+       * retr.c (fd_read_body): Support skipping initial STARTPOS octets.
+
+2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (skip_short_body): Renamed skip_body to skip_short_body;
+       don't bother calling fd_read_body.
+
+2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * retr.c (fd_read_body): Sanitize arguments and document them
+       better.  Make sure the timer is created and updated only if
+       necessary.  Updated callers.
+
+2003-11-30  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (skip_body): New function.
+       (gethttp): Use it to skip the body of the responses we don't care
+       to download.  That allows us to reuse the connection.
+       (gethttp): Trust that the HEAD requests will not generate body
+       data.
+
+       * retr.c (fd_read_body): Don't write to OUT if it's NULL.
+
+2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (gethttp): Initialize SSL only the first time when SSL
+       URL is downloaded.
+
+2003-11-29  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * cookies.c (cookie_header): Only generate the contents of the
+       header, not the leading "Cookie: " or the trailing "\r\n".
+
+       * http.c (gethttp): When adding headers specified with `--header',
+       allow them to override the headers generated by Wget.
+
+       * init.c (cmd_spec_header): Made opt.user_headers a vector.
+
+       * http.c (request_new): New function.  Returns a request structure
+       which can be modified in various ways, most notably by adding HTTP
+       headers to the request.
+       (request_set_header): New function for adding the header to the
+       request.  If the header is already available, it gets replaced.
+       (request_send): Construct and send the request.
+       (gethttp): Use the request_* functions to generate the request.
+
+2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (gethttp): Don't include the Proxy-Authorization header
+       in the request tunneled through proxy.
+
+2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (gethttp): Use the CONNECT handle to establish SSL
+       passthrough through non-SSL proxies.
+
+2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * init.c: Don't #include netinet/Winsock stuff.
+
+2003-11-28  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c: Deleted the old functions header_process,
+       header_extract_number, header_exists, header_strdup,
+       http_process_range, http_process_none, http_process_type, and
+       http_process_connection.
+
+       * http.c (response_new): New function.
+       (response_header_bounds): Ditto.
+       (response_header_copy): Ditto.
+       (response_header_strdup): Ditto.
+       (response_status): Ditto.
+       (gethttp): Use the new response_* functions to parse the response.
+       Support HTTP/0.9 responses.
+
+2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * progress.c (create_image): Don't calculate ETA if nothing has
+       been downloaded yet, because it causes division by zero.
+
+2003-11-27  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (bind_local): Rename sa_len to addrlen because IRIX
+       headers define sa_len as a macro.
+
+2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * html-parse.c (convert_and_copy): Remove embedded newlines when
+       AP_TRIM_BLANKS is specified.
+
+2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * ftp.c: Set con->csock to -1 where rbuf_uninitialize was
+       previously used.
+
+2003-11-26  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * Makefile.in (http$o): Added the trailing backslash that was
+       missing.
+
+2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * headers.c: Removed.  The file is no longer relevant, now that no
+       special handling of headers is done by the rbuf code.  Moved
+       portions to http.c.
+
+2003-11-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * rbuf.c: Removed.
+
+       * ftp-basic.c (ftp_response): Use fd_read_line.  No longer use
+       struct rbuf.  Updated all callers.
+
+       * http.c (gethttp): Use fd_read_head to read all the headers in
+       one go.
+       (next_header): New function.
+
+       * retr.c (fd_read_line): New function: reads a line from FD,
+       leaving the rest of the data unread.
+       (fd_read_head): New function.
+
+       * connect.c (fd_peek): New function, implements peeking.
+       (poll_internal): New function.
+       (fd_read): Use it.
+       (fd_write): Ditto.
+       (fd_peek): Ditto.
+       (fd_register_transport): Allow registering a "peeker" callback.
+
+2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c: Renamed xread/xwrite/xclose to
+       fd_read/fd_write/fd_close.  The "x" prefix is not appropriate
+       because the semantics have diverged from read/write/close too
+       significantly.  Updated all callers.
+
+2003-11-20  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (sock_write): It's not necessary to initialize RES.
+
+2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * main.c (main): Don't reference opt.ipv4_only and opt.ipv6_only
+       if IPv6 is disabled.
+
+2003-11-19  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (socket_has_inet6): Only compile it if IPv6 is enabled
+       and AI_ADDRCONFIG is missing.
+
+2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * gen_sslfunc.c (ssl_init_prng): Warn the user when using a weak
+       random seed.
+
+2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * host.c (address_list_contains): Renamed address_list_find to
+       address_list_contains because its result is boolean.
+
+2003-11-18  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (select_fd): Return 1 if select is not available.
+
+2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (connect_to_host): Don't reference address list after
+       releasing it.
+
+2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * main.c (print_help): Fix alignment of FTP options output.
+
+2003-11-17  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * host.c (lookup_host): Check for the ability to create IPv6
+       sockets here.
+
+       * init.c (defaults): Don't auto-set --inet4-only on IPv6-less
+       systems.
+
+2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * main.c (print_help): Fix typo in `-O' help message.  Fix docs of
+       -Y/--proxy.  Fix docs of `--cookies' and `--glob'.  Improve docs
+       of --convert-links.  Fix docs of SSL options.
+
+2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * ftp-basic.c: Don't include <arpa/inet.h> and others because
+       they're no longer needed.
+
+2003-11-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * main.c (main): Don't allow setting of both opt.ipv4_only and
+       opt.ipv6_only.
+
+       * init.c (defaults): Mark opt.ipv4_only specially when set
+       automatically.
+
+2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * host.c (lookup_host): Use AI_ADDRCONFIG only if the family is
+       unspecified.  This ensures that specifying `--no-inet4' on systems
+       where IPv6 resolves, but doesn't work behaves the same regardless
+       of the availability of AI_ADDRCONFIG.
+
+2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * host.c: Don't refer to the now-removed function
+       forget_host_lookup in the documentation of lookup_host.
+
+2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (persistent_available_p): Correctly specify the endpoint
+       argument to socket_ip_address.
+       (gethttp): When printing the "reusing connection to..." message,
+       specify the host name of the reused connection, not the current
+       host name.  That makes more sense because it provides a useful
+       piece of information -- we know to which host we're supposed to
+       connect anyway!
+
+2003-11-15  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * init.c: Make sure the options are in alphabetic order!
+
+       * host.c (lookup_host): Merge lookup_host_passive and lookup_host
+       after all -- having both would result in some code duplication.
+       (lookup_host): Set hints.ai_family to AF_INET if ipv4_only is
+       requested.  Likewise, set it to AF_INET6 for ipv6_only.  Specify
+       AI_ADDRCONFIG where available.
+       (lookup_host): New flag LH_REFRESH that specifies that a cached
+       entry for HOST should be refreshed.
+       (cache_query): New function.
+       (cache_store): Ditto.
+       (cache_remove): Ditto.
+       (forget_host_lookup): No longer necessary, replaced with static
+       function cache_remove.
+
+2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * main.c: Enable -4 and -6 only if IPv6 is enabled.
+
+2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (register_transport): Renamed from register_extended.
+       Explain the intended usage.
+
+2003-11-14  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * url.c (uri_merge): Merging "foo" and "bar" should result in
+       "bar", not in "foo/bar".
+       (path_simplify): Don't remove empty path elements; don't
+       special-case leading slash.
+       (path_simplify): Don't swallow ".."'s at the beginning of string.
+       E.g. simplify "foo/../../bar" as "../bar", not as "bar".
+       (append_uri_pathel): Defang ".." path element upon encountering
+       it.
+
+2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (persistent_available_p): Don't attempt to talk to two
+       different SSL sites over the same secure connection.
+
+2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (gethttp): Ditto.
+
+       * ftp.c (getftp): Use retryable_socket_connect_error instead of
+       CONNECT_ERROR.
+
+       * wget.h (CONNECT_ERROR): Removed.
+
+       * connect.c (retryable_socket_connect_error): New function instead
+       of unsupported_socket_family_error.
+
+2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * wget.h (CONNECT_ERROR): Use it.
+
+       * connect.c (unsupported_socket_family_error): New function.
+
+2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (bind_local): Renamed bindport to bind_local; return
+       the socket directly.  Updated callers.
+       (accept_connection): Renamed acceptport to accept_connection;
+       return the created socket directly.  Updated callers.
+
+2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * init.c (defaults): Turn on opt.ipv4_only if we're compiling with
+       IPv6, and AI_ADDRINFO is not available, and AF_INET6 sockets can't
+       be created.
+
+2003-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * host.c (lookup_host): Document the fact that the addresses are
+       returned in order.
+
+2003-11-12  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * utils.c: Use limits.h only where available.
+
+       * hash.c: Use INVALID_PTR and INVALID_PTR_BYTE.  Include limits.h.
+
+2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * main.c: Added options --inet4-only and --inet6-only.
+
+2003-11-11  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * host.c (host_errstr): Use the more standard message "Unknown
+       host".
+
+2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (connect_to_host): Use that flag to decide whether to
+       re-resolve the host name.
+
+       * host.c (struct address_list): Added a flag that maintains
+       whether the connection worked at some point.
+
+2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * host.c (lookup_host): Special-case the numeric addresses only in
+       the non-IPv6 case.
+
+2003-11-10  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (resolve_bind_address): Call lookup_host_passive.
+       Make sure that opt.bind_address is resolved only once.
+
+       * host.c (lookup_host_passive): New function, handles "passive"
+       lookups.
+       (lookup_host): Remove the passive flags.  Remove the
+       family-related flags -- use ip_default_family instead.
+
+2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * html-url.c: Get URLs from <object data="...">.
+
+2003-11-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * main.c (option_data): Specify the command to use for --mirror.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * cookies.c (cookie_handle_set_cookie): Specify exact match for
+       unspecified domains.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * main.c (main): Removed one-letter options `-C', `-g', `-G', and
+       `-s'.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * main.c (main): Add --dont-remove-listing for backward
+       compatibility with previous versions.
+       (print_help): Fix typo, spotted by Dennis Smit.
+
+2003-11-08  Gisle Vanem  <giva@bgnett.no>
+
+       * ftp-basic.c: Support Windows-2000 ftp servers. Win-2000 *is*
+       Win-NT 5.0 so calling it ST_WINNT is okay I guess.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * progress.c (update_speed_ring): Clear the speed ring when the
+       download stalls.
+
+       * retr.c (get_contents): Specify 0.95s read timeout, so that the
+       progress gauge can be updated even when data arrives very slowly
+       or stalls.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * utils.c (wtimer_allocate): Bless the use of wtimer_read on a
+       timer that has merely been allocated because get_contents() does
+       that.
+       (wtimer_update): Abort if the timer is not initialized.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * retr.c (get_contents): Pass the timer to limit_bandwidth().
+
+       * utils.c (wtimer_update): New function instead of wget_elapsed;
+       just update the timer, but don't return anything.
+       (wtimer_read): Read and return the last known value of the timer.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (persistent_available_p): Instead of matching all the
+       addresses of HOST and last host, determine the peer's IP address
+       with socket_ip_address and see if that address is one of those
+       HOST resolves to.
+
+       * host.c (address_list_match_all): Removed.
+       (address_list_find): New function, finds an IP address in the
+       address list.
+
+       * ftp.c (ftp_do_pasv): Get the peer's address here, and pass it to
+       ftp_epsv so it doesn't need to call getpeername.
+
+       * ftp-basic.c (ftp_port): Use socket_ip_address instead of
+       getpeername.
+       (ftp_lprt): Ditto.
+
+       * connect.c (socket_ip_address): Replaces conaddr, generalized to
+       either get peer's or local address.
+       (sockaddr_get_data): Made local to this file.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * hash.c (HASH_POSITION): Explicitly accept the hash function.
+       (grow_hash_table): Extract ht->hash_function outside the loop.
+       (hash_table_remove): Ditto.
+       (hash_table_clear): Fill entries with 0xff to clear them.
+       (hash_table_remove): Mark entries as deleted with the correct
+       marker.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (persistent_available_p): No reason for the host lookup
+       to be silent -- it's a lookup like any other.
+
+2003-11-08  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (register_extended): Check that fd >= 0.
+
+2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (LAZY_RETRIEVE_INFO): Set LAST_INFO.
+
+2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * hash.c (NON_EMPTY): Use the all-bit-set value as the marker that
+       the field is empty.  This allows NULL pointer and 0 value to be
+       used as keys, which is necessary for the connect.c code to work
+       when fd==0.
+       (hash_table_new): Fill mappings with 0xff.
+       (grow_hash_table): Ditto.
+
+2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * url.c (url_parse): Allow empty ports.
+
+2003-11-07  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * main.c (print_help): Break the help string into multiple chunks.
+       (cmdline_option): New option handler OPT_FUNCALL.  Generalized
+       HANDLE_CMD to generic DATA.
+       (option_data): Use the new OPT_FUNCALL feature.
+
+2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * log.h: Declare log_init, log_close, and
+       log_request_redirect_output here.
+
+2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
+
+       * main.c: (main): added --preserve-permissions option.
+
+       * ftp.c (ftp_retrieve_list): added support for
+       --preserve-permissions option.
+
+       * init.c: added support for --preserve-permission option.
+
+       * option.h: added support for --preserve-permission option.
+
+2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * main.c (init_switches): New function.  Convert option_data to
+       long_options and short_options, which can be fed to getopt_long.
+       (main): Execute command-line options by consulting option_data.
+
+2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * gen_sslfunc.c (ssl_read): Implement a more correct check for
+       EINTR.
+       (ssl_write): Ditto.
+       (init_ssl): Use a global SSL context.
+
+2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (xclose): Free INFO even if it doesn't provide a
+       closer.
+
+2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c: Updated all callers of
+       iread/ssl_iread/iwrite/ssl_iwrite to use xread and xwrite instead.
+
+       * rbuf.h (struct rbuf): Removed the SSL member because SSL is
+       handled automatically by xread.
+
+       * hash.c (ptrhash): Made private.
+       (ptrcmp): Ditto.
+       (inthash): Removed.
+
+       * connect.c (select_fd): Don't set errno, leave it to the caller.
+
+       * gen_sslfunc.c (connect_ssl): Use register_extended to register
+       SSL callbacks for communication with SSL-enabled endpoints.
+       (ssl_read): New function.
+       (ssl_write): Ditto.
+       (ssl_poll): Ditto.
+       (ssl_close): Ditto.
+
+       * connect.c (register_extended): New function -- register
+       callbacks for basic socket operations.
+       (xread): Ditto.
+       (xwrite): Ditto.
+       (xclose): Ditto.
+       (sock_read): New function, default implementation for reading.
+       (sock_write): Ditto for writing.
+       (sock_poll): Ditto for polling.
+       (sock_close): Ditto for closing.
+
+2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (bindport): Fix compilation under pre-C99 compilers.
+
+2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (connect_to_ip): More compact error checking.
+       (bindport): Don't treat failed setsockopt as a fatal error.
+
+2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * connect.c (resolve_bind_address): Use a more accurate error
+       message -- we're not binding to ANY, we're disabling bind
+       altogether.
+
+2003-11-05  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * cookies.c (save_cookies_mapper): Respect the setting of
+       keep-session-cookies.
+       (cookie_jar_load): Import session cookies.
+       Based on code submitted by Nicolas Schodet.
+
+       * utils.c (datetime_str): Use information in TM when it's
+       non-NULL.
+
+       * main.c (main): New option `--keep-session-cookies'.
+
+2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * Makefile.in (realclean): Delete config.h.in.
+
+2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * config-post.h: New file, included from now autogenerated
+       config.h.in.
+
 2003-11-04  Hrvoje Niksic  <hniksic@xemacs.org>
 
        * progress.c (progress_handle_sigwinch): Don't call