这篇教程C++ snmp_set_var_typed_integer函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中snmp_set_var_typed_integer函数的典型用法代码示例。如果您正苦于以下问题:C++ snmp_set_var_typed_integer函数的具体用法?C++ snmp_set_var_typed_integer怎么用?C++ snmp_set_var_typed_integer使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了snmp_set_var_typed_integer函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: expErrorTable_handler/** handles requests for the expExpressionErrorTable table */intexpErrorTable_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 *tinfo; struct expExpression *entry; DEBUGMSGTL(("disman:expr:mib", "Expression Error Table handler (%d)/n", reqinfo->mode)); switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { entry = (struct expExpression *) netsnmp_tdata_extract_entry(request); tinfo = netsnmp_extract_table_info(request); if (!entry || !(entry->flags & EXP_FLAG_VALID)) continue; /* * "Entries only appear in this table ... when there * has been an error for that [matching] expression" */ if (entry->expErrorCount == 0) continue; switch (tinfo->colnum) { case COLUMN_EXPERRORTIME: snmp_set_var_typed_integer(request->requestvb, ASN_TIMETICKS, entry->expErrorTime); break; case COLUMN_EXPERRORINDEX: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->expErrorIndex); break; case COLUMN_EXPERRORCODE: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->expErrorCode); break; case COLUMN_EXPERRORINSTANCE: snmp_set_var_typed_value(request->requestvb, ASN_OBJECT_ID, (u_char *) entry->expErrorInstance, entry->expErrorInst_len*sizeof(oid)); break; } } break; } DEBUGMSGTL(("disman:expr:mib", "Expression Error handler - done /n")); return SNMP_ERR_NOERROR;}
开发者ID:RasmusKoldsoe,项目名称:performand.k70.2,代码行数:59,
示例2: psu_status_handler__static voidpsu_status_handler__(netsnmp_request_info *req, uint32_t index, onlp_snmp_sensor_t *ss ){ int value; onlp_psu_info_t *pi = &ss->sensor_info.pi; if (!ss->info_valid) { return; } value = ONLP_SNMP_SENSOR_STATUS_MISSING; if (pi->status & ONLP_PSU_STATUS_PRESENT) { value = ONLP_SNMP_SENSOR_STATUS_GOOD; /* failed or good is always reported */ if (pi->status & ONLP_PSU_STATUS_FAILED) { value = ONLP_SNMP_SENSOR_STATUS_FAILED; } /* if additional unplugged status is reported */ if (pi->status & ONLP_PSU_STATUS_UNPLUGGED) { value = ONLP_SNMP_SENSOR_STATUS_FAILED; } } snmp_set_var_typed_integer(req->requestvb, ASN_INTEGER, value);}
开发者ID:Lewis-Kang,项目名称:OpenNetworkLinux,代码行数:32,
示例3: handle_autoRespawninthandle_autoRespawn(netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests){ /* We are never called for a GETNEXT if it's registered as a "instance", as it's "magically" handled for us. */ /* a instance handler also only hands us one request at a time, so we don't need to loop over a list of requests; we'll only get one. */ switch(reqinfo->mode) { case MODE_GET: snmp_set_var_typed_integer(requests->requestvb, ASN_INTEGER, cm->getGlobal()->get<ConfigBoolean>("auto-respawn")->read()); break; default: /* we should never get here, so this is a really bad error */ snmp_log(LOG_ERR, "unknown mode (%d) in handle_autoRespawn/n", reqinfo->mode ); return SNMP_ERR_GENERR; } return SNMP_ERR_NOERROR;}
开发者ID:BelledonneCommunications,项目名称:flexisip,代码行数:29,
示例4: delayed_response//********************************************************************************//********************************************************************************static void delayed_response(unsigned int clientreg, void * clientarg){ syslog(LOG_DEBUG, "Enter: delayed_response, %s.", HANDLER_NAME); netsnmp_delegated_cache *cache = (netsnmp_delegated_cache *) clientarg; if(!netsnmp_handler_check_cache(cache)) { syslog(LOG_ERR, "%s", "illegal call to return delayed response."); return; } syslog(LOG_DEBUG, "delayed_instance, continuing delayed request, mode = %d.", cache->reqinfo->mode); cache->requests->delegated = 0; switch(cache->reqinfo->mode) { case MODE_GET: case MODE_GETNEXT: int32_t redirect = redirect_count(); snmp_set_var_typed_integer(cache->requests->requestvb, ASN_COUNTER, redirect); } netsnmp_free_delegated_cache(cache); syslog(LOG_DEBUG, "Exit: delayed_response, %s.", HANDLER_NAME); syslog(LOG_DEBUG,"%s", "==============================================================="); return;}
开发者ID:BillTheBest,项目名称:laguna,代码行数:32,
示例5: misc_index_handler__static voidmisc_index_handler__(netsnmp_request_info *req, uint32_t index, onlp_snmp_sensor_t *ss){ snmp_set_var_typed_integer(req->requestvb, ASN_INTEGER, index);}
开发者ID:Lewis-Kang,项目名称:OpenNetworkLinux,代码行数:9,
示例6: handle_sysUpTimestatic inthandle_sysUpTime(netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests){ snmp_set_var_typed_integer(requests->requestvb, ASN_TIMETICKS, netsnmp_get_agent_uptime()); return SNMP_ERR_NOERROR;}
开发者ID:fenner,项目名称:net-snmp,代码行数:10,
示例7: neIeee8021BridgeBasePortTable_getNextnetsnmp_variable_list *neIeee8021BridgeBasePortTable_getNext ( void **my_loop_context, void **my_data_context, netsnmp_variable_list *put_index_data, netsnmp_iterator_info *mydata){ ieee8021BridgeBasePortEntry_t *poEntry = NULL; netsnmp_variable_list *idx = put_index_data; if (*my_loop_context == NULL) { return NULL; } poEntry = xBTree_entry (*my_loop_context, ieee8021BridgeBasePortEntry_t, oBTreeNode); snmp_set_var_typed_integer (idx, ASN_UNSIGNED, poEntry->u32ComponentId); idx = idx->next_variable; snmp_set_var_typed_integer (idx, ASN_UNSIGNED, poEntry->u32Port); *my_data_context = (void*) poEntry; *my_loop_context = (void*) xBTree_nodeGetNext (&poEntry->oBTreeNode, &oIeee8021BridgeBasePortTable_BTree); return put_index_data;}
开发者ID:nes-repo,项目名称:NES-Open-Switch,代码行数:21,
示例8: sctpLookupRemPortTable_handler/** handles requests for the sctpLookupRemPortTable table */intsctpLookupRemPortTable_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;}
开发者ID:ClausKlein,项目名称:net-snmp,代码行数:53,
示例9: pgsqlPgAmopTable_get_next_data_pointnetsnmp_variable_list *pgsqlPgAmopTable_get_next_data_point(void **my_loop_context, void **my_data_context, netsnmp_variable_list *put_index_data, netsnmp_iterator_info *mydata){ struct pgsqlPgAmopTable_entry *entry = (struct pgsqlPgAmopTable_entry *)*my_loop_context; netsnmp_variable_list *idx = put_index_data; snmp_log(LOG_INFO, "*** get_next called/n"); if ( entry ) { snmp_set_var_value( idx, entry->pgsnmpdConnID, sizeof(entry->pgsnmpdConnID) ); idx = idx->next_variable; snmp_set_var_typed_integer( idx, ASN_INTEGER, entry->rdbmsDbIndex ); idx = idx->next_variable; snmp_set_var_typed_integer( idx, ASN_INTEGER, entry->pgsqlPgAmopEntryOID ); idx = idx->next_variable; *my_data_context = (void *)entry; *my_loop_context = (void *)entry->next; return put_index_data; } else { return NULL; }}
开发者ID:GunioRobot,项目名称:pgsnmpd,代码行数:24,
示例10: _mteEvent_fire_setint _mteEvent_fire_set (struct mteEvent *entry, /* The event to fire */ struct mteTrigger *trigger, /* Trigger that fired */ oid * suffix, size_t sfx_len) /* Matching instance */{ netsnmp_variable_list var; oid set_oid[MAX_OID_LEN]; size_t set_len; /* * Set the basic assignment OID... */ memset (set_oid, 0, sizeof (set_oid)); memcpy (set_oid, entry->mteSetOID, entry->mteSetOID_len * sizeof (oid)); set_len = entry->mteSetOID_len; /* * ... if the trigger value is wildcarded (sfx_len > 0), * *and* the SET event entry is wildcarded, * then add the supplied instance suffix... */ if (sfx_len && entry->flags & MTE_SET_FLAG_OBJWILD) { memcpy (&set_oid[set_len], suffix, sfx_len * sizeof (oid)); set_len += sfx_len; } /* * ... finally build the assignment varbind, * and pass it to be acted on. * * XXX: Need to handle (remote) targets and non-default contexts */ memset (&var, 0, sizeof (var)); snmp_set_var_objid (&var, set_oid, set_len); snmp_set_var_typed_integer (&var, ASN_INTEGER, entry->mteSetValue); if (entry->session) return netsnmp_query_set (&var, entry->session); else return netsnmp_query_set (&var, trigger->session); /* XXX - Need to check result */}
开发者ID:274914765,项目名称:C,代码行数:44,
示例11: raidSetTable_get_next_data_pointnetsnmp_variable_list *raidSetTable_get_next_data_point(void **my_loop_context, void **my_data_context, netsnmp_variable_list *put_index_data, netsnmp_iterator_info *mydata){ struct raidSetTable_entry *entry = (struct raidSetTable_entry *)*my_loop_context; netsnmp_variable_list *idx = put_index_data; if ( entry ) { snmp_set_var_typed_integer( idx, ASN_INTEGER, entry->raidSetIndex ); idx = idx->next_variable; *my_data_context = (void *)entry; *my_loop_context = (void *)entry->next; return put_index_data; } else { return NULL; }}
开发者ID:Jaharmi,项目名称:Xsnmp,代码行数:19,
示例12: snmp_set_var_typed_integerstatic netsnmp_variable_list *mib_ipRouteTable_get_next(void **my_loop_context, void **my_data_context, netsnmp_variable_list *put_index_data, netsnmp_iterator_info *iinfo){ struct ipRouteTable_entry *entry = (struct ipRouteTable_entry *)*my_loop_context; netsnmp_variable_list *idx = put_index_data; if ( entry ) { snmp_set_var_typed_integer( idx, ASN_IPADDRESS, entry->ipRouteDest ); idx = idx->next_variable; *my_data_context = (void *)entry; *my_loop_context = (void *)entry->next; return put_index_data; } else { return NULL; }}
开发者ID:millken,项目名称:zhuxianB30,代码行数:21,
示例13: snmp_set_var_typed_integer/******************************************************************************* 函数名称 : mib_dot1qPortVlanTable_get_next 功能描述 : 输入参数 : 输出参数 : 返 回 值 : -------------------------------------------------------------------------------- 最近一次修改记录 : 修改作者 : 修改目的 : 修改日期 :*******************************************************************************/static netsnmp_variable_list *mib_dot1qPortVlanTable_get_next(void **my_loop_context, void **my_data_context, netsnmp_variable_list *put_index_data, netsnmp_iterator_info *iinfo){ struct dot1qPortVlanTable_entry *entry = (struct dot1qPortVlanTable_entry *)*my_loop_context; netsnmp_variable_list *idx = put_index_data; if ( entry ) { snmp_set_var_typed_integer( idx, ASN_INTEGER, entry->ifIndex ); idx = idx->next_variable; *my_data_context = (void *)entry; *my_loop_context = (void *)entry->next; return put_index_data; } else { return NULL; }}
开发者ID:millken,项目名称:zhuxianB30,代码行数:33,
示例14: fan_status_handler__static voidfan_status_handler__(netsnmp_request_info *req, uint32_t index, onlp_snmp_sensor_t *ss){ int value; onlp_fan_info_t *fi = &ss->sensor_info.fi; if (!ss->info_valid) { return; } value = ONLP_SNMP_SENSOR_STATUS_MISSING; if (fi->status & ONLP_FAN_STATUS_PRESENT) { value = ONLP_SNMP_SENSOR_STATUS_GOOD; if (fi->status & ONLP_FAN_STATUS_FAILED) { value = ONLP_SNMP_SENSOR_STATUS_FAILED; } } snmp_set_var_typed_integer(req->requestvb, ASN_INTEGER, value);}
开发者ID:Lewis-Kang,项目名称:OpenNetworkLinux,代码行数:24,
示例15: mteEventTable_handler/** handles requests for the mteEventTable table */intmteEventTable_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 *tinfo; netsnmp_tdata_row *row; struct mteEvent *entry; char mteOwner[MTE_STR1_LEN+1]; char mteEName[MTE_STR1_LEN+1]; long ret; DEBUGMSGTL(("disman:event:mib", "Event Table handler (%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; entry = (struct mteEvent *) netsnmp_tdata_extract_entry(request); tinfo = netsnmp_extract_table_info(request); if (!entry || !(entry->flags & MTE_EVENT_FLAG_VALID)) continue; switch (tinfo->colnum) { case COLUMN_MTEEVENTCOMMENT: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, entry->mteEventComment, strlen(entry->mteEventComment)); break; case COLUMN_MTEEVENTACTIONS: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, &entry->mteEventActions, 1); break; case COLUMN_MTEEVENTENABLED: ret = (entry->flags & MTE_EVENT_FLAG_ENABLED ) ? TV_TRUE : TV_FALSE; snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, ret); break; case COLUMN_MTEEVENTENTRYSTATUS: ret = (entry->flags & MTE_EVENT_FLAG_ACTIVE ) ? RS_ACTIVE : RS_NOTINSERVICE; snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, ret); break; } } break;#ifndef NETSNMP_NO_WRITE_SUPPORT /* * Write-support */ case MODE_SET_RESERVE1: for (request = requests; request; request = request->next) { if (request->processed) continue; entry = (struct mteEvent *) netsnmp_tdata_extract_entry(request); tinfo = netsnmp_extract_table_info(request); switch (tinfo->colnum) { case COLUMN_MTEEVENTCOMMENT: ret = netsnmp_check_vb_type_and_max_size( request->requestvb, ASN_OCTET_STR, MTE_STR1_LEN); if (ret != SNMP_ERR_NOERROR) { netsnmp_set_request_error(reqinfo, request, ret); return SNMP_ERR_NOERROR; } /* * Can't modify the comment of an active row * (No good reason for this, but that's what the MIB says!) */ if (entry && entry->flags & MTE_EVENT_FLAG_ACTIVE ) { netsnmp_set_request_error(reqinfo, request, SNMP_ERR_INCONSISTENTVALUE); return SNMP_ERR_NOERROR; } break; case COLUMN_MTEEVENTACTIONS: ret = netsnmp_check_vb_type_and_size( request->requestvb, ASN_OCTET_STR, 1); if (ret != SNMP_ERR_NOERROR) { netsnmp_set_request_error(reqinfo, request, ret); return SNMP_ERR_NOERROR; } /* * Can't modify the event types of an active row * (A little more understandable perhaps, * but still an unnecessary restriction IMO)//.........这里部分代码省略.........
开发者ID:ClausKlein,项目名称:net-snmp,代码行数:101,
示例16: neIeee8021QBridgeVlanCurrentTable_mapper/* neIeee8021QBridgeVlanCurrentTable table mapper */intneIeee8021QBridgeVlanCurrentTable_mapper ( 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; neIeee8021QBridgeVlanCurrentEntry_t *table_entry; register ieee8021QBridgeVlanCurrentEntry_t *poEntry = NULL; void *pvOldDdata = NULL; int ret; switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request != NULL; request = request->next) { poEntry = (ieee8021QBridgeVlanCurrentEntry_t*) netsnmp_extract_iterator_context (request); table_info = netsnmp_extract_table_info (request); if (poEntry == NULL) { netsnmp_set_request_error (reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } table_entry = &poEntry->oNe; switch (table_info->colnum) { case NEIEEE8021QBRIDGEVLANCURRENTADMINFLAGS: snmp_set_var_typed_value (request->requestvb, ASN_OCTET_STR, (u_char*) table_entry->au8AdminFlags, table_entry->u16AdminFlags_len); break; case NEIEEE8021QBRIDGEVLANCURRENTOPERSTATE: snmp_set_var_typed_integer (request->requestvb, ASN_INTEGER, table_entry->i32OperState); break; case NEIEEE8021QBRIDGEVLANCURRENTLEARNT: snmp_set_var_typed_value (request->requestvb, ASN_OCTET_STR, (u_char*) table_entry->pu8Learnt, table_entry->u16Learnt_len); break; case NEIEEE8021QBRIDGEVLANCURRENTIFINDEX: snmp_set_var_typed_integer (request->requestvb, ASN_INTEGER, table_entry->u32IfIndex); break; default: netsnmp_set_request_error (reqinfo, request, SNMP_NOSUCHOBJECT); break; } } break; /* * Write-support */ case MODE_SET_RESERVE1: for (request = requests; request != NULL; request = request->next) { poEntry = (ieee8021QBridgeVlanCurrentEntry_t*) netsnmp_extract_iterator_context (request); table_info = netsnmp_extract_table_info (request); table_entry = &poEntry->oNe; switch (table_info->colnum) { case NEIEEE8021QBRIDGEVLANCURRENTADMINFLAGS: ret = netsnmp_check_vb_type_and_max_size (request->requestvb, ASN_OCTET_STR, sizeof (table_entry->au8AdminFlags)); if (ret != SNMP_ERR_NOERROR) { netsnmp_set_request_error (reqinfo, request, ret); return SNMP_ERR_NOERROR; } break; default: netsnmp_set_request_error (reqinfo, request, SNMP_ERR_NOTWRITABLE); return SNMP_ERR_NOERROR; } } break; case MODE_SET_RESERVE2: for (request = requests; request != NULL; request = request->next) { poEntry = (ieee8021QBridgeVlanCurrentEntry_t*) netsnmp_extract_iterator_context (request); table_info = netsnmp_extract_table_info (request); if (poEntry == NULL) { netsnmp_set_request_error (reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } table_entry = &poEntry->oNe; switch (table_info->colnum) { case NEIEEE8021QBRIDGEVLANCURRENTADMINFLAGS: if (poEntry->u8RowStatus == xRowStatus_active_c || poEntry->u8RowStatus == xRowStatus_notReady_c) { netsnmp_set_request_error (reqinfo, request, SNMP_ERR_RESOURCEUNAVAILABLE);//.........这里部分代码省略.........
开发者ID:nes-repo,项目名称:NES-Open-Switch,代码行数:101,
示例17: cpqSasPhyDrvTable_handler/** handles requests for the cpqSasPhyDrvTable table */intcpqSasPhyDrvTable_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,//.........这里部分代码省略.........
开发者ID:marker55,项目名称:hp-ams,代码行数:101,
示例18: hrSWRunTable_handler/** handles requests for the hrSWRunTable table */inthrSWRunTable_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);//.........这里部分代码省略.........
开发者ID:duniansampa,项目名称:SigLog,代码行数:101,
示例19: expObjectTable_handler/** handles requests for the expObjectTable table */intexpObjectTable_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 *tinfo; netsnmp_tdata_row *row; struct expObject *entry; struct expExpression *exp; char expOwner[EXP_STR1_LEN+1]; char expName[ EXP_STR1_LEN+1]; long objIndex; long ret; netsnmp_variable_list *vp; DEBUGMSGTL(("disman:expr:mib", "Expression Object Table handler (%d)/n", reqinfo->mode)); switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { entry = (struct expObject *)netsnmp_tdata_extract_entry(request); tinfo = netsnmp_extract_table_info(request); if (!entry || !(entry->flags & EXP_OBJ_FLAG_VALID)) continue; switch (tinfo->colnum) { case COLUMN_EXPOBJECTID: snmp_set_var_typed_value(request->requestvb, ASN_OBJECT_ID, (u_char *) entry->expObjectID, entry->expObjectID_len*sizeof(oid)); break; case COLUMN_EXPOBJECTIDWILDCARD: ret = (entry->flags & EXP_OBJ_FLAG_OWILD) ? TV_TRUE : TV_FALSE; snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, ret); break; case COLUMN_EXPOBJECTSAMPLETYPE: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->expObjectSampleType); break; case COLUMN_EXPOBJECTDELTADISCONTINUITYID: /* * "This object [and the next two] are instantiated only if * expObjectSampleType is 'deltaValue' or 'changedValue'" */ if ( entry->expObjectSampleType == 1 ) continue; snmp_set_var_typed_value(request->requestvb, ASN_OBJECT_ID, (u_char *) entry->expObjDeltaD, entry->expObjDeltaD_len*sizeof(oid)); break; case COLUMN_EXPOBJECTDISCONTINUITYIDWILDCARD: if ( entry->expObjectSampleType == 1 ) continue; ret = (entry->flags & EXP_OBJ_FLAG_DWILD) ? TV_TRUE : TV_FALSE; snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, ret); break; case COLUMN_EXPOBJECTDISCONTINUITYIDTYPE: if ( entry->expObjectSampleType == 1 ) continue; snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->expObjDiscontinuityType); break; case COLUMN_EXPOBJECTCONDITIONAL: snmp_set_var_typed_value(request->requestvb, ASN_OBJECT_ID, (u_char *) entry->expObjCond, entry->expObjCond_len*sizeof(oid)); break; case COLUMN_EXPOBJECTCONDITIONALWILDCARD: ret = (entry->flags & EXP_OBJ_FLAG_CWILD) ? TV_TRUE : TV_FALSE; snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, ret); break; case COLUMN_EXPOBJECTENTRYSTATUS: /* What would indicate 'notReady' ? */ ret = (entry->flags & EXP_OBJ_FLAG_ACTIVE) ? RS_ACTIVE : RS_NOTINSERVICE; snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, ret); break; } } break; /* * Write-support */ case MODE_SET_RESERVE1: for (request = requests; request; request = request->next) { entry = (struct expObject *) netsnmp_tdata_extract_entry(request); tinfo = netsnmp_extract_table_info(request);//.........这里部分代码省略.........
开发者ID:KrisChaplin,项目名称:LRT2x4_v1.0.2.06_GPL_source,代码行数:101,
示例20: cpqLinOsProcessorTable_handler/** handles requests for the cpqLinOsProcessorTable table */intcpqLinOsProcessorTable_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; }//.........这里部分代码省略.........
开发者ID:marker55,项目名称:hp-ams,代码行数:101,
示例21: handle_channelListint handle_channelList(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; chan_entry_t *entry; char dt_str[12]; switch (reqinfo->mode) { case MODE_GET: for (request = requests; request; request = request->next) { if (request->processed) continue; table_info = netsnmp_extract_table_info(request); entry = (chan_entry_t *) netsnmp_tdata_extract_entry(request); switch (table_info->colnum) { case CH_INDEX: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->idx); break; case CH_UUID: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->uuid, strlen(entry->uuid)); break; case CH_DIRECTION: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->direction, strlen(entry->direction)); break; case CH_CREATED: time_t_to_datetime(entry->created_epoch, (char *) &dt_str, sizeof(dt_str)); snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) &dt_str, sizeof(dt_str)); break; case CH_NAME: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->name, strlen(entry->name)); break; case CH_STATE: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->state, strlen(entry->state)); break; case CH_CID_NAME: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->cid_name, strlen(entry->cid_name)); break; case CH_CID_NUM: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->cid_num, strlen(entry->cid_num)); break; case CH_IP_ADDR_TYPE: if (entry->addr_family == AF_INET6) { snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, INETADDRESSTYPE_IPV6); } else { snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, INETADDRESSTYPE_IPV4); } break; case CH_IP_ADDR: if (entry->addr_family == AF_INET6) { snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) &entry->ip_addr.v6, sizeof(entry->ip_addr.v6)); } else { snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) &entry->ip_addr.v4, sizeof(entry->ip_addr.v4)); } break; case CH_DEST: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->dest, strlen(entry->dest)); break; case CH_APPLICATION: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->application, strlen(entry->application)); break; case CH_APPLICATION_DATA: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->application_data, strlen(entry->application_data)); break; case CH_DIALPLAN: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->dialplan, strlen(entry->dialplan)); break; case CH_CONTEXT: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->context, strlen(entry->context)); break; case CH_READ_CODEC: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->read_codec, strlen(entry->read_codec)); break; case CH_READ_RATE: snmp_set_var_typed_value(request->requestvb, ASN_GAUGE, (u_char *) &entry->read_rate, sizeof(entry->read_rate)); break; case CH_READ_BITRATE: snmp_set_var_typed_value(request->requestvb, ASN_GAUGE, (u_char *) &entry->read_bitrate, sizeof(entry->read_bitrate)); break; case CH_WRITE_CODEC: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->write_codec, strlen(entry->write_codec)); break; case CH_WRITE_RATE: snmp_set_var_typed_value(request->requestvb, ASN_GAUGE, (u_char *) &entry->write_rate, sizeof(entry->write_rate)); break; case CH_WRITE_BITRATE: snmp_set_var_typed_value(request->requestvb, ASN_GAUGE, (u_char *) &entry->write_bitrate, sizeof(entry->write_bitrate)); break; default: snmp_log(LOG_WARNING, "Unregistered OID-suffix requested (%d)/n", table_info->colnum); netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); } } break; default: /* we should never get here, so this is a really bad error */ snmp_log(LOG_ERR, "Unknown mode (%d) in handle_channelList/n", reqinfo->mode ); return SNMP_ERR_GENERR; }//.........这里部分代码省略.........
开发者ID:PauloFer1,项目名称:FreeSWITCH,代码行数:101,
示例22: mib_etherHistoryTable_handler/******************************************************************************* 函数名称 : mib_etherHistoryTable_handler 功能描述 : handles requests for the etherHistoryTable table 输入参数 : 输出参数 : 返 回 值 : -------------------------------------------------------------------------------- 最近一次修改记录 : 修改作者 : 修改目的 : 修改日期 :*******************************************************************************/static intmib_etherHistoryTable_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_req_info; struct etherHistoryTable_entry *table_entry; switch (reqinfo->mode) { /* * 这里的GET操作已经覆盖了GET_NEXT操作 */ case MODE_GET: for (request = requests; request; request = request->next) { table_entry = (struct etherHistoryTable_entry *) netsnmp_extract_iterator_context(request); table_req_info = netsnmp_extract_table_info(request); if (NULL == table_req_info) { netsnmp_set_request_error(reqinfo, request, SNMP_ERR_NOACCESS); continue; } switch (table_req_info->colnum) { case COLUMN_ETHERHISTORYINDEX: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, htonl(table_entry-> etherHistoryIndex)); break; case COLUMN_ETHERHISTORYSAMPLEINDEX: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, htonl(table_entry-> etherHistorySampleIndex)); break; case COLUMN_ETHERHISTORYINTERVALSTART: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_TIMETICKS, htonl(table_entry-> etherHistoryIntervalStart)); break; case COLUMN_ETHERHISTORYDROPEVENTS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_COUNTER, htonl(table_entry-> etherHistoryDropEvents)); break; case COLUMN_ETHERHISTORYOCTETS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_COUNTER, htonl(table_entry-> etherHistoryOctets)); break; case COLUMN_ETHERHISTORYPKTS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_COUNTER, htonl(table_entry-> etherHistoryPkts)); break; case COLUMN_ETHERHISTORYBROADCASTPKTS://.........这里部分代码省略.........
开发者ID:millken,项目名称:zhuxianB30,代码行数:101,
示例23: mib_etherHistoryTable_get_first/******************************************************************************* 函数名称 : mib_etherHistoryTable_get_first 功能描述 : Example iterator hook routines 输入参数 : 输出参数 : 返 回 值 : -------------------------------------------------------------------------------- 最近一次修改记录 : 修改作者 : 修改目的 : 修改日期 :*******************************************************************************/static netsnmp_variable_list *mib_etherHistoryTable_get_first(void **my_loop_context, void **my_data_context, netsnmp_variable_list * put_index_data, netsnmp_iterator_info *iinfo){ netsnmp_table_request_info *table_req_info; unsigned int number_indexes; netsnmp_variable_list *req_index, *put_idx = put_index_data; int mode; long etherHistoryIndex; long etherHistorySampleIndex; struct etherHistoryTable_entry *entry; table_req_info = *my_loop_context; if (table_req_info) { number_indexes = table_req_info->number_indexes; req_index = table_req_info->indexes; /* * Compute request indexes */ if (number_indexes > 0) { etherHistoryIndex = ntohl(*(req_index->val.integer)); req_index = req_index->next_variable; number_indexes--; } else { etherHistoryIndex = 0; } if (number_indexes > 0) { etherHistorySampleIndex = ntohl(*(req_index->val.integer)); req_index = req_index->next_variable; number_indexes--; } else { etherHistorySampleIndex = 0; } mode = *(int *) my_data_context; iinfo->myvoid = (void *) my_data_context; switch (mode) { case MODE_GET: case MODE_SET_RESERVE1: break; case MODE_GETNEXT: if (0 != mib_etherHistoryTable_get_next_index(ðerHistoryIndex, ðerHistorySampleIndex) ) { //No record return NULL; } break; default: return NULL; } } else { //Get the first row if (0 != mib_etherHistoryTable_get_first_index(ðerHistoryIndex, ðerHistorySampleIndex) ) { //No record return NULL; } } entry = mib_etherHistoryTable_createEntry( //这里分配的内存在请求处理完成后释放 etherHistoryIndex, etherHistorySampleIndex); if (entry) { snmp_set_var_typed_integer(put_idx, ASN_INTEGER, entry->etherHistoryIndex); put_idx = put_idx->next_variable; snmp_set_var_typed_integer(put_idx, ASN_INTEGER, entry->etherHistorySampleIndex); put_idx = put_idx->next_variable; *my_data_context = (void *) entry;//.........这里部分代码省略.........
开发者ID:millken,项目名称:zhuxianB30,代码行数:101,
示例24: tlstmCertToTSNTable_handler/** handles requests for the tlstmCertToTSNTable table */static inttlstmCertToTSNTable_handler(netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests){ oid tsnm[] = { SNMP_TLS_TM_BASE, 1, 1, 0 }; static const int tsnm_pos = OID_LENGTH(tsnm) - 1; netsnmp_request_info *request = NULL; netsnmp_table_request_info *info; netsnmp_tdata *table; netsnmp_tdata_row *row; certToTSN_entry *entry; int ret = SNMP_ERR_NOERROR; DEBUGMSGTL(("tlstmCertToSN:handler", "Processing request (mode %s (%d))/n", se_find_label_in_slist("agent_mode", reqinfo->mode), reqinfo->mode)); switch (reqinfo->mode) { /** ######################################################### GET ##### * * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { if (request->processed) continue; entry = (certToTSN_entry *) netsnmp_tdata_extract_entry(request); info = netsnmp_extract_table_info(request); netsnmp_assert(entry && info); switch (info->colnum) { case COL_SNMPTLSTMCERTTOTSN_FINGERPRINT: { /* * build SnmpTLSFingerprint */ u_char bin[42], *ptr = bin; size_t len = sizeof(bin); int rc; rc = netsnmp_tls_fingerprint_build(entry->hashType, entry->fingerprint, &ptr, &len, 0); if (SNMPERR_SUCCESS != rc) netsnmp_set_request_error(reqinfo, request, SNMP_ERR_GENERR); else snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, bin, len); } break; /* case COL_SNMPTLSTMCERTTOTSN_FINGERPRINT */ case COL_SNMPTLSTMCERTTOTSN_MAPTYPE: tsnm[tsnm_pos] = entry->mapType; snmp_set_var_typed_value(request->requestvb, ASN_OBJECT_ID, tsnm, sizeof(tsnm)); break; /* case COL_SNMPTLSTMCERTTOTSN_MAPTYPE */ case COL_SNMPTLSTMCERTTOTSN_DATA: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, entry->data, entry->data_len); break; /* case COL_SNMPTLSTMCERTTOTSN_DATA */ case COL_SNMPTLSTMCERTTOTSN_STORAGETYPE: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->storageType); break; /* case COL_SNMPTLSTMCERTTOTSN_STORAGETYPE */ case COL_SNMPTLSTMCERTTOTSN_ROWSTATUS: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->rowStatus); break; /* case COL_SNMPTLSTMCERTTOTSN_ROWSTATUS */ default: netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; } /* switch colnum */ } /* for requests */ break; /* case MODE_GET */ /* * Write-support */ /** #################################################### RESERVE1 ##### * * In RESERVE1 we are just checking basic ASN.1 size/type restrictions. * You probably don't need to change any of this code. Don't change any * of the column values here. Save that for the ACTION phase. * * The next phase is RESERVE2 or FREE. */ case MODE_SET_RESERVE1: for (request = requests; request; request = request->next) { netsnmp_assert(request->processed == 0); entry = (certToTSN_entry *) netsnmp_tdata_extract_entry(request); info = netsnmp_extract_table_info(request); if ((NULL != entry) && (ST_READONLY == entry->storageType)) { ret = SNMP_ERR_NOTWRITABLE; break; }//.........这里部分代码省略.........
开发者ID:RasmusKoldsoe,项目名称:performand.k70.2,代码行数:101,
示例25: nsVacmAccessTable_handler/** handles requests for the nsVacmAccessTable table */intnsVacmAccessTable_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_variable_list *idx; struct vacm_accessEntry *entry; char atype[20]; int viewIdx, ret; char *gName, *cPrefix; int model, level; switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { entry = (struct vacm_accessEntry *) netsnmp_extract_iterator_context(request); table_info = netsnmp_extract_table_info(request); /* Extract the authType token from the list of indexes */ idx = table_info->indexes->next_variable->next_variable->next_variable->next_variable; memset(atype, 0, sizeof(atype)); memcpy(atype, (char *)idx->val.string, idx->val_len); viewIdx = se_find_value_in_slist(VACM_VIEW_ENUM_NAME, atype); DEBUGMSGTL(("nsVacm", "GET %s (%d)/n", idx->val.string, viewIdx)); if (!entry || viewIdx < 0) continue; switch (table_info->colnum) { case COLUMN_NSVACMCONTEXTMATCH: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->contextMatch); break; case COLUMN_NSVACMVIEWNAME: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *)entry->views[ viewIdx ], strlen(entry->views[ viewIdx ])); break; case COLUMN_VACMACCESSSTORAGETYPE: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->storageType); break; case COLUMN_NSVACMACCESSSTATUS: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->status); break; } } break;#ifndef NETSNMP_NO_WRITE_SUPPORT /* * Write-support */ case MODE_SET_RESERVE1: for (request = requests; request; request = request->next) { entry = (struct vacm_accessEntry *) netsnmp_extract_iterator_context(request); table_info = netsnmp_extract_table_info(request); ret = SNMP_ERR_NOERROR; switch (table_info->colnum) { case COLUMN_NSVACMCONTEXTMATCH: ret = netsnmp_check_vb_int_range(request->requestvb, 1, 2); break; case COLUMN_NSVACMVIEWNAME: ret = netsnmp_check_vb_type_and_max_size(request->requestvb, ASN_OCTET_STR, VACM_MAX_STRING); break; case COLUMN_VACMACCESSSTORAGETYPE: ret = netsnmp_check_vb_storagetype(request->requestvb, (/*entry ? entry->storageType :*/ SNMP_STORAGE_NONE)); break; case COLUMN_NSVACMACCESSSTATUS: /* * The usual 'check_vb_rowstatus' call is too simplistic * to be used here. Because we're implementing a table * within an existing table, it's quite possible for a * the vacmAccessTable entry to exist, even if this is * a "new" nsVacmAccessEntry. * * We can check that the value being assigned is suitable * for a RowStatus syntax object, but the transition * checks need to be done explicitly. */ ret = netsnmp_check_vb_rowstatus_value(request->requestvb); if ( ret != SNMP_ERR_NOERROR ) break; /*//.........这里部分代码省略.........
开发者ID:duniansampa,项目名称:SigLog,代码行数:101,
示例26: radiusAccClientExtTable_get_value/************************************************************ * radiusAccClientExtTable_get_value * * This routine is called for get requests to copy the data * from the context to the varbind for the request. If the * context has been properly maintained, you don't need to * change in code in this fuction. */intradiusAccClientExtTable_get_value(netsnmp_request_info *request, netsnmp_index * item, netsnmp_table_request_info *table_info){ netsnmp_variable_list *var = request->requestvb; radiusAccClientExtTable_context *ctx = (radiusAccClientExtTable_context *)item; struct dm_value_table *stats; ENTER(); if (!ctx->client) { snmp_log(LOG_ERR, "invalid client in " "radiusAccClientExtTable_get_value/n"); EXIT(); return SNMP_ERR_GENERR; } /** VAR: InternetGatewayDevice.X_TPLINO_NET_SessionControl.RadiusServer.Accounting.Client.{i}.Stats */ stats = dm_get_table_by_id(ctx->client, dm__IGD_SCG_RS_Acct_Clnt_i_Stats); switch (table_info->colnum) { case COLUMN_RADIUSACCCLIENTINETADDRESSTYPE: /** InetAddressType = ASN_INTEGER */ snmp_set_var_typed_integer(var, ASN_INTEGER, INETADDRESSTYPE_IPV4); break; case COLUMN_RADIUSACCCLIENTINETADDRESS: { char hname[NI_MAXHOST]; struct in_addr host; /** VAR: InternetGatewayDevice.X_TPLINO_NET_SessionControl.RadiusServer.Accounting.Client.{i}.Prefix */ host = dm_get_ipv4_by_id(ctx->client, dm__IGD_SCG_RS_Acct_Clnt_i_Prefix); inet_ntop(AF_INET, &host, hname, sizeof(hname)); /** InetAddress = ASN_OCTET_STR */ snmp_set_var_typed_value(var, ASN_OCTET_STR, (unsigned char *)hname, strlen(hname)); break; } case COLUMN_RADIUSACCCLIENTEXTID: { unsigned char *id; /** VAR: InternetGatewayDevice.X_TPLINO_NET_SessionControl.RadiusServer.Accounting.Client.{i}.Description */ id = dm_get_string_by_id(ctx->client, dm__IGD_SCG_RS_Acct_Clnt_i_Description); if (!id || !*id) id = ""; /** SnmpAdminString = ASN_OCTET_STR */ snmp_set_var_typed_value(var, ASN_OCTET_STR, id, strlen(id)); break; } case COLUMN_RADIUSACCSERVEXTPACKETSDROPPED: /** COUNTER = ASN_COUNTER */ /** VAR: InternetGatewayDevice.X_TPLINO_NET_SessionControl.RadiusServer.Accounting.Client.{i}.Stats.PacketsDropped */ snmp_set_var_typed_integer(var, ASN_COUNTER, dm_get_uint_by_id(stats, dm__IGD_SCG_RS_Acct_Clnt_i_Stats_PacketsDropped)); break; case COLUMN_RADIUSACCSERVEXTREQUESTS: /** COUNTER = ASN_COUNTER */ /** VAR: InternetGatewayDevice.X_TPLINO_NET_SessionControl.RadiusServer.Accounting.Client.{i}.Stats.Requests */ snmp_set_var_typed_integer(var, ASN_COUNTER, dm_get_uint_by_id(stats, dm__IGD_SCG_RS_Acct_Clnt_i_Stats_Requests)); break; case COLUMN_RADIUSACCSERVEXTDUPREQUESTS: /** COUNTER = ASN_COUNTER */ /** VAR: InternetGatewayDevice.X_TPLINO_NET_SessionControl.RadiusServer.Accounting.Client.{i}.Stats.DupRequests */ snmp_set_var_typed_integer(var, ASN_COUNTER, dm_get_uint_by_id(stats, dm__IGD_SCG_RS_Acct_Clnt_i_Stats_DupRequests)); break; case COLUMN_RADIUSACCSERVEXTRESPONSES: /** COUNTER = ASN_COUNTER */ /** VAR: InternetGatewayDevice.X_TPLINO_NET_SessionControl.RadiusServer.Accounting.Client.{i}.Stats.Responses */ snmp_set_var_typed_integer(var, ASN_COUNTER, dm_get_uint_by_id(stats, dm__IGD_SCG_RS_Acct_Clnt_i_Stats_Responses)); break; case COLUMN_RADIUSACCSERVEXTBADAUTHENTICATORS: /** COUNTER = ASN_COUNTER */ /** VAR: InternetGatewayDevice.X_TPLINO_NET_SessionControl.RadiusServer.Accounting.Client.{i}.Stats.BadAuthenticators */ snmp_set_var_typed_integer(var, ASN_COUNTER, dm_get_uint_by_id(stats, dm__IGD_SCG_RS_Acct_Clnt_i_Stats_BadAuthenticators)); break; case COLUMN_RADIUSACCSERVEXTMALFORMEDREQUESTS: /** COUNTER = ASN_COUNTER */ /** VAR: InternetGatewayDevice.X_TPLINO_NET_SessionControl.RadiusServer.Accounting.Client.{i}.Stats.MalformedRequests */ snmp_set_var_typed_integer(var, ASN_COUNTER, dm_get_uint_by_id(stats, dm__IGD_SCG_RS_Acct_Clnt_i_Stats_MalformedRequests)); break; case COLUMN_RADIUSACCSERVEXTNORECORDS: /** COUNTER = ASN_COUNTER *///.........这里部分代码省略.........
开发者ID:KanjiMonster,项目名称:mand,代码行数:101,
示例27: mteTriggerThresholdTable_handler/** handles requests for the mteTriggerThresholdTable table */intmteTriggerThresholdTable_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 *tinfo; struct mteTrigger *entry; int ret; DEBUGMSGTL(("disman:event:mib", "Threshold Table handler (%d)/n", reqinfo->mode)); switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request = requests; request; request = request->next) { entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request); tinfo = netsnmp_extract_table_info(request); /* * The mteTriggerThresholdTable should only contains entries for * rows where the mteTriggerTest 'threshold(2)' bit is set. * So skip entries where this isn't the case. */ if (!entry || !(entry->mteTriggerTest & MTE_TRIGGER_THRESHOLD )) continue; switch (tinfo->colnum) { case COLUMN_MTETRIGGERTHRESHOLDSTARTUP: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->mteTThStartup); break; case COLUMN_MTETRIGGERTHRESHOLDRISING: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->mteTThRiseValue); break; case COLUMN_MTETRIGGERTHRESHOLDFALLING: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->mteTThFallValue); break; case COLUMN_MTETRIGGERTHRESHOLDDELTARISING: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->mteTThDRiseValue); break; case COLUMN_MTETRIGGERTHRESHOLDDELTAFALLING: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->mteTThDFallValue); break; case COLUMN_MTETRIGGERTHRESHOLDOBJECTSOWNER: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->mteTThObjOwner, strlen(entry->mteTThObjOwner)); break; case COLUMN_MTETRIGGERTHRESHOLDOBJECTS: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->mteTThObjects, strlen(entry->mteTThObjects)); break; case COLUMN_MTETRIGGERTHRESHOLDRISINGEVENTOWNER: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->mteTThRiseOwner, strlen(entry->mteTThRiseOwner)); break; case COLUMN_MTETRIGGERTHRESHOLDRISINGEVENT: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->mteTThRiseEvent, strlen(entry->mteTThRiseEvent)); break; case COLUMN_MTETRIGGERTHRESHOLDFALLINGEVENTOWNER: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->mteTThFallOwner, strlen(entry->mteTThFallOwner)); break; case COLUMN_MTETRIGGERTHRESHOLDFALLINGEVENT: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->mteTThFallEvent, strlen(entry->mteTThFallEvent)); break; case COLUMN_MTETRIGGERTHRESHOLDDELTARISINGEVENTOWNER: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->mteTThDRiseOwner, strlen(entry->mteTThDRiseOwner)); break; case COLUMN_MTETRIGGERTHRESHOLDDELTARISINGEVENT: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->mteTThDRiseEvent, strlen(entry->mteTThDRiseEvent)); break; case COLUMN_MTETRIGGERTHRESHOLDDELTAFALLINGEVENTOWNER: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char *) entry->mteTThDFallOwner, strlen(entry->mteTThDFallOwner)); break; case COLUMN_MTETRIGGERTHRESHOLDDELTAFALLINGEVENT://.........这里部分代码省略.........
开发者ID:a5216652166,项目名称:rcp100,代码行数:101,
示例28: hrSWInstalledTable_handler/** handles requests for the hrSWInstalledTable table */inthrSWInstalledTable_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;}
开发者ID:duniansampa,项目名称:SigLog,代码行数:67,
示例29: expExpressionTable_handler/** handles requests for the expExpressionTable table */intexpExpressionTable_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 *tinfo; netsnmp_tdata_row *row; struct expExpression *entry; char expOwner[EXP_STR1_LEN+1]; char expName[ EXP_STR1_LEN+1]; long ret; DEBUGMSGTL(("disman:expr:mib", "Expression Table handler (%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; entry = (struct expExpression *) netsnmp_tdata_extract_entry(request); tinfo = netsnmp_extract_table_info(request); if (!entry || !(entry->flags & EXP_FLAG_VALID)) continue; switch (tinfo->colnum) { case COLUMN_EXPEXPRESSION: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char*)entry->expExpression, strlen(entry->expExpression)); break; case COLUMN_EXPEXPRESSIONVALUETYPE: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->expValueType); break; case COLUMN_EXPEXPRESSIONCOMMENT: snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR, (u_char*)entry->expComment, strlen(entry->expComment)); break; case COLUMN_EXPEXPRESSIONDELTAINTERVAL: snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, entry->expDeltaInterval); break; case COLUMN_EXPEXPRESSIONPREFIX: /* * XXX - Need to search expObjectTable for a suitable OID */ /* * Empty OIDs (len=0) are converted into .0.0 * by the SNMP library automatically :-( */ if ( entry->expPrefix_len ) { snmp_set_var_typed_value(request->requestvb, ASN_OBJECT_ID, (u_char *) entry->expPrefix, entry->expPrefix_len*sizeof(oid)); } else { /* XXX - possibly not needed */ request->requestvb->type = ASN_OBJECT_ID; request->requestvb->val_len = 0; } break; case COLUMN_EXPEXPRESSIONERRORS: snmp_set_var_typed_integer(request->requestvb, ASN_COUNTER, entry->expErrorCount); break; case COLUMN_EXPEXPRESSIONENTRYSTATUS: /* What would indicate 'notReady' ? */ ret = (entry->flags & EXP_FLAG_ACTIVE) ? RS_ACTIVE : RS_NOTINSERVICE; snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, ret); break; } } break; /* * Write-support */ case MODE_SET_RESERVE1: for (request = requests; request; request = request->next) { if (request->processed) continue; entry = (struct expExpression *) netsnmp_tdata_extract_entry(request); tinfo = netsnmp_extract_table_info(request); switch (tinfo->colnum) { case COLUMN_EXPEXPRESSION: ret = netsnmp_check_vb_type_and_max_size(//.........这里部分代码省略.........
开发者ID:duniansampa,项目名称:SigLog,代码行数:101,
示例30: sctpAssocTable_handler/** handles requests for the sctpAssocTable table */intsctpAssocTable_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);//.........这里部分代码省略.........
开发者ID:Undrizzle,项目名称:apps,代码行数:101,
注:本文中的snmp_set_var_typed_integer函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ snmp_set_var_typed_value函数代码示例 C++ snmp_set_var_objid函数代码示例 |