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

📄 mtetriggertable.c

📁 开发snmp的开发包有两个开放的SNMP开发库
💻 C
📖 第 1 页 / 共 5 页
字号:
/* * var_mteTriggerTable(): *   Handle this table separately from the scalar value case. *   The workings of this are basically the same as for var_mteTriggerTable above. */unsigned char  *var_mteTriggerTable(struct variable *vp,                    oid * name,                    size_t * length,                    int exact,                    size_t * var_len, WriteMethod ** write_method){    struct mteTriggerTable_data *StorageTmp = NULL;    DEBUGMSGTL(("mteTriggerTable",                "var_mteTriggerTable: Entering...  \n"));    /*     * this assumes you have registered all your data properly     */    if ((StorageTmp =         header_complex(mteTriggerTableStorage, vp, name, length, exact,                        var_len, write_method)) == NULL) {        if (vp->magic == MTETRIGGERENTRYSTATUS)            *write_method = write_mteTriggerEntryStatus;        return NULL;    }    /*     * this is where we do the value assignments for the mib results.     */    switch (vp->magic) {    case MTETRIGGERCOMMENT:        *write_method = write_mteTriggerComment;        *var_len = StorageTmp->mteTriggerCommentLen;        return (u_char *) StorageTmp->mteTriggerComment;    case MTETRIGGERTEST:        *write_method = write_mteTriggerTest;        *var_len = StorageTmp->mteTriggerTestLen;        return (u_char *) StorageTmp->mteTriggerTest;    case MTETRIGGERSAMPLETYPE:        *write_method = write_mteTriggerSampleType;        *var_len = sizeof(StorageTmp->mteTriggerSampleType);        return (u_char *) & StorageTmp->mteTriggerSampleType;    case MTETRIGGERVALUEID:        *write_method = write_mteTriggerValueID;        *var_len = StorageTmp->mteTriggerValueIDLen * sizeof(oid);        return (u_char *) StorageTmp->mteTriggerValueID;    case MTETRIGGERVALUEIDWILDCARD:        *write_method = write_mteTriggerValueIDWildcard;        *var_len = sizeof(StorageTmp->mteTriggerValueIDWildcard);        return (u_char *) & StorageTmp->mteTriggerValueIDWildcard;    case MTETRIGGERTARGETTAG:        *write_method = write_mteTriggerTargetTag;        *var_len = StorageTmp->mteTriggerTargetTagLen;        return (u_char *) StorageTmp->mteTriggerTargetTag;    case MTETRIGGERCONTEXTNAME:        *write_method = write_mteTriggerContextName;        *var_len = StorageTmp->mteTriggerContextNameLen;        return (u_char *) StorageTmp->mteTriggerContextName;    case MTETRIGGERCONTEXTNAMEWILDCARD:        *write_method = write_mteTriggerContextNameWildcard;        *var_len = sizeof(StorageTmp->mteTriggerContextNameWildcard);        return (u_char *) & StorageTmp->mteTriggerContextNameWildcard;    case MTETRIGGERFREQUENCY:        *write_method = write_mteTriggerFrequency;        *var_len = sizeof(StorageTmp->mteTriggerFrequency);        return (u_char *) & StorageTmp->mteTriggerFrequency;    case MTETRIGGEROBJECTSOWNER:        *write_method = write_mteTriggerObjectsOwner;        *var_len = StorageTmp->mteTriggerObjectsOwnerLen;        return (u_char *) StorageTmp->mteTriggerObjectsOwner;    case MTETRIGGEROBJECTS:        *write_method = write_mteTriggerObjects;        *var_len = StorageTmp->mteTriggerObjectsLen;        return (u_char *) StorageTmp->mteTriggerObjects;    case MTETRIGGERENABLED:        *write_method = write_mteTriggerEnabled;        *var_len = sizeof(StorageTmp->mteTriggerEnabled);        return (u_char *) & StorageTmp->mteTriggerEnabled;    case MTETRIGGERENTRYSTATUS:        *write_method = write_mteTriggerEntryStatus;        *var_len = sizeof(StorageTmp->mteTriggerEntryStatus);        return (u_char *) & StorageTmp->mteTriggerEntryStatus;    default:        ERROR_MSG("");    }    return NULL;}intwrite_mteTriggerComment(int action,                        u_char * var_val,                        u_char var_val_type,                        size_t var_val_len,                        u_char * statP, oid * name, size_t name_len){    static char    *tmpvar;    struct mteTriggerTable_data *StorageTmp = NULL;    static size_t   tmplen;    size_t          newlen =        name_len - (sizeof(mteTriggerTable_variables_oid) / sizeof(oid) +                    3 - 1);    DEBUGMSGTL(("mteTriggerTable",                "write_mteTriggerComment entering action=%d...  \n",                action));    if ((StorageTmp =         header_complex(mteTriggerTableStorage, NULL,                        &name[sizeof(mteTriggerTable_variables_oid) /                              sizeof(oid) + 3 - 1], &newlen, 1, NULL,                        NULL)) == NULL)        return SNMP_ERR_NOSUCHNAME;     /* remove if you support creation here */    switch (action) {    case RESERVE1:        if (var_val_type != ASN_OCTET_STR) {            snmp_log(LOG_ERR,                     "write to mteTriggerComment not ASN_OCTET_STR\n");            return SNMP_ERR_WRONGTYPE;        }        if (StorageTmp->storageType != ST_NONVOLATILE)            return SNMP_ERR_NOTWRITABLE;        break;    case RESERVE2:        /*         * memory reseveration, final preparation...          */        break;    case FREE:        /*         * Release any resources that have been allocated          */        break;    case ACTION:        /*         * The variable has been stored in string for         * you to use, and you have just been asked to do something with         * it.  Note that anything done here must be reversable in the UNDO case          */        tmpvar = StorageTmp->mteTriggerComment;        tmplen = StorageTmp->mteTriggerCommentLen;        memdup((u_char **) & StorageTmp->mteTriggerComment, var_val,               var_val_len);        StorageTmp->mteTriggerCommentLen = var_val_len;        break;    case UNDO:        /*         * Back out any changes made in the ACTION case          */        SNMP_FREE(StorageTmp->mteTriggerComment);        StorageTmp->mteTriggerComment = tmpvar;        StorageTmp->mteTriggerCommentLen = tmplen;        break;    case COMMIT:        /*         * Things are working well, so it's now safe to make the change         * permanently.  Make sure that anything done here can't fail!          */        SNMP_FREE(tmpvar);        break;    }    return SNMP_ERR_NOERROR;}intwrite_mteTriggerTest(int action,                     u_char * var_val,                     u_char var_val_type,                     size_t var_val_len,                     u_char * statP, oid * name, size_t name_len){    static char    *tmpvar;    struct mteTriggerTable_data *StorageTmp = NULL;    static size_t   tmplen;    size_t          newlen =        name_len - (sizeof(mteTriggerTable_variables_oid) / sizeof(oid) +                    3 - 1);    DEBUGMSGTL(("mteTriggerTable",                "write_mteTriggerTest entering action=%d...  \n", action));    if ((StorageTmp =         header_complex(mteTriggerTableStorage, NULL,                        &name[sizeof(mteTriggerTable_variables_oid) /                              sizeof(oid) + 3 - 1], &newlen, 1, NULL,                        NULL)) == NULL)        return SNMP_ERR_NOSUCHNAME;     /* remove if you support creation here */    switch (action) {    case RESERVE1:        if (var_val_type != ASN_OCTET_STR) {            snmp_log(LOG_ERR, "write to mteTriggerTest not ASN_OCTET_STR\n");            return SNMP_ERR_WRONGTYPE;        }        if (StorageTmp->storageType != ST_NONVOLATILE)            return SNMP_ERR_NOTWRITABLE;        break;    case RESERVE2:        /*         * memory reseveration, final preparation...          */        break;    case FREE:        /*         * Release any resources that have been allocated          */        break;    case ACTION:        /*         * The variable has been stored in string for         * you to use, and you have just been asked to do something with         * it.  Note that anything done here must be reversable in the UNDO case          */        tmpvar = StorageTmp->mteTriggerTest;        tmplen = StorageTmp->mteTriggerTestLen;        memdup((u_char **) & StorageTmp->mteTriggerTest, var_val,               var_val_len);        StorageTmp->mteTriggerTestLen = var_val_len;        break;    case UNDO:        /*         * Back out any changes made in the ACTION case          */        SNMP_FREE(StorageTmp->mteTriggerTest);        StorageTmp->mteTriggerTest = tmpvar;        StorageTmp->mteTriggerTestLen = tmplen;        break;    case COMMIT:        /*         * Things are working well, so it's now safe to make the change         * permanently.  Make sure that anything done here can't fail!          */        SNMP_FREE(tmpvar);        break;    }    return SNMP_ERR_NOERROR;}intwrite_mteTriggerSampleType(int action,                           u_char * var_val,                           u_char var_val_type,                           size_t var_val_len,                           u_char * statP, oid * name, size_t name_len){    static int      tmpvar;    struct mteTriggerTable_data *StorageTmp = NULL;    size_t          newlen =        name_len - (sizeof(mteTriggerTable_variables_oid) / sizeof(oid) +                    3 - 1);    DEBUGMSGTL(("mteTriggerTable",                "write_mteTriggerSampleType entering action=%d...  \n",                action));    if ((StorageTmp =         header_complex(mteTriggerTableStorage, NULL,                        &name[sizeof(mteTriggerTable_variables_oid) /                              sizeof(oid) + 3 - 1], &newlen, 1, NULL,                        NULL)) == NULL)        return SNMP_ERR_NOSUCHNAME;     /* remove if you support creation here */    switch (action) {    case RESERVE1:        if (var_val_type != ASN_INTEGER) {            snmp_log(LOG_ERR,                     "write to mteTriggerSampleType not ASN_INTEGER\n");            return SNMP_ERR_WRONGTYPE;        }        if (StorageTmp->storageType != ST_NONVOLATILE)            return SNMP_ERR_NOTWRITABLE;        break;    case RESERVE2:        /*         * memory reseveration, final preparation...          */        break;    case FREE:        /*         * Release any resources that have been allocated          */        break;    case ACTION:        /*         * The variable has been stored in long_ret for         * you to use, and you have just been asked to do something with         * it.  Note that anything done here must be reversable in the UNDO case          */        tmpvar = StorageTmp->mteTriggerSampleType;        StorageTmp->mteTriggerSampleType = *((long *) var_val);        break;    case UNDO:        /*         * Back out any chang

⌨️ 快捷键说明

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