6 #include <afs/cellconfig.h>
9 #include <tests/tap/basic.h>
13 * Check if the current machine's hostname resolves to the loopback
17 afstest_IsLoopbackNetworkDefault(void)
19 char hostname[MAXHOSTCHARS];
23 gethostname(hostname, sizeof(hostname));
24 host = gethostbyname(hostname);
26 skip_all("Can't resolve hostname %s\n", hostname);
28 memcpy(&addr, host->h_addr, sizeof(addr));
30 return(rx_IsLoopbackAddr(ntohl(addr)));
34 * Skips all TAP tests if the current machine's hostname resolves to the
38 afstest_SkipTestsIfLoopbackNetIsDefault(void)
42 retval = afstest_IsLoopbackNetworkDefault();
44 skip_all("Default IP address is on the loopback network!\n");
50 * Skips all TAP tests if the current machine's hostname can't be resolved
54 afstest_SkipTestsIfBadHostname(void)
56 char hostname[MAXHOSTCHARS];
59 gethostname(hostname, sizeof(hostname));
60 host = gethostbyname(hostname);
62 skip_all("Can't resolve hostname %s\n", hostname);
66 * Skips all TAP tests if a server is already running on this system.
68 * \param name[in] IANA service name, e.g. "afs3-vlserver"
71 afstest_SkipTestsIfServerRunning(char *name)
75 struct sockaddr_in addr;
78 service = afsconf_FindService(name);
80 fprintf(stderr, "Unknown service name: %s\n", name);
83 sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
84 if (sock == OSI_NULLSOCKET) {
85 fprintf(stderr, "Failed to get socket file descriptor.\n");
88 addr.sin_family = AF_INET;
89 addr.sin_addr.s_addr = htonl(INADDR_ANY);
90 addr.sin_port = service; /* Already in network byte order. */
91 #ifdef STRUCT_SOCKADDR_HAS_SA_LEN
92 addr.sin_len = sizeof(addr);
94 code = bind(sock, (struct sockaddr *)&addr, sizeof(addr));
96 if (errno == EADDRINUSE) {
97 skip_all("Service %s is already running.\n", name);