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

📄 data_list.c

📁 snmp up 2
💻 C
字号:
/* * netsnmp_data_list.c * * $Id: data_list.c,v 5.1 2002/12/12 13:04:21 nba Exp $ */#include <net-snmp/net-snmp-config.h>#include <sys/types.h>#include <stdlib.h>#if HAVE_STRING_H#include <string.h>#else#include <strings.h>#endif#if HAVE_DMALLOC_H#include <dmalloc.h>#endif#include <net-snmp/library/data_list.h>/***********************************************************************//* * New Handler based API  *//***********************************************************************/inline voidnetsnmp_free_list_data(netsnmp_data_list *node){    Netsnmp_Free_List_Data *beer;    if (!node)        return;    beer = node->free_func;    if (beer)        (beer) (node->data);    SNMP_FREE(node->name);}inline voidnetsnmp_free_all_list_data(netsnmp_data_list *head){    netsnmp_data_list *tmpptr;    for (; head;) {        netsnmp_free_list_data(head);        tmpptr = head;        head = head->next;        SNMP_FREE(tmpptr);    }}inline netsnmp_data_list *netsnmp_create_data_list(const char *name, void *data,                         Netsnmp_Free_List_Data * beer){    netsnmp_data_list *node = SNMP_MALLOC_TYPEDEF(netsnmp_data_list);    if (!node)        return NULL;    node->name = strdup(name);    node->data = data;    node->free_func = beer;    return node;}inline voidnetsnmp_add_list_data(netsnmp_data_list **head, netsnmp_data_list *node){    netsnmp_data_list *ptr;    if (!*head) {        *head = node;        return;    }    /*     * xxx-rks: check for duplicate names?      */    for (ptr = *head; ptr->next != NULL; ptr = ptr->next) {        /*         * noop          */    }    if (ptr)                    /* should always be true */        ptr->next = node;}inline void    *netsnmp_get_list_data(netsnmp_data_list *head, const char *name){    for (; head; head = head->next)        if (head->name && strcmp(head->name, name) == 0)            break;    if (head)        return head->data;    return NULL;}inline void    *netsnmp_get_list_node(netsnmp_data_list *head, const char *name){    for (; head; head = head->next)        if (head->name && strcmp(head->name, name) == 0)            break;    if (head)        return head;    return NULL;}intnetsnmp_remove_list_node(netsnmp_data_list **realhead, const char *name){    netsnmp_data_list *head, *prev;    for (head = *realhead, prev = NULL; head;         prev = head, head = head->next) {        if (head->name && strcmp(head->name, name) == 0) {            if (prev)                prev->next = head->next;            else                *realhead = head->next;            netsnmp_free_list_data(head);            free(head);            return 0;        }    }    return 1;}

⌨️ 快捷键说明

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