More work on winsock stack (ping is now working)
[reactos.git] / reactos / lib / ws2_32 / misc / ns.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS WinSock 2 DLL
4 * FILE: misc/ns.c
5 * PURPOSE: Namespace APIs
6 * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net)
7 * REVISIONS:
8 * CSH 01/09-2000 Created
9 */
10 #include <ws2_32.h>
11
12 /* Name resolution APIs */
13
14 INT
15 EXPORT
16 WSAAddressToStringA(
17 IN LPSOCKADDR lpsaAddress,
18 IN DWORD dwAddressLength,
19 IN LPWSAPROTOCOL_INFOA lpProtocolInfo,
20 OUT LPSTR lpszAddressString,
21 IN OUT LPDWORD lpdwAddressStringLength)
22 {
23 UNIMPLEMENTED
24
25 return 0;
26 }
27
28
29 INT
30 EXPORT
31 WSAAddressToStringW(
32 IN LPSOCKADDR lpsaAddress,
33 IN DWORD dwAddressLength,
34 IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
35 OUT LPWSTR lpszAddressString,
36 IN OUT LPDWORD lpdwAddressStringLength)
37 {
38 UNIMPLEMENTED
39
40 return 0;
41 }
42
43
44 INT
45 EXPORT
46 WSAEnumNameSpaceProvidersA(
47 IN OUT LPDWORD lpdwBufferLength,
48 OUT LPWSANAMESPACE_INFOA lpnspBuffer)
49 {
50 UNIMPLEMENTED
51
52 return 0;
53 }
54
55
56 INT
57 EXPORT
58 WSAEnumNameSpaceProvidersW(
59 IN OUT LPDWORD lpdwBufferLength,
60 OUT LPWSANAMESPACE_INFOW lpnspBuffer)
61 {
62 UNIMPLEMENTED
63
64 return 0;
65 }
66
67
68 INT
69 EXPORT
70 WSAGetServiceClassInfoA(
71 IN LPGUID lpProviderId,
72 IN LPGUID lpServiceClassId,
73 IN OUT LPDWORD lpdwBufferLength,
74 OUT LPWSASERVICECLASSINFOA lpServiceClassInfo)
75 {
76 UNIMPLEMENTED
77
78 return 0;
79 }
80
81
82 INT
83 EXPORT
84 WSAGetServiceClassInfoW(
85 IN LPGUID lpProviderId,
86 IN LPGUID lpServiceClassId,
87 IN OUT LPDWORD lpdwBufferLength,
88 OUT LPWSASERVICECLASSINFOW lpServiceClassInfo)
89 {
90 UNIMPLEMENTED
91
92 return 0;
93 }
94
95
96 INT
97 EXPORT
98 WSAGetServiceClassNameByClassIdA(
99 IN LPGUID lpServiceClassId,
100 OUT LPSTR lpszServiceClassName,
101 IN OUT LPDWORD lpdwBufferLength)
102 {
103 UNIMPLEMENTED
104
105 return 0;
106 }
107
108
109 INT
110 EXPORT
111 WSAGetServiceClassNameByClassIdW(
112 IN LPGUID lpServiceClassId,
113 OUT LPWSTR lpszServiceClassName,
114 IN OUT LPDWORD lpdwBufferLength)
115 {
116 UNIMPLEMENTED
117
118 return 0;
119 }
120
121
122 INT
123 EXPORT
124 WSAInstallServiceClassA(
125 IN LPWSASERVICECLASSINFOA lpServiceClassInfo)
126 {
127 UNIMPLEMENTED
128
129 return 0;
130 }
131
132
133 INT
134 EXPORT
135 WSAInstallServiceClassW(
136 IN LPWSASERVICECLASSINFOW lpServiceClassInfo)
137 {
138 UNIMPLEMENTED
139
140 return 0;
141 }
142
143
144 INT
145 EXPORT
146 WSALookupServiceBeginA(
147 IN LPWSAQUERYSETA lpqsRestrictions,
148 IN DWORD dwControlFlags,
149 OUT LPHANDLE lphLookup)
150 {
151 UNIMPLEMENTED
152
153 return 0;
154 }
155
156
157 INT
158 EXPORT
159 WSALookupServiceBeginW(
160 IN LPWSAQUERYSETW lpqsRestrictions,
161 IN DWORD dwControlFlags,
162 OUT LPHANDLE lphLookup)
163 {
164 UNIMPLEMENTED
165
166 return 0;
167 }
168
169
170 INT
171 EXPORT
172 WSALookupServiceEnd(
173 IN HANDLE hLookup)
174 {
175 UNIMPLEMENTED
176
177 return 0;
178 }
179
180
181 INT
182 EXPORT
183 WSALookupServiceNextA(
184 IN HANDLE hLookup,
185 IN DWORD dwControlFlags,
186 IN OUT LPDWORD lpdwBufferLength,
187 OUT LPWSAQUERYSETA lpqsResults)
188 {
189 UNIMPLEMENTED
190
191 return 0;
192 }
193
194
195 INT
196 EXPORT
197 WSALookupServiceNextW(
198 IN HANDLE hLookup,
199 IN DWORD dwControlFlags,
200 IN OUT LPDWORD lpdwBufferLength,
201 OUT LPWSAQUERYSETW lpqsResults)
202 {
203 UNIMPLEMENTED
204
205 return 0;
206 }
207
208
209 INT
210 EXPORT
211 WSARemoveServiceClass(
212 IN LPGUID lpServiceClassId)
213 {
214 UNIMPLEMENTED
215
216 return 0;
217 }
218
219
220 INT
221 EXPORT
222 WSASetServiceA(
223 IN LPWSAQUERYSETA lpqsRegInfo,
224 IN WSAESETSERVICEOP essOperation,
225 IN DWORD dwControlFlags)
226 {
227 UNIMPLEMENTED
228
229 return 0;
230 }
231
232
233 INT
234 EXPORT
235 WSASetServiceW(
236 IN LPWSAQUERYSETW lpqsRegInfo,
237 IN WSAESETSERVICEOP essOperation,
238 IN DWORD dwControlFlags)
239 {
240 UNIMPLEMENTED
241
242 return 0;
243 }
244
245
246 INT
247 EXPORT
248 WSAStringToAddressA(
249 IN LPSTR AddressString,
250 IN INT AddressFamily,
251 IN LPWSAPROTOCOL_INFOA lpProtocolInfo,
252 OUT LPSOCKADDR lpAddress,
253 IN OUT LPINT lpAddressLength)
254 {
255 UNIMPLEMENTED
256
257 return 0;
258 }
259
260
261 INT
262 EXPORT
263 WSAStringToAddressW(
264 IN LPWSTR AddressString,
265 IN INT AddressFamily,
266 IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
267 OUT LPSOCKADDR lpAddress,
268 IN OUT LPINT lpAddressLength)
269 {
270 UNIMPLEMENTED
271
272 return 0;
273 }
274
275
276 /* WinSock 1.1 compatible name resolution APIs */
277
278 LPHOSTENT
279 EXPORT
280 gethostbyaddr(
281 IN CONST CHAR FAR* addr,
282 IN INT len,
283 IN INT type)
284 {
285 UNIMPLEMENTED
286
287 return (LPHOSTENT)NULL;
288 }
289
290 LPHOSTENT
291 EXPORT
292 gethostbyname(
293 IN CONST CHAR FAR* name)
294 {
295 UNIMPLEMENTED
296
297 return (LPHOSTENT)NULL;
298 }
299
300
301 INT
302 EXPORT
303 gethostname(
304 OUT CHAR FAR* name,
305 IN INT namelen)
306 {
307 UNIMPLEMENTED
308
309 return 0;
310 }
311
312
313 LPPROTOENT
314 EXPORT
315 getprotobyname(
316 IN CONST CHAR FAR* name)
317 {
318 UNIMPLEMENTED
319
320 return (LPPROTOENT)NULL;
321 }
322
323
324 LPPROTOENT
325 EXPORT
326 getprotobynumber(
327 IN INT number)
328 {
329 UNIMPLEMENTED
330
331 return (LPPROTOENT)NULL;
332 }
333
334 LPSERVENT
335 EXPORT
336 getservbyname(
337 IN CONST CHAR FAR* name,
338 IN CONST CHAR FAR* proto)
339 {
340 UNIMPLEMENTED
341
342 return (LPSERVENT)NULL;
343 }
344
345
346 LPSERVENT
347 EXPORT
348 getservbyport(
349 IN INT port,
350 IN CONST CHAR FAR* proto)
351 {
352 UNIMPLEMENTED
353
354 return (LPSERVENT)NULL;
355 }
356
357
358 ULONG
359 EXPORT
360 inet_addr(
361 IN CONST CHAR FAR* cp)
362 /*
363 * FUNCTION: Converts a string containing an IPv4 address to an unsigned long
364 * ARGUMENTS:
365 * cp = Pointer to string with address to convert
366 * RETURNS:
367 * Binary representation of IPv4 address, or INADDR_NONE
368 */
369 {
370 UINT i;
371 PCHAR p;
372 ULONG u = 0;
373
374 p = (PCHAR)cp;
375
376 if (strlen(p) == 0)
377 return INADDR_NONE;
378
379 if (strcmp(p, " ") == 0)
380 return 0;
381
382 for (i = 0; i <= 3; i++) {
383 u += (strtoul(p, &p, 0) << (i * 8));
384
385 if (strlen(p) == 0)
386 return u;
387
388 if (p[0] != '.')
389 return INADDR_NONE;
390
391 p++;
392 }
393
394 return u;
395 }
396
397
398 CHAR FAR*
399 EXPORT
400 inet_ntoa(
401 IN IN_ADDR in)
402 {
403 CHAR b[10];
404 PCHAR p;
405
406 p = ((PWINSOCK_THREAD_BLOCK)NtCurrentTeb()->WinSockData)->Intoa;
407 _itoa(in.S_un.S_addr & 0xFF, b, 10);
408 strcpy(p, b);
409 _itoa((in.S_un.S_addr >> 8) & 0xFF, b, 10);
410 strcat(p, ".");
411 strcat(p, b);
412 _itoa((in.S_un.S_addr >> 16) & 0xFF, b, 10);
413 strcat(p, ".");
414 strcat(p, b);
415 _itoa((in.S_un.S_addr >> 24) & 0xFF, b, 10);
416 strcat(p, ".");
417 strcat(p, b);
418 return (CHAR FAR*)p;
419 }
420
421
422 HANDLE
423 EXPORT
424 WSAAsyncGetHostByAddr(
425 IN HWND hWnd,
426 IN UINT wMsg,
427 IN CONST CHAR FAR* addr,
428 IN INT len,
429 IN INT type,
430 OUT CHAR FAR* buf,
431 IN INT buflen)
432 {
433 UNIMPLEMENTED
434
435 return (HANDLE)0;
436 }
437
438
439 HANDLE
440 EXPORT
441 WSAAsyncGetHostByName(
442 IN HWND hWnd,
443 IN UINT wMsg,
444 IN CONST CHAR FAR* name,
445 OUT CHAR FAR* buf,
446 IN INT buflen)
447 {
448 UNIMPLEMENTED
449
450 return (HANDLE)0;
451 }
452
453
454 HANDLE
455 EXPORT
456 WSAAsyncGetProtoByName(
457 IN HWND hWnd,
458 IN UINT wMsg,
459 IN CONST CHAR FAR* name,
460 OUT CHAR FAR* buf,
461 IN INT buflen)
462 {
463 UNIMPLEMENTED
464
465 return (HANDLE)0;
466 }
467
468
469 HANDLE
470 EXPORT
471 WSAAsyncGetProtoByNumber(
472 IN HWND hWnd,
473 IN UINT wMsg,
474 IN INT number,
475 OUT CHAR FAR* buf,
476 IN INT buflen)
477 {
478 UNIMPLEMENTED
479
480 return (HANDLE)0;
481 }
482
483
484 HANDLE
485 EXPORT
486 WSAAsyncGetServByName(
487 IN HWND hWnd,
488 IN UINT wMsg,
489 IN CONST CHAR FAR* name,
490 IN CONST CHAR FAR* proto,
491 OUT CHAR FAR* buf,
492 IN INT buflen)
493 {
494 UNIMPLEMENTED
495
496 return (HANDLE)0;
497 }
498
499
500 HANDLE
501 EXPORT
502 WSAAsyncGetServByPort(
503 IN HWND hWnd,
504 IN UINT wMsg,
505 IN INT port,
506 IN CONST CHAR FAR* proto,
507 OUT CHAR FAR* buf,
508 IN INT buflen)
509 {
510 UNIMPLEMENTED
511
512 return (HANDLE)0;
513 }
514
515 /* EOF */