set eol-style:native
[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(IN LPSTR Name,
237 OUT PULONG Unknown,
238 OUT PVOID IpAddr)
239 {
240 UNIMPLEMENTED;
241 return STATUS_NOT_IMPLEMENTED;
242 }
243
244 /*
245 * @unimplemented
246 */
247 NTSTATUS
248 NTAPI
249 RtlIpv6StringToAddressExA(IN LPSTR AddressName,
250 IN PVOID Address,
251 IN PULONG ScopeId,
252 IN PUSHORT Port)
253 {
254 UNIMPLEMENTED;
255 return STATUS_NOT_IMPLEMENTED;
256 }
257
258 /*
259 * @unimplemented
260 */
261 NTSTATUS
262 NTAPI
263 RtlIpv6StringToAddressW(IN LPWSTR Name,
264 OUT PULONG Unknown,
265 OUT PVOID IpAddr)
266 {
267 UNIMPLEMENTED;
268 return STATUS_NOT_IMPLEMENTED;
269 }
270
271 /*
272 * @unimplemented
273 */
274 NTSTATUS
275 NTAPI
276 RtlIpv6StringToAddressExW(IN LPWSTR AddressName,
277 IN PVOID Address,
278 IN PULONG ScopeId,
279 IN PUSHORT Port)
280 {
281 UNIMPLEMENTED;
282 return STATUS_NOT_IMPLEMENTED;
283 }
284
285 /* EOF */