/* *=========================================================================== * ipnet_if_mib_handler_ifNumber *=========================================================================== * Description: MIB handler for ifNumber * Parameters: See file 'ipsnmp.h' * Returns: IPSNMP_ERROR_XXX * */ IP_STATIC Ip_s32 ipnet_if_mib_handler_ifNumber(Ip_s32 cmd, char *id, Ipsnmp_varbind *vb, Ip_s32 magic, struct Ipsnmp_node_object *nodeobj) { Ip_s32 ret = -1, ifNumber = 0; char *iid; (void)id; (void)vb; if (cmd == IPSNMP_MIB_COMMAND_GET || cmd == IPSNMP_MIB_COMMAND_NEXT) { iid = ipsnmp_create_iid_integer(nodeobj->id, 0); if (iid == IP_NULL) return IPSNMP_ERROR_GENERROR; ifNumber = IPNET_NETIF_NUM_ATTACHED; ret = (Ip_s32) ipsnmp_util_put_integer(magic, iid, ifNumber); ipcom_free(iid); } return ret; }
/* *=========================================================================== * ipnet_ip_forward_mib_handler_ipCidrRouteNumber *=========================================================================== * Description: MIB handler for ipCidrRouteNumber * Parameters: See file 'ipsnmp.h' * Returns: IPSNMP_ERROR_XXX * */ IP_STATIC Ip_s32 ipnet_ip_forward_mib_handler_ipCidrRouteNumber(Ip_s32 cmd, char *id, Ipsnmp_varbind *vb, Ip_s32 magic, struct Ipsnmp_node_object *nodeobj) { Ip_s32 ret = -1; Ip_u32 ipCidrRouteNumber; char *iid; Ipcom_route *rtab; (void)id; (void)vb; if (cmd == IPSNMP_MIB_COMMAND_GET || cmd == IPSNMP_MIB_COMMAND_NEXT) { iid = ipsnmp_create_iid_integer(nodeobj->id, 0); if (iid == IP_NULL) return IPSNMP_ERROR_GENERROR; if (ipnet_route_get_rtab(IP_AF_INET, 0, IPCOM_ROUTE_TABLE_DEFAULT, &rtab) < 0) return IPSNMP_ERROR_GENERROR; routewalk.cmd = cmd; routewalk.id = IP_NULL; routewalk.buf = IP_NULL; routewalk.best = IP_NULL; routewalk.bestrt = IP_NULL; routewalk.count_only = IP_TRUE; count = 0; /* For now handle only the default route table */ ipcom_route_walk_tree(rtab, (Ip_bool(*)(Ipcom_route_entry *, void *)) ipnet_ip_mib_cb_ipCidrRouteTable, &routewalk); ipCidrRouteNumber = count; ret = ipsnmp_util_put_gauge32(magic, iid, ipCidrRouteNumber); ipcom_free(iid); } return ret; }