📄 snmptargetparamsentry.c
字号:
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 + -