From dc2fb5835ed3fd66a919ff94b5d11c99b832ff0d Mon Sep 17 00:00:00 2001 From: kouril Date: Thu, 17 Feb 2005 12:43:34 +0000 Subject: [PATCH] Added a debug program that performs conversions from DNS names to realms. (Thanks to Jari Ahonen for it). --- src/krbhostname.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/krbhostname.c diff --git a/src/krbhostname.c b/src/krbhostname.c new file mode 100644 index 0000000..13f8edb --- /dev/null +++ b/src/krbhostname.c @@ -0,0 +1,52 @@ +#include +#include +#include +#include +#include + +#ifndef MAXHOSTNAMELEN +#define MAXHOSTNAMELEN 64 +#endif + +int main(int argc, char **argv) +{ + struct addrinfo *ai, hints; + char *hostname; + char localname[MAXHOSTNAMELEN]; + char hnamebuf[NI_MAXHOST]; + + if(gethostname(localname, MAXHOSTNAMELEN)) { + return 1; + } + printf("gethostname() returns \"%s\"\n", localname); + + if(argc == 2) { + hostname = argv[1]; + } else { + hostname = localname; + } + printf("Using \"%s\" as service host name\n", hostname); + + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_INET; + if(getaddrinfo(hostname, NULL, &hints, &ai)) { + printf("getaddrinfo() failed\n"); + return 1; + } + + if(ai->ai_canonname) { + hostname = strdup(ai->ai_canonname); + printf("Canonical hostname from getaddrinfo() is \"%s\"\n", hostname); + } + + if(getnameinfo(ai->ai_addr, ai->ai_addrlen, hnamebuf, sizeof(hnamebuf), + NULL, 0, NI_NAMEREQD)) { + printf("getnameinfo() failed\n"); + return 1; + } + + printf("Hostname from getnameinfo() is \"%s\"\n", hnamebuf); + + freeaddrinfo(ai); + return 0; +} -- 2.1.4