log_m.c

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

C
103
字号
/* 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 <dmath.h>#include <maxmem.h>#include <snmp.h>#include <stdlib.h>#include "log.h"static CHAR MODULE[] = "LogM";WORD LogEventIndex(SNMP_OBJECT *obj, WORD idlen, RmonLog *log){	switch (obj->Request)	{    case SNMP_PDU_NEXT:	case SNMP_PDU_GET:        obj->Syntax.LngInt = obj->Id[idlen];		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}    return SNMP_GENERROR;}WORD LogIndex(SNMP_OBJECT *obj, WORD idlen, RmonLog *log){	switch (obj->Request)	{    case SNMP_PDU_NEXT:	case SNMP_PDU_GET:        obj->Syntax.LngInt = obj->Id[idlen+1];		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}    return SNMP_GENERROR;}WORD LogTime(SNMP_OBJECT *obj, WORD idlen, RmonLog *log){	switch (obj->Request)	{    case SNMP_PDU_NEXT:	case SNMP_PDU_GET:		obj->Syntax.LngUns = log->Time;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}    return SNMP_GENERROR;}WORD LogDescription(SNMP_OBJECT *obj, WORD idlen, RmonLog *log){	switch (obj->Request)	{    case SNMP_PDU_NEXT:	case SNMP_PDU_GET:		memcpy(obj->Syntax.BufChr, log->Description, obj->SyntaxLen = log->DescrLen);		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}    return SNMP_GENERROR;}RmonLog *NewRmonLog(WORD nrlogs){	return DnpapMalloc(nrlogs*sizeof(RmonLog));}RmonLog *ReNewRmonLog(RmonLog* ptr, WORD nrlogs, WORD oldnrlogs, WORD maxnrlogs){           WORD n, nold;	if (nrlogs > maxnrlogs || ((LONG)nrlogs*sizeof(RmonLog) > MemoryGetMaxChunk()))		return NULL;    n = ((nrlogs-1)/MINALLOCLOGS)*MINALLOCLOGS+MINALLOCLOGS;    nold = ((oldnrlogs-1)/MINALLOCLOGS)*MINALLOCLOGS+MINALLOCLOGS;    if (ptr == NULL || abs(n-nold) >= MINALLOCLOGS)      {        return DnpapRealloc(ptr, min(n, maxnrlogs)*sizeof(RmonLog));    }            else        return ptr;}VOID DelRmonLog(RmonLog* ptr){    DnpapFree(ptr);}

⌨️ 快捷键说明

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