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

📄 iftable.c

📁 snmp的源代码,已经在我的ubuntu下编译通过
💻 C
📖 第 1 页 / 共 3 页
字号:
                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 + -