Skip to content
API Documentation
BastionGuard™
SocketSnapshot.cpp File Reference

Go to the source code of this file.

Classes

struct  bsc::net::anonymous_namespace{SocketSnapshot.cpp}::Row
struct  bsc::net::anonymous_namespace{SocketSnapshot.cpp}::RowIn

Namespaces

namespace  bsc
namespace  bsc::net
namespace  bsc::net::anonymous_namespace{SocketSnapshot.cpp}

Functions

std::uint32_t bsc::net::anonymous_namespace{SocketSnapshot.cpp}::inode_cache_lookup (const std::string &inode)
void bsc::net::anonymous_namespace{SocketSnapshot.cpp}::inode_cache_store (const std::string &inode, std::uint32_t pid)
void bsc::net::anonymous_namespace{SocketSnapshot.cpp}::ebpf_flow_cache_store (const bsc::model::Connection &conn)
void bsc::net::anonymous_namespace{SocketSnapshot.cpp}::ebpf_flow_cache_store_many (const std::vector< bsc::model::Connection > &conns)
std::optional< bsc::model::Connection > bsc::net::anonymous_namespace{SocketSnapshot.cpp}::ebpf_flow_cache_lookup (const bsc::model::Connection &needle)
std::string bsc::net::anonymous_namespace{SocketSnapshot.cpp}::trim_trailing_ws (std::string s)
std::string bsc::net::anonymous_namespace{SocketSnapshot.cpp}::read_proc_comm (std::uint32_t pid)
std::string bsc::net::anonymous_namespace{SocketSnapshot.cpp}::hex_ipv4 (const std::string &s)
std::string bsc::net::anonymous_namespace{SocketSnapshot.cpp}::hex_ipv6 (const std::string &s)
std::uint32_t bsc::net::anonymous_namespace{SocketSnapshot.cpp}::hex_port (const std::string &s)
std::vector< Row > bsc::net::anonymous_namespace{SocketSnapshot.cpp}::parse_file (const std::string &path, const std::string &proto, bool ipv6)
std::uint32_t bsc::net::anonymous_namespace{SocketSnapshot.cpp}::find_pid_by_inode_direct (const std::string &inode)
std::unordered_map< std::string, std::uint32_t > bsc::net::anonymous_namespace{SocketSnapshot.cpp}::build_inode_pid_map ()
void bsc::net::anonymous_namespace{SocketSnapshot.cpp}::append_rows (std::vector< bsc::model::Connection > &conns, const std::vector< Row > &rows, const std::unordered_map< std::string, std::uint32_t > &inode_map)
std::string bsc::net::anonymous_namespace{SocketSnapshot.cpp}::normalize_proto (std::string proto)
bool bsc::net::anonymous_namespace{SocketSnapshot.cpp}::same_endpoint (const std::string &lhs, const std::string &rhs)
bool bsc::net::anonymous_namespace{SocketSnapshot.cpp}::same_flow (const bsc::model::Connection &a, const bsc::model::Connection &b)
std::vector< RowIn > bsc::net::anonymous_namespace{SocketSnapshot.cpp}::parse_file_with_inode (const std::string &path, const std::string &proto, bool ipv6)
std::string bsc::net::anonymous_namespace{SocketSnapshot.cpp}::find_inode_for_flow (const bsc::model::Connection &c)

Variables

constexpr auto bsc::net::anonymous_namespace{SocketSnapshot.cpp}::kSnapshotTtl = std::chrono::milliseconds(500)
constexpr auto bsc::net::anonymous_namespace{SocketSnapshot.cpp}::kInodeCacheTtl = std::chrono::seconds(90)
std::mutex bsc::net::anonymous_namespace{SocketSnapshot.cpp}::g_inode_cache_mutex
std::unordered_map< std::string, std::pair< std::uint32_t, std::chrono::steady_clock::time_point > > bsc::net::anonymous_namespace{SocketSnapshot.cpp}::g_inode_pid_cache
constexpr auto bsc::net::anonymous_namespace{SocketSnapshot.cpp}::kEbpfFlowCacheTtl = std::chrono::seconds(12)
std::mutex bsc::net::anonymous_namespace{SocketSnapshot.cpp}::g_ebpf_flow_cache_mutex
std::vector< std::pair< bsc::model::Connection, std::chrono::steady_clock::time_point > > bsc::net::anonymous_namespace{SocketSnapshot.cpp}::g_ebpf_flow_cache