home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / internet / netlite / NET / h / DOMAIN < prev    next >
Text File  |  1993-04-13  |  2KB  |  81 lines

  1. struct domain_request
  2. {
  3.         int16 socket;                   /* Socket for replies */
  4.         int16 id;                       /* ID of domain request */
  5.         struct timer domain_t;          /* Structur for timeouts */
  6.         int server;                     /* Number of server */
  7.         int tries;                      /* Number of tries at server */
  8.         int16 class;                    /* CLASS */
  9.         int16 type;                     /* TYPE */
  10.         void *user;                     /* User data, if any */
  11.         int (*function)();              /* Function to call with result */
  12.         int (*error)();                 /* Function to call with error */
  13.         char *host;                     /* Name of host */
  14.         char *arg1;                     /* Optional arguments */
  15.         char *arg2;
  16. };
  17.  
  18. #define NULLDOMREQ   (struct domain_request *)0
  19.  
  20. #define MAX_SERVERS  5
  21.  
  22. extern int32 domain_servers[];
  23. extern int domain_count;
  24.  
  25. #define TYPE_A        1
  26. #define TYPE_NS       2
  27. #define TYPE_MD       3
  28. #define TYPE_MF       4
  29. #define TYPE_CNAME    5
  30. #define TYPE_SOA      6
  31. #define TYPE_MB       7
  32. #define TYPE_MG       8
  33. #define TYPE_MR       9
  34. #define TYPE_NULL     10
  35. #define TYPE_WKS      11
  36. #define TYPE_PTR      12
  37. #define TYPE_HINFO    13
  38. #define TYPE_MINFO    14
  39. #define TYPE_MX       15
  40. #define TYPE_TXT      16
  41. #define MAX_TYPE      17
  42.  
  43. #define CLASS_IN      1
  44. #define CLASS_CH      3
  45. #define CLASS_HS      4
  46.  
  47. #define QR_QUERY      0x00
  48. #define QR_RESPONSE   0x80
  49.  
  50. #define OPCODE_QUERY  (0x00 << 3)
  51. #define OPCODE_IQUERY (0x01 << 3)
  52. #define OPCODE_STATUS (0x02 << 3)
  53.           
  54. #define AA            0x04
  55. #define TC            0x02
  56. #define RD            0x01
  57.  
  58. #define RA            0x80
  59.  
  60. #define RCODE_OK      0
  61. #define RCODE_FORMAT  1
  62. #define RCODE_SERVER  2
  63. #define RCODE_NAME    3
  64. #define RCODE_NOTIMPL 4
  65. #define RCODE_REFUSED 5
  66.  
  67. struct domain_stat
  68. {
  69.        int packets_in[MAX_TYPE];
  70.        int packets_out[MAX_TYPE];
  71.        int invalid_id;
  72.        int timeouts;
  73. };
  74. extern struct domain_stat domain_stat;
  75.  
  76. /* In DOMAIN */
  77. void domain_parms(void);
  78. int dodomain(int, char **);
  79. void resolve_a(char *, char *, char *, void *, int (*)(), int (*)());
  80. void resolve_mx(char *, void *, int (*)(), int (*)());
  81.