Sync up with trunk r61578.
[reactos.git] / base / applications / network / nslookup / nslookup.h
1 #include <stdarg.h>
2
3 #define WIN32_NO_STATUS
4 #include <windef.h>
5 #define _INC_WINDOWS
6 #include <winsock2.h>
7 #include <tchar.h>
8 #include <stdio.h>
9
10 #define TypeA "A"
11 #define TypeAAAA "AAAA"
12 #define TypeBoth "A+AAAA"
13 #define TypeAny "ANY"
14 #define TypeCNAME "CNAME"
15 #define TypeMX "MX"
16 #define TypeNS "NS"
17 #define TypePTR "PTR"
18 #define TypeSOA "SOA"
19 #define TypeSRV "SRV"
20
21 #define TYPE_A 0x01
22 #define TYPE_NS 0x02
23 #define TYPE_CNAME 0x05
24 #define TYPE_SOA 0x06
25 #define TYPE_WKS 0x0B
26 #define TYPE_PTR 0x0C
27 #define TYPE_MX 0x0F
28 #define TYPE_ANY 0xFF
29
30 #define ClassIN "IN"
31 #define ClassAny "ANY"
32
33 #define CLASS_IN 0x01
34 #define CLASS_ANY 0xFF
35
36 #define OPCODE_QUERY 0x00
37 #define OPCODE_IQUERY 0x01
38 #define OPCODE_STATUS 0x02
39
40 #define OpcodeQuery "QUERY"
41 #define OpcodeIQuery "IQUERY"
42 #define OpcodeStatus "STATUS"
43 #define OpcodeReserved "RESERVED"
44
45 #define RCODE_NOERROR 0x00
46 #define RCODE_FORMERR 0x01
47 #define RCODE_FAILURE 0x02
48 #define RCODE_NXDOMAIN 0x03
49 #define RCODE_NOTIMP 0x04
50 #define RCODE_REFUSED 0x05
51
52 #define RCodeNOERROR "NOERROR"
53 #define RCodeFORMERR "FORMERR"
54 #define RCodeFAILURE "FAILURE"
55 #define RCodeNXDOMAIN "NXDOMAIN"
56 #define RCodeNOTIMP "NOTIMP"
57 #define RCodeREFUSED "REFUSED"
58 #define RCodeReserved "RESERVED"
59
60 #define DEFAULT_ROOT "A.ROOT-SERVERS.NET."
61 #define ARPA_SIG ".in-addr.arpa"
62
63 typedef struct _STATE
64 {
65 BOOL debug;
66 BOOL defname;
67 BOOL d2;
68 BOOL recurse;
69 BOOL search;
70 BOOL vc;
71 BOOL ignoretc;
72 BOOL MSxfr;
73 CHAR domain[256];
74 CHAR srchlist[6][256];
75 CHAR root[256];
76 DWORD retry;
77 DWORD timeout;
78 DWORD ixfrver;
79 PCHAR type;
80 PCHAR Class;
81 USHORT port;
82 CHAR DefaultServer[256];
83 CHAR DefaultServerAddress[16];
84 } STATE, *PSTATE;
85
86 /* nslookup.c */
87
88 extern STATE State;
89 extern HANDLE ProcessHeap;
90
91 /* utility.c */
92
93 BOOL SendRequest( PCHAR pInBuffer,
94 ULONG InBufferLength,
95 PCHAR pOutBuffer,
96 PULONG pOutBufferLength );
97
98 int ExtractName( PCHAR pBuffer,
99 PCHAR pOutput,
100 USHORT Offset,
101 UCHAR Limit );
102
103 void ReverseIP( PCHAR pIP, PCHAR pReturn );
104 BOOL IsValidIP( PCHAR pInput );
105 int ExtractIP( PCHAR pBuffer, PCHAR pOutput, USHORT Offset );
106 void PrintD2( PCHAR pBuffer, DWORD BufferLength );
107 void PrintDebug( PCHAR pBuffer, DWORD BufferLength );
108 PCHAR OpcodeIDtoOpcodeName( UCHAR Opcode );
109 PCHAR RCodeIDtoRCodeName( UCHAR RCode );
110 PCHAR TypeIDtoTypeName( USHORT TypeID );
111 USHORT TypeNametoTypeID( PCHAR TypeName );
112 PCHAR ClassIDtoClassName( USHORT ClassID );
113 USHORT ClassNametoClassID( PCHAR ClassName );