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

📄 register.c

📁 嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络提供主动监控及错误告警,智能交换路由必备协议
💻 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 + -