#include "comm_module.hpp" #include "command/channel_auth.hpp" #include "command/open_session.hpp" #include "command/rakp12.hpp" #include "command/rakp34.hpp" #include "command/session_cmds.hpp" #include "command_table.hpp" #include "main.hpp" #include "session.hpp" #include #include #include namespace command { void sessionSetupCommands() { static const command::CmdDetails commands[] = { // Open Session Request/Response {{(static_cast(message::PayloadType::OPEN_SESSION_REQUEST) << 16)}, &openSession, session::Privilege::HIGHEST_MATCHING, true}, // RAKP1 & RAKP2 Message {{(static_cast(message::PayloadType::RAKP1) << 16)}, &RAKP12, session::Privilege::HIGHEST_MATCHING, true}, // RAKP3 & RAKP4 Message {{(static_cast(message::PayloadType::RAKP3) << 16)}, &RAKP34, session::Privilege::HIGHEST_MATCHING, true}, // Get Channel Authentication Capabilities Command {{(static_cast(message::PayloadType::IPMI) << 16) | static_cast(command::NetFns::APP) | 0x38}, &GetChannelCapabilities, session::Privilege::HIGHEST_MATCHING, true}, // Set Session Privilege Command {{(static_cast(message::PayloadType::IPMI) << 16) | static_cast(command::NetFns::APP) | 0x3B}, &setSessionPrivilegeLevel, session::Privilege::USER, false}, // Close Session Command {{(static_cast(message::PayloadType::IPMI) << 16) | static_cast(command::NetFns::APP) | 0x3C}, &closeSession, session::Privilege::CALLBACK, false}, }; for (auto& iter : commands) { std::get(singletonPool) .registerCommand(iter.command, std::make_unique( iter.command, iter.functor, iter.privilege, iter.sessionless)); } } } // namespace command