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

📄 mtetriggerconf.c

📁 开发snmp的开发包有两个开放的SNMP开发库
💻 C
📖 第 1 页 / 共 4 页
字号:
    len   = MTE_STR1_LEN; vp = owner;    line  = read_config_read_data(ASN_OCTET_STR, line, &vp,  &len);    len   = MTE_STR1_LEN; vp = tname;    line  = read_config_read_data(ASN_OCTET_STR, line, &vp,  &len);    entry = _find_mteTrigger_entry( owner, tname );    DEBUGMSG(("disman:event:conf", "(%s, %s) ", owner, tname));        /*     * Read in the accessible column values.     *  (Note that the first & third are combined into a single field)     */    line = _parse_mteTBlCols( line, entry, 0 );    entry->mteTriggerTest |= MTE_TRIGGER_BOOLEAN;    entry->flags          |= MTE_TRIGGER_FLAG_VALID;    DEBUGMSG(("disman:event:conf", "\n"));}/*  *  Entries from the mteTriggerThresholdTable */char *_parse_mteTThCols( char *line, struct mteTrigger *entry, int bcomp ){    void  *vp;    size_t len;    line = read_config_read_data(ASN_UNSIGNED,  line,                                &entry->mteTThStartup,    NULL);    line = read_config_read_data(ASN_INTEGER,   line,                                &entry->mteTThRiseValue,  NULL);    line = read_config_read_data(ASN_INTEGER,   line,                                &entry->mteTThFallValue,  NULL);    line = read_config_read_data(ASN_INTEGER,   line,                                &entry->mteTThDRiseValue, NULL);    line = read_config_read_data(ASN_INTEGER,   line,                                &entry->mteTThDFallValue, NULL);    len  = MTE_STR1_LEN;   vp = entry->mteTThObjOwner;    line = read_config_read_data(ASN_OCTET_STR, line, &vp, &len);    len  = MTE_STR1_LEN;   vp = entry->mteTThObjects;    line = read_config_read_data(ASN_OCTET_STR, line, &vp, &len);    len  = MTE_STR1_LEN;   vp = entry->mteTThRiseOwner;    line = read_config_read_data(ASN_OCTET_STR, line, &vp, &len);    len  = MTE_STR1_LEN;   vp = entry->mteTThRiseEvent;    line = read_config_read_data(ASN_OCTET_STR, line, &vp, &len);    len  = MTE_STR1_LEN;   vp = entry->mteTThFallOwner;    line = read_config_read_data(ASN_OCTET_STR, line, &vp, &len);    len  = MTE_STR1_LEN;   vp = entry->mteTThFallEvent;    line = read_config_read_data(ASN_OCTET_STR, line, &vp, &len);    len  = MTE_STR1_LEN;   vp = entry->mteTThDRiseOwner;    line = read_config_read_data(ASN_OCTET_STR, line, &vp, &len);    len  = MTE_STR1_LEN;   vp = entry->mteTThDRiseEvent;    line = read_config_read_data(ASN_OCTET_STR, line, &vp, &len);    len  = MTE_STR1_LEN;   vp = entry->mteTThDFallOwner;    line = read_config_read_data(ASN_OCTET_STR, line, &vp, &len);    len  = MTE_STR1_LEN;   vp = entry->mteTThDFallEvent;    line = read_config_read_data(ASN_OCTET_STR, line, &vp, &len);    return line;}voidparse_mteTThTable(const char *token, char *line){    char   owner[MTE_STR1_LEN+1];    char   tname[MTE_STR1_LEN+1];    void  *vp;    size_t len;    struct mteTrigger *entry;    DEBUGMSGTL(("disman:event:conf", "Parsing mteTriggerThresholdTable config...  "));    /*     * Read in the index information for this entry     *  and create a (non-fixed) data structure for it.     */    memset( owner, 0, sizeof(owner));    memset( tname, 0, sizeof(tname));    len   = MTE_STR1_LEN; vp = owner;    line  = read_config_read_data(ASN_OCTET_STR, line, &vp,  &len);    len   = MTE_STR1_LEN; vp = tname;    line  = read_config_read_data(ASN_OCTET_STR, line, &vp,  &len);    entry = _find_mteTrigger_entry( owner, tname );    DEBUGMSG(("disman:event:conf", "(%s, %s) ", owner, tname));        /*     * Read in the accessible column values.     */    line = _parse_mteTThCols( line, entry, 0 );    entry->mteTriggerTest |= MTE_TRIGGER_THRESHOLD;    entry->flags          |= MTE_TRIGGER_FLAG_VALID;    DEBUGMSG(("disman:event:conf", "\n"));}/*  *  Backwards Compatability with the previous implementation */voidparse_mteTriggerTable(const char *token, char *line){    char   owner[MTE_STR1_LEN+1];    char   tname[MTE_STR1_LEN+1];    void  *vp;    size_t len;    struct mteTrigger *entry;    DEBUGMSGTL(("disman:event:conf", "Parsing previous mteTriggerTable config...  "));    /*     * Read in the index information for this entry     *  and create a (non-fixed) data structure for it.     */    memset( owner, 0, sizeof(owner));    memset( tname, 0, sizeof(tname));    len   = MTE_STR1_LEN; vp = owner;    line  = read_config_read_data(ASN_OCTET_STR, line, &vp,  &len);    len   = MTE_STR1_LEN; vp = tname;    line  = read_config_read_data(ASN_OCTET_STR, line, &vp,  &len);    entry = _find_mteTrigger_entry( owner, tname );    DEBUGMSG(("disman:event:conf", "(%s, %s) ", owner, tname));        /*     * Read in the accessible column values for each table in turn...     *   (similar, though not identical to the newer style).     */    line = _parse_mteTCols(   line, entry, 1 );    line = _parse_mteTDCols(  line, entry, 1 );    line = _parse_mteTExCols( line, entry, 1 );    line = _parse_mteTBlCols( line, entry, 1 );    line = _parse_mteTThCols( line, entry, 1 );    /*     * ... and then read in the "local internal variables"     *   XXX - TODO     */    entry->flags          |= MTE_TRIGGER_FLAG_VALID;    /* XXX - mte_enable_trigger();  ??? */    DEBUGMSG(("disman:event:conf", "\n"));}/* =============================================== * *  Handler for storing persistent trigger entries * * =============================================== */intstore_mteTTable(int majorID, int minorID, void *serverarg, void *clientarg){    char            line[SNMP_MAXBUF];    char           *cptr;    void           *vp;    size_t          tint;    netsnmp_tdata_row *row;    struct mteTrigger  *entry;    DEBUGMSGTL(("disman:event:conf", "Storing mteTriggerTable config:\n"));    for (row = netsnmp_tdata_row_first( trigger_table_data );         row;         row = netsnmp_tdata_row_next( trigger_table_data, row )) {        /*         * Skip entries that were set up via static config directives         */        entry = (struct mteTrigger *)netsnmp_tdata_row_entry( row );        if ( entry->flags & MTE_TRIGGER_FLAG_FIXED )            continue;        DEBUGMSGTL(("disman:event:conf", "  Storing (%s %s)\n",                         entry->mteOwner, entry->mteTName));        /*         * Save the basic mteTriggerTable entry...         */        memset(line, 0, sizeof(line));        strcat(line, "_mteTTable ");        cptr = line + strlen(line);        vp   = entry->mteOwner;          tint = strlen( vp );        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );        vp   = entry->mteTName;          tint = strlen( vp );        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );        vp   = entry->mteTriggerComment; tint = strlen( vp );        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );        /*         * ... (but skip the mteTriggerTest and         *      assorted boolean flag fields)...         */        vp   = entry->mteTriggerValueID;        tint = entry->mteTriggerValueID_len;        cptr = read_config_store_data(   ASN_OBJECT_ID, cptr, &vp,  &tint );        vp   = entry->mteTriggerTarget;  tint = strlen( vp );        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );        vp   = entry->mteTriggerContext; tint = strlen( vp );        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );        tint = entry->mteTriggerFrequency;        cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );        vp   = entry->mteTriggerOOwner;  tint = strlen( vp );        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );        vp   = entry->mteTriggerObjects; tint = strlen( vp );        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );        tint = entry->flags &                  (MTE_TRIGGER_FLAG_VWILD  |MTE_TRIGGER_FLAG_CWILD|                   MTE_TRIGGER_FLAG_ENABLED|MTE_TRIGGER_FLAG_ACTIVE);        cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );        /* XXX - Need to store the 'iquery' access information */        snmpd_store_config(line);        /*         * ... then save the other (relevant) table entries separately,         *       starting with mteDeltaDiscontinuityTable...         */        if ( entry->flags & MTE_TRIGGER_FLAG_DELTA ) {            memset(line, 0, sizeof(line));            strcat(line, "_mteTDTable ");            cptr = line + strlen(line);            vp   = entry->mteOwner;          tint = strlen( vp );            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTName;          tint = strlen( vp );            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteDeltaDiscontID;            tint = entry->mteDeltaDiscontID_len;            cptr = read_config_store_data(   ASN_OBJECT_ID, cptr, &vp,  &tint );            tint = entry->flags & MTE_TRIGGER_FLAG_DWILD;            cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );            tint = entry->mteDeltaDiscontIDType;            cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );            snmpd_store_config(line);        }        /*         * ... and the three type-specific trigger tables.         */        if ( entry->mteTriggerTest & MTE_TRIGGER_EXISTENCE ) {            memset(line, 0, sizeof(line));            strcat(line, "_mteTExTable ");            cptr = line + strlen(line);            vp   = entry->mteOwner;          tint = strlen( vp );            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTName;          tint = strlen( vp );            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );            tint = (entry->mteTExTest    & 0xff) << 8;            tint|= (entry->mteTExStartup & 0xff);            cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );            vp   = entry->mteTExObjOwner;  tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTExObjects;   tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTExEvOwner;   tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTExEvent;     tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            snmpd_store_config(line);        }        if ( entry->mteTriggerTest & MTE_TRIGGER_BOOLEAN ) {            memset(line, 0, sizeof(line));            strcat(line, "_mteTBlTable ");            cptr = line + strlen(line);            vp   = entry->mteOwner;          tint = strlen( vp );            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTName;          tint = strlen( vp );            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );            tint =  entry->mteTBoolComparison;            tint |= (entry->flags & MTE_TRIGGER_FLAG_BSTART);            cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );            tint =  entry->mteTBoolValue;            cptr = read_config_store_data(   ASN_INTEGER,   cptr, &tint, NULL );            vp   = entry->mteTBoolObjOwner; tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTBoolObjects; tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTBoolEvOwner; tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTBoolEvent;   tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            snmpd_store_config(line);        }        if ( entry->mteTriggerTest & MTE_TRIGGER_THRESHOLD ) {            memset(line, 0, sizeof(line));            strcat(line, "_mteTThTable ");            cptr = line + strlen(line);            vp   = entry->mteOwner;          tint = strlen( vp );            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTName;          tint = strlen( vp );            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );            cptr = read_config_store_data(ASN_UNSIGNED, cptr,                                         &entry->mteTThStartup,    NULL );            cptr = read_config_store_data(ASN_INTEGER,  cptr,                                         &entry->mteTThRiseValue,  NULL );            cptr = read_config_store_data(ASN_INTEGER,  cptr,                                         &entry->mteTThFallValue,  NULL );            cptr = read_config_store_data(ASN_INTEGER,  cptr,                                         &entry->mteTThDRiseValue, NULL );            cptr = read_config_store_data(ASN_INTEGER,  cptr,                                         &entry->mteTThDFallValue, NULL );            vp   = entry->mteTThObjOwner; tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTThObjects; tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTThRiseOwner; tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTThRiseEvent; tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTThFallOwner; tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTThFallEvent; tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTThDRiseOwner; tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTThDRiseEvent; tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTThDFallOwner; tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            vp   = entry->mteTThDFallEvent; tint = strlen( vp );            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );            snmpd_store_config(line);        }    }    DEBUGMSGTL(("disman:event:conf", "  done.\n"));    return SNMPERR_SUCCESS;}intclear_mteTTable(int majorID, int minorID, void *serverarg, void *clientarg){    netsnmp_tdata_row *row;    while (( row = netsnmp_tdata_row_first( trigger_table_data ))) {        netsnmp_tdata_remove_and_delete_row( trigger_table_data, row );    }    return SNMPERR_SUCCESS;}

⌨️ 快捷键说明

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