summaryrefslogtreecommitdiff
path: root/netfs/daemon
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2021-12-15 00:20:23 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2021-12-15 00:20:23 +0000
commita38270df3ddad2ac60524a40eb986ab37e473c04 (patch)
tree2b0ff976a616fb970e62b93b3ffb52517efc1343 /netfs/daemon
parentAdd missing include (diff)
parentBump to C++20, required by new Slicer (diff)
downloadnetfs-a38270df3ddad2ac60524a40eb986ab37e473c04.tar.bz2
netfs-a38270df3ddad2ac60524a40eb986ab37e473c04.tar.xz
netfs-a38270df3ddad2ac60524a40eb986ab37e473c04.zip
Psycho-rebased branch mapper on top of netfs-1.4netfs-1.4.0.1-mark
Diffstat (limited to 'netfs/daemon')
-rw-r--r--netfs/daemon/daemonService.cpp7
-rw-r--r--netfs/daemon/daemonService.h7
-rw-r--r--netfs/daemon/daemonVolume.cpp7
-rw-r--r--netfs/daemon/daemonVolume.h9
-rw-r--r--netfs/daemon/modeCheck.cpp5
-rw-r--r--netfs/daemon/modeCheck.h10
6 files changed, 28 insertions, 17 deletions
diff --git a/netfs/daemon/daemonService.cpp b/netfs/daemon/daemonService.cpp
index 18b050d..38d40c7 100644
--- a/netfs/daemon/daemonService.cpp
+++ b/netfs/daemon/daemonService.cpp
@@ -1,9 +1,14 @@
#include "daemonService.h"
#include "daemon.h"
#include "daemonVolume.h"
+#include <entCache.h>
#include <safeMapFind.h>
-ServiceServer::ServiceServer(NetFS::Daemon::ConfigurationPtr c) : config(std::move(c)) { }
+ServiceServer::ServiceServer(NetFS::Daemon::ConfigurationPtr c) :
+ userLookup(std::make_shared<UserEntCache>()), groupLookup(std::make_shared<GroupEntCache>(userLookup)),
+ config(std::move(c))
+{
+}
NetFS::VolumePrxPtr
ServiceServer::connect(const std::string share, const std::string authtoken, const Ice::Current & ice)
diff --git a/netfs/daemon/daemonService.h b/netfs/daemon/daemonService.h
index e0f80ef..753583e 100644
--- a/netfs/daemon/daemonService.h
+++ b/netfs/daemon/daemonService.h
@@ -2,7 +2,8 @@
#define DAEMONSERVICE_H
#include <daemonConfig.h>
-#include <entCache.h>
+#include <entries.h>
+#include <entryResolver.h>
#include <service.h>
class ServiceServer : public NetFS::Service {
@@ -12,8 +13,8 @@ public:
NetFS::VolumePrxPtr connect(const std::string share, const std::string auth, const Ice::Current &) override;
private:
- EntCache<User> userLookup;
- EntCache<Group> groupLookup;
+ EntryResolverPtr<User> userLookup;
+ EntryResolverPtr<Group> groupLookup;
NetFS::Daemon::ConfigurationPtr config;
};
diff --git a/netfs/daemon/daemonVolume.cpp b/netfs/daemon/daemonVolume.cpp
index 3ae43da..ff75e06 100644
--- a/netfs/daemon/daemonVolume.cpp
+++ b/netfs/daemon/daemonVolume.cpp
@@ -7,6 +7,7 @@
#include <boost/algorithm/string/predicate.hpp>
#include <cerrno>
#include <climits>
+#include <defaultMapper.h>
#include <entCache.h>
#include <fcntl.h>
#include <map>
@@ -15,8 +16,10 @@
extern std::map<Ice::Int, int> files;
-VolumeServer::VolumeServer(const std::filesystem::path & r, const EntCache<User> & u, const EntCache<Group> & g) :
- root(std::filesystem::canonical(r)), userLookup(u), groupLookup(g), converter(u, g)
+VolumeServer::VolumeServer(
+ const std::filesystem::path & r, const EntryResolverPtr<User> & u, const EntryResolverPtr<Group> & g) :
+ root(std::filesystem::canonical(r)),
+ userLookup(*u), groupLookup(*g), converter(std::make_shared<NetFS::Mapping::DefaultMapper>(u, g))
{
}
diff --git a/netfs/daemon/daemonVolume.h b/netfs/daemon/daemonVolume.h
index b75c5d6..649d8c2 100644
--- a/netfs/daemon/daemonVolume.h
+++ b/netfs/daemon/daemonVolume.h
@@ -1,7 +1,8 @@
#ifndef DAEMONVOLUME_H
#define DAEMONVOLUME_H
-#include <entCache.h>
+#include <entries.h>
+#include <entryResolver.h>
#include <filesystem>
#include <shared_mutex>
#include <typeConverter.h>
@@ -9,7 +10,7 @@
class VolumeServer : public NetFS::Volume {
public:
- VolumeServer(const std::filesystem::path & root, const EntCache<User> &, const EntCache<Group> &);
+ VolumeServer(const std::filesystem::path & root, const EntryResolverPtr<User> &, const EntryResolverPtr<Group> &);
NetFS::DirectoryPrxPtr opendir(const NetFS::ReqEnv, std::string path, const Ice::Current &) override;
@@ -47,8 +48,8 @@ protected:
private:
const std::filesystem::path root;
- const EntCache<User> & userLookup;
- const EntCache<Group> & groupLookup;
+ EntryResolver<User> & userLookup;
+ EntryResolver<Group> & groupLookup;
EntryTypeConverter converter;
};
diff --git a/netfs/daemon/modeCheck.cpp b/netfs/daemon/modeCheck.cpp
index 49cea44..d63163a 100644
--- a/netfs/daemon/modeCheck.cpp
+++ b/netfs/daemon/modeCheck.cpp
@@ -1,9 +1,8 @@
#include "modeCheck.h"
-#include <entCache.h>
#include <exceptions.h>
-ModeCheck::ModeCheck(const NetFS::ReqEnv & re, const std::filesystem::path & r, const EntCache<User> & u,
- const EntCache<Group> & g) :
+ModeCheck::ModeCheck(const NetFS::ReqEnv & re, const std::filesystem::path & r, const EntryResolver<User> & u,
+ const EntryResolver<Group> & g) :
myu(u.getEntry(re.user)->id),
myg(g.getEntry(re.grp)->id), root(r), userLookup(u), groupLookup(g)
{
diff --git a/netfs/daemon/modeCheck.h b/netfs/daemon/modeCheck.h
index 693ad8d..6365816 100644
--- a/netfs/daemon/modeCheck.h
+++ b/netfs/daemon/modeCheck.h
@@ -1,14 +1,16 @@
#ifndef NETFS_DAEMON_IOHELPERS
#define NETFS_DAEMON_IOHELPERS
-#include <entCache.h>
+#include <entries.h>
+#include <entryResolver.h>
#include <filesystem>
#include <sys/stat.h>
#include <types.h>
class ModeCheck {
public:
- ModeCheck(const NetFS::ReqEnv & re, const std::filesystem::path &, const EntCache<User> &, const EntCache<Group> &);
+ ModeCheck(const NetFS::ReqEnv & re, const std::filesystem::path &, const EntryResolver<User> &,
+ const EntryResolver<Group> &);
void AssertReadParent(const std::filesystem::path &) const;
void AssertRead(const std::filesystem::path &) const;
@@ -27,8 +29,8 @@ public:
private:
static struct stat lstat(const std::filesystem::path &);
- const EntCache<User> & userLookup;
- const EntCache<Group> & groupLookup;
+ const EntryResolver<User> & userLookup;
+ const EntryResolver<Group> & groupLookup;
};
#endif