void PrintAnalyzer::negotiateSMBv2()

in src/analysis/print_analyzer.cpp [395:458]


void PrintAnalyzer::negotiateSMBv2(const SMBv2::NegotiateCommand* cmd,
                                   const SMBv2::NegotiateRequest*,
                                   const SMBv2::NegotiateResponse* res)
{
    SMBv2Commands cmdEnum = SMBv2Commands::NEGOTIATE;

    print_session(out, cmd) << "\n";
    print_smbv2_header(out, cmd->req_header) << "\n";
    print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n";

    out << "  Dialect count = "
        << cmd->parg->dialectCount
        << "\n";

    print_enum(out, "Security mode", cmd->parg->securityMode) << "\n";
    print_enum(out, "Capabilities", cmd->parg->capabilities) << "\n";

    out << "  Client Guid = ";
    print_guid(out, cmd->parg->clientGUID);
    out << "\n";

    out << "  Boot Time = ";
    print_time(out, cmd->parg->clientStartTime) << "\n";

    for(int i = 0; i < cmd->parg->dialectCount; i++)
    {
        out << "  Dialect = ";
        print_hex16(out, to_integral(cmd->parg->dialects[i]));
        out << "\n";
    }

    print_smbv2_header(out, cmd->res_header) << "\n";
    print_smbv2_common_info_resp(out, cmdEnum, cmd) << "\n";

    print_enum(out, "Security mode", res->securityMode) << "\n";

    out << "  Dialect = ";
    print_hex16(out, res->dialectRevision);
    out << "\n";

    out << "  Server Guid = ";
    print_guid(out, res->serverGUID);
    out << "\n";

    print_enum(out, "Capabilities", res->capabilities);

    out << "\n  Max Transaction Size  = "
        << res->maxTransactSize
        << "\n";

    out << "  Max Read Size = "
        << res->maxReadSize
        << "\n";

    out << "  Max Write Size = "
        << res->maxWriteSize
        << "\n";

    out << "  Current Time = ";
    print_time(out, res->systemTime);

    out << "\n  Boot Time = ";
    print_time(out, res->serverStartTime);
}