]> sjero.net Git - wget/blobdiff - src/ChangeLog
[svn] Fix a possible race condition when opening files.
[wget] / src / ChangeLog
index ceda154da8528700c09f8fa02fd90873c69fa55a..277a0edb8b85f0d5e8294ae9ab996b45acb7702b 100644 (file)
@@ -1,3 +1,560 @@
+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