📄 snmp_trap.c
字号:
#include "snmptype.h"
#include "datatypes.h"
#if SNMP_WANTED==1
#if PLATFORM==NE64
#include "snmpdef.h"
#include "snmpfunc.h"
#include "system.h"
#include "tcp_ip.h"
extern struct netif localmachine;
extern SNMP_PKT_T gSnmpPkt;
_INT8 snmp_trap_soch;
OBJ_ID_T trapOid;
t_Trap_server gTrapServer[MAX_TRAP_SERVER_NUM]={{0,0},{0,0},{0,0},{0,0},{0,0}};
_INT32 snmp_trap_eventlistener (_INT8 cbhandle, _UINT8 event, _UINT32 ipaddr, _UINT16 port, _UINT16 buffindex, _UINT16 datalen)
{
return -1;
}
void snmp_trap_init(void)
{
snmp_trap_soch=udp_getsocket(0,snmp_trap_eventlistener,UDP_OPT_SEND_CS | UDP_OPT_CHECK_CS);
if(snmp_trap_soch == -1){
return;
}
/* open socket for receiving/sending of the data on defined UDP_DEMO_RMTHOST_PRT*/
(void)udp_open(snmp_trap_soch,162);
/*send coldStart*/
}
void snmpSendTrap(OBJ_ID_T *trapOid,_UINT32 specfic)
{
_UINT16 bufsize;
_UINT8 i;
SNMP_PKT_T *rp=(SNMP_PKT_T *)(&gSnmpPkt);
rp->localip=localmachine.localip;
SNMP_Create_Trap_V1(rp,trapOid,specfic);
bufsize = SNMP_Bufsize_For_Packet(rp);
if(SNMP_Process_Finish(rp,net_buf,bufsize) == TRUE)
{
for(i=0;i<MAX_TRAP_SERVER_NUM;i++)
{
if(gTrapServer[i].addr>0)
(void)udp_send(snmp_trap_soch,gTrapServer[i].addr,gTrapServer[i].port,net_buf,bufsize,bufsize);
}
}
}
void test_send_trap()
{
trapOid.component_list[0]=1;
trapOid.component_list[1]=3;
trapOid.component_list[2]=6;
trapOid.component_list[3]=1;
trapOid.component_list[4]=4;
trapOid.component_list[5]=1;
trapOid.component_list[6]=3807;
trapOid.component_list[7]=1;
trapOid.component_list[8]=40;
trapOid.component_list[9]=0;
trapOid.num_components=10;
snmpSendTrap(&trapOid,1);
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -