Loading CMakeLists.txt +6 −2 Original line number Diff line number Diff line Loading @@ -147,7 +147,7 @@ endif() option(CREATE_CHECK_PARENTS "Check parent directory existance before creating child node" ON) message(STATUS "[gekkofs] Create checks parents: ${CREATE_CHECK_PARENTS}") option(SYMLINK_SUPPORT "Compile with support for symlinks" ON) option(SYMLINK_SUPPORT "Compile with support for symlinks" OFF) if(SYMLINK_SUPPORT) add_definitions(-DHAS_SYMLINKS) endif () Loading Loading @@ -239,8 +239,12 @@ include_directories( add_subdirectory(src/common) # Daemon add_subdirectory(src/daemon) # Proxy add_subdirectory(src/proxy) # Client library add_subdirectory(src/client) add_subdirectory(marc) ### Mark any CMake variables imported from {fmt} and spdlog as advanced, so ### that they don't appear in cmake-gui or ccmake. Similarly for FETCHCONTENT Loading hermes @ 7a234d85 Compare 7dd90dcb to 7a234d85 Original line number Diff line number Diff line Subproject commit 7dd90dcbacc6a68f7a5d6473c97151590a5a6b0f Subproject commit 7a234d854ae24bb33b46319f6735e44ab5dc33c7 include/client/env.hpp +1 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ static constexpr auto HOSTS_FILE = ADD_PREFIX("HOSTS_FILE"); #ifdef GKFS_ENABLE_FORWARDING static constexpr auto FORWARDING_MAP_FILE = ADD_PREFIX("FORWARDING_MAP_FILE"); #endif static constexpr auto PROXY_PID_FILE = ADD_PREFIX("PROXY_PID_FILE"); } // namespace gkfs::env Loading include/client/path.hpp +12 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ namespace gkfs::path { enum class NormalizeStatus { ok, fd_unknown, fd_not_a_dir }; unsigned int match_components(const std::string& path, unsigned int& path_components, const std::vector<std::string>& components); Loading @@ -40,6 +42,16 @@ bool resolve(const std::string& path, std::string& resolved, bool resolve_last_link = true); NormalizeStatus normalize(int dirfd, const char* raw_path, std::string& normalized_path, bool resolve_last_link = true); std::string normalize(const char* raw_path, bool resolve_last_link = true); bool is_in_gkfs(std::string& path, bool cut_mountdir_prefix = false); std::string get_sys_cwd(); Loading include/client/preload_context.hpp +24 −9 Original line number Diff line number Diff line Loading @@ -70,8 +70,6 @@ struct FsConfig { std::string rootdir; }; enum class RelativizeStatus { internal, external, fd_unknown, fd_not_a_dir }; /** * Singleton class of the client context with all relevant global data */ Loading @@ -97,6 +95,11 @@ private: std::string rpc_protocol_; bool auto_sm_{false}; // proxy stuff bool use_proxy_{false}; std::string proxy_address_str_; hermes::endpoint proxy_host_; bool interception_enabled_; std::bitset<MAX_INTERNAL_FDS> internal_fds_; Loading Loading @@ -168,14 +171,26 @@ public: void auto_sm(bool auto_sm); RelativizeStatus relativize_fd_path(int dirfd, const char* raw_path, std::string& relative_path, int flags = 0, bool resolve_last_link = true) const; bool relativize_path(const char* raw_path, std::string& relative_path, bool resolve_last_link = true) const; use_proxy() const; void use_proxy(bool use_proxy); const std::string& proxy_address_str() const; void proxy_address_str(const std::string& proxy_address_str); const hermes::endpoint& proxy_host() const; void proxy_host(const hermes::endpoint& proxy_host); void clear_proxy_host(); const std::shared_ptr<gkfs::filemap::OpenFileMap>& file_map() const; Loading Loading
CMakeLists.txt +6 −2 Original line number Diff line number Diff line Loading @@ -147,7 +147,7 @@ endif() option(CREATE_CHECK_PARENTS "Check parent directory existance before creating child node" ON) message(STATUS "[gekkofs] Create checks parents: ${CREATE_CHECK_PARENTS}") option(SYMLINK_SUPPORT "Compile with support for symlinks" ON) option(SYMLINK_SUPPORT "Compile with support for symlinks" OFF) if(SYMLINK_SUPPORT) add_definitions(-DHAS_SYMLINKS) endif () Loading Loading @@ -239,8 +239,12 @@ include_directories( add_subdirectory(src/common) # Daemon add_subdirectory(src/daemon) # Proxy add_subdirectory(src/proxy) # Client library add_subdirectory(src/client) add_subdirectory(marc) ### Mark any CMake variables imported from {fmt} and spdlog as advanced, so ### that they don't appear in cmake-gui or ccmake. Similarly for FETCHCONTENT Loading
hermes @ 7a234d85 Compare 7dd90dcb to 7a234d85 Original line number Diff line number Diff line Subproject commit 7dd90dcbacc6a68f7a5d6473c97151590a5a6b0f Subproject commit 7a234d854ae24bb33b46319f6735e44ab5dc33c7
include/client/env.hpp +1 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ static constexpr auto HOSTS_FILE = ADD_PREFIX("HOSTS_FILE"); #ifdef GKFS_ENABLE_FORWARDING static constexpr auto FORWARDING_MAP_FILE = ADD_PREFIX("FORWARDING_MAP_FILE"); #endif static constexpr auto PROXY_PID_FILE = ADD_PREFIX("PROXY_PID_FILE"); } // namespace gkfs::env Loading
include/client/path.hpp +12 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ namespace gkfs::path { enum class NormalizeStatus { ok, fd_unknown, fd_not_a_dir }; unsigned int match_components(const std::string& path, unsigned int& path_components, const std::vector<std::string>& components); Loading @@ -40,6 +42,16 @@ bool resolve(const std::string& path, std::string& resolved, bool resolve_last_link = true); NormalizeStatus normalize(int dirfd, const char* raw_path, std::string& normalized_path, bool resolve_last_link = true); std::string normalize(const char* raw_path, bool resolve_last_link = true); bool is_in_gkfs(std::string& path, bool cut_mountdir_prefix = false); std::string get_sys_cwd(); Loading
include/client/preload_context.hpp +24 −9 Original line number Diff line number Diff line Loading @@ -70,8 +70,6 @@ struct FsConfig { std::string rootdir; }; enum class RelativizeStatus { internal, external, fd_unknown, fd_not_a_dir }; /** * Singleton class of the client context with all relevant global data */ Loading @@ -97,6 +95,11 @@ private: std::string rpc_protocol_; bool auto_sm_{false}; // proxy stuff bool use_proxy_{false}; std::string proxy_address_str_; hermes::endpoint proxy_host_; bool interception_enabled_; std::bitset<MAX_INTERNAL_FDS> internal_fds_; Loading Loading @@ -168,14 +171,26 @@ public: void auto_sm(bool auto_sm); RelativizeStatus relativize_fd_path(int dirfd, const char* raw_path, std::string& relative_path, int flags = 0, bool resolve_last_link = true) const; bool relativize_path(const char* raw_path, std::string& relative_path, bool resolve_last_link = true) const; use_proxy() const; void use_proxy(bool use_proxy); const std::string& proxy_address_str() const; void proxy_address_str(const std::string& proxy_address_str); const hermes::endpoint& proxy_host() const; void proxy_host(const hermes::endpoint& proxy_host); void clear_proxy_host(); const std::shared_ptr<gkfs::filemap::OpenFileMap>& file_map() const; Loading