]> sjero.net Git - wget/blobdiff - src/ChangeLog
[svn] Remove the "rbuf" buffering layer. Provide peeking primitives instead.
[wget] / src / ChangeLog
index e953555801734b25f6bb88dd121e65b14172d69f..f27a486f9d5b7924481ce126b49a889c98ef04a9 100644 (file)
@@ -1,3 +1,420 @@
+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.