#include "comm_module.hpp" #include #include #include #include #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" 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