summaryrefslogtreecommitdiff
path: root/gvfs/gvfs.c
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@tbzatek.englab.brq.redhat.com>2008-08-28 11:44:36 +0200
committerTomas Bzatek <tbzatek@tbzatek.englab.brq.redhat.com>2008-08-28 11:44:36 +0200
commitdbc4ef453c272395b7846c29d23cf6c6a696c98b (patch)
tree08000fb3c266630e4fde0fb52120c4399ebec282 /gvfs/gvfs.c
parent0001a00f0bbc93136ea42a761bc88368bdfc3dc4 (diff)
downloadtuxcmd-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.c9
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