Added a debug program that performs conversions from DNS names to realms.
authorkouril <kouril>
Thu, 17 Feb 2005 12:43:34 +0000 (12:43 +0000)
committerkouril <kouril>
Thu, 17 Feb 2005 12:43:34 +0000 (12:43 +0000)
(Thanks to Jari Ahonen for it).

src/krbhostname.c [new file with mode: 0644]

diff --git a/src/krbhostname.c b/src/krbhostname.c
new file mode 100644 (file)
index 0000000..13f8edb
--- /dev/null
@@ -0,0 +1,52 @@
+#include <stdio.h>\r
+#include <unistd.h>\r
+#include <string.h>\r
+#include <sys/socket.h>\r
+#include <netdb.h>\r
+\r
+#ifndef MAXHOSTNAMELEN\r
+#define MAXHOSTNAMELEN  64\r
+#endif\r
+\r
+int main(int argc, char **argv)\r
+{\r
+    struct addrinfo *ai, hints;\r
+    char *hostname;\r
+    char localname[MAXHOSTNAMELEN];\r
+    char hnamebuf[NI_MAXHOST];\r
+\r
+    if(gethostname(localname, MAXHOSTNAMELEN)) {\r
+        return 1;\r
+    }\r
+    printf("gethostname() returns \"%s\"\n", localname);\r
+\r
+    if(argc == 2) {\r
+        hostname = argv[1];\r
+    } else {\r
+        hostname = localname;\r
+    }\r
+    printf("Using \"%s\" as service host name\n", hostname);\r
+\r
+    memset(&hints, 0, sizeof(hints));\r
+    hints.ai_family = AF_INET;\r
+    if(getaddrinfo(hostname, NULL, &hints, &ai)) {\r
+        printf("getaddrinfo() failed\n");\r
+        return 1;\r
+    }\r
+\r
+    if(ai->ai_canonname) {\r
+        hostname = strdup(ai->ai_canonname);\r
+        printf("Canonical hostname from getaddrinfo() is \"%s\"\n", hostname);\r
+    }\r
+    \r
+    if(getnameinfo(ai->ai_addr, ai->ai_addrlen, hnamebuf, sizeof(hnamebuf),\r
+        NULL, 0, NI_NAMEREQD)) {\r
+        printf("getnameinfo() failed\n");\r
+        return 1;\r
+    }\r
+\r
+    printf("Hostname from getnameinfo() is \"%s\"\n", hnamebuf);\r
+\r
+    freeaddrinfo(ai);\r
+    return 0;\r
+}\r