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

📄 arp_common.c

📁 snmp的源代码,已经在我的ubuntu下编译通过
💻 C
字号:
/* *  Arp MIB architecture support * * $Id: arp_common.c,v 1.1 2004/04/13 19:32:48 rstory Exp $ */#include <net-snmp/net-snmp-config.h>#include <net-snmp/net-snmp-includes.h>#include <net-snmp/agent/net-snmp-agent-includes.h>#include <net-snmp/data_access/arp.h>/**---------------------------------------------------------------------*//* * local static prototypes */static void _access_arp_entry_release(netsnmp_arp_entry * entry,                                      void *unused);/**---------------------------------------------------------------------*//* * external per-architecture functions prototypes * * These shouldn't be called by the general public, so they aren't in * the header file. */extern intnetsnmp_access_arp_container_arch_load(netsnmp_container* container,                                       u_int load_flags);/**---------------------------------------------------------------------*//* * container functions *//** */netsnmp_container *netsnmp_access_arp_container_init(u_int flags){    netsnmp_container *container1;    DEBUGMSGTL(("access:arp:container", "init\n"));    /*     * create the containers. one indexed by ifIndex, the other     * indexed by ifName.     */    container1 = netsnmp_container_find("access_arp:table_container");    if (NULL == container1)        return NULL;    return container1;}/** * @retval NULL  error * @retval !NULL pointer to container */netsnmp_container*netsnmp_access_arp_container_load(netsnmp_container* container, u_int load_flags){    int rc;    DEBUGMSGTL(("access:arp:container", "load\n"));    if (NULL == container)        container = netsnmp_container_find("access:arp:table_container");    if (NULL == container) {        snmp_log(LOG_ERR, "no container specified/found for access_arp\n");        return NULL;    }    rc =  netsnmp_access_arp_container_arch_load(container, load_flags);    if (0 != rc) {        netsnmp_access_arp_container_free(container,                                          NETSNMP_ACCESS_ARP_FREE_NOFLAGS);        container = NULL;    }    return container;}voidnetsnmp_access_arp_container_free(netsnmp_container *container, u_int free_flags){    DEBUGMSGTL(("access:arp:container", "free\n"));    if (NULL == container) {        snmp_log(LOG_ERR, "invalid container for netsnmp_access_arp_free\n");        return;    }    if(! (free_flags & NETSNMP_ACCESS_ARP_FREE_DONT_CLEAR)) {        /*         * free all items.         */        CONTAINER_CLEAR(container,                        (netsnmp_container_obj_func*)_access_arp_entry_release,                        NULL);    }    CONTAINER_FREE(container);}/**---------------------------------------------------------------------*//* * arp_entry functions *//** */netsnmp_arp_entry *netsnmp_access_arp_entry_create(void){    netsnmp_arp_entry *entry =        SNMP_MALLOC_TYPEDEF(netsnmp_arp_entry);    entry->oid_index.len = 1;    entry->oid_index.oids = &entry->ns_arp_index;    return entry;}/** */voidnetsnmp_access_arp_entry_free(netsnmp_arp_entry * entry){    free(entry);}/**---------------------------------------------------------------------*//* * Utility routines *//** */void_access_arp_entry_release(netsnmp_arp_entry * entry, void *context){    netsnmp_access_arp_entry_free(entry);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -