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