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

📄 snmptargetparamsentry.c

📁 开发snmp的开发包有两个开放的SNMP开发库
💻 C
📖 第 1 页 / 共 4 页
字号:
    case SNMPTARGETPARAMSSTORAGETYPE:        long_ret = temp_struct->storageType;        return (unsigned char *) &long_ret;    case SNMPTARGETPARAMSROWSTATUS:        long_ret = temp_struct->rowStatus;        return (unsigned char *) &long_ret;    default:        DEBUGMSGTL(("snmpd",                    "unknown sub-id %d in var_snmpTargetParamsEntry\n",                    vp->magic));    }    return 0;}                               /* var_snmpTargetParamsEntry *//* * Assign a value to the mpModel variable.   */intwrite_snmpTargetParamsMPModel(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){    long            long_ret = *((long *) var_val);    static long     old_mp;    struct targetParamTable_struct *params = NULL;    if (action == RESERVE1) {        if (var_val_type != ASN_INTEGER) {            DEBUGMSGTL(("snmpTargetParamsEntry",                        "write to snmpTargetParamsMPModel: not ASN_INTEGER\n"));            return SNMP_ERR_WRONGTYPE;        }        if (var_val_len != sizeof(long)) {            DEBUGMSGTL(("snmpTargetParamsEntry",                        "write to snmpTargetParamsMPModel: bad length\n"));            return SNMP_ERR_WRONGLENGTH;        }        if (long_ret < 0) {            DEBUGMSGTL(("snmpTargetParamsEntry",                        "write to snmpTargetParamsMPModel: MP Model out of range\n"));            return SNMP_ERR_INCONSISTENTVALUE;        }    } else if (action == RESERVE2) {        snmpTargetParamsOID[snmpTargetParamsOIDLen - 1] =            SNMPTARGETPARAMSMPMODELCOLUMN;        params = search_snmpTargetParamsTable(snmpTargetParamsOID,                                              snmpTargetParamsOIDLen,                                              name, &name_len, 1);        if (params == NULL) {            DEBUGMSGTL(("snmpTargetParamsEntry",                        "write to snmpTargetParamsMPModel: BAD OID\n"));            return SNMP_ERR_INCONSISTENTNAME;        } else {            /*             * Row exists, check if it is changeable.               */            if (params->storageType == SNMP_STORAGE_READONLY) {                DEBUGMSGTL(("snmpTargetParamsEntry",                            "write to snmpTargetParamMPModel: row is read only\n"));                return SNMP_ERR_NOTWRITABLE;            }            /*             * Check if row is active.               */            if (params->rowStatus == SNMP_ROW_ACTIVE) {                DEBUGMSGTL(("snmpTargetParamsEntry",                            "write to snmpTargetParamsMPModel: this change not allowed in active row.\n"));                return SNMP_ERR_INCONSISTENTVALUE;            }            old_mp = params->mpModel;            params->mpModel = long_ret;            if (params->rowStatus == SNMP_ROW_NOTREADY &&                snmpTargetParams_rowStatusCheck(params)) {                params->rowStatus = SNMP_ROW_NOTINSERVICE;            }        }    } else if (action == COMMIT) {        snmpTargetParamsOID[snmpTargetParamsOIDLen - 1] =            SNMPTARGETPARAMSMPMODELCOLUMN;        if ((params = search_snmpTargetParamsTable(snmpTargetParamsOID,                                                   snmpTargetParamsOIDLen,                                                   name, &name_len,                                                   1)) != NULL) {            update_timestamp(params);        }    } else if (action == FREE || action == UNDO) {        /*         * Try to undo the SET here (abnormal usage of FREE clause)           */        snmpTargetParamsOID[snmpTargetParamsOIDLen - 1] =            SNMPTARGETPARAMSMPMODELCOLUMN;        if ((params = search_snmpTargetParamsTable(snmpTargetParamsOID,                                                   snmpTargetParamsOIDLen,                                                   name, &name_len,                                                   1)) != NULL) {            if (params->storageType != SNMP_STORAGE_READONLY                && params->rowStatus != SNMP_ROW_ACTIVE) {                params->mpModel = old_mp;                if (params->rowStatus == SNMP_ROW_NOTINSERVICE &&                    !snmpTargetParams_rowStatusCheck(params)) {                    params->rowStatus = SNMP_ROW_NOTREADY;                }            }        }    }    return SNMP_ERR_NOERROR;}                               /* write_snmpTargetParamsMPModel *//* * Assign a value to the secModel variable.   */intwrite_snmpTargetParamsSecModel(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){    long            long_ret = *((long *) var_val);    static long     old_sec;    struct targetParamTable_struct *params = NULL;    if (action == RESERVE1) {        if (var_val_type != ASN_INTEGER) {            DEBUGMSGTL(("snmpTargetParamsEntry",                        "write to snmpTargetParamsSecModel: not ASN_INTEGER\n"));            return SNMP_ERR_WRONGTYPE;        }        if (var_val_len != sizeof(long)) {            DEBUGMSGTL(("snmpTargetParamsEntry",                        "write to snmpTargetParamsSecModel: bad length\n"));            return SNMP_ERR_WRONGLENGTH;        }        if (long_ret <= 0) {            DEBUGMSGTL(("snmpTargetParamsEntry",                        "write to snmpTargetParamsSecModel: secModel out of range\n"));            return SNMP_ERR_WRONGVALUE;        }        if (find_sec_mod(long_ret) == NULL && long_ret >= 3) {            DEBUGMSGTL(("snmpTargetParamsEntry",                        "write to snmpTargetParamsSecModel: secModel %d unsupported\n",                        long_ret));            return SNMP_ERR_INCONSISTENTVALUE;        }    } else if (action == RESERVE2) {        snmpTargetParamsOID[snmpTargetParamsOIDLen - 1] =            SNMPTARGETPARAMSSECURITYMODELCOLUMN;        params = search_snmpTargetParamsTable(snmpTargetParamsOID,                                              snmpTargetParamsOIDLen,                                              name, &name_len, 1);        if (params == NULL) {            DEBUGMSGTL(("snmpTargetParamsEntry",                        "write to snmpTargetParamsSecModel: BAD OID\n"));            return SNMP_ERR_INCONSISTENTNAME;        } else {            /*             * Row exists, check if it is changeable.               */            if (params->storageType == SNMP_STORAGE_READONLY) {                DEBUGMSGTL(("snmpTargetParamsEntry",                            "write to snmpTargetParamSecModel: row is read only\n"));                return SNMP_ERR_NOTWRITABLE;            }            /*             * Check if row is active.               */            if (params->rowStatus == SNMP_ROW_ACTIVE) {                DEBUGMSGTL(("snmpTargetParamsEntry",                            "write to snmpTargetParamsSecModel: this change not allowed in active row.\n"));                return SNMP_ERR_INCONSISTENTVALUE;            }            old_sec = params->secModel;            params->secModel = long_ret;            if (params->rowStatus == SNMP_ROW_NOTREADY &&                snmpTargetParams_rowStatusCheck(params)) {                params->rowStatus = SNMP_ROW_NOTINSERVICE;            }        }    } else if (action == COMMIT) {        snmpTargetParamsOID[snmpTargetParamsOIDLen - 1] =            SNMPTARGETPARAMSSECURITYMODELCOLUMN;        if ((params = search_snmpTargetParamsTable(snmpTargetParamsOID,                                                   snmpTargetParamsOIDLen,                                                   name, &name_len,                                                   1)) != NULL) {            update_timestamp(params);        }    } else if (action == FREE || action == UNDO) {        /*         * Try to undo the SET here (abnormal usage of FREE clause)           */        snmpTargetParamsOID[snmpTargetParamsOIDLen - 1] =            SNMPTARGETPARAMSSECURITYMODELCOLUMN;        if ((params = search_snmpTargetParamsTable(snmpTargetParamsOID,                                                   snmpTargetParamsOIDLen,                                                   name, &name_len,                                                   1)) != NULL) {            if (params->storageType != SNMP_STORAGE_READONLY                && params->rowStatus != SNMP_ROW_ACTIVE) {                params->secModel = old_sec;                if (params->rowStatus == SNMP_ROW_NOTINSERVICE &&                    !snmpTargetParams_rowStatusCheck(params)) {                    params->rowStatus = SNMP_ROW_NOTREADY;                }            }        }    }    return SNMP_ERR_NOERROR;}                               /* write_snmpTargetParamsSecModel *//* * Assign a value to the SecLevel variable.   */intwrite_snmpTargetParamsSecLevel(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){    long            long_ret = *((long *) var_val);    static long     old_level;    struct targetParamTable_struct *params = NULL;    if (action == RESERVE1) {        if (var_val_type != ASN_INTEGER) {            DEBUGMSGTL(("snmpTargetParamsEntry",                        "write to snmpTargetParamsSecLevel: not ASN_INTEGER\n"));            return SNMP_ERR_WRONGTYPE;        }        if (var_val_len != sizeof(long)) {            DEBUGMSGTL(("snmpTargetParamsEntry",                        "write to snmpTargetParamsSecLevel: bad length\n"));            return SNMP_ERR_WRONGLENGTH;        }        if (long_ret <= 0 || long_ret > 3) {            DEBUGMSGTL(("snmpTargetParamsEntry",                        "write to snmpTargetParamsSecLevel: security level is not noAuthNoPriv(1), authNopriv(2) or authPriv(3)\n"));            return SNMP_ERR_WRONGVALUE;        }    } else if (action == RESERVE2) {        snmpTargetParamsOID[snmpTargetParamsOIDLen - 1] =            SNMPTARGETPARAMSSECURITYLEVELCOLUMN;        params = search_snmpTargetParamsTable(snmpTargetParamsOID,                                              snmpTargetParamsOIDLen,                                              name, &name_len, 1);        if (params == NULL) {            DEBUGMSGTL(("snmpTargetParamsEntry",                        "write to snmpTargetParamsSecLevel: BAD OID\n"));            return SNMP_ERR_INCONSISTENTNAME;        } else {            /*             * Row exists, check if it is changeable.               */            if (params->storageType == SNMP_STORAGE_READONLY) {                DEBUGMSGTL(("snmpTargetParamsEntry",                            "write to snmpTargetParamSecLevel: row is read only\n"));                return SNMP_ERR_NOTWRITABLE;            }            /*             * Check if row is active.               */            if (params->rowStatus == SNMP_ROW_ACTIVE) {                DEBUGMSGTL(("snmpTargetParamsEntry",                            "write to snmpTargetParamsSecLevel: this change not allowed in active row.\n"));                return SNMP_ERR_INCONSISTENTVALUE;            }            old_level = params->secLevel;            params->secLevel = long_ret;            if (params->rowStatus == SNMP_ROW_NOTREADY &&                snmpTargetParams_rowStatusCheck(params)) {                params->rowStatus = SNMP_ROW_NOTINSERVICE;            }        }    } else if (action == COMMIT) {        snmpTargetParamsOID[snmpTargetParamsOIDLen - 1] =            SNMPTARGETPARAMSSECURITYLEVELCOLUMN;        if ((params = search_snmpTargetParamsTable(snmpTargetParamsOID,                                                   snmpTargetParamsOIDLen,                                                   name, &name_len,                                                   1)) != NULL) {            update_timestamp(params);        }    } else if (action == FREE || action == UNDO) {        /*         * Try to undo the SET here (abnormal usage of FREE clause)           */        snmpTargetParamsOID[snmpTargetParamsOIDLen - 1] =            SNMPTARGETPARAMSSECURITYLEVELCOLUMN;        if ((params = search_snmpTargetParamsTable(snmpTargetParamsOID,                                                   snmpTargetParamsOIDLen,                                                   name, &name_len,                                                   1)) != NULL) {            if (params->storageType != SNMP_STORAGE_READONLY                && params->rowStatus != SNMP_ROW_ACTIVE) {                params->secLevel = old_level;                if (params->rowStatus == SNMP_ROW_NOTINSERVICE &&                    !snmpTargetParams_rowStatusCheck(params)) {                    params->rowStatus = SNMP_ROW_NOTREADY;                }            }        }    }    return SNMP_ERR_NOERROR;}                               /* write_snmpTargetParamsSecLevel *//* * Assign a value to the storageType variable.   */intwrite_snmpTargetParamsStorageType(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){    long            long_ret = *((long *) var_val);    static long     old_st;    struct targetParamTable_struct *params = NULL;    if (action == RESERVE1) {        if (var_val_type != ASN_INTEGER) {            DEBUGMSGTL(("snmpTargetParamsEntry",                        "write to snmpTargetParamsStorageType: not ASN_INTEGER\n"));            return SNMP_ERR_WRONGTYPE;        }        if (var_val_len != sizeof(long)) {            DEBUGMSGTL(("snmpTargetParamsEntry",                        "write to snmpTargetParamsStorageType: bad length\n"));            return SNMP_ERR_WRONGLENGTH;        }        if (long_ret != SNMP_STORAGE_OTHER &&            long_ret != SNMP_STORAGE_VOLATILE &&            long_ret != SNMP_STORAGE_NONVOLATILE) {            DEBUGMSGTL(("snmpTargetParamsEntry",

⌨️ 快捷键说明

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