diff options
| author | Tomas Bzatek <tbzatek@tbzatek.englab.brq.redhat.com> | 2008-08-28 11:44:36 +0200 |
|---|---|---|
| committer | Tomas Bzatek <tbzatek@tbzatek.englab.brq.redhat.com> | 2008-08-28 11:44:36 +0200 |
| commit | dbc4ef453c272395b7846c29d23cf6c6a696c98b (patch) | |
| tree | 08000fb3c266630e4fde0fb52120c4399ebec282 /gvfs/gvfs.c | |
| parent | 0001a00f0bbc93136ea42a761bc88368bdfc3dc4 (diff) | |
| download | tuxcmd-modules-dbc4ef453c272395b7846c29d23cf6c6a696c98b.tar.xz | |
GVFS plugin: fall back to default file/dir mode if read fails
Diffstat (limited to 'gvfs/gvfs.c')
| -rw-r--r-- | gvfs/gvfs.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gvfs/gvfs.c b/gvfs/gvfs.c index 31b9fb2..5744d0c 100644 --- a/gvfs/gvfs.c +++ b/gvfs/gvfs.c @@ -505,6 +505,7 @@ g_file_info_to_TVFSItem (GFileInfo *info, struct TVFSItem *Item) Item->iGID = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_UNIX_GID); // g_print ("(II) g_file_info_to_TVFSItem: type = %d\n", g_file_info_get_file_type (info)); +// g_print ("(II) g_file_info_to_TVFSItem: UNIX_MODE = %d\n", Item->iMode); if (g_file_info_get_is_symlink (info)) { Item->ItemType = vSymlink; @@ -530,6 +531,14 @@ g_file_info_to_TVFSItem (GFileInfo *info, struct TVFSItem *Item) default: Item->ItemType = vRegular; } } + + /* fallback to default file mode if read fails */ + if (Item->iMode == 0) { + if (Item->ItemType == vDirectory) + Item->iMode = S_IFDIR + S_IRWXU + S_IRGRP + S_IXGRP + S_IROTH + S_IXOTH; + else + Item->iMode = S_IRUSR + S_IWUSR + S_IRGRP + S_IROTH; + } } TVFSResult |
