aboutsummaryrefslogtreecommitdiff
path: root/src/gns/w32nsp-resolve.c
diff options
context:
space:
mode:
authorLRN <lrn1986@gmail.com>2013-12-19 18:39:07 +0000
committerLRN <lrn1986@gmail.com>2013-12-19 18:39:07 +0000
commitd36bd0d011441ddd76f7136b4a59bf98687c236b (patch)
tree1105fa2e74548c0148c2f973a885476f9f4c33e7 /src/gns/w32nsp-resolve.c
parentaac71444fe489dcc0351043e26ec5781b9bbc148 (diff)
downloadgnunet-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.c62
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}