diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-12-15 00:20:23 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-12-15 00:20:23 +0000 |
commit | a38270df3ddad2ac60524a40eb986ab37e473c04 (patch) | |
tree | 2b0ff976a616fb970e62b93b3ffb52517efc1343 /netfs/daemon | |
parent | Add missing include (diff) | |
parent | Bump to C++20, required by new Slicer (diff) | |
download | netfs-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.cpp | 7 | ||||
-rw-r--r-- | netfs/daemon/daemonService.h | 7 | ||||
-rw-r--r-- | netfs/daemon/daemonVolume.cpp | 7 | ||||
-rw-r--r-- | netfs/daemon/daemonVolume.h | 9 | ||||
-rw-r--r-- | netfs/daemon/modeCheck.cpp | 5 | ||||
-rw-r--r-- | netfs/daemon/modeCheck.h | 10 |
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 |