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

📄 mtetriggerthresholdtable.c

📁 开发snmp的开发包有两个开放的SNMP开发库
💻 C
📖 第 1 页 / 共 2 页
字号:
/* * DisMan Event MIB: *     Implementation of the mteTriggerThresholdTable MIB interface * See 'mteTrigger.c' for active behaviour of this table. * * (based on mib2c.table_data.conf output) */#include <net-snmp/net-snmp-config.h>#include <net-snmp/net-snmp-includes.h>#include <net-snmp/agent/net-snmp-agent-includes.h>#include "disman/event/mteTrigger.h"#include "disman/event/mteTriggerThresholdTable.h"/** Initializes the mteTriggerThresholdTable module */voidinit_mteTriggerThresholdTable(void){    static oid mteTThreshTable_oid[]   = { 1, 3, 6, 1, 2, 1, 88, 1, 2, 6 };    size_t     mteTThreshTable_oid_len = OID_LENGTH(mteTThreshTable_oid);    netsnmp_handler_registration    *reg;    netsnmp_table_registration_info *table_info;    /*     * Ensure the (combined) table container is available...     */    init_trigger_table_data();    /*     * ... then set up the MIB interface to the mteTriggerThresholdTable slice     */    reg = netsnmp_create_handler_registration("mteTriggerThresholdTable",                                            mteTriggerThresholdTable_handler,                                            mteTThreshTable_oid,                                            mteTThreshTable_oid_len,                                            HANDLER_CAN_RWRITE);    table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);    netsnmp_table_helper_add_indexes(table_info,                                     ASN_OCTET_STR, /* index: mteOwner       */                                                    /* index: mteTriggerName */                                     ASN_PRIV_IMPLIED_OCTET_STR,                                     0);    table_info->min_column = COLUMN_MTETRIGGERTHRESHOLDSTARTUP;    table_info->max_column = COLUMN_MTETRIGGERTHRESHOLDDELTAFALLINGEVENT;    /* Register this using the (common) trigger_table_data container */    netsnmp_tdata_register(reg, trigger_table_data, table_info);    DEBUGMSGTL(("disman:event:init", "Trigger Threshold Table\n"));}/** handles requests for the mteTriggerThresholdTable table */intmteTriggerThresholdTable_handler(netsnmp_mib_handler *handler,                                 netsnmp_handler_registration *reginfo,                                 netsnmp_agent_request_info *reqinfo,                                 netsnmp_request_info *requests){    netsnmp_request_info       *request;    netsnmp_table_request_info *tinfo;    struct mteTrigger          *entry;    int ret;    DEBUGMSGTL(("disman:event:mib", "Threshold Table handler (%d)\n",                                     reqinfo->mode));    switch (reqinfo->mode) {        /*         * Read-support (also covers GetNext requests)         */    case MODE_GET:        for (request = requests; request; request = request->next) {            entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);            tinfo = netsnmp_extract_table_info(request);            /*             * The mteTriggerThresholdTable should only contains entries for             *   rows where the mteTriggerTest 'threshold(2)' bit is set.             * So skip entries where this isn't the case.             */            if (!entry || !(entry->mteTriggerTest & MTE_TRIGGER_THRESHOLD ))                continue;            switch (tinfo->colnum) {            case COLUMN_MTETRIGGERTHRESHOLDSTARTUP:                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,                                           entry->mteTThStartup);                break;            case COLUMN_MTETRIGGERTHRESHOLDRISING:                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,                                           entry->mteTThRiseValue);                break;            case COLUMN_MTETRIGGERTHRESHOLDFALLING:                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,                                           entry->mteTThFallValue);                break;            case COLUMN_MTETRIGGERTHRESHOLDDELTARISING:                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,                                           entry->mteTThDRiseValue);                break;            case COLUMN_MTETRIGGERTHRESHOLDDELTAFALLING:                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,                                           entry->mteTThDFallValue);                break;            case COLUMN_MTETRIGGERTHRESHOLDOBJECTSOWNER:                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,                              (u_char *) entry->mteTThObjOwner,                                  strlen(entry->mteTThObjOwner));                break;            case COLUMN_MTETRIGGERTHRESHOLDOBJECTS:                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,                              (u_char *) entry->mteTThObjects,                                  strlen(entry->mteTThObjects));                break;            case COLUMN_MTETRIGGERTHRESHOLDRISINGEVENTOWNER:                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,                              (u_char *) entry->mteTThRiseOwner,                                  strlen(entry->mteTThRiseOwner));                break;            case COLUMN_MTETRIGGERTHRESHOLDRISINGEVENT:                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,                              (u_char *) entry->mteTThRiseEvent,                                  strlen(entry->mteTThRiseEvent));                break;            case COLUMN_MTETRIGGERTHRESHOLDFALLINGEVENTOWNER:                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,                              (u_char *) entry->mteTThFallOwner,                                  strlen(entry->mteTThFallOwner));                break;            case COLUMN_MTETRIGGERTHRESHOLDFALLINGEVENT:                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,                              (u_char *) entry->mteTThFallEvent,                                  strlen(entry->mteTThFallEvent));                break;            case COLUMN_MTETRIGGERTHRESHOLDDELTARISINGEVENTOWNER:                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,                              (u_char *) entry->mteTThDRiseOwner,                                  strlen(entry->mteTThDRiseOwner));                break;            case COLUMN_MTETRIGGERTHRESHOLDDELTARISINGEVENT:                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,                              (u_char *) entry->mteTThDRiseEvent,                                  strlen(entry->mteTThDRiseEvent));                break;            case COLUMN_MTETRIGGERTHRESHOLDDELTAFALLINGEVENTOWNER:                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,                              (u_char *) entry->mteTThDFallOwner,                                  strlen(entry->mteTThDFallOwner));                break;            case COLUMN_MTETRIGGERTHRESHOLDDELTAFALLINGEVENT:                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,                              (u_char *) entry->mteTThDFallEvent,                                  strlen(entry->mteTThDFallEvent));                break;            }        }        break;        /*         * Write-support         */    case MODE_SET_RESERVE1:        for (request = requests; request; request = request->next) {            entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);            tinfo = netsnmp_extract_table_info(request);            /*             * Since the mteTriggerThresholdTable only contains entries for             *   rows where the mteTriggerTest 'threshold(2)' bit is set,             *   strictly speaking we should reject assignments where             *   this isn't the case.

⌨️ 快捷键说明

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