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