2009-02-02 Samuel Thibault * dir.c (ftpfs_refresh_node): Use st_mtim.tv_sec members instead of st_mtime. Also compare st_mtim.tv_nsec members. 2007-11-13 Thomas Schwinge * netfs.c (netfs_attempt_utimes): Adapt to ``struct stat'' changes. 2006-07-11 Samuel Thibault * node.c (ftpfs_create_node): Check the result from hurd_ihash_add(). Add E to the hash table instead of NEW. 2005-06-14 Hugues Larrive * ftpfs.c (parse_startup_opt): User names may contain a @, so take the last @ of FTPFS_REMOTE_FS. * host.c (split_server_name): User names may contain a @, so take the last @ of P. 2003-08-17 Marcus Brinkmann * ftpfs.h: Include . (struct ftpfs): Change type of INODE_MAPPINGS to struct hurd_ihash. (struct ftpfs_dir_entry): Change type of INODE_LOCP to hurd_ihash_locp_t. * node.c (ftpfs_create_node): Call hurd_ihash_add, not ihash_add. (netfs_node_norefs): Call hurd_ihash_locp_remove, not ihash_locp_remove. * fs.c: Include . (ftpfs_create): Call hurd_ihash_init, not hurd_ihash_create. Call hurd_ihash_destroy on error. 2002-10-18 Moritz Schulte * dir.c (ftpfs_dir_lookup): Initialize NES.entry. 2002-05-13 Roland McGrath * dir.c (ftpfs_refresh_node): Set NODE->nn_translated appropriately. 2002-05-13 Marcus Brinkmann * ftpfs.c (netfs_server_name, netfs_server_version): New variables. 2002-05-08 Roland McGrath * conn.c (ftpfs_get_ftp_conn): Cast to uintptr_t before void *. * ftpfs.c (cntl_debug): Vice versa. 2002-04-13 Moritz Schulte * ftpfs.c: Include (main): Stat the underlying node and initialize the root node's stat information. * dir.c (ftpfs_refresh_node): If refreshing the root node, simply use the old stat information. 2002-03-11 Roland McGrath * ftpfs.c (parse_startup_opt): If given one argument with no :, use "/" as the remote root. 2001-12-29 Roland McGrath * netfs.c (netfs_attempt_statfs): Implement this, returning all zeros except for f_type and f_fsid. 2001-12-22 Roland McGrath * fs.c (ftpfs_create): Move braces around to avoid warning. 2001-02-12 Marcus Brinkmann * ftpfs.c: Include . Add global variable ARGP_PROGRAM_VERSION. Add period to DOC. 2001-01-07 Marcus Brinkmann * dir.c (ftpfs_dir_create): Fix last change (calloc invocation). 2000-12-21 Marcus Brinkmann * dir.c (ftpfs_dir_create): New macro INIT_HTABLE_LEN to specify initialize htable_len. New variable htable, allocate memory to it with calloc before acquiring a node reference. If this fails, return any allocated memory and return with ENOMEM. Set new->htable_len to INIT_HTABLE_LEN and new->htable to htable. Don't bzero htable anymore, as we use calloc. 2000-07-26 Mark Kettenis * Makefile (HURDLIBS): Reorder libs such that the threads lib comes before the ports lib. This makes sure the functions in libthreads properly override the stubs in libports with the new dynamic linker semantics in glibc 2.2. 1999-07-10 Roland McGrath * netfs.c: Add #include for munmap decl. * ccache.c: Likewise. 1999-07-09 Thomas Bushnell, BSG * ccache.c (ccache_read): Use mmap instead of vm_allocate. * netfs.c (get_dirents): Likewise. 1999-07-03 Thomas Bushnell, BSG * ccache.c (ccache_read): Use munmap instead of vm_deallocate. (ccache_invalidate): Likewise. (ccache_free): Likewise. * netfs.c (get_dirents): Likewise. Sun Jan 31 18:33:55 1999 Thomas Bushnell, BSG * netfs.c (netfs_attempt_utimes): Implement new possibility that ATIME or MTIME might be null. 1998-10-20 Roland McGrath * ftpfs.c (netfs_append_args): Add braces to silence gcc warning. * netfs.c (get_dirents): Likewise. (netfs_get_dirents): Likewise. * dir.c (ftpfs_refresh_node): Likewise. (ftpfs_dir_lookup): Likewise. 1998-09-04 Roland McGrath * ftpfs.c (netfs_append_args): Use %ld for time_t and %Zu for size_t. 1997-09-09 Miles Bader * ftpfs.c (parse_runtime_opt): New function. (runtime_argp): Use it. (netfs_append_args): Fix printed name of --node-cache-size. * dir.c (delete): Immediately free entries without nodes. 1997-08-29 Miles Bader * ftpfs.c (parse_startup_opt): Report an error if no filesystem is supplied. 1997-08-27 Miles Bader * ftpfs.c (parse_common_opt): Turn on debugging when there *aren't* any errors... 1997-08-22 Miles Bader * ftpfs.c (parse_common_opt): Release DEBUG_LOCK even if we get an error. 1997-08-19 Miles Bader * ftpfs.c (netfs_maxsymlinks): Initialize to 12. * ccache.c (ccache_read): Always update CC->max to something reasonable after a transfer. 1997-08-18 Miles Bader * ftpfs.c (debug_stream, debug_stream_name): New variables. (cntl_debug): Print to DEBUG_STREAM. (debug_lock): New variable (was local to cntl_debug). (parse_common_opt): Accept a FILE argument to --debug. (netfs_append_args): Print FILE argument to --debug. 1997-08-15 Miles Bader * netfs.c (netfs_attempt_mkfile): Unlock DIR. * dir.c (ftpfs_dir_null_lookup): New function. (ftpfs_dir_lookup): Handle "" lookups like ".". * ftpfs.h (ftpfs_dir_null_lookup): New declaration. * fs.c (ftpfs_create): Use ftpfs_dir_null_lookup instead of ftpfs_dir_lookup. * dir.c (ftpfs_dir_lookup): Set E's name timestamp for noent entries. (ftpfs_refresh_node): Record ENOENT entries. (refresh_dir): Add PRESERVE_ENTRY parameter; all callers changed. 1997-08-14 Miles Bader * ftpfs.c (ftpfs_ftp_hooks): Use ports_self_interrupted to check for interrupts. * ccache.c (ccache_read): Likewise. 1997-08-12 Miles Bader * ftpfs.c (main): Supply the FSID argument to ftpfs_create. * dir.c (update_entry): Set E->stat.st_fsid & st_fstype. (ftpfs_next_inode): Variable removed. * ftpfs.h (struct ftpfs ): Add FSID & NEXT_INODE fields. (ftpfs_create): Add FSID parameter. * fs.c (ftpfs_create): Add FSID parameter. Initialize FSID & NEXT_INODE fields. 1997-08-11 Miles Bader * dir.c (sweep): Don't delete entries that have the NOENT flag set. (refresh_dir): Ensure there are entries for `.' and `..'. 1997-08-09 Miles Bader * dir.c (struct new_entry_state): DIR_PFX & DIR_PFX_LEN fields removed. (update_new_entry): Don't futz with NAME anymore. * ftpfs.c (ftpfs_hooks): Initialize INTERRUPT_CHECK Field. * ccache.c (ccache_read): Check for thread cancelation. 1997-08-08 Miles Bader * dir.c (update_ordered_entry): Correctly handle a non-empty list. Only insert E in the ordered entry list if it's not already there. (refresh_dir): Don't clear the ordered entry list. Only reset bulk stat detection state if actually doing a bulk stat. Initialize DFS.prev_entry_next_p instead of DFS.prev_entry. (struct dir_fetch_state): Replace PREV_ENTRY by PREV_ENTRY_NEXT_P. (lookup): Grow the hash table when it gets large. (rehash): Zero the new hash table. * dir.c (path_append): Macro removed. (ftpfs_dir_lookup, ftpfs_refresh_node): Use ftp_conn_append_name instead of path_append. Don't set dir_pfx fields in RES anymore. (update_old_entry): Don't futz with NAME anymore. (struct refresh_entry_state): DIR_PFX & DIR_PFX_LEN fields removed. 1997-08-07 Miles Bader * ftpfs.c (DEFAULT_NAME_TIMEOUT): New macro. (DEFAULT_DIR_TIMEOUT, DEFAULT_DIRENT_TIMEOUT): Macros removed. (OPT_NAME_TIMEOUT): New macro. (OPT_DIR_TIMEOUT, OPT_DIRENT_TIMEOUT): Macros removed. (common_options, parse_common_opt, netfs_append_args, main): Replace --dir-timeout & --dirent-timeout by --name-timeout. Add --bulk-stat-period and --bulk-stat-threshold options. (netfs_append_args): Output --debug. * ftpfs.h (struct ftpfs_params): Remove dirent_timeout and dir_timeout fields. Add name_timeout field. * dir.c (ftpfs_dir_lookup): dirent_timeout parameter renamed to name_timeout and dirent_timestamp field renamed to name_timestamp. (lookup): Initialize timestamps. * ftpfs.h (struct ftpfs_dir): timestamp renamed to stat_timestamp. Add name_timestamp field. (struct ftpfs_dir_entry): dirent_timestamp renamed to name_timestamp. * dir.c (update_ordered_name): New function. (refresh_dir): Use ftp_conn_get_names instead of huge wodge of code. Update new timestamps. 1997-08-06 Miles Bader * dir.c (update_entry): Allow ST to be zero. Don't leak memory when updating symlink info. Change return type to void. Remove NO_LOCK parameter. (update_ordered_entry, update_old_entry, update_new_entry): Update calls to update_entry. (refresh_dir): Add UPDATE_STATS parameter, and only fetch names if it's zero. (ftpfs_dir_refresh, ftpfs_refresh_node, ftpfs_dir_lookup): Supply UPDATE_STATS argument to refresh_dir. * host.c (split_server_name): Enable password parsing. * dir.c (lookup): Initialize the NODE field.