#pragma once #include "address.hpp" #include "endpoint_types.hpp" #include "lns_tracker.hpp" #include "pendingbuffer.hpp" #include "router_lookup_job.hpp" #include "session.hpp" #include #include #include #include #include #include #include #include #include namespace llarp::service { struct EndpointState { std::set snode_blacklist; Router* router; std::string key_file; std::string name; std::string net_NS; bool is_exit_enabled = false; PendingTrafficMap pending_traffic; ConnectionMap remote_sessions; ConnectionMap dead_sessions; std::set inbound_convotags; SNodeConnectionMap snode_sessions; std::unordered_multimap pending_service_lookups; std::unordered_map last_service_lookup_time; std::unordered_map service_lookup_fails; PendingRoutersMap pending_routers; llarp_time_t last_publish = 0s; llarp_time_t last_publish_attempt = 0s; /// our introset IntroSet local_introset; /// on initialize functions std::list> on_init_callbacks; /// conversations std::unordered_map m_Sessions; std::unordered_set
m_OutboundSessions; util::DecayingHashTable, std::hash> nameCache; LNSLookupTracker lnsTracker; bool Configure(const NetworkConfig& conf); util::StatusObject ExtractStatus(util::StatusObject& obj) const; }; } // namespace llarp::service