perfmib.c

来自「嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络」· C语言 代码 · 共 90 行

C
90
字号
/* Beholder RMON ethernet network monitor,Copyright (C) 1993 DNPAP group *//* See file COPYING 'GNU General Public Licence' for copyright details   */#include <stdlib.h>#include <stdio.h>#include <dnpap.h>#include <mac.h>#include <mibsup.h>#include "perfmib.h"static MAC_PERF perf;BOOLEAN PerfMInit(VOID){    return TRUE;}WORD PerfDataControl(SNMP_OBJECT *obj, WORD idlen){    if (MibSimple(obj, idlen) == FALSE)        return SNMP_NOSUCHNAME;    switch (obj->Request)    {    case SNMP_PDU_NEXT:    case SNMP_PDU_GET:        MacPerfStatistics(&perf);        obj->Syntax.LngInt = (perf.on == FALSE ? 2 : 1);        break;    case SNMP_PDU_SET:        if (obj->Syntax.LngInt != 1 && obj->Syntax.LngInt != 2)            return SNMP_BADVALUE;        MacPerfSwitch(obj->Syntax.LngInt == 1 ? TRUE : FALSE);        break;    }    return SNMP_NOERROR;}WORD PerfPkts(SNMP_OBJECT *obj, WORD idlen){    MacPerfStatistics(&perf);    if (MibSimple(obj, idlen) == FALSE)        return SNMP_NOSUCHNAME;    obj->Syntax.LngUns = perf.pkts;    return SNMP_NOERROR;}WORD PerfOctets(SNMP_OBJECT *obj, WORD idlen){    MacPerfStatistics(&perf);    if (MibSimple(obj, idlen) == FALSE)        return SNMP_NOSUCHNAME;    obj->Syntax.LngUns = perf.octets;    return SNMP_NOERROR;}WORD PerfTimeTotal(SNMP_OBJECT *obj, WORD idlen){    MacPerfStatistics(&perf);    if (MibSimple(obj, idlen) == FALSE)        return SNMP_NOSUCHNAME;    obj->Syntax.LngUns = perf.timeTotal;    return SNMP_NOERROR;}WORD PerfTimeMin(SNMP_OBJECT *obj, WORD idlen){    MacPerfStatistics(&perf);    if (MibSimple(obj, idlen) == FALSE)        return SNMP_NOSUCHNAME;    obj->Syntax.LngUns = perf.timeMin;    return SNMP_NOERROR;}WORD PerfTimeMax(SNMP_OBJECT *obj, WORD idlen){    MacPerfStatistics(&perf);    if (MibSimple(obj, idlen) == FALSE)        return SNMP_NOSUCHNAME;    obj->Syntax.LngUns = perf.timeMax;    return SNMP_NOERROR;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?