#ifndef CONFIGFILEPARSER_H #define CONFIGFILEPARSER_H #include #include #include #include #include #include #include "sslctxmanager.h" #include "listener.h" #include "settings.h" #define ABSOLUTE_MAX_PACKET_SIZE 268435461 // 256 MB + 5 enum class ConfigParseLevel { Root, Listen }; class ConfigFileParser { const std::string path; std::set validKeys; std::set validListenKeys; void testKeyValidity(const std::string &key, const std::set &validKeys) const; void checkFileAccess(const std::string &key, const std::string &pathToCheck) const; public: ConfigFileParser(const std::string &path); void loadFile(bool test); std::unique_ptr settings; }; #endif // CONFIGFILEPARSER_H