- NDK fix: don't undef a million status codes, instead, have apps define WIN32_NO_STATUS.
[reactos.git] / reactos / lib / rtl / network.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS system libraries
4 * PURPOSE: Network Address Translation implementation
5 * PROGRAMMER:
6 */
7
8 /* INCLUDES *****************************************************************/
9
10 #include <rtl.h>
11
12 #define NDEBUG
13 #include <debug.h>
14
15 /* FUNCTIONS ***************************************************************/
16
17 /* Borrow this from some headers... */
18 typedef struct
19 {
20 union
21 {
22 struct { UCHAR s_b1,s_b2,s_b3,s_b4; } S_un_b;
23 struct { USHORT s_w1,s_w2; } S_un_w;
24 ULONG S_addr;
25 } S_un;
26 } in_addr;
27
28 typedef struct
29 {
30 union
31 {
32 UCHAR _S6_u8[16];
33 USHORT _S6_u16[8];
34 ULONG _S6_u32[4];
35 } S6_un;
36 } in6_addr;
37
38
39 /*
40 * @implemented
41 */
42 LPSTR
43 NTAPI
44 RtlIpv4AddressToStringA(
45 PULONG IP,
46 LPSTR Buffer
47 )
48 {
49 in_addr addr;
50 addr.S_un.S_addr = *IP;
51 return Buffer + sprintf(Buffer, "%u.%u.%u.%u", addr.S_un.S_un_b.s_b1,
52 addr.S_un.S_un_b.s_b2,
53 addr.S_un.S_un_b.s_b3,
54 addr.S_un.S_un_b.s_b4);
55 }
56
57 /*
58 * @unimplemented
59 */
60 NTSTATUS
61 NTAPI
62 RtlIpv4AddressToStringExA(
63 PULONG IP,
64 PULONG Port,
65 LPSTR Buffer,
66 PULONG MaxSize
67 )
68 {
69 UNIMPLEMENTED;
70 return STATUS_NOT_IMPLEMENTED;
71 }
72
73 /*
74 * @implemented
75 */
76 LPWSTR
77 NTAPI
78 RtlIpv4AddressToStringW(
79 PULONG IP,
80 LPWSTR Buffer
81 )
82 {
83 in_addr addr;
84 addr.S_un.S_addr = *IP;
85 return Buffer + swprintf(Buffer, L"%u.%u.%u.%u", addr.S_un.S_un_b.s_b1,
86 addr.S_un.S_un_b.s_b2,
87 addr.S_un.S_un_b.s_b3,
88 addr.S_un.S_un_b.s_b4);
89 }
90
91 /*
92 * @unimplemented
93 */
94 NTSTATUS
95 NTAPI
96 RtlIpv4AddressToStringExW(
97 PULONG IP,
98 PULONG Port,
99 LPWSTR Buffer,
100 PULONG MaxSize
101 )
102 {
103 UNIMPLEMENTED;
104 return STATUS_NOT_IMPLEMENTED;
105 }
106
107 /*
108 * @unimplemented
109 */
110 NTSTATUS
111 NTAPI
112 RtlIpv4StringToAddressA(
113 IN LPSTR IpString,
114 IN ULONG Base,
115 OUT PVOID PtrToIpAddr,
116 OUT ULONG IpAddr
117 )
118 {
119 UNIMPLEMENTED;
120 return STATUS_NOT_IMPLEMENTED;
121 }
122
123 /*
124 * @unimplemented
125 */
126 NTSTATUS
127 NTAPI
128 RtlIpv4StringToAddressExA(
129 IN LPSTR IpString,
130 IN ULONG Base,
131 OUT PULONG IpAddr,
132 OUT PULONG Port
133 )
134 {
135 UNIMPLEMENTED;
136 return STATUS_NOT_IMPLEMENTED;
137 }
138
139 /*
140 * @unimplemented
141 */
142 NTSTATUS
143 NTAPI
144 RtlIpv4StringToAddressW(
145 IN LPWSTR IpString,
146 IN ULONG Base,
147 OUT PULONG PtrToIpAddr,
148 OUT PULONG IpAddr
149 )
150 {
151 UNIMPLEMENTED;
152 return STATUS_NOT_IMPLEMENTED;
153 }
154
155 /*
156 * @unimplemented
157 */
158 NTSTATUS
159 NTAPI
160 RtlIpv4StringToAddressExW(
161 IN LPWSTR IpString,
162 IN ULONG Base,
163 OUT PULONG IpAddr,
164 OUT PULONG Port
165 )
166 {
167 UNIMPLEMENTED;
168 return STATUS_NOT_IMPLEMENTED;
169 }
170
171 /*
172 * @unimplemented
173 */
174 NTSTATUS
175 NTAPI
176 RtlIpv6AddressToStringA(
177 PULONG IP,
178 LPSTR Buffer
179 )
180 {
181 UNIMPLEMENTED;
182 return STATUS_NOT_IMPLEMENTED;
183 }
184
185 /*
186 * @unimplemented
187 */
188 NTSTATUS
189 NTAPI
190 RtlIpv6AddressToStringExA(
191 PULONG IP,
192 PULONG Port,
193 LPSTR Buffer,
194 PULONG MaxSize
195 )
196 {
197 UNIMPLEMENTED;
198 return STATUS_NOT_IMPLEMENTED;
199 }
200
201 /*
202 * @unimplemented
203 */
204 NTSTATUS
205 NTAPI
206 RtlIpv6AddressToStringW(
207 PULONG IP,
208 LPWSTR Buffer
209 )
210 {
211 UNIMPLEMENTED;
212 return STATUS_NOT_IMPLEMENTED;
213 }
214
215 /*
216 * @unimplemented
217 */
218 NTSTATUS
219 NTAPI
220 RtlIpv6AddressToStringExW(
221 PULONG IP,
222 PULONG Port,
223 LPWSTR Buffer,
224 PULONG MaxSize
225 )
226 {
227 UNIMPLEMENTED;
228 return STATUS_NOT_IMPLEMENTED;
229 }
230
231 /*
232 * @unimplemented
233 */
234 NTSTATUS
235 NTAPI
236 RtlIpv6StringToAddressA(
237 IN LPSTR IpString,
238 IN ULONG Base,
239 OUT PVOID PtrToIpAddr,
240 OUT ULONG IpAddr
241 )
242 {
243 UNIMPLEMENTED;
244 return STATUS_NOT_IMPLEMENTED;
245 }
246
247 /*
248 * @unimplemented
249 */
250 NTSTATUS
251 NTAPI
252 RtlIpv6StringToAddressExA(
253 IN LPSTR IpString,
254 IN ULONG Base,
255 OUT PULONG IpAddr,
256 OUT PULONG Port
257 )
258 {
259 UNIMPLEMENTED;
260 return STATUS_NOT_IMPLEMENTED;
261 }
262
263 /*
264 * @unimplemented
265 */
266 NTSTATUS
267 NTAPI
268 RtlIpv6StringToAddressW(
269 IN LPWSTR IpString,
270 IN ULONG Base,
271 OUT PVOID PtrToIpAddr,
272 OUT ULONG IpAddr
273 )
274 {
275 UNIMPLEMENTED;
276 return STATUS_NOT_IMPLEMENTED;
277 }
278
279 /*
280 * @unimplemented
281 */
282 NTSTATUS
283 NTAPI
284 RtlIpv6StringToAddressExW(
285 IN LPWSTR IpString,
286 IN ULONG Base,
287 OUT PULONG IpAddr,
288 OUT PULONG Port
289 )
290 {
291 UNIMPLEMENTED;
292 return STATUS_NOT_IMPLEMENTED;
293 }
294
295
296 /* EOF */