From d7ede20abeb48e70eb4a6f58707e3fa9ced9b9d3 Mon Sep 17 00:00:00 2001 From: Antonio SJ Musumeci Date: Mon, 10 Nov 2014 07:41:15 -0500 Subject: [PATCH] provide stat to readdir filler. closes #32 --- src/readdir.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/readdir.cpp b/src/readdir.cpp index f84dc54a..68db2cfe 100644 --- a/src/readdir.cpp +++ b/src/readdir.cpp @@ -22,6 +22,8 @@ THE SOFTWARE. */ +#define _BSD_SOURCE + #include #include @@ -53,6 +55,7 @@ _readdir(const vector &srcmounts, const fuse_fill_dir_t filler) { set found; + struct stat st = {0}; for(vector::const_iterator iter = srcmounts.begin(), enditer = srcmounts.end(); @@ -69,12 +72,11 @@ _readdir(const vector &srcmounts, for(struct dirent *de = ::readdir(dh); de != NULL; de = ::readdir(dh)) { - string d_name(de->d_name); - - if(found.insert(d_name).second == false) + if(found.insert(de->d_name).second == false) continue; - if(filler(buf,de->d_name,NULL,NO_OFFSET) != 0) + st.st_mode = DTTOIF(de->d_type); + if(filler(buf,de->d_name,&st,NO_OFFSET) != 0) return -ENOMEM; }