diff options
author | LRN <lrn1986@gmail.com> | 2013-12-19 18:39:07 +0000 |
---|---|---|
committer | LRN <lrn1986@gmail.com> | 2013-12-19 18:39:07 +0000 |
commit | d36bd0d011441ddd76f7136b4a59bf98687c236b (patch) | |
tree | 1105fa2e74548c0148c2f973a885476f9f4c33e7 /src/gns/w32nsp-resolve.c | |
parent | aac71444fe489dcc0351043e26ec5781b9bbc148 (diff) | |
download | gnunet-d36bd0d011441ddd76f7136b4a59bf98687c236b.tar.gz gnunet-d36bd0d011441ddd76f7136b4a59bf98687c236b.zip |
Support normal socket (non-NSP) name lookups in resolver (for testing)
Diffstat (limited to 'src/gns/w32nsp-resolve.c')
-rw-r--r-- | src/gns/w32nsp-resolve.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/gns/w32nsp-resolve.c b/src/gns/w32nsp-resolve.c index 31f806343..f8f4a43be 100644 --- a/src/gns/w32nsp-resolve.c +++ b/src/gns/w32nsp-resolve.c | |||
@@ -206,6 +206,9 @@ main (int argc, char **argv) | |||
206 | else | 206 | else |
207 | wargc -= 1; | 207 | wargc -= 1; |
208 | } | 208 | } |
209 | else if (wargc == 3) | ||
210 | { | ||
211 | } | ||
209 | else | 212 | else |
210 | { | 213 | { |
211 | fprintf (stderr, "Usage: %S <record type> <service name> <NSP library path> <NSP id>\n" | 214 | fprintf (stderr, "Usage: %S <record type> <service name> <NSP library path> <NSP id>\n" |
@@ -376,6 +379,65 @@ main (int argc, char **argv) | |||
376 | FreeLibrary (nsp); | 379 | FreeLibrary (nsp); |
377 | } | 380 | } |
378 | } | 381 | } |
382 | else if (wargc == 3) | ||
383 | { | ||
384 | int s; | ||
385 | ADDRINFOW hints; | ||
386 | ADDRINFOW *result; | ||
387 | ADDRINFOW *pos; | ||
388 | |||
389 | memset (&hints, 0, sizeof (struct addrinfo)); | ||
390 | hints.ai_family = AF_UNSPEC; | ||
391 | hints.ai_socktype = SOCK_STREAM; | ||
392 | |||
393 | if (0 != (s = GetAddrInfoW (wargv[2], NULL, &hints, &result))) | ||
394 | { | ||
395 | fprintf (stderr, "Cound not resolve `%S' using GetAddrInfoW: %lu\n", | ||
396 | wargv[2], GetLastError ()); | ||
397 | } | ||
398 | else | ||
399 | { | ||
400 | for (pos = result; pos != NULL; pos = pos->ai_next) | ||
401 | { | ||
402 | wchar_t tmpbuf[1024]; | ||
403 | DWORD buflen = 1024; | ||
404 | if (0 == WSAAddressToStringW (pos->ai_addr, pos->ai_addrlen, NULL, tmpbuf, &buflen)) | ||
405 | fprintf (stderr, "Result:\n" | ||
406 | " flags: 0x%X\n" | ||
407 | " family: 0x%X\n" | ||
408 | " socktype: 0x%X\n" | ||
409 | " protocol: 0x%X\n" | ||
410 | " addrlen: %u\n" | ||
411 | " addr: %S\n" | ||
412 | " canonname: %S\n", | ||
413 | pos->ai_flags, | ||
414 | pos->ai_family, | ||
415 | pos->ai_socktype, | ||
416 | pos->ai_protocol, | ||
417 | pos->ai_addrlen, | ||
418 | tmpbuf, | ||
419 | pos->ai_canonname); | ||
420 | else | ||
421 | fprintf (stderr, "Result:\n" | ||
422 | " flags: 0x%X\n" | ||
423 | " family: 0x%X\n" | ||
424 | " socktype: 0x%X\n" | ||
425 | " protocol: 0x%X\n" | ||
426 | " addrlen: %u\n" | ||
427 | " addr: %S\n" | ||
428 | " canonname: %S\n", | ||
429 | pos->ai_flags, | ||
430 | pos->ai_family, | ||
431 | pos->ai_socktype, | ||
432 | pos->ai_protocol, | ||
433 | pos->ai_addrlen, | ||
434 | L"<can't stringify>", | ||
435 | pos->ai_canonname); | ||
436 | } | ||
437 | if (NULL != result) | ||
438 | FreeAddrInfoW (result); | ||
439 | } | ||
440 | } | ||
379 | WSACleanup(); | 441 | WSACleanup(); |
380 | return r; | 442 | return r; |
381 | } | 443 | } |