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