⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snmp_trap.c

📁 在freescale 的ne64上开发的源代码
💻 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 + -