?? snmptraptask.c
字號:
#include "VxWorks.h"
#include "sockLib.h"
#include "inetLib.h"
#include "taskLib.h"
#include "msgQLib.h"
#include "stdioLib.h"
#include "strLib.h"
#include "ioLib.h"
#include "fioLib.h"
#include "snmp.h"
extern MSG_Q_ID trap_rx;
extern struct sockaddr_in nmsAddr;
extern int nmsFd;
int TrapTask()
{
TRAPMSG trapmsg;
while(1)
{
msgQReceive(trap_rx,(char *)&trapmsg,sizeof(TRAPMSG),WAIT_FOREVER);
switch(trapmsg.msg)
{
case MSG_NMS_TRAP:
//printf("\n<<_TRAPTASK>> Got nms trap request !!");
PreNSendTrapRC(trapmsg.snmp);
break;
case MSG_SYS_UP:
//printf("\n<<_TRAPTASK>> System up, need send trap to NMS!<<");
break;
default:
break;
}//end switch
}//FOREVER!!
}
int PreNSendTrapRC(SNMP_PDU *snmp)
{
char **buf;
u_long buflen;
buf = snmpMalloc(sizeof(char *));
if(Encode_bindlist(snmp,buf,(int *)&buflen) == ERROR)
{
snmpFree(buf);
return ERROR;
}
if(Encode_TimeStamp(snmp,buf,(int*)&buflen) == ERROR)
{
snmpFree((*buf));
snmpFree(buf);
return ERROR;
}
if(Encode_SpecTrap(snmp,buf,(int*)&buflen) == ERROR)
{
snmpFree((*buf));
snmpFree(buf);
return ERROR;
}
if(Encode_GenTrap(snmp,buf,(int*)&buflen) == ERROR)
{
snmpFree((*buf));
snmpFree(buf);
return ERROR;
}
if(Encode_AgentIP(snmp,buf,(int*)&buflen) == ERROR)
{
snmpFree((*buf));
snmpFree(buf);
return ERROR;
}
if(Encode_SysOID(snmp,buf,(int*)&buflen) == ERROR)
{
snmpFree((*buf));
snmpFree(buf);
return ERROR;
}
if(Encode_Trapfield(snmp,buf,(int*)&buflen) == ERROR)
{
snmpFree((*buf));
snmpFree(buf);
return ERROR;
}
if(Encode_wrapper(snmp,buf,(int*)&buflen) == ERROR)
{
snmpFree((*buf));
snmpFree(buf);
return ERROR;
}
if(sendto(nmsFd, (*buf), buflen, 0,
(struct sockaddr *)&nmsAddr, sizeof(struct sockaddr_in)) == ERROR)
{
printf("\n<<_TRAPTASK>> send error!!");
}
//printf("\n<<_TRAPTASK>> send back!!");
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -