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

📄 mtescalars.c

📁 开发snmp的开发包有两个开放的SNMP开发库
💻 C
字号:
#include <net-snmp/net-snmp-config.h>#include <net-snmp/net-snmp-includes.h>#include <net-snmp/agent/net-snmp-agent-includes.h>#include "mteScalars.h"#include "mteTrigger.h"/** Initializes the mteScalars module */voidinit_mteScalars(void){    static oid      mteResource_oid[]    = { 1, 3, 6, 1, 2, 1, 88, 1, 1 };    static oid      mteTriggerFail_oid[] = { 1, 3, 6, 1, 2, 1, 88, 1, 2, 1 };    DEBUGMSGTL(("mteScalars", "Initializing\n"));    netsnmp_register_scalar_group(        netsnmp_create_handler_registration("mteResource", handle_mteResourceGroup,                             mteResource_oid, OID_LENGTH(mteResource_oid),                             HANDLER_CAN_RONLY),        MTE_RESOURCE_SAMPLE_MINFREQ, MTE_RESOURCE_SAMPLE_LACKS);    netsnmp_register_scalar(        netsnmp_create_handler_registration("mteTriggerFailures",                             handle_mteTriggerFailures,                             mteTriggerFail_oid, OID_LENGTH(mteTriggerFail_oid),                             HANDLER_CAN_RONLY));}inthandle_mteResourceGroup(netsnmp_mib_handler          *handler,                        netsnmp_handler_registration *reginfo,                        netsnmp_agent_request_info   *reqinfo,                        netsnmp_request_info         *requests){    oid  obj;    long value = 0;    switch (reqinfo->mode) {    case MODE_GET:        obj = requests->requestvb->name[ requests->requestvb->name_length-2 ];        switch (obj) {	case MTE_RESOURCE_SAMPLE_MINFREQ:             value = 1;		/* Fixed minimum sample frequency */             snmp_set_var_typed_value(requests->requestvb, ASN_INTEGER,                                      (u_char *)&value, sizeof(value));             break;             	case MTE_RESOURCE_SAMPLE_MAX_INST:             value = 0;		/* No fixed maximum */             snmp_set_var_typed_value(requests->requestvb, ASN_UNSIGNED,                                      (u_char *)&value, sizeof(value));             break;	case MTE_RESOURCE_SAMPLE_INSTANCES:#ifdef USING_DISMAN_EVENT_MTETRIGGER_MODULE             value = mteTrigger_getNumEntries(0);#else             value = 0;#endif             snmp_set_var_typed_value(requests->requestvb, ASN_GAUGE,                                      (u_char *)&value, sizeof(value));             break;             	case MTE_RESOURCE_SAMPLE_HIGH:#ifdef USING_DISMAN_EVENT_MTETRIGGER_MODULE             value = mteTrigger_getNumEntries(1);#else             value = 0;#endif             snmp_set_var_typed_value(requests->requestvb, ASN_GAUGE,                                      (u_char *)&value, sizeof(value));             break;             	case MTE_RESOURCE_SAMPLE_LACKS:             value = 0;		/* mteResSampleInstMax not used */             snmp_set_var_typed_value(requests->requestvb, ASN_COUNTER,                                      (u_char *)&value, sizeof(value));             break;                     default:             snmp_log(LOG_ERR,                 "unknown object (%d) in handle_mteResourceGroup\n", (int)obj);             return SNMP_ERR_GENERR;        }        break;    default:        /*         * Although mteResourceSampleMinimum and mteResourceSampleInstanceMaximum         *  are defined with MAX-ACCESS read-write, this version hardcodes         *  these values, so doesn't need to implement write access.         */        snmp_log(LOG_ERR,                 "unknown mode (%d) in handle_mteResourceGroup\n",                 reqinfo->mode);        return SNMP_ERR_GENERR;    }    return SNMP_ERR_NOERROR;}inthandle_mteTriggerFailures(netsnmp_mib_handler          *handler,                          netsnmp_handler_registration *reginfo,                          netsnmp_agent_request_info   *reqinfo,                          netsnmp_request_info         *requests){#ifdef USING_DISMAN_EVENT_MTETRIGGER_MODULE    extern long mteTriggerFailures;#else    long mteTriggerFailures = 0;#endif    switch (reqinfo->mode) {    case MODE_GET:        snmp_set_var_typed_value(requests->requestvb, ASN_COUNTER,                                 (u_char *)&mteTriggerFailures,                                 sizeof(mteTriggerFailures));        break;    default:        /*         * we should never get here, so this is a really bad error          */        snmp_log(LOG_ERR,                 "unknown mode (%d) in handle_mteTriggerFailures\n",                 reqinfo->mode);        return SNMP_ERR_GENERR;    }    return SNMP_ERR_NOERROR;}

⌨️ 快捷键说明

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