📄 iftable.c
字号:
break; case COLUMN_IFINERRORS: snmp_set_var_typed_value(requestvb, ASN_COUNTER, (u_char *) & entry->if_ierrors, sizeof(entry->if_ierrors)); break; case COLUMN_IFINUNKNOWNPROTOS: snmp_set_var_typed_value(requestvb, ASN_COUNTER, (u_char *) & entry-> if_iunknown_protos, sizeof(entry-> if_iunknown_protos)); break; case COLUMN_IFOUTOCTETS: if (entry->flags & NETSNMP_IF_FLAGS_HAS_BYTES) snmp_set_var_typed_value(requestvb, ASN_COUNTER, (u_char *) & entry->if_obytes. low, sizeof(entry->if_obytes.low)); else netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); break; case COLUMN_IFOUTUCASTPKTS: snmp_set_var_typed_value(requestvb, ASN_COUNTER, (u_char *) & entry->if_oucast.low, sizeof(entry->if_oucast.low)); break; case COLUMN_IFOUTNUCASTPKTS: /* * Deprecated object */ val = entry->if_omcast.low + entry->if_obcast.low; snmp_set_var_typed_value(requestvb, ASN_COUNTER, (u_char *) & val, sizeof(val)); break; case COLUMN_IFOUTDISCARDS: snmp_set_var_typed_value(requestvb, ASN_COUNTER, (u_char *) & entry->if_odiscards, sizeof(entry->if_odiscards)); break; case COLUMN_IFOUTERRORS: snmp_set_var_typed_value(requestvb, ASN_COUNTER, (u_char *) & entry->if_oerrors, sizeof(entry->if_oerrors)); break; case COLUMN_IFOUTQLEN: /* * Deprecated object */ snmp_set_var_typed_value(requestvb, ASN_GAUGE, (u_char *) & entry->if_oqlen, sizeof(entry->if_oqlen)); break; case COLUMN_IFSPECIFIC: /* * Deprecated object */ snmp_set_var_typed_value(requestvb, ASN_OBJECT_ID, (u_char *) nullOid, nullOidLen); break; default: netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; } } break; case MODE_GETNEXT: case MODE_GETBULK: case MODE_SET_RESERVE1: case MODE_SET_RESERVE2: case MODE_SET_ACTION: case MODE_SET_COMMIT: case MODE_SET_FREE: case MODE_SET_UNDO: snmp_log(LOG_WARNING, "mibII/ifTable: Unsupported mode (%d)\n", reqinfo->mode); break; default: snmp_log(LOG_WARNING, "mibII/ifTable: Unrecognised mode (%d)\n", reqinfo->mode); break; } return SNMP_ERR_NOERROR;} /************ * * Handler for the extension ifXTable * ************/intifXTable_handler(netsnmp_mib_handler * handler, netsnmp_handler_registration * reginfo, netsnmp_agent_request_info * reqinfo, netsnmp_request_info * requests){ netsnmp_request_info *request; netsnmp_variable_list *requestvb; netsnmp_table_request_info *table_info; netsnmp_ifentry *entry; oid subid; long val; DEBUGMSGTL(("mibII/ifTable", "XHandler - mode %s\n", se_find_label_in_slist("agent_mode", reqinfo->mode))); switch (reqinfo->mode) { case MODE_GET: for (request = requests; request; request = request->next) { requestvb = request->requestvb; DEBUGMSGTL(("mibII/ifTable", "oid: ")); DEBUGMSGOID(("mibII/ifTable", requestvb->name, requestvb->name_length)); DEBUGMSG(("mibII/ifTable", "\n")); entry = ifTable_ifentry_extract(request); if (!entry) continue; table_info = netsnmp_extract_table_info(request); subid = table_info->colnum; switch (subid) { case COLUMN_IFNAME: snmp_set_var_typed_value(requestvb, ASN_OCTET_STR, (u_char *) entry->if_name, (entry->if_name ? strlen(entry->if_name) : 0)); break; case COLUMN_IFINMULTICASTPKTS: snmp_set_var_typed_value(requestvb, ASN_COUNTER, (u_char *) & entry->if_imcast.low, sizeof(entry->if_imcast.low)); break; case COLUMN_IFINBROADCASTPKTS: snmp_set_var_typed_value(requestvb, ASN_COUNTER, (u_char *) & entry->if_ibcast.low, sizeof(entry->if_ibcast.low)); break; case COLUMN_IFOUTMULTICASTPKTS: snmp_set_var_typed_value(requestvb, ASN_COUNTER, (u_char *) & entry->if_omcast.low, sizeof(entry->if_omcast.low)); break; case COLUMN_IFOUTBROADCASTPKTS: snmp_set_var_typed_value(requestvb, ASN_COUNTER, (u_char *) & entry->if_obcast.low, sizeof(entry->if_obcast.low)); break; case COLUMN_IFHCINOCTETS: if (entry->flags & NETSNMP_IF_FLAGS_HAS_HIGH_BYTES) snmp_set_var_typed_value(requestvb, ASN_COUNTER64, (u_char *) & entry->if_ibytes, sizeof(entry->if_ibytes)); else netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); break; case COLUMN_IFHCINUCASTPKTS: if (entry->flags & NETSNMP_IF_FLAGS_HAS_HIGH_PACKETS) snmp_set_var_typed_value(requestvb, ASN_COUNTER64, (u_char *) & entry->if_iucast, sizeof(entry->if_iucast)); else netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); break; case COLUMN_IFHCINMULTICASTPKTS: if (entry->flags & NETSNMP_IF_FLAGS_HAS_HIGH_PACKETS) snmp_set_var_typed_value(requestvb, ASN_COUNTER64, (u_char *) & entry->if_imcast, sizeof(entry->if_imcast)); else netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); break; case COLUMN_IFHCINBROADCASTPKTS: if (entry->flags & NETSNMP_IF_FLAGS_HAS_HIGH_PACKETS) snmp_set_var_typed_value(requestvb, ASN_COUNTER64, (u_char *) & entry->if_ibcast, sizeof(entry->if_ibcast)); else netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); break; case COLUMN_IFHCOUTOCTETS: if (entry->flags & NETSNMP_IF_FLAGS_HAS_HIGH_BYTES) snmp_set_var_typed_value(requestvb, ASN_COUNTER64, (u_char *) & entry->if_obytes, sizeof(entry->if_obytes)); else netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); break; case COLUMN_IFHCOUTUCASTPKTS: if (entry->flags & NETSNMP_IF_FLAGS_HAS_HIGH_PACKETS) snmp_set_var_typed_value(requestvb, ASN_COUNTER64, (u_char *) & entry->if_oucast, sizeof(entry->if_oucast)); else netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); break; case COLUMN_IFHCOUTMULTICASTPKTS: if (entry->flags & NETSNMP_IF_FLAGS_HAS_HIGH_PACKETS) snmp_set_var_typed_value(requestvb, ASN_COUNTER64, (u_char *) & entry->if_omcast, sizeof(entry->if_omcast)); else netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); break; case COLUMN_IFHCOUTBROADCASTPKTS: if (entry->flags & NETSNMP_IF_FLAGS_HAS_HIGH_PACKETS) snmp_set_var_typed_value(requestvb, ASN_COUNTER64, (u_char *) & entry->if_obcast, sizeof(entry->if_obcast)); else netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); break; case COLUMN_IFLINKUPDOWNTRAPENABLE: /* * XXX */ netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; case COLUMN_IFHIGHSPEED: if (entry->flags & NETSNMP_IF_FLAGS_HAS_HIGH_SPEED) { if (entry->flags & NETSNMP_IF_FLAGS_DYNAMIC_SPEED) val = get_ifspeed(entry) >> 32; else val = entry->if_speed_high; snmp_set_var_typed_value(requestvb, ASN_GAUGE, (u_char *) & val, sizeof(val)); } else netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); break; case COLUMN_IFPROMISCUOUSMODE: /* * XXX */ netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; case COLUMN_IFCONNECTORPRESENT: /* * XXX */ netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; case COLUMN_IFALIAS: snmp_set_var_typed_value(requestvb, ASN_OCTET_STR, (u_char *) entry->if_alias, (entry->if_alias ? strlen(entry->if_alias) : 0)); break; case COLUMN_IFCOUNTERDISCONTINUITYTIME: if (entry->flags & NETSNMP_IF_FLAGS_HAS_DISCONTINUITY) snmp_set_var_typed_value(requestvb, ASN_INTEGER, (u_char *) & entry-> if_discontinuity, sizeof(entry-> if_discontinuity)); else netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); break; default: netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; } } break; case MODE_GETNEXT: case MODE_GETBULK: case MODE_SET_RESERVE1: case MODE_SET_RESERVE2: case MODE_SET_ACTION: case MODE_SET_COMMIT: case MODE_SET_FREE: case MODE_SET_UNDO: snmp_log(LOG_WARNING, "mibII/ifTable: Unsupported mode (%d)\n", reqinfo->mode); break; default: snmp_log(LOG_WARNING, "mibII/ifTable: Unrecognised mode (%d)\n", reqinfo->mode);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -