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

📄 statm.c

📁 嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络提供主动监控及错误告警,智能交换路由必备协议
💻 C
📖 第 1 页 / 共 2 页
字号:
WORD etherStatsFragments (SNMP_OBJECT *Obj, WORD IdLen){    MIB_LOCAL    *local = NULL;    ETHER_STATS  *data;    if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;    switch (Obj->Request)    {        case SNMP_PDU_NEXT:            if (RmonNext (Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)                return SNMP_NOSUCHNAME;        case SNMP_PDU_GET:            data = (ETHER_STATS*) local->Data;            Obj->Syntax.LngUns = data->Fragments;            return SNMP_NOERROR;    }}WORD etherStatsJabbers (SNMP_OBJECT *Obj, WORD IdLen){    MIB_LOCAL    *local = NULL;    ETHER_STATS  *data;    if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;    switch (Obj->Request)    {        case SNMP_PDU_NEXT:            if (RmonNext (Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)                return SNMP_NOSUCHNAME;        case SNMP_PDU_GET:            data = (ETHER_STATS*) local->Data;            Obj->Syntax.LngUns = data->Jabbers;            return SNMP_NOERROR;    }}WORD etherStatsCollisions (SNMP_OBJECT *Obj, WORD IdLen){    MIB_LOCAL    *local = NULL;    ETHER_STATS  *data;    if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;    switch (Obj->Request)    {        case SNMP_PDU_NEXT:            if (RmonNext (Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)                return SNMP_NOSUCHNAME;        case SNMP_PDU_GET:            data = (ETHER_STATS*) local->Data;            Obj->Syntax.LngUns = data->Collisions;            return SNMP_NOERROR;    }}WORD etherStatsPkts64Octets (SNMP_OBJECT *Obj, WORD IdLen){    MIB_LOCAL    *local = NULL;    ETHER_STATS  *data;    if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;    switch (Obj->Request)    {        case SNMP_PDU_NEXT:            if (RmonNext (Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)                return SNMP_NOSUCHNAME;        case SNMP_PDU_GET:            data = (ETHER_STATS*) local->Data;            Obj->Syntax.LngUns = data->Pkts64Octets;            return SNMP_NOERROR;    }}WORD etherStatsPkts65to127Octets (SNMP_OBJECT *Obj, WORD IdLen){    MIB_LOCAL    *local = NULL;    ETHER_STATS  *data;    if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;    switch (Obj->Request)    {        case SNMP_PDU_NEXT:            if (RmonNext (Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)                return SNMP_NOSUCHNAME;        case SNMP_PDU_GET:            data = (ETHER_STATS*) local->Data;            Obj->Syntax.LngUns = data->Pkts65to127Octets;            return SNMP_NOERROR;    }}WORD etherStatsPkts128to255Octets (SNMP_OBJECT *Obj, WORD IdLen){    MIB_LOCAL    *local = NULL;    ETHER_STATS  *data;    if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;    switch (Obj->Request)    {        case SNMP_PDU_NEXT:            if (RmonNext (Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)                return SNMP_NOSUCHNAME;        case SNMP_PDU_GET:            data = (ETHER_STATS*) local->Data;            Obj->Syntax.LngUns = data->Pkts128to255Octets;            return SNMP_NOERROR;    }}WORD etherStatsPkts256to511Octets (SNMP_OBJECT *Obj, WORD IdLen){    MIB_LOCAL    *local = NULL;    ETHER_STATS  *data;    if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;    switch (Obj->Request)    {        case SNMP_PDU_NEXT:            if (RmonNext (Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)                return SNMP_NOSUCHNAME;        case SNMP_PDU_GET:            data = (ETHER_STATS*) local->Data;            Obj->Syntax.LngUns = data->Pkts256to511Octets;            return SNMP_NOERROR;    }}WORD etherStatsPkts512to1023Octets (SNMP_OBJECT *Obj, WORD IdLen){    MIB_LOCAL    *local = NULL;    ETHER_STATS  *data;    if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;    switch (Obj->Request)    {        case SNMP_PDU_NEXT:            if (RmonNext (Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)                return SNMP_NOSUCHNAME;        case SNMP_PDU_GET:            data = (ETHER_STATS*) local->Data;            Obj->Syntax.LngUns = data->Pkts512to1023Octets;            return SNMP_NOERROR;    }}WORD etherStatsPkts1024to1518Octets (SNMP_OBJECT *Obj, WORD IdLen){    MIB_LOCAL    *local = NULL;    ETHER_STATS  *data;    if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;    switch (Obj->Request)    {        case SNMP_PDU_NEXT:            if (RmonNext (Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)                return SNMP_NOSUCHNAME;        case SNMP_PDU_GET:            data = (ETHER_STATS*) local->Data;            Obj->Syntax.LngUns = data->Pkts1024to1518Octets;            return SNMP_NOERROR;    }}WORD etherStatsOwner (SNMP_OBJECT *Obj, WORD IdLen){    MIB_LOCAL    *local = NULL;    ETHER_STATS  *data;    if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)        return SNMP_NOSUCHNAME;    switch (Obj->Request)    {        case SNMP_PDU_NEXT:            if (RmonNext (Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)                return SNMP_NOSUCHNAME;        case SNMP_PDU_GET:            data = (ETHER_STATS*) local->Data;            memcpy (Obj->Syntax.BufChr, data->Owner, data->OwnerLen);            Obj->SyntaxLen = data->OwnerLen;            return SNMP_NOERROR;        case SNMP_PDU_SET:            data = (ETHER_STATS*) local->Data;            if (data->Status != SNMP_UNDERCREATION)                return SNMP_READONLY;            memcpy (data->Owner, Obj->Syntax.BufChr, Obj->SyntaxLen);            data->OwnerLen = Obj->SyntaxLen;            return SNMP_NOERROR;    }}WORD etherStatsStatus (SNMP_OBJECT *Obj, WORD IdLen){    MIB_LOCAL    *local = NULL;    ETHER_STATS  *data;    local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE);    switch (Obj->Request)    {        case SNMP_PDU_GET:            if (local == NULL)            {                Obj->Syntax.LngInt = SNMP_INVALID;                return SNMP_NOSUCHNAME;            }            data = (ETHER_STATS*) local->Data;            Obj->Syntax.LngInt = data->Status;            return SNMP_NOERROR;        case SNMP_PDU_NEXT:            if (RmonNext (Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)            {                Obj->Syntax.LngInt = SNMP_INVALID;                return SNMP_NOSUCHNAME;            }            data = (ETHER_STATS*) 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, &etherStats, IdLen, INDEXSIZE)) == NULL)                            return SNMP_GENERROR;                        if ((local->Data = DnpapMalloc(sizeof(ETHER_STATS))) == NULL)                            return SNMP_GENERROR;                        data = (ETHER_STATS*) local->Data;                        memset(data, 0, sizeof(ETHER_STATS));                        if (StatCInit(data) == TRUE)                        {                            data->Status = SNMP_UNDERCREATION;                            DnpapMessage(DMC_MESSAGE, STAT_CREATE, "etherStat: collector %ld created", local->Index);                            return SNMP_NOERROR;                        }                        DnpapFree(local->Data);                        MibRemove (Obj, &etherStats, IdLen, INDEXSIZE);                        return SNMP_GENERROR;                    default:                        return SNMP_NOSUCHNAME;                }            }            data = (ETHER_STATS*) local->Data;            switch (data->Status)            {                case SNMP_UNDERCREATION:                    switch (Obj->Syntax.LngInt)                    {                        case SNMP_VALID:                            if (StatCStart(data) == TRUE)                            {                                data->Status = SNMP_VALID;                                DnpapMessage(DMC_MESSAGE, STAT_ACTIVE, "etherStat: collector %ld active", local->Index);                                return SNMP_NOERROR;                            }                            else                                return SNMP_GENERROR;                        case SNMP_INVALID:                            if (StatCStop(data) == TRUE)                            {                                DnpapFree(local->Data);                                DnpapMessage(DMC_MESSAGE, STAT_DESTROY, "etherStat: collector %ld destroyed", local->Index);                                if (MibRemove (Obj, &etherStats, IdLen, INDEXSIZE) == TRUE)                                    return SNMP_NOERROR;                            }                            return SNMP_GENERROR;                        default:                            return SNMP_BADVALUE;                    }                case SNMP_VALID:                    switch (Obj->Syntax.LngInt)                    {                        case SNMP_INVALID:                            if (StatCStop(data) == TRUE)                            {                                DnpapFree(local->Data);                                DnpapMessage(DMC_MESSAGE, STAT_DESTROY, "etherStat: collector %ld destroyed", local->Index);                                if (MibRemove (Obj, &etherStats, IdLen, INDEXSIZE) == TRUE)                                    return SNMP_NOERROR;                            }                            return SNMP_GENERROR;                        case SNMP_VALID:                            return SNMP_NOERROR;                        default:                            return SNMP_BADVALUE;                    }            }    }}

⌨️ 快捷键说明

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