#include "fuse.h" #include int NetFS::access(const char * p, int a) { return -filesystem->access(reqEnv(), p, a); } int NetFS::getattr(const char * p, struct stat * s) { try { NetFSComms::Attr a = filesystem->getattr(reqEnv(), p); s->st_dev = a.dev; s->st_ino = a.inode; s->st_mode = a.mode; s->st_nlink = a.links; s->st_uid = uentries.getID(a.uid); s->st_gid = gentries.getID(a.gid); s->st_rdev = a.rdev; s->st_size = a.size; s->st_blksize = a.blockSize; s->st_blocks = a.blocks; s->st_atime = a.atime; s->st_mtime = a.mtime; s->st_ctime = a.ctime; return 0; } catch (NetFSComms::SystemError & e) { return -e.syserrno; } } int NetFS::chmod(const char * p, mode_t m) { try { filesystem->chmod(reqEnv(), p, m); return 0; } catch (NetFSComms::SystemError & e) { return -e.syserrno; } } int NetFS::chown(const char * p, uid_t u, gid_t g) { try { filesystem->chown(reqEnv(), p, u, g); return 0; } catch (NetFSComms::SystemError & e) { return -e.syserrno; } } int NetFS::link(const char * p1, const char * p2) { try { filesystem->link(reqEnv(), p1, p2); return 0; } catch (NetFSComms::SystemError & e) { return -e.syserrno; } } int NetFS::symlink(const char * p1, const char * p2) { try { filesystem->symlink(reqEnv(), p1, p2); return 0; } catch (NetFSComms::SystemError & e) { return -e.syserrno; } } int NetFS::readlink(const char * p, char * p2, size_t s) { try { std::string l = filesystem->readlink(reqEnv(), p); l.copy(p2, s); p2[l.length()] = '\0'; return 0; } catch (NetFSComms::SystemError & e) { return -e.syserrno; } } int NetFS::rename(const char * p1, const char * p2) { try { filesystem->rename(reqEnv(), p1, p2); return 0; } catch (NetFSComms::SystemError & e) { return -e.syserrno; } } int NetFS::utimens(const char * path, const struct timespec times[2]) { try { filesystem->utimens(reqEnv(), path, times[0].tv_sec, times[0].tv_nsec, times[1].tv_sec, times[1].tv_nsec); return 0; } catch (NetFSComms::SystemError & e) { return -e.syserrno; } }