summaryrefslogtreecommitdiff
path: root/contrib/bind/tests/test_getaddr.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bind/tests/test_getaddr.c')
-rw-r--r--contrib/bind/tests/test_getaddr.c160
1 files changed, 0 insertions, 160 deletions
diff --git a/contrib/bind/tests/test_getaddr.c b/contrib/bind/tests/test_getaddr.c
deleted file mode 100644
index 9ca21890e225..000000000000
--- a/contrib/bind/tests/test_getaddr.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include <port_before.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <ctype.h>
-#include <port_after.h>
-
-char *flags[] = {
- " AI_PASSIVE",
- " AI_CANONNAME",
- " AI_NUMERICHOST",
- " 0x00000008",
- " 0x00000010",
- " 0x00000020",
- " 0x00000040",
- " 0x00000080",
- " 0x00000100",
- " 0x00000200",
- " 0x00000400",
- " 0x00000800",
- " 0x00001000",
- " 0x00002000",
- " 0x00004000",
- " 0x00008000",
- " 0x00010000",
- " 0x00020000",
- " 0x00040000",
- " 0x00080000",
- " 0x00100000",
- " 0x00200000",
- " 0x00400000",
- " 0x00800000",
- " 0x01000000",
- " 0x02000000",
- " 0x04000000",
- " 0x08000000",
- " 0x10000000",
- " 0x20000000",
- " 0x40000000",
- " 0x80000000"
-};
-
-void
-print_ai(struct addrinfo *answer, int hints) {
- int i;
-
- if (answer == NULL) {
- fprintf(stdout, "No %s\n", hints ? "Hints" : "Answer");
- return;
- }
-
- fprintf(stdout, "%s:\n", hints ? "Hints" : "Answer");
-
- while (answer) {
- fputs("flags:", stdout);
- for (i = 0; i < 32 ; i++)
- if (answer->ai_flags & (1 << i))
- fputs(flags[i], stdout);
- fputs("\n", stdout);
- fprintf(stdout, "family: %d, socktype: %d, protocol: %d\n",
- answer->ai_family, answer->ai_socktype, answer->ai_protocol);
- if (hints)
- return;
-
- if (answer->ai_canonname != NULL)
- fprintf(stdout, "canonname: \"%s\"\n",
- answer->ai_canonname);
- else
- fputs("canonname: --none--\n", stdout);
-
- fprintf(stdout, "addrlen: %d\n", answer->ai_addrlen);
-
- for (i = 0; i < answer->ai_addrlen; i++)
- fprintf(stdout, "%s%02x", (i == 0) ? "0x" : "",
- ((unsigned char*)(answer->ai_addr))[i]);
- fputs("\n", stdout);
-
- for (i = 0; i < answer->ai_addrlen; i++)
- fprintf(stdout, "%s%d", (i == 0) ? "" : ".",
- ((unsigned char*)(answer->ai_addr))[i]);
- fputs("\n", stdout);
-
- for (i = 0; i < answer->ai_addrlen; i++) {
- int c = ((unsigned char*)(answer->ai_addr))[i];
- fprintf(stdout, "%c", (isascii(c) && isprint(c)) ?
- c : '.');
- }
- fputs("\n", stdout);
-
- answer = answer->ai_next;
- }
-}
-
-void
-usage() {
- fputs("usage:", stdout);
- fputs("\t-h <hostname>\n", stdout);
- fputs("\t-s <service>\n", stdout);
- fputs("\t-p AI_PASSIVE\n", stdout);
- fputs("\t-c AI_CANONNAME\n", stdout);
- fputs("\t-n AI_NUMERICHOST\n", stdout);
- fputs("\t-4 AF_INET4\n", stdout);
- fputs("\t-6 AF_INET6\n", stdout);
- fputs("\t-l AF_LOCAL\n", stdout);
- fputs("\t-u IPPROTO_UDP\n", stdout);
- fputs("\t-t IPPROTO_TCP\n", stdout);
- fputs("\t-S SOCK_STREAM\n", stdout);
- fputs("\t-D SOCK_DGRAM\n", stdout);
- fputs("\t-R SOCK_RAW\n", stdout);
- fputs("\t-M SOCK_RDM\n", stdout);
- fputs("\t-P SOCK_SEQPACKET\n", stdout);
- exit(1);
-}
-
-main(int argc, char **argv) {
- int c;
- char *hostname = NULL;
- char *service = NULL;
- struct addrinfo info;
- int res;
- struct addrinfo *answer;
-
- memset(&info, 0, sizeof info);
-
- while ((c = getopt(argc, argv, "h:s:pcn46ltuSDRMP")) != -1) {
- switch (c) {
- case 'h': hostname = optarg; break;
- case 's': service = optarg; break;
- case 'p': info.ai_flags |= AI_PASSIVE; break;
- case 'c': info.ai_flags |= AI_CANONNAME; break;
- case 'n': info.ai_flags |= AI_NUMERICHOST; break;
- case '4': info.ai_family = AF_INET; break;
- case '6': info.ai_family = AF_INET6; break;
-#ifdef AF_LOCAL
- case 'l': info.ai_family = AF_LOCAL; break;
-#else
- case 'l': fprintf(stdout, "AF_LOCAL not supported\n"); break;
-#endif
- case 't': info.ai_protocol = IPPROTO_TCP; break;
- case 'u': info.ai_protocol = IPPROTO_UDP; break;
- case 'S': info.ai_socktype = SOCK_STREAM; break;
- case 'D': info.ai_socktype = SOCK_DGRAM; break;
- case 'R': info.ai_socktype = SOCK_RAW; break;
- case 'M': info.ai_socktype = SOCK_RDM; break;
- case 'P': info.ai_socktype = SOCK_SEQPACKET; break;
- case '?': usage(); break;
- }
-
- }
- res = getaddrinfo(hostname, service, &info, &answer);
- if (res) {
- fprintf(stdout, "%s\n", gai_strerror(res));
- } else {
- print_ai(&info, 1);
- print_ai(answer, 0);
- freeaddrinfo(answer);
- }
- exit (0);
-}