📄 statbufm.c
字号:
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 + -