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

📄 statbufm.c

📁 嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络提供主动监控及错误告警,智能交换路由必备协议
💻 C
📖 第 1 页 / 共 2 页
字号:
        return SNMP_READONLY;    }    return SNMP_GENERROR;}WORD StatBufControlFullAction(SNMP_OBJECT *obj, WORD idlen){MIB_LOCAL* local = NULL;StatBufControl* data = NULL;			    if ((local = MibRmon(obj, StatBufControlInstance, idlen, 1)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:        if (RmonNext(obj, &local, idlen, 1, NULL) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:        data = (StatBufControl*)local->Data;        obj->Syntax.LngInt = data->FullAction;		return SNMP_NOERROR;	case SNMP_PDU_SET:        data = (StatBufControl*)local->Data;        if (data->Status != SNMP_UNDERCREATION)            return SNMP_READONLY;        if (obj->Syntax.LngInt != STATBUF_LOCK && obj->Syntax.LngInt != STATBUF_WRAP)            return SNMP_BADVALUE;        data->FullAction = obj->Syntax.LngInt;        return SNMP_NOERROR;	}    return SNMP_GENERROR;}WORD StatBufControlAverage(SNMP_OBJECT *obj, WORD idlen){MIB_LOCAL        *local = NULL;StatBufControl  *data;    if ((local = MibRmon(obj, StatBufControlInstance, idlen, CONTROLINDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;            switch (obj->Request)    {    case SNMP_PDU_NEXT:        if (RmonNext (obj, &local, idlen, CONTROLINDEXSIZE, NULL) == FALSE)            return SNMP_NOSUCHNAME;    case SNMP_PDU_GET:        data = (StatBufControl*) local->Data;        obj->Syntax.LngInt = data->Average;        return SNMP_NOERROR;    case SNMP_PDU_SET:        return SNMP_READONLY;    }    return SNMP_GENERROR;}WORD StatBufControlDeviation(SNMP_OBJECT *obj, WORD idlen){MIB_LOCAL        *local = NULL;StatBufControl  *data;    if ((local = MibRmon(obj, StatBufControlInstance, idlen, CONTROLINDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;            switch (obj->Request)    {    case SNMP_PDU_NEXT:        if (RmonNext (obj, &local, idlen, CONTROLINDEXSIZE, NULL) == FALSE)            return SNMP_NOSUCHNAME;    case SNMP_PDU_GET:        data = (StatBufControl*) local->Data;        obj->Syntax.LngInt = data->Deviation;        return SNMP_NOERROR;    case SNMP_PDU_SET:        return SNMP_READONLY;    }    return SNMP_GENERROR;}WORD StatBufControlOwner(SNMP_OBJECT *obj, WORD idlen){MIB_LOCAL* local = NULL;StatBufControl* data = NULL;			    if ((local = MibRmon(obj, StatBufControlInstance, idlen, 1)) == NULL)		return SNMP_NOSUCHNAME;			switch (obj->Request)	{	case SNMP_PDU_NEXT:        if (RmonNext(obj, &local, idlen, 1, NULL) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:        data = (StatBufControl*)local->Data;		if (BeholderStrictRMON && !BooleanCheck(data->ObjectSet, STATBUF_BOOLEAN_OWNER))			return SNMP_NOSUCHNAME;		memcpy(obj->Syntax.BufChr, data->Owner, obj->SyntaxLen = data->OwnerLen);		return SNMP_NOERROR;	case SNMP_PDU_SET:        data = (StatBufControl*)local->Data;		if (data->Status != SNMP_UNDERCREATION)			return SNMP_READONLY;		memcpy(data->Owner, obj->Syntax.BufChr, data->OwnerLen = obj->SyntaxLen);		BooleanSetTrue(data->ObjectSet, STATBUF_BOOLEAN_OWNER);		return SNMP_NOERROR;	}    return SNMP_GENERROR;}WORD StatBufControlStatus(SNMP_OBJECT *obj, WORD idlen){MIB_LOCAL *local = NULL;StatBufControl *data;    local = MibRmon(obj, StatBufControlInstance, idlen, 1);    switch (obj->Request)    {        case SNMP_PDU_GET:            if (local == NULL)            {                obj->Syntax.LngInt = SNMP_INVALID;                return SNMP_NOSUCHNAME;            }            data = (StatBufControl*)local->Data;            obj->Syntax.LngInt = data->Status;            return SNMP_NOERROR;        case SNMP_PDU_NEXT:            if (RmonNext(obj, &local, idlen, 1, NULL) == FALSE)            {                obj->Syntax.LngInt = SNMP_INVALID;                return SNMP_NOSUCHNAME;            }            data = (StatBufControl*)local->Data;            obj->Syntax.LngInt = data->Status;            return SNMP_NOERROR;        case SNMP_PDU_SET:            if (local == NULL)            {                switch (obj->Syntax.LngInt)                {                    case SNMP_CREATEREQUEST:                        if ((local = MibInsert(obj, &StatBufControlInstance, idlen, 1)) == NULL)                            return SNMP_GENERROR;                        if ((local->Data = NewStatBufControl(1)) == NULL)                            return SNMP_GENERROR;                        data = (StatBufControl*) local->Data;                        if (StatBufCInit(data) == TRUE)                        {                            data->Status = SNMP_UNDERCREATION;                            DnpapMessage(DMC_MESSAGE, STATBUF_CREATE, "statbufcontrol: collector %ld created", local->Index);                            return SNMP_NOERROR;                        }                        DelStatBufControl(local->Data);                        MibRemove(obj, &StatBufControlInstance, idlen, 1);                        return SNMP_GENERROR;                    default:                        return SNMP_NOSUCHNAME;                }            }            data = (StatBufControl*)local->Data;            switch (data->Status)            {                case SNMP_UNDERCREATION:                    switch (obj->Syntax.LngInt)                    {                        case SNMP_VALID:                            if (StatBufCStart(data) == TRUE)                            {                                data->Status = SNMP_VALID;                                DnpapMessage(DMC_MESSAGE, STATBUF_ACTIVE, "statbufcontrol: collector %ld active", local->Index);                                return SNMP_NOERROR;                            }                            return SNMP_BADVALUE;                        case SNMP_INVALID:                            if (StatBufCStop(data) == TRUE)                            {                                DelStatBufControl(local->Data);                                DnpapMessage(DMC_MESSAGE, STATBUF_DESTROY, "statbufcontrol: collector %ld destroyed", local->Index);                                if (MibRemove(obj, &StatBufControlInstance, idlen, 1) == TRUE)                                    return SNMP_NOERROR;                            }                            return SNMP_GENERROR;                        default:                            return SNMP_BADVALUE;                    }                case SNMP_VALID:                    switch (obj->Syntax.LngInt)                    {                        case SNMP_INVALID:                            if (StatBufCStop(data) == TRUE)                            {                                DelStatBufControl(local->Data);                                DnpapMessage(DMC_MESSAGE, STATBUF_DESTROY, "statbufcontrol: collector %ld destroyed", local->Index);                                if (MibRemove(obj, &StatBufControlInstance, idlen, 1) == TRUE)                                    return SNMP_NOERROR;                            }                            return SNMP_GENERROR;                        case SNMP_VALID:                            return SNMP_NOERROR;                        default:                            return SNMP_BADVALUE;                    }            }    }    return SNMP_GENERROR;}WORD StatBufLogIndex(SNMP_OBJECT *obj, WORD idlen){MIB_LOCAL       *local = NULL;StatBuf         *entry = NULL;    if ((local = MibRmon(obj, StatBufControlInstance, idlen, ENTRYINDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;            switch (obj->Request)    {    case SNMP_PDU_NEXT:        if (RmonNext (obj, &local, idlen, ENTRYINDEXSIZE, &entry) == FALSE)            return SNMP_NOSUCHNAME;    case SNMP_PDU_GET:        if (entry == NULL && (entry = StatBufSearch(local->Data, obj, idlen)) == NULL)            return SNMP_NOSUCHNAME;        obj->Syntax.LngInt = obj->Id[idlen+1];        return SNMP_NOERROR;    case SNMP_PDU_SET:        return SNMP_READONLY;    }    return SNMP_GENERROR;}WORD StatBufIndex(SNMP_OBJECT *obj, WORD idlen){MIB_LOCAL       *local = NULL;StatBuf         *entry = NULL;    if ((local = MibRmon(obj, StatBufControlInstance, idlen, ENTRYINDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;            switch (obj->Request)    {    case SNMP_PDU_NEXT:        if (RmonNext (obj, &local, idlen, ENTRYINDEXSIZE, &entry) == FALSE)            return SNMP_NOSUCHNAME;    case SNMP_PDU_GET:        if (entry == NULL && (entry = StatBufSearch(local->Data, obj, idlen)) == NULL)            return SNMP_NOSUCHNAME;        obj->Syntax.LngInt = local->Index;        return SNMP_NOERROR;    case SNMP_PDU_SET:        return SNMP_READONLY;    }    return SNMP_GENERROR;}WORD StatBufTime(SNMP_OBJECT *obj, WORD idlen){MIB_LOCAL       *local = NULL;StatBuf         *entry = NULL;    if ((local = MibRmon(obj, StatBufControlInstance, idlen, ENTRYINDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;            switch (obj->Request)    {    case SNMP_PDU_NEXT:        if (RmonNext (obj, &local, idlen, ENTRYINDEXSIZE, &entry) == FALSE)            return SNMP_NOSUCHNAME;    case SNMP_PDU_GET:        if (entry == NULL && (entry = StatBufSearch(local->Data, obj, idlen)) == NULL)            return SNMP_NOSUCHNAME;        obj->Syntax.LngUns = entry->Time;        return SNMP_NOERROR;    case SNMP_PDU_SET:        return SNMP_READONLY;    }    return SNMP_GENERROR;}WORD StatBufValue(SNMP_OBJECT *obj, WORD idlen){MIB_LOCAL       *local = NULL;StatBuf         *entry = NULL;    if ((local = MibRmon(obj, StatBufControlInstance, idlen, ENTRYINDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;            switch (obj->Request)    {    case SNMP_PDU_NEXT:        if (RmonNext (obj, &local, idlen, ENTRYINDEXSIZE, &entry) == FALSE)            return SNMP_NOSUCHNAME;    case SNMP_PDU_GET:        if (entry == NULL && (entry = StatBufSearch(local->Data, obj, idlen)) == NULL)            return SNMP_NOSUCHNAME;        obj->Syntax.LngInt = entry->Value;        return SNMP_NOERROR;    case SNMP_PDU_SET:        return SNMP_READONLY;    }    return SNMP_GENERROR;}

⌨️ 快捷键说明

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