#include "channel_auth.hpp"

#include <iostream>

#include <host-ipmid/ipmid-api.h>

namespace command
{

std::vector<uint8_t> GetChannelCapabilities(std::vector<uint8_t>& inPayload,
                                            const message::Handler& handler)
{
    std::cout << ">> GetChannelCapabilities\n";

    std::vector<uint8_t> outPayload(sizeof(GetChannelCapabilitiesResp));
    auto response = reinterpret_cast<GetChannelCapabilitiesResp*>
                    (outPayload.data());

    // A canned response, since there is no user and channel management.
    response->completionCode = IPMI_CC_OK ;

    // Channel Number 1 is arbitarily applied to primary LAN channel;
    response->channelNumber = 1;

    response->ipmiVersion = 1 ;     //IPMI v2.0 extended capabilities available.
    response->reserved1 = 0;
    response->oem = 0;
    response->straightKey = 0;
    response->reserved2 = 0;
    response->md5 = 0;
    response->md2 = 0;


    response->reserved3 = 0;
    response->KGStatus = 0;         //KG is set to default
    response->perMessageAuth = 0;   //Per-message Authentication is enabled
    response->userAuth = 0;         //User Level Authentication is enabled
    response->nonNullUsers = 1;     //Non-null usernames enabled
    response->nullUsers = 1;        //Null usernames enabled
    response->anonymousLogin = 0;   //Anonymous Login disabled

    response->reserved4 = 0;
    response->extCapabilities = 0x2;    //Channel supports IPMI v2.0 connections

    response->oemID[0] = 0;
    response->oemID[1] = 0;
    response->oemID[2] = 0;
    response->oemAuxillary = 0;

    std::cout << "<< GetChannelCapabilities\n";
    return outPayload;
}

} // namespace command
