65,187
社区成员




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;
}