resolvLib.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:4k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* resolvLib.h - VxWorks DNS resolver facilities */
  2. /* Copyright 1984-2001 Wind River Systems, Inc. */
  3. #include "copyright_wrs.h"
  4. /*
  5. modification history
  6. --------------------
  7. 01e,12oct01,rae  merge from truestack (S_resolvLib_INVALID_ADDRESS)
  8. 01d,24sep01,gls  removed definition of __P() macro (SPR #28330)
  9. 01c,19may97,spm  added S_resolvLib_INVALID_PARAMETER error value (SPR #8603),
  10.                  corrected format of modification history
  11. 01b,02apr97,jag  removed reference to header file resolv/param.h. 
  12. 01a,29jul96,rjc  written. 
  13. */
  14. #ifndef __INCresolvLibh
  15. #define __INCresolvLibh
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19. /* includes */
  20. #include "vxWorks.h"
  21. #include "vwModNum.h"
  22. #include "sockLib.h"
  23. #include "netinet/in.h"
  24. #include "arpa/inet.h"
  25. #include "netdb.h"
  26. #include "resolv/nameser.h"
  27. #include "netinet/in.h"
  28. #include "resolv/resolv.h"
  29. #define MAXIPADDRLEN   20             /* assuming decimal dot notation */
  30. #define MAXALIASES     20
  31. #define MAXADDRS       20
  32. #define  QUERY_LOCAL_FIRST      1     /* Query static host table first */
  33. #define  QUERY_DNS_FIRST        2     /* Query DNS first */
  34. #define  QUERY_DNS_ONLY         3     /* Query DNS only */
  35. #define S_resolvLib_NO_RECOVERY       (M_resolvLib | 1)
  36. #define S_resolvLib_TRY_AGAIN         (M_resolvLib | 2)
  37. #define S_resolvLib_HOST_NOT_FOUND    (M_resolvLib | 3)
  38. #define S_resolvLib_NO_DATA           (M_resolvLib | 4)
  39. #define S_resolvLib_BUFFER_2_SMALL    (M_resolvLib | 5)
  40. #define S_resolvLib_INVALID_PARAMETER (M_resolvLib | 6)
  41. #define S_resolvLib_INVALID_ADDRESS   (M_resolvLib | 7)
  42. #if ((CPU_FAMILY==I960) && (defined __GNUC__))
  43. #pragma align 1                 /* tell gcc960 not to optimize alignments */
  44. #endif  /* CPU_FAMILY==I960 */
  45. /* Resolver parameter configuration structures */
  46. typedef struct 
  47.     {
  48.     /* order in which to query hostLib database and DNS */
  49.     char   queryOrder;   
  50.    /* maximum domain name based on rfc883 */
  51.     char   domainName [MAXDNAME]; 
  52.         /* IP address of name servers */
  53.     char   nameServersAddr [MAXNS][MAXIPADDRLEN];
  54.     } RESOLV_PARAMS_S;
  55. #if ((CPU_FAMILY==I960) && (defined __GNUC__))
  56. #pragma align 0                 /* turn off alignment requirement */
  57. #endif  /* CPU_FAMILY==I960 */
  58. /* function declarations */
  59. #if defined(__STDC__) || defined(__cplusplus)
  60. STATUS             resolvInit (char *, char *, FUNCPTR);
  61. struct hostent *   resolvGetHostByName (char *, char *, int);
  62. struct hostent *   resolvGetHostByAddr (const char *, char *, int);
  63. int                resolvDNExpand (const u_char *, const u_char *, 
  64.    const u_char *, u_char *, int);
  65. int                resolvDNComp (const u_char *, u_char *, int, u_char **, 
  66.  u_char **);
  67. int                resolvQuery (char *, int, int, u_char *, int);
  68. int                resolvMkQuery (int, const char *, int, int, const char *,
  69.                                   int, const char *, char *, int);
  70. int                resolvSend (const char *, int, char *, int) ;
  71. STATUS               resolvParamsSet (RESOLV_PARAMS_S *); 
  72. void               resolvParamsGet (RESOLV_PARAMS_S *);
  73. #else   /* __STDC__ */
  74. STATUS             resolvInit ();
  75. struct hostent *   resolvGetHostByName ();
  76. struct hostent *   resolvGetHostByAddr (); 
  77. int                resolvDNExpand ();
  78. int                resolvDNComp ();
  79. int                resolvQuery ();
  80. int                resolvMkQuery ();
  81. int                resolvSend ();
  82. void               resolvParamsSet ();
  83. void               resolvParamsGet ();
  84. #endif  /* __STDC__ */
  85. #ifdef __cplusplus
  86. }
  87. #endif
  88. #endif /* __INCresolvLibh */