KDK_NET_FREE_CHAIN(3)

NAME
kdk_net_free_chain - 释放由kdk_net_get_iptable_rules返回的防火墙信息结构体

SYNOPSIS
#include <libkynetinfo.h>

extern void kdk_net_free_chain(pChain list);

Link with -lkynetinfo.

Detailed Description
The main function of the interface is to release the firewall information structure returned by the kdk_net_get_iptable_rules.

The argument list is the return value of the kdk_net_get_iptable_rules.

RETURN VALUE
No return value

EXAMPLES
    #include "libkynetinfo.h"
    #include "stdio.h"
    #include "stdlib.h"
    int main(int argc, char *argv[])
    {
        prouteMapList list = kdk_net_get_route(), tmp = list;
        while (tmp)
        {
            printf("%s default route %s, tmp->name, tmp->addr);
            tmp = tmp->next;
        }
        kdk_net_free_route(list);
        if (argc < 2)
            printf("please input test port num);
        else
            printf("port:%s's state %d, argv[1], kdk_net_get_port_stat(atoi(argv[1])));

        pChain chain = kdk_net_get_iptable_rules();
        pChain tmpchain = chain;
        while(tmpchain)
        {
            printf("Chain: %s	police: %s,tmpchain->total,tmpchain->policy);
            pChainData tmpData = tmpchain->data;
            if(tmpData)
                printf("target: %s	prot: %s	opt: %s	source: %s	destination: %s	option: %s,tmpData->target,tmpData->prot,tmpData->opt,
                                    tmpData->source,tmpData->destination,tmpData->option);
            printf(");
            tmpchain = tmpchain->next;
        }
        kdk_net_free_chain(chain);
        int result[65536];
        int net = kdk_net_get_multiple_port_stat(0, 1000, result);
        if(net == 0)
        {
            size_t count = 0;
            for(;count < 1000 ;count++)
            {
                printf("%d	", result[count]);
            }
        }
        else
            printf("Failed With %d", net);
         printf(");

        char mask[32] = " ";
        kdk_net_get_netmask("enaftgm1i0", mask);
        printf("mask = %s, mask);
        char **port = kdk_net_get_proc_port();
        size_t index = 0;
        while(port[index])
        {
            printf("No.%ld, port = %s, index+1, port[index]);
            index++;
        }
        kdk_net_freeall(port);
        port = kdk_net_get_up_port();
        index = 0;
        while(port[index])
        {
            printf("No.%ld, port = %s, index+1, port[index]);
            index++;
        }
        kdk_net_freeall(port);
        char *hosts = kdk_net_get_hosts();
        if (hosts != NULL)
        {
            printf("hosts = %s, hosts);
            free(hosts);
        }
        char *domain = kdk_net_get_hosts_domain();
        if (domain != NULL)
        {
            printf("domain = %s, domain);
            free(domain);
        }
        char **resolv = kdk_net_get_resolv_conf();
        index = 0;
        while(resolv[index])
        {
            printf("No.%ld, resolv = %s, index+1, resolv[index]);
            index++;
        }
        kdk_net_freeall(resolv);
        return 0;
    }

CONFORMING TO
These functions are as per the withdrawn POSIX.1e draft specification. The following functions are Linux extensions: kdk_net_get_netmask(), kdk_net_get_port_stat(), kdk_net_get_multiple_port_stat(), kdk_net_get_iptable_rules(), kdk_net_get_route(), kdk_net_free_route(), kdk_net_get_proc_port(), kdk_net_get_up_port(), kdk_net_get_hosts(), kdk_net_get_hosts_domain(), kdk_net_get_resolv_conf() and kdk_net_freeall().

SEE ALSO
kdk_net_get_netmask(3), kdk_net_get_port_stat(3), kdk_net_get_multiple_port_stat(3), kdk_net_get_iptable_rules(3), kdk_net_get_route(3), kdk_net_free_route(3), kdk_net_get_up_port(3), kdk_net_get_hosts(3), kdk_net_get_hosts_domain(3), kdk_net_get_resolv_conf(3) and kdk_net_freeall(3).