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

📄 dns.module

📁 DNS 的实现代码
💻 MODULE
📖 第 1 页 / 共 2 页
字号:
  
        Message HASH_TIME_EXPIRED
        {
          int response_hash_index ;
        }
  
    Endif

    %------------------------------------------------------
    % DNS Client  Version 1.00
    %
    % DNS Client first release.  No VxWorks support.
    %
    % The DNS client caches negative replies, this is useful
    % and saves unnecessary DNS messages.  But, a mispelling
    % of a host name or IP address can add a number of useless
    % cache entries.  DNS_MAXNERRTTL is the maximum time the
    % client will cache negative entries.  Normal entries are
    % cached for the TTL value of the resource records providing
    % the information.  See RFC 2308 section 5 for a discussion
    % of caching negative entries.
    %
    %------------------------------------------------------
    If dns_client

        Config.hs DNS_CLIENT
        Config.h DNSCLIENT_QUEUE_NAME  "dnsclient"

    	Config.h DNS_RRMAXENTRYS   10  /* number dns client cache entries */
        Config.h DNS_MAXNERRTTL  1800  /* max seconds to cache name error RFC 2308 sec 5 */
		Config.h DNS_MAX_XX_LOCAL_ENT 10 /* number of entries in XX_Cache */

        Export Header  dns_resolv.h
        Export Header  dns_client.h

        Make.cc dns_client_lib
        Make.cc dns_client_lib6
        Export slibrary dns_client_lib.o
        Export slibrary dns_client_lib6.o

        Message DNS_GET_NODEBYNAME
        {
            int                qcnt;       /* set to zero */
            char               *hostname;  /* domain name to find IP addresses for */
            int                error;      /* error return */
            struct hostent    *hent;       /* results */
            U32                userId;     /* for correlation of responses, ignored by DNS */
        }
        
        Message DNS_GET_HOSTBYADDR6
        {
            int                qcnt;       /* set to zero */
	    struct in6_addr   *addr;       /* IPv6 address to find the host 
                                            * name for */
            int                error;      /* error return */
            struct hostent    *hent;       /* results */
        }

        Message DNS_FLUSH_CACHE_IP6
        {
            struct in6_addr *ip6addr; /* IPv6 address of cache entry to flush */
            int    error;             /* error return */
        }

        Message DNS_GET_NAMESERVER6
        {
            int    index;       /* IPv6 nameserver index */
            char   *nsaddr_str; /* nameserver IPv6 address string dest */
            int    error;       /* error return */
        }

        Message DNS_FLUSH_CACHE_NAME6
        {
            char   *hostname;   /* IPv6 host name of cache entry to flush */
            int    error;       /* error return */
        }

        Message DNS_GET_ADDRBYNAME
        {
            int                qcnt;       /* set to zero */
            char               *hostname;  /* domain name to find IP addresses for */
            int                error;      /* error return */
            BOOL               use_cache;  /* whether or not to use the resolver cache */
            struct dns_hostent *hptr;      /* results */
            U32                userId;     /* for correlation of responses, ignored by DNS */
        }

        Message DNS_GET_HOSTBYADDR
        {
            int                qcnt;       /* set to zero */
            U32                ipaddr;     /* IP address to find the host name for */
            int                error;      /* error return */
            BOOL               use_cache;  /* whether or not to use the resolver cache */
            struct dns_hostent *hptr;      /* results */
        }

        Message DNS_FLUSH_CACHE
        {
            int   error;        /* error return */
        }

        Message DNS_FLUSH_CACHE_NAME
        {
            char   *hostname;   /* host name of cache entry to flush */
            int    error;       /* error return */
        }

        Message DNS_FLUSH_CACHE_IP
        {
            U32    ipaddr;      /* IP address of cache entry to flush */
            int    error;       /* error return */
        }

        Message DNS_ADD_NAMESERVER
        {
            char   *ipaddr;     /* new nameserver IP address */
            int    error;       /* error return */
        }

        Message DNS_DELETE_NAMESERVER
        {
            char   *ipaddr;     /* nameserver IP address to remove */
            int    error;       /* error return */
        }

        Message DNS_NEW_SEARCHLIST
        {
            char   *liststr;    /* search list string */
            int    error;       /* error return */
        }

        Message DNS_GET_NAMESERVER
        {
            int    index;       /* nameserver index */
            char   *nsaddr_str; /* nameserver address string dest */
            int    error;       /* error return */
        }

        Message DNS_GET_SEARCHLIST_ENTRY
        {
            int    index;       /* SL entry index */
            char   *slent_str;  /* SL entry address string dest */
            int    error;       /* error return */
        }
	Message DNS_GET_RR
	{
		char	*dname;  	/* domain name to resolve */
		BOOL    use_cache;	/* whether or not to use the resolver cache */
		int 	*len; 		/* user buffer length */
    	int     error;    	/* error return */
		U8		qtype;		/* NAPTR or SRV */
		U8  	*rrptr;    	/* user supplied buffer, NAPTR or SRV  RRs to be returned here */
		U8      *dnsMsg;
	}
	Message DNS_FLUSH_XX_CACHE
	{
     		int     error;    	/* error return */
	}
	Message DNS_FLUSH_XX_CACHE_BYNAME
	{
		char	*dname;		/* domain name to be deleted */
     	int     error;    	/* error return */
	}

        Config.h DNS_CLIENT_VERSION (101)

        Make.cc dns_client_query6
        Make.cc dns_client_util6

        Make.cc dns_client
        Make.cc dns_client_query
        Make.cc dns_client_support
        Make.cc dns_client_skt
        Make.cc dns_client_cache
        Make.cc dns_client_reply
        Make.cc dns_client_util
        Make.cc dns_client_statics

        Make.cat dnsc.o dns_client.o dns_client_query.o dns_client_support.o dns_client_skt.o dns_client_cache.o dns_client_reply.o dns_client_util.o dns_client_query6.o dns_client_util6.o dns_client_packet.o dns_client_resource.o dns_client_statics.o ../llibc/llibc.o

        Object dnsc.o
        {
            Executable dns_client stack 1536
        }

        Process dnsclient is dns/dns_client

        if mapi
            module dns_client_mapi from dns/mapi
        endif

        module dnslookup
    Endif

    %------------------------------------------------------
    % DNS Client Library Test Harness Version 1.00
    %
    % DNS Client first release.  
    %
    % set dns_client_libtest if you want to include the 
    % test harness code.
    %
    %------------------------------------------------------
    If dns_client_libtest

        Config.hs DNS_CLIENT
        Config.h DNSCLIENT_QUEUE_NAME  "dnsclient"

        Config.h DNS_RRMAXENTRYS   10  /* number dns client cache entries */
        Config.h DNS_MAXNERRTTL  1800  /* max seconds to cache name error RFC 2308 sec 5 */

        Export Header  dns_resolv.h

        Make.cc dns_client_lib
        Export slibrary dns_client_lib.o

        Message DNS_GET_ADDRBYNAME
        {
            int                qcnt;       /* set to zero */
            char               *hostname;  /* domain name to find IP addresses for */
            int                error;      /* error return */
            BOOL               use_cache;  /* whether or not to use the resolver cache */
            struct dns_hostent *hptr;      /* results */
            U32                userId;     /* for correlation of responses, ignored by DNS */
        }

        Message DNS_GET_HOSTBYADDR
        {
            int                qcnt;       /* set to zero */
            U32                ipaddr;     /* IP address to find the host name for */
            int                error;      /* error return */
            BOOL               use_cache;  /* whether or not to use the resolver cache */
            struct dns_hostent *hptr;      /* results */
        }

        Message DNS_FLUSH_CACHE
        {
            int   error;        /* error return */
        }

        Message DNS_FLUSH_CACHE_NAME
        {
            char   *hostname;   /* host name of cache entry to flush */
            int    error;       /* error return */
        }

        Message DNS_FLUSH_CACHE_IP
        {
            U32    ipaddr;      /* IP address of cache entry to flush */
            int    error;       /* error return */
        }

        Message DNS_ADD_NAMESERVER
        {
            char   *ipaddr;     /* new nameserver IP address */
            int    error;       /* error return */
        }

        Message DNS_DELETE_NAMESERVER
        {
            char   *ipaddr;     /* nameserver IP address to remove */
            int    error;       /* error return */
        }

        Message DNS_NEW_SEARCHLIST
        {
            char   *liststr;    /* search list string */
            int    error;       /* error return */
        }

        Message DNS_GET_NAMESERVER
        {
            int    index;       /* nameserver index */
            char   *nsaddr_str; /* nameserver address string dest */
            int    error;       /* error return */
        }

        Message DNS_GET_SEARCHLIST_ENTRY
        {
            int    index;       /* SL entry index */
            char   *slent_str;  /* SL entry address string dest */
            int    error;       /* error return */
        }

        Config.h DNS_CLIENT_VERSION (100)

        Make.cc dns_client
        Make.cc dns_client_query
        Make.cc dns_client_support
        Make.cc dns_client_skt
        Make.cc dns_client_cache
        Make.cc dns_client_reply
        Make.cc dns_client_libtest
        Make.cc dns_client_util

        Make.cat dnsc.o dns_client.o dns_client_query.o  dns_client_support.o dns_client_skt.o dns_client_cache.o dns_client_reply.o dns_client_util.o ../llibc/llibc.o

        Make.cat dnsctest.o dns_client_libtest.o dns_client_lib.o ../llibc/llibc.o

        Object dnsc.o
        {
            Executable dns_client
        }

        Object dnsctest.o
        {
            Executable dns_libtest
        }

        Process dnsclient is dns/dns_client
        Process dnslibtest is dns/dns_libtest

    Endif
Endif



⌨️ 快捷键说明

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