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; }
///////////////////////////////////////////////////////////////////////////// // 函数: 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; }