net-snmp 出现内存泄露问题,请指教!

jiangluyz jiangluyz 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

int SnmpSetString(const char *sIPaddress,const char *sOidTmp,char types,char *values)
{
netsnmp_session session, *ss;
netsnmp_pdu *pdu;
netsnmp_pdu *response;

oid anOID[MAX_OID_LEN];
size_t anOID_len=MAX_OID_LEN;
int status;
int iReturnValue=0;
Initsnmp(&session,(char*)sIPaddress,"snmpset"); //初始化session
ss = snmp_open(&session);
if (ss == NULL)
{
snmp_sess_perror("snmpset", &session);
SOCK_CLEANUP;
return iReturnValue;
}


pdu = snmp_pdu_create(SNMP_MSG_SET);
if(NULL==pdu)
{
//snmp_perror(sOidTmp);
SOCK_CLEANUP;
return iReturnValue;
}

if (!snmp_parse_oid(sOidTmp, anOID, &anOID_len))
{
//snmp_perror(sOidTmp);
snmp_close(ss);
SOCK_CLEANUP;
return iReturnValue;
}

if(snmp_add_var(pdu, anOID, anOID_len,types, values))
{
//snmp_perror(sOidTmp);
snmp_close(ss);
SOCK_CLEANUP;
return iReturnValue;
}


/*
* Send the Request out.
*/
status = snmp_synch_response(ss, pdu, &response);
if (status == STAT_SUCCESS && response->errstat == SNMP_ERR_NOERROR)
{
iReturnValue=2;
}
else
{
iReturnValue=1;
}
if (response)
{
snmp_free_pdu(response);
}
snmp_close(ss);
SOCK_CLEANUP;
return iReturnValue;
}





...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
jiangluyz
C++ 语言 65,214 成员 250,514 内容