📄 register.c
字号:
/* Beholder RMON ethernet network monitor,Copyright (C) 1993 DNPAP group *//* See file COPYING 'GNU General Public Licence' for copyright details */#include <dnpap.h>#include <memory.h>#include <string.h>#include <agent.h>#include <mibsup.h>#include <mibrqs.h>#include "register.h"static BYTE message[SNMP_SIZE_BUFCHR] = "";static WORD msglen = 0;static SNMP_OBJECT list[] ={ {SNMP_PDU_GET, {1,3,6,1,2,1,1,1,0}, 9}, {SNMP_PDU_GET, {1,3,6,1,2,1,1,2,0}, 9}, {SNMP_PDU_GET, {1,3,6,1,2,1,1,3,0}, 9}, {SNMP_PDU_GET, {1,3,6,1,2,1,1,4,0}, 9}, {SNMP_PDU_GET, {1,3,6,1,2,1,1,5,0}, 9}, {SNMP_PDU_GET, {1,3,6,1,2,1,1,6,0}, 9}, {SNMP_PDU_GET, {1,3,6,1,2,1,1,7,0}, 9}, {SNMP_PDU_GET, {BTNG_MIB,4,1,0}, BTNG_MIBLEN+3}};static WORD listlen = sizeof(list)/sizeof(list[0]);static BYTE community[SNMP_SIZE_COMM] = "trap";static WORD commlen = 4;BOOLEAN RegisterInit(VOID){ return TRUE;}WORD RegisterBeholderMessage(SNMP_OBJECT *obj, WORD idlen){ if (MibSimple(obj, idlen) == FALSE) return SNMP_NOSUCHNAME; switch (obj->Request) { case SNMP_PDU_NEXT: case SNMP_PDU_GET: memcpy(obj->Syntax.BufChr, message, obj->SyntaxLen = msglen); break; case SNMP_PDU_SET: memcpy(message, obj->Syntax.BufChr, msglen = obj->SyntaxLen); break; } return SNMP_NOERROR;}WORD RegisterBeholder(SNMP_OBJECT *obj, WORD idlen){WORD i; if (MibSimple(obj, idlen) == FALSE) return SNMP_NOSUCHNAME; switch (obj->Request) { case SNMP_PDU_NEXT: case SNMP_PDU_GET: memcpy(obj->Syntax.BufChr, community, obj->SyntaxLen = commlen); break; case SNMP_PDU_SET: for (i = 0; i < listlen; i++) if (MibRequest(&list[i]) != SNMP_NOERROR) return SNMP_GENERROR; if (obj->SyntaxLen > 0) memcpy(community, obj->Syntax.BufChr, commlen = obj->SyntaxLen); if (AgentSendTrap(community, commlen, REGISTERCODE, REGISTERSPECIFIC, list, listlen) == FALSE) DnpapMessage(DMC_WARNING, REGISTER_TRAPFAIL, "register: trap send failed"); break; } return SNMP_NOERROR;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -