diff options
Diffstat (limited to 'netfs/daemon/daemonVolume.cpp')
-rw-r--r-- | netfs/daemon/daemonVolume.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/netfs/daemon/daemonVolume.cpp b/netfs/daemon/daemonVolume.cpp index c87b1b0..e21bdd0 100644 --- a/netfs/daemon/daemonVolume.cpp +++ b/netfs/daemon/daemonVolume.cpp @@ -73,6 +73,18 @@ VolumeServer::getattr(const NetFS::ReqEnv & re, const std::string & path, const } void +VolumeServer::mknod(const NetFS::ReqEnv & re, const std::string & path, Ice::Int mode, Ice::Int dev, const Ice::Current&) +{ + TempPrivs tp(re, root); + errno = 0; + boost::filesystem::path p(resolvePath(path)); + tp.AssertWrite(p.parent_path()); + if (::mknod(p.string().c_str(), mode, dev) != 0) { + throw NetFS::SystemError(errno); + } +} + +void VolumeServer::symlink(const NetFS::ReqEnv & re, const std::string & path1, const std::string & path2, const Ice::Current &) { TempPrivs tp(re, root); |