Пример #1
0
int CSVBaseSNMP::InitSNMPV3()
{
    static const char chEngineId[] = "snmpWalk";                    //Engine ID
    static const char chFilename[] = "snmpv3_boot_counter";         //Local File Name

    unsigned int snmpEngineBoots = 0;
    int nStatus = 0;
    //Get Current Boot Counter
    nStatus = getBootCounter(chFilename, chEngineId, snmpEngineBoots);
    if ( nStatus != SNMPv3_OK && nStatus < SNMPv3_FILEOPEN_ERROR )
    {
        return 1;
    }

    //Add Boot Counter
    snmpEngineBoots ++;
    //Save Boot Counter In File
    nStatus = saveBootCounter(chFilename, chEngineId, snmpEngineBoots);
    if (nStatus != SNMPv3_OK)
    {//Save File Failed
        return 1;
    }

    //Construct Status
    int construct_status;
    //Create v3MP Class By Engine ID and Boot Counter, return Result into
    //Construct status
    v3MP *v3_MP = new v3MP(chEngineId, snmpEngineBoots, construct_status);
    if(v3_MP)
    {
        //Get v3MP Property (Point to USM Class)
        USM *usm = v3_MP->get_usm();
        //Set USM Discovery Mode
        usm->set_discovery_mode();
        //Add Auth User , Auth Password and Private Password
        usm->add_usm_user(m_szSecurityName, m_lAuthProtocol, m_lPrivProtocol, m_szAuthPassword, m_szPrivPassword);
        //Return Status
        delete v3_MP;
    }

    return 0;
}
Пример #2
0
/////////////////////////////////////////////////////////////////////////////
// 函数:  InitSNMPV3                                                                 //
// 说明: 当SNMP版本是3,初始化环境变量                                     //
// 参数:                                                                   //
//		无															       //
// 返回值:                                                                 //
//		成功为0 ,否则为1                                                  //
/////////////////////////////////////////////////////////////////////////////
int BasicSNMP::InitSNMPV3()
{
	char *engineId = "snmpWalk";//Engine ID
	char *filename = "snmpv3_boot_counter"; //Local File Name
	unsigned int snmpEngineBoots = 0;
	int status = 0;
	//Get Current Boot Counter
	status = getBootCounter(filename, engineId, snmpEngineBoots);
	if ((status != SNMPv3_OK) && (status < SNMPv3_FILEOPEN_ERROR))
	{
		return 1;
	}
	//Add Boot Counter
	snmpEngineBoots++;
	//Save Boot Counter In File
	status = saveBootCounter(filename, engineId, snmpEngineBoots);
	if (status != SNMPv3_OK)
	{//Save File Failed
		return 1;
	}
	//Construct Status
	int construct_status;
	//Create v3MP Class By Engine ID and Boot Counter, return Result into
	//Construct status
	v3MP *v3_MP = new v3MP(engineId, snmpEngineBoots, construct_status);
	//Get v3MP Property (Point to USM Class)
	USM *usm = v3_MP->get_usm();
	//Set USM Discovery Mode
	usm->set_discovery_mode();
	//Add Auth User , Auth Password and Private Password
	usm->add_usm_user(securityName, authProtocol, privProtocol,
		   authPassword, privPassword);
	//Return Status
	delete v3_MP;
	return 0;
}