diff options
author | randomdan <randomdan@localhost> | 2010-10-27 18:26:09 +0000 |
---|---|---|
committer | randomdan <randomdan@localhost> | 2010-10-27 18:26:09 +0000 |
commit | e12ba0dffeac81845dbac902ac6e467c59e5b0fc (patch) | |
tree | e8dab40584b827d35dadb2594fef20cfe46aebaa /netfs/fuse.h | |
parent | Store the fuse config and initialise the Ice proxies as needed (diff) | |
download | netfs-e12ba0dffeac81845dbac902ac6e467c59e5b0fc.tar.bz2 netfs-e12ba0dffeac81845dbac902ac6e467c59e5b0fc.tar.xz netfs-e12ba0dffeac81845dbac902ac6e467c59e5b0fc.zip |
Merge all FS operations into one interface
Add missing utimens support
Change effective user when performing (most) operations
Refactor FUSE client to get remaining base code into base file
Transmit user and group names, not numbers
Load a cache of users and groups
Custom error handling in derived FUSE class
Reconnect and retry on AuthError
Define 64bit offset on client and server to support huge files
Fix a few instances where the export path wasn't prefixed to the request path
Diffstat (limited to 'netfs/fuse.h')
-rw-r--r-- | netfs/fuse.h | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/netfs/fuse.h b/netfs/fuse.h index a4e6335..b890838 100644 --- a/netfs/fuse.h +++ b/netfs/fuse.h @@ -5,18 +5,16 @@ #include "netfsComms.h" #include "fuseapp.h" #include "fuseConfig.h" +#include "entCache.h" class NetFS : public FuseAppBase { public: class ReqEnv : public NetFSComms::ReqEnv { public: - ReqEnv(Ice::Long at); - private: - static std::map<uid_t, std::string> uidcache; - static std::map<gid_t, std::string> gidcache; - static void makeugidCache(); + ReqEnv(const NetFS *); }; + NetFS(int & argc, char ** argv); ~NetFS(); private: @@ -33,6 +31,7 @@ class NetFS : public FuseAppBase int rename(const char *, const char *); int symlink(const char *, const char *); int unlink(const char *); + int utimens(const char *, const struct timespec tv[2]); // dirs int opendir(const char * p, struct fuse_file_info * fi); int releasedir(const char *, struct fuse_file_info * fi); @@ -50,6 +49,7 @@ class NetFS : public FuseAppBase // fs int statfs(const char *, struct statvfs *); // stuff + int onError(const std::exception & err) const throw(); ReqEnv reqEnv(); @@ -58,17 +58,16 @@ class NetFS : public FuseAppBase Ice::CommunicatorPtr ic; FuseConfigPtr fc; - NetFSComms::FilesPrx files; - NetFSComms::DirsPrx dirs; - NetFSComms::MiscPrx misc; - NetFSComms::SystemPrx system; + NetFSComms::FileSystemPrx filesystem; NetFSComms::ServicePrx service; - Ice::Long authtok; + mutable Ice::Long authtok; std::string mountPoint; std::string exportName; std::string configPath; + + EntCache entries; }; #endif |