/** handles requests for the sctpLookupRemPortTable table */ int sctpLookupRemPortTable_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 *table_info; sctpLookupRemPortTable_entry *table_entry; switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { if (request->processed) continue; table_entry = (sctpLookupRemPortTable_entry *) netsnmp_container_table_extract_context(request); table_info = netsnmp_extract_table_info(request); if ((NULL == table_entry) || (NULL == table_info)) { snmp_log(LOG_ERR, "could not extract table entry or info for sctpLookupRemPortTable\n"); snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR, NULL, 0); continue; } switch (table_info->colnum) { case COLUMN_SCTPLOOKUPREMPORTSTARTTIME: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_TIMETICKS, table_entry->sctpLookupRemPortStartTime); break; default: netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; } } break; } return SNMP_ERR_NOERROR; }
/** handles requests for the cpqSasPhyDrvTable table */ int cpqSasPhyDrvTable_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 *table_info; cpqSasPhyDrvTable_entry *table_entry; DEBUGMSGTL(("cpqSasPhyDrvTable:handler", "Processing request (%d)\n", reqinfo->mode)); switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { if (request->processed) continue; table_entry = (cpqSasPhyDrvTable_entry *) netsnmp_container_table_extract_context(request); table_info = netsnmp_extract_table_info(request); if ((NULL == table_entry) || (NULL == table_info)) { snmp_log(LOG_ERR, "could not extract table entry or info for cpqSasPhyDrvTable\n"); snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR, NULL, 0); continue; } switch (table_info->colnum) { case COLUMN_CPQSASPHYDRVHBAINDEX: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqSasPhyDrvHbaIndex); break; case COLUMN_CPQSASPHYDRVINDEX: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->cpqSasPhyDrvIndex); break; case COLUMN_CPQSASPHYDRVLOCATIONSTRING: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry-> cpqSasPhyDrvLocationString, table_entry-> cpqSasPhyDrvLocationString_len); break; case COLUMN_CPQSASPHYDRVMODEL: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry->cpqSasPhyDrvModel, table_entry-> cpqSasPhyDrvModel_len); break; case COLUMN_CPQSASPHYDRVSTATUS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqSasPhyDrvStatus); break; case COLUMN_CPQSASPHYDRVCONDITION: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqSasPhyDrvCondition); break; case COLUMN_CPQSASPHYDRVFWREV: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry->cpqSasPhyDrvFWRev, table_entry-> cpqSasPhyDrvFWRev_len); break; case COLUMN_CPQSASPHYDRVSIZE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->cpqSasPhyDrvSize); break; case COLUMN_CPQSASPHYDRVUSEDREALLOCS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_COUNTER, table_entry-> cpqSasPhyDrvUsedReallocs); break; case COLUMN_CPQSASPHYDRVSERIALNUMBER: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry-> cpqSasPhyDrvSerialNumber, table_entry-> cpqSasPhyDrvSerialNumber_len); break; case COLUMN_CPQSASPHYDRVMEMBERLOGDRV: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqSasPhyDrvMemberLogDrv); break; case COLUMN_CPQSASPHYDRVROTATIONALSPEED: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqSasPhyDrvRotationalSpeed); break; case COLUMN_CPQSASPHYDRVOSNAME: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry->cpqSasPhyDrvOsName, table_entry-> cpqSasPhyDrvOsName_len); break; case COLUMN_CPQSASPHYDRVPLACEMENT: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqSasPhyDrvPlacement); break; case COLUMN_CPQSASPHYDRVHOTPLUG: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqSasPhyDrvHotPlug); break; case COLUMN_CPQSASPHYDRVTYPE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->cpqSasPhyDrvType); break; case COLUMN_CPQSASPHYDRVSASADDRESS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry-> cpqSasPhyDrvSasAddress, table_entry-> cpqSasPhyDrvSasAddress_len); break; case COLUMN_CPQSASPHYDRVMEDIATYPE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->cpqSasPhyDrvMediaType); break; case COLUMN_CPQSASPHYDRVSSDWEARSTATUS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->cpqSasPhyDrvSSDWearStatus); break; case COLUMN_CPQSASPHYDRVPOWERONHOURS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_COUNTER, table_entry->cpqSasPhyDrvPowerOnHours); break; case COLUMN_CPQSASPHYDRVSSDPERCNTENDRNCEUSED: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_GAUGE, table_entry->cpqSasPhyDrvSSDPercntEndrnceUsed); break; case COLUMN_CPQSASPHYDRVSSDESTTIMEREMAININGHOURS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_COUNTER, table_entry->cpqSasPhyDrvSSDEstTimeRemainingHours); break; case COLUMN_CPQSASPHYDRVAUTHENTICATIONSTATUS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->cpqSasPhyDrvAuthenticationStatus); break; case COLUMN_CPQSASPHYDRVSMARTCARRIERAPPFWREV: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->cpqSasPhyDrvSmartCarrierAppFWRev); break; case COLUMN_CPQSASPHYDRVSMARTCARRIERBOOTLDRFWREV: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->cpqSasPhyDrvSmartCarrierAppFWRev); break; case COLUMN_CPQSASPHYDRVCURRTEMPERATURE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_GAUGE, table_entry->cpqSasPhyDrvCurrTemperature); break; case COLUMN_CPQSASPHYDRVTEMPERATURETHRESHOLD: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_GAUGE, table_entry->cpqSasPhyDrvTemperatureThreshold); break; default: netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; } } break; } return SNMP_ERR_NOERROR; }
/** handles requests for the cpqLinOsProcessorTable table */ int cpqLinOsProcessorTable_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 *table_info; cpqLinOsProcessorTable_entry *table_entry; DEBUGMSGTL(("cpqLinOsProcessorTable:handler", "Processing request (%d)\n", reqinfo->mode)); switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { if (request->processed) continue; table_entry = (cpqLinOsProcessorTable_entry *) netsnmp_container_table_extract_context(request); table_info = netsnmp_extract_table_info(request); if ((NULL == table_entry) || (NULL == table_info)) { snmp_log(LOG_ERR, "could not extract table entry or info for cpqLinOsProcessorTable\n"); snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR, NULL, 0); continue; } switch (table_info->colnum) { case COLUMN_CPQLINOSCPUINDEX: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->cpqLinOsCpuIndex); break; case COLUMN_CPQLINOSCPUINSTANCE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry->cpqLinOsCpuInstance, table_entry-> cpqLinOsCpuInstance_len); break; case COLUMN_CPQLINOSCPUINTERRUPTSPERSEC: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsCpuInterruptsPerSec); break; case COLUMN_CPQLINOSCPUTIMEPERCENT: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsCpuTimePercent); break; case COLUMN_CPQLINOSCPUUSERTIMEPERCENT: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsCpuUserTimePercent); break; case COLUMN_CPQLINOSCPUPRIVILEGEDTIMEPERCENT: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsCpuPrivilegedTimePercent); break; default: netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; } } break; } return SNMP_ERR_NOERROR; }
/** handles requests for the hrSWInstalledTable table */ int hrSWInstalledTable_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 *table_info; netsnmp_swinst_entry *table_entry; switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { if (request->processed) continue; table_entry = (netsnmp_swinst_entry *) netsnmp_container_table_extract_context(request); table_info = netsnmp_extract_table_info(request); if ((NULL == table_entry) || (NULL == table_info)) { snmp_log(LOG_ERR, "could not extract table entry or info for " MYTABLE "\n"); snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR, NULL, 0); continue; } switch (table_info->colnum) { case COLUMN_HRSWINSTALLEDINDEX: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->swIndex); break; case COLUMN_HRSWINSTALLEDNAME: { snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) table_entry->swName, table_entry->swName_len); } break; case COLUMN_HRSWINSTALLEDID: snmp_set_var_typed_value(request->requestvb, ASN_OBJECT_ID, (u_char *) &nullOid, nullOidLen); break; case COLUMN_HRSWINSTALLEDTYPE: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->swType); break; case COLUMN_HRSWINSTALLEDDATE: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) table_entry->swDate, table_entry->swDate_len); break; default: /* * An unsupported/unreadable column (if applicable) */ snmp_set_var_typed_value(request->requestvb, SNMP_NOSUCHOBJECT, NULL, 0); } } break; } return SNMP_ERR_NOERROR; }
/** handles requests for the sctpAssocTable table */ int sctpAssocTable_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 *table_info; sctpAssocTable_entry *table_entry; switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { if (request->processed) continue; table_entry = (sctpAssocTable_entry *) netsnmp_container_table_extract_context(request); table_info = netsnmp_extract_table_info(request); if ((NULL == table_entry) || (NULL == table_info)) { snmp_log(LOG_ERR, "could not extract table entry or info for sctpAssocTable\n"); snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR, NULL, 0); continue; } switch (table_info->colnum) { case COLUMN_SCTPASSOCREMHOSTNAME: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) table_entry->sctpAssocRemHostName, table_entry->sctpAssocRemHostName_len); break; case COLUMN_SCTPASSOCLOCALPORT: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_UNSIGNED, table_entry->sctpAssocLocalPort); break; case COLUMN_SCTPASSOCREMPORT: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_UNSIGNED, table_entry->sctpAssocRemPort); break; case COLUMN_SCTPASSOCREMPRIMADDRTYPE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->sctpAssocRemPrimAddrType); break; case COLUMN_SCTPASSOCREMPRIMADDR: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) table_entry->sctpAssocRemPrimAddr, table_entry->sctpAssocRemPrimAddr_len); break; case COLUMN_SCTPASSOCHEARTBEATINTERVAL: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_UNSIGNED, table_entry->sctpAssocHeartBeatInterval); break; case COLUMN_SCTPASSOCSTATE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->sctpAssocState); break; case COLUMN_SCTPASSOCINSTREAMS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_UNSIGNED, table_entry->sctpAssocInStreams); break; case COLUMN_SCTPASSOCOUTSTREAMS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_UNSIGNED, table_entry->sctpAssocOutStreams); break; case COLUMN_SCTPASSOCMAXRETR: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_UNSIGNED, table_entry->sctpAssocMaxRetr); break; case COLUMN_SCTPASSOCPRIMPROCESS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_UNSIGNED, table_entry->sctpAssocPrimProcess); break; case COLUMN_SCTPASSOCT1EXPIREDS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_COUNTER, table_entry->sctpAssocT1expireds); break; case COLUMN_SCTPASSOCT2EXPIREDS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_COUNTER, table_entry->sctpAssocT2expireds); break; case COLUMN_SCTPASSOCRTXCHUNKS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_COUNTER, table_entry->sctpAssocRtxChunks); break; case COLUMN_SCTPASSOCSTARTTIME: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_TIMETICKS, table_entry->sctpAssocStartTime); break; case COLUMN_SCTPASSOCDISCONTINUITYTIME: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_TIMETICKS, table_entry->sctpAssocDiscontinuityTime); break; default: netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; } } break; /* * Write-support */ case MODE_SET_RESERVE1: for (request = requests; request; request = request->next) { if (request->processed) continue; netsnmp_set_request_error(reqinfo, request, SNMP_ERR_NOTWRITABLE); } break; case MODE_SET_RESERVE2: case MODE_SET_FREE: case MODE_SET_ACTION: case MODE_SET_UNDO: case MODE_SET_COMMIT: break; } return SNMP_ERR_NOERROR; }
/** handles requests for the hrSWRunTable table */ int hrSWRunTable_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 *table_info; netsnmp_swrun_entry *table_entry; switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { if (request->processed) continue; table_entry = (netsnmp_swrun_entry *) netsnmp_container_table_extract_context(request); table_info = netsnmp_extract_table_info(request); if ((NULL == table_entry) || (NULL == table_info)) { snmp_log(LOG_ERR, "could not extract table entry or info for " MYTABLE "\n"); snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR, NULL, 0); continue; } switch (table_info->colnum) { case COLUMN_HRSWRUNINDEX: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->hrSWRunIndex); break; case COLUMN_HRSWRUNNAME: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) table_entry-> hrSWRunName, table_entry->hrSWRunName_len); break; case COLUMN_HRSWRUNID: snmp_set_var_typed_value(request->requestvb, ASN_OBJECT_ID, #ifdef NETSNMP_SWRUN_HAVE_ID (u_char *) table_entry->hrSWRunID, table_entry->hrSWRunID_len #else (u_char *) &nullOid, nullOidLen #endif ); break; case COLUMN_HRSWRUNPATH: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) table_entry-> hrSWRunPath, table_entry->hrSWRunPath_len); break; case COLUMN_HRSWRUNPARAMETERS: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) table_entry-> hrSWRunParameters, table_entry-> hrSWRunParameters_len); break; case COLUMN_HRSWRUNTYPE: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->hrSWRunType); break; case COLUMN_HRSWRUNSTATUS: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->hrSWRunStatus); break; default: /* * An unsupported/unreadable column (if applicable) */ snmp_set_var_typed_value(request->requestvb, SNMP_NOSUCHOBJECT, NULL, 0); } } break; #ifndef NETSNMP_NO_WRITE_SUPPORT #ifdef NETSNMP_INCLUDE_HRSWRUN_WRITE_SUPPORT /* * Write-support */ case MODE_SET_RESERVE1: for (request = requests; request; request = request->next) { int pid; if (request->processed) continue; table_entry = (netsnmp_swrun_entry *) netsnmp_container_table_extract_context(request); table_info = netsnmp_extract_table_info(request); if ((NULL == table_entry) || (NULL == table_info)) { snmp_log(LOG_ERR, "could not extract table entry or info for " MYTABLE "\n"); snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR, NULL, 0); continue; } switch (table_info->colnum) { case COLUMN_HRSWRUNSTATUS: if (*request->requestvb->val.integer != HRSWRUNSTATUS_INVALID) { netsnmp_set_request_error(reqinfo, request, SNMP_ERR_WRONGVALUE); return SNMP_ERR_NOERROR; } pid = request->requestvb->name[request->requestvb->name_length-1]; if (1 == pid) { snmp_log(LOG_WARNING,"refusing to kill pid 1\n"); netsnmp_set_request_error(reqinfo, request, SNMP_ERR_NOACCESS); return SNMP_ERR_NOERROR; } break; default: netsnmp_set_request_error(reqinfo, request, SNMP_ERR_NOTWRITABLE); return SNMP_ERR_NOERROR; } } break; case MODE_SET_RESERVE2: break; case MODE_SET_FREE: break; case MODE_SET_ACTION: for (request = requests; request; request = request->next) { if (request->processed) continue; table_entry = (netsnmp_swrun_entry *) netsnmp_container_table_extract_context(request); table_info = netsnmp_extract_table_info(request); if ((NULL == table_entry) || (NULL == table_info)) { snmp_log(LOG_ERR, "could not extract table entry or info for " MYTABLE "\n"); snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR, NULL, 0); continue; } switch (table_info->colnum) { case COLUMN_HRSWRUNSTATUS: table_entry->old_hrSWRunStatus = table_entry->hrSWRunStatus; table_entry->hrSWRunStatus = *request->requestvb->val.integer; break; } } break; case MODE_SET_UNDO: for (request = requests; request; request = request->next) { if (request->processed) continue; container = netsnmp_container_table_extract_context(request); table_entry = (netsnmp_swrun_entry *) netsnmp_container_table_extract_context(request); table_info = netsnmp_extract_table_info(request); if ((NULL == table_entry) || (NULL == table_info)) { snmp_log(LOG_ERR, "could not extract table entry or info for " MYTABLE "\n"); snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR, NULL, 0); continue; } switch (table_info->colnum) { case COLUMN_HRSWRUNSTATUS: table_entry->hrSWRunStatus = table_entry->old_hrSWRunStatus; table_entry->old_hrSWRunStatus = 0; break; } } break; case MODE_SET_COMMIT: for (request = requests; request; request = request->next) { int pid; if (request->processed) continue; pid = request->requestvb->name[request->requestvb->name_length-1]; DEBUGMSGTL(("hrSWRunTable:commit", "kill(%d,TERM)\n", pid)); kill(pid, SIGTERM); } break; #endif /* NETSNMP_INCLUDE_HRSWRUN_WRITE_SUPPORT */ #endif /* !NETSNMP_NO_WRITE_SUPPORT */ } return SNMP_ERR_NOERROR; }
/** handles requests for the cpqLinOsDiskTable table */ int cpqLinOsDiskTable_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 *table_info; netsnmp_container *container; cpqLinOsDiskTable_entry *table_entry; DEBUGMSGTL(("cpqLinOsDiskTable:handler", "Processing request (%d)\n", reqinfo->mode)); switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { if (request->processed) continue; table_entry = (cpqLinOsDiskTable_entry *) netsnmp_container_table_extract_context(request); table_info = netsnmp_extract_table_info(request); if ((NULL == table_entry) || (NULL == table_info)) { snmp_log(LOG_ERR, "could not extract table entry or info for cpqLinOsDiskTable\n"); snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR, NULL, 0); continue; } switch (table_info->colnum) { case COLUMN_CPQLINOSDISKMAJORINDEX: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskMajorIndex); break; case COLUMN_CPQLINOSDISKMINORINDEX: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskMinorIndex); break; case COLUMN_CPQLINOSDISKNAME: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry->cpqLinOsDiskName, table_entry-> cpqLinOsDiskName_len); break; case COLUMN_CPQLINOSDISKSCSIINDEX: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskScsiIndex); break; case COLUMN_CPQLINOSDISKWRITEIOS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskWriteIos); break; case COLUMN_CPQLINOSDISKWRITEMERGES: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskWriteMerges); break; case COLUMN_CPQLINOSDISKWRITESECTORS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskWriteSectors); break; case COLUMN_CPQLINOSDISKWRITEDURATIONMS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskWriteDurationMs); break; case COLUMN_CPQLINOSDISKWRITEIOSPERSEC: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskWriteIosPerSec); break; case COLUMN_CPQLINOSDISKWRITESECTORSPERSEC: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskWriteSectorsPerSec); break; case COLUMN_CPQLINOSDISKWRITEDURATIONMSPERIOS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskWriteDurationMsPerIos); break; case COLUMN_CPQLINOSDISKREADIOS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskReadIos); break; case COLUMN_CPQLINOSDISKREADMERGES: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskReadMerges); break; case COLUMN_CPQLINOSDISKREADSECTORS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskReadSectors); break; case COLUMN_CPQLINOSDISKREADDURATIONMS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskReadDurationMs); break; case COLUMN_CPQLINOSDISKREADIOSPERSEC: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskReadIosPerSec); break; case COLUMN_CPQLINOSDISKREADSECTORSPERSEC: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskReadSectorsPerSec); break; case COLUMN_CPQLINOSDISKREADDURATIONMSPERIOS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqLinOsDiskReadDurationMsPerIos); break; default: netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; } } break; } return SNMP_ERR_NOERROR; }
/** handles requests for the sysORTable table */ static int sysORTable_handler(netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests) { netsnmp_request_info *request; DEBUGMSGTL(("mibII/sysORTable/sysORTable_handler", "sysORTable_handler called\n")); if (reqinfo->mode != MODE_GET) { snmp_log(LOG_ERR, "Got unexpected operation for sysORTable\n"); return SNMP_ERR_GENERR; } /* * Read-support (also covers GetNext requests) */ request = requests; while(request && request->processed) request = request->next; while(request) { sysORTable_entry *table_entry; netsnmp_table_request_info *table_info; if (NULL == (table_info = netsnmp_extract_table_info(request))) { snmp_log(LOG_ERR, "could not extract table info for sysORTable\n"); snmp_set_var_typed_value( request->requestvb, SNMP_ERR_GENERR, NULL, 0); } else if(NULL == (table_entry = (sysORTable_entry *) netsnmp_container_table_extract_context(request))) { switch (table_info->colnum) { case COLUMN_SYSORID: case COLUMN_SYSORDESCR: case COLUMN_SYSORUPTIME: netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); break; default: netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; } } else { switch (table_info->colnum) { case COLUMN_SYSORID: snmp_set_var_typed_value( request->requestvb, ASN_OBJECT_ID, (const u_char*)table_entry->data->OR_oid, table_entry->data->OR_oidlen * sizeof(oid)); break; case COLUMN_SYSORDESCR: snmp_set_var_typed_value( request->requestvb, ASN_OCTET_STR, (const u_char*)table_entry->data->OR_descr, strlen(table_entry->data->OR_descr)); break; case COLUMN_SYSORUPTIME: snmp_set_var_typed_integer( request->requestvb, ASN_TIMETICKS, table_entry->data->OR_uptime); break; default: netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; } } do { request = request->next; } while(request && request->processed); } return SNMP_ERR_NOERROR; }
/** handles requests for the sctpAssocRemAddrTable table */ int sctpAssocRemAddrTable_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 *table_info; sctpAssocRemAddrTable_entry *table_entry; switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { if (request->processed) continue; table_entry = (sctpAssocRemAddrTable_entry *) netsnmp_container_table_extract_context(request); table_info = netsnmp_extract_table_info(request); if ((NULL == table_entry) || (NULL == table_info)) { snmp_log(LOG_ERR, "could not extract table entry or info for sctpAssocRemAddrTable\n"); snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR, NULL, 0); continue; } switch (table_info->colnum) { case COLUMN_SCTPASSOCREMADDRACTIVE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->sctpAssocRemAddrActive); break; case COLUMN_SCTPASSOCREMADDRHBACTIVE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->sctpAssocRemAddrHBActive); break; case COLUMN_SCTPASSOCREMADDRRTO: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_UNSIGNED, table_entry->sctpAssocRemAddrRTO); break; case COLUMN_SCTPASSOCREMADDRMAXPATHRTX: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_UNSIGNED, table_entry->sctpAssocRemAddrMaxPathRtx); break; case COLUMN_SCTPASSOCREMADDRRTX: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_COUNTER, table_entry->sctpAssocRemAddrRtx); break; case COLUMN_SCTPASSOCREMADDRSTARTTIME: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_TIMETICKS, table_entry->sctpAssocRemAddrStartTime); break; default: netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; } } break; } return SNMP_ERR_NOERROR; }
/** handles requests for the cpqNicIfLogMapTable table */ int cpqNicIfLogMapTable_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 *table_info; cpqNicIfLogMapTable_entry *table_entry; DEBUGMSGTL(("cpqNicIfLogMapTable:handler", "Processing request (%d)\n", reqinfo->mode)); switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { if (request->processed) continue; table_entry = (cpqNicIfLogMapTable_entry *) netsnmp_container_table_extract_context(request); table_info = netsnmp_extract_table_info(request); if ((NULL == table_entry) || (NULL == table_info)) { snmp_log(LOG_ERR, "could not extract table entry or info for cpqNicIfLogMapTable\n"); snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR, NULL, 0); continue; } switch (table_info->colnum) { case COLUMN_CPQNICIFLOGMAPINDEX: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqNicIfLogMapIndex); break; case COLUMN_CPQNICIFLOGMAPIFNUMBER: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry-> cpqNicIfLogMapIfNumber, table_entry-> cpqNicIfLogMapIfNumber_len); break; case COLUMN_CPQNICIFLOGMAPDESCRIPTION: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry-> cpqNicIfLogMapDescription, table_entry-> cpqNicIfLogMapDescription_len); break; case COLUMN_CPQNICIFLOGMAPGROUPTYPE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqNicIfLogMapGroupType); break; case COLUMN_CPQNICIFLOGMAPADAPTERCOUNT: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqNicIfLogMapAdapterCount); break; case COLUMN_CPQNICIFLOGMAPADAPTEROKCOUNT: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqNicIfLogMapAdapterOKCount); break; case COLUMN_CPQNICIFLOGMAPPHYSICALADAPTERS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry-> cpqNicIfLogMapPhysicalAdapters, table_entry-> cpqNicIfLogMapPhysicalAdapters_len); break; case COLUMN_CPQNICIFLOGMAPMACADDRESS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry-> cpqNicIfLogMapMACAddress, table_entry-> cpqNicIfLogMapMACAddress_len); break; case COLUMN_CPQNICIFLOGMAPSWITCHOVERMODE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqNicIfLogMapSwitchoverMode); break; case COLUMN_CPQNICIFLOGMAPCONDITION: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqNicIfLogMapCondition); break; case COLUMN_CPQNICIFLOGMAPSTATUS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqNicIfLogMapStatus); break; case COLUMN_CPQNICIFLOGMAPNUMSWITCHOVERS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_COUNTER, table_entry-> cpqNicIfLogMapNumSwitchovers); break; case COLUMN_CPQNICIFLOGMAPHWLOCATION: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry-> cpqNicIfLogMapHwLocation, table_entry-> cpqNicIfLogMapHwLocation_len); break; case COLUMN_CPQNICIFLOGMAPSPEED: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_GAUGE, table_entry-> cpqNicIfLogMapSpeed); break; case COLUMN_CPQNICIFLOGMAPVLANCOUNT: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqNicIfLogMapVlanCount); break; case COLUMN_CPQNICIFLOGMAPVLANS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry->cpqNicIfLogMapVlans, table_entry-> cpqNicIfLogMapVlans_len); break; case COLUMN_CPQNICIFLOGMAPLASTCHANGE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_TIMETICKS, table_entry-> cpqNicIfLogMapLastChange); break; case COLUMN_CPQNICIFLOGMAPADVANCEDTEAMING: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqNicIfLogMapAdvancedTeaming); break; case COLUMN_CPQNICIFLOGMAPSPEEDMBPS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_GAUGE, table_entry-> cpqNicIfLogMapSpeedMbps); break; case COLUMN_CPQNICIFLOGMAPIPV6ADDRESS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry-> cpqNicIfLogMapIPV6Address, table_entry-> cpqNicIfLogMapIPV6Address_len); break; case COLUMN_CPQNICIFLOGMAPLACNUMBER: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry-> cpqNicIfLogMapLACNumber, table_entry-> cpqNicIfLogMapLACNumber_len); break; case COLUMN_CPQNICIFLOGMAPPCILOCATION: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry-> cpqNicIfLogMapPciLocation, table_entry-> cpqNicIfLogMapPciLocation_len); break; default: netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; } } break; } return SNMP_ERR_NOERROR; }
/** handles requests for the cpqIdeAtaDiskTable table */ int cpqIdeAtaDiskTable_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 *table_info; cpqIdeAtaDiskTable_entry *table_entry; DEBUGMSGTL(("cpqIdeAtaDiskTable:handler", "Processing request (%d)\n", reqinfo->mode)); switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { if (request->processed) continue; table_entry = (cpqIdeAtaDiskTable_entry *) netsnmp_container_table_extract_context(request); table_info = netsnmp_extract_table_info(request); if ((NULL == table_entry) || (NULL == table_info)) { snmp_log(LOG_ERR, "could not extract table entry or info for cpqIdeAtaDiskTable\n"); snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR, NULL, 0); continue; } switch (table_info->colnum) { case COLUMN_CPQIDEATADISKCONTROLLERINDEX: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskControllerIndex); break; case COLUMN_CPQIDEATADISKINDEX: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskIndex); break; case COLUMN_CPQIDEATADISKMODEL: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry->cpqIdeAtaDiskModel, table_entry-> cpqIdeAtaDiskModel_len); break; case COLUMN_CPQIDEATADISKFWREV: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry->cpqIdeAtaDiskFwRev, table_entry-> cpqIdeAtaDiskFwRev_len); break; case COLUMN_CPQIDEATADISKSERIALNUMBER: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry-> cpqIdeAtaDiskSerialNumber, table_entry-> cpqIdeAtaDiskSerialNumber_len); break; case COLUMN_CPQIDEATADISKSTATUS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskStatus); break; case COLUMN_CPQIDEATADISKCONDITION: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskCondition); break; case COLUMN_CPQIDEATADISKCAPACITY: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskCapacity); break; case COLUMN_CPQIDEATADISKSMARTENABLED: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskSmartEnabled); break; case COLUMN_CPQIDEATADISKTRANSFERMODE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskTransferMode); break; case COLUMN_CPQIDEATADISKCHANNEL: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskChannel); break; case COLUMN_CPQIDEATADISKNUMBER: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskNumber); break; case COLUMN_CPQIDEATADISKLOGICALDRIVEMEMBER: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskLogicalDriveMember); break; case COLUMN_CPQIDEATADISKISSPARE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskIsSpare); break; case COLUMN_CPQIDEATADISKOSNAME: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, table_entry->cpqIdeAtaDiskOsName, table_entry-> cpqIdeAtaDiskOsName_len); break; case COLUMN_CPQIDEATADISKTYPE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry->cpqIdeAtaDiskType); break; case COLUMN_CPQIDEATADISKSATAVERSION: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskSataVersion); break; case COLUMN_CPQIDEATADISKMEDIATYPE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskMediaType); break; case COLUMN_CPQIDEATADISKSSDWEARSTATUS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskSSDWearStatus); break; case COLUMN_CPQIDEATADISKPOWERONHOURS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_COUNTER, table_entry-> cpqIdeAtaDiskPowerOnHours); break; case COLUMN_CPQIDEATADISKSSDPERCNTENDRNCEUSED: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_GAUGE, table_entry-> cpqIdeAtaDiskSSDPercntEndrnceUsed); break; case COLUMN_CPQIDEATADISKSSDESTTIMEREMAININGHOURS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_COUNTER, table_entry-> cpqIdeAtaDiskSSDEstTimeRemainingHours); break; case COLUMN_CPQIDEATADISKCURRTEMPERATURE: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskCurrTemperature); break; case COLUMN_CPQIDEATADISKTEMPERATURETHRESHOLD: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> cpqIdeAtaDiskTemperatureThreshold); break; default: netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; } } break; } return SNMP_ERR_NOERROR; }