+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
+ determine_screen_width() from the signal handler. Instead, just
+ set a volatile variable.
+ (bar_create): Check whether SIGWINCH was received.
+ (bar_update): Ditto.
+
+ * sysdep.h: Define SYSTEM_FNMATCH only if HAVE_FNMATCH_H is true.
+
+2003-11-03 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * utils.c (xsleep): New function. Uses nanosleep where available,
+ resuming sleeps interrupted by signals. Updated callers of sleep
+ and usleep to use xsleep.
+
+2003-11-03 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ftp-basic.c (ftp_login): Remove shadowing (and bogus)
+ declaration of SEED.
+
+2003-11-03 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * log.c (logvprintf): Documented better. Renamed to
+ log_vprintf_internal to avoid confusion with the public API
+ functions logprintf and logputs.
+
+2003-11-03 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * wget.h (N_): Don't parenthesize argument.
+
+2003-11-03 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * host.h (ADDRESS_IPV4_DATA): Don't take the address of in.s_addr
+ because that doesn't work on machines that define it as bitfield.
+
+2003-11-03 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * connect.c (select_fd): Generalize the third argument into WAIT,
+ so that the caller can request waiting for both read and write.
+ Updated callers.
+
+2003-11-02 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * html-url.c (cleanup_html_url): Destroy the hash tables, don't
+ just call free on them.
+ (init_interesting): Use hash_table_put instead of string_set_add
+ because we don't need the strdup that the latter function
+ performs.
+
+ * init.c (cleanup): Don't pass NULL to cookie_jar_delete.
+
+ * xmalloc.c (xfree_real): Abort when passed a NULL pointer.
+ (xfree_debug): Print at the file and line of the offending call to
+ free.
+
+2003-11-02 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * wget.h: Retired the `boolean' type. Moved the DEFAULT_LOGFILE
+ define to log.h. Moved the INFINITE_RECURSION define to recur.h.
+
+ * xmalloc.h: Renamed FREE_MAYBE to xfree_null and moved the
+ definition from wget.h to xmalloc.h.
+
+2003-11-02 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * html-parse.c (decode_entity): New function; split the decoding
+ of entities here.
+ (convert_and_copy): Use it to decode entities.
+ (decode_entity): Handle the &apos entity.
+ (decode_entity): Don't decode Latin 1 numeric entities. Don't
+ decode �.
+
+2003-11-01 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * ftp-opie.c (calculate_skey_response): Use uint32_t instead of
+ `unsigned long' for the cheksum array. Document the function.
+
+2003-11-01 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * connect.c (acceptport): Don't call select_fd when timeout is not
+ requested.
+
+2003-11-01 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * host.c: Removed the ip_default_family global variable.
+
+ * host.c (lookup_host): Document the function. Fixed declaration
+ of VEC.
+
+2003-10-31 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * various: Use new macros xnew, xnew0, xnew_array, and xnew0_array
+ in various places.
+
+2003-10-31 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * wget.h: Move declarations of malloc and logging code to
+ xmalloc.h and log.h respectively to unclutter this file.
+ (STRDUP_ALLOCA): Made it side-effect free.
+
+ * xmalloc.h: New files. Define macros xnew, xnew0, xnew_array,
+ and xnew0_array.
+
+ * xmalloc.c: New file. Move the xmalloc routines here.
+
+2003-10-31 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * connect.c (sockaddr_set_data): Remove the broken code that
+ checked for NULL address.
+
+2003-10-31 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * host.c (address_list_from_single): Removed.
+ (address_list_from_ipv4_addresses): Renamed from
+ address_list_from_vector.
+
+2003-10-31 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * sysdep.h (CLOSE): Don't call close on file descriptors less than
+ 0, i.e. on uncreated sockets.
+
+ * connect.c (resolve_bind_address): Work on struct sockaddr
+ directly.
+ (connect_to_host): Replacement for connect_to_many. Resolve HOST
+ and connect to any of its addresses. If we can't connect and the
+ host name lookup was cached, try to resolve it again. This should
+ fix problems with hosts behind dynamic DNS. Updated all callers.
+ (connect_to_ip): Replacement for connect_to_one. Removed SILENT;
+ added the argument PRINT instead. Updated all callers.
+ (set_connection_host_name): Removed.
+
+ * host.c (address_list_address_at): New function instead of
+ address_list_copy_one. It returns a pointer to ip_address *, so
+ it's not necessary to copy the data.
+ (address_list_cached_p): New function.
+ (forget_host_lookup): Ditto.
+
+ * connect.c: Got rid of the MSOCK global variable. Made bindport
+ return the local socket it creates. Added a new argument to
+ acceptport, the socket to call accept on. Updated callers.
+ (closeport): Removed.
+
+ * connect.c: Moved the sockaddr code from host.c to this file,
+ because most of that stuff is used for connecting, and has nothing
+ to do with host names anyway.
+ (sockaddr_set_data, sockaddr_get_data): New functions, replace the
+ old sockaddr_set_address, sockaddr_set_port, sockaddr_get_address,
+ and sockaddr_get_port.
+
+2003-10-30 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * sysdep.h: Use `S >= 8' rather than `S == 8' when looking for
+ large integers.
+
+2003-10-30 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * url.c (append_uri_pathel): New argument ESCAPED_P that says
+ whether [B, E) is to be treated as URL-escaped or not. If
+ ESCAPED_P is false, don't unescape the region.
+ (url_file_name): u->file is not URL-escaped.
+
2003-10-30 Hrvoje Niksic <hniksic@xemacs.org>
* retr.c (retrieve_from_file): Use retrieve_tree for
2003-10-27 Mauro Tortonesi <mauro@deepspace6.net>
- * host.c, connect.c, ftp.c, ...: Added support for dual-family
- IPv6. Reworked FTP code.
+ * connect.h: changed bindport prototype and added the related
+ BIND_ON_IPV4_ONLY and BIND_ON_IPV6_ONLY flags.
+
+ * connect.c: changed bindport and resolve_bind_address to allow
+ protocol-version specific DNS resolution. modified conaddr,
+ acceptport and connect_to_one to make use of struct
+ sockaddr_storage and of the new ip_address structure.
+
+ * ftp-basic.c: added LPRT/LPSV (RFC1639) support, refactored
+ PORT/PASV (RFC959) and EPRT/EPSV (RFC2428) support code.
+
+ * ftp.c: added the ftp_do_port and ftp_do_pasv functions to
+ handle FTP over IPv6.
+
+ * ftp.h: changed prototype of ftp_epsv and added prototypes for
+ ftp_lpsv, ftp_lprt and ftp_eprt.
+
+ * host.c: renamed the
+ wget_sockaddr_set_address and wget_sockaddr_get_addr, and
+ wget_sockaddr_{s,g}et_port couples to sockaddr_{s,g}et_address and
+ sockaddr_{g,s}et_port respectively. changed
+ address_list_match_all, address_list_from_addrinfo sockaddr_len,
+ pretty_print_address, lookup_host, sockaddr_{s,g}et_address and
+ sockaddr_{g,s}et_port to make use of struct sockaddr_storage and
+ of the new ip_address structure. removed map_ipv4_to_ip and
+ map_ip_to_ipv4.
+
+ * host.h: redefined structure ip_address and removed structure
+ wget_sockaddr.
2003-10-26 Hrvoje Niksic <hniksic@xemacs.org>