summaryrefslogtreecommitdiff
path: root/ftpfs/dir.c
diff options
context:
space:
mode:
authorMarcus Brinkmann <marcus@gnu.org>2002-04-20 03:22:47 +0000
committerMarcus Brinkmann <marcus@gnu.org>2002-04-20 03:22:47 +0000
commitc2d4102f8291fb8af9e29eceb378e4ebda87dda0 (patch)
tree62162dc85c27ffea6dd328a6b66e9678183a880b /ftpfs/dir.c
parent4326834ca6c1fae1ab7f72f262ec2f4214928dd3 (diff)
ftpfs/
2002-04-13 Moritz Schulte <moritz@chaosdorf.de> * ftpfs.c: Include <sys/stat.h> (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. libftpconn/ 2002-04-13 Moritz Schulte <moritz@chaosdorf.de> * unix.c: Include <libgen.h>. (struct get_stats_state): New member: searched_name. (ftp_conn_unix_start_get_stats): Return EINVAL if trying to list the root node without listing it's content; set searched_name to the dirname. (ftp_conn_unix_cont_get_stats): If searching for the list info of one entry, skip all other entries.
Diffstat (limited to 'ftpfs/dir.c')
-rw-r--r--ftpfs/dir.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/ftpfs/dir.c b/ftpfs/dir.c
index 9e550ce8..6ae5facc 100644
--- a/ftpfs/dir.c
+++ b/ftpfs/dir.c
@@ -483,8 +483,9 @@ ftpfs_refresh_node (struct node *node)
if (!err && entry->noent)
err = ENOENT;
}
- else
+ else if (*(entry->name))
{
+ /* The root node is treated seperately below. */
struct ftp_conn *conn;
err = ftpfs_get_ftp_conn (dir->fs, &conn);
@@ -518,6 +519,17 @@ ftpfs_refresh_node (struct node *node)
entry->name_timestamp = timestamp;
}
}
+ else
+ {
+ /* Refresh the root node with the old stat
+ information. */
+ struct refresh_entry_state res;
+ res.entry = entry;
+ res.timestamp = timestamp;
+ err = update_old_entry (entry->name,
+ &netfs_root_node->nn_stat,
+ NULL, &res);
+ }
}
if ((entry->stat.st_mtime < node->nn_stat.st_mtime