summaryrefslogtreecommitdiff
path: root/mit-pthreads/tests/test_netdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'mit-pthreads/tests/test_netdb.c')
-rw-r--r--mit-pthreads/tests/test_netdb.c110
1 files changed, 110 insertions, 0 deletions
diff --git a/mit-pthreads/tests/test_netdb.c b/mit-pthreads/tests/test_netdb.c
new file mode 100644
index 00000000000..a944579237f
--- /dev/null
+++ b/mit-pthreads/tests/test_netdb.c
@@ -0,0 +1,110 @@
+/* ==== test_netdb.c =========================================================
+ * Copyright (c) 1995 by Greg Hudson, ghudson@.mit.edu
+ *
+ * Description : Test netdb calls.
+ *
+ * 1.00 95/01/05 ghudson
+ * -Started coding this file.
+ */
+
+#define PTHREAD_KERNEL /* Needed for OK and NOTOK defines */
+#include <pthread.h>
+#include <string.h>
+#include <stdio.h>
+#include <netdb.h>
+#include <errno.h>
+
+int debug = 0;
+
+static int test_serv()
+{
+ struct servent *serv;
+ char answer[1024];
+
+ if (serv = getservbyname("telnet", "tcp"))
+ printf("getservbyname -> port %d\n", ntohs(serv->s_port));
+ else
+ printf("getservbyname -> NULL (bad)\n");
+
+ if (serv = getservbyname_r("telnet", "tcp", serv, answer, 1024))
+ printf("getservbyname_r -> port %d\n", ntohs(serv->s_port));
+ else
+ printf("getservbyname_r -> NULL (bad)\n");
+ return(OK);
+}
+
+static int test_host()
+{
+ struct hostent *host;
+ struct in_addr addr;
+ char answer[1024];
+ int error;
+
+ if (host = gethostbyname("maze.mit.edu")) {
+ memcpy(&addr, host->h_addr, sizeof(addr));
+ printf("gethostbyname -> %s\n", inet_ntoa(addr));
+ } else {
+ printf("gethostbyname -> NULL (bad)\n");
+ host = (struct hostent *)answer;
+ }
+
+ if (host = gethostbyname_r("maze.mit.edu", host, answer, 1024, &error)) {
+ memcpy(&addr, host->h_addr, sizeof(addr));
+ printf("gethostbyname_r -> %s\n", inet_ntoa(addr));
+ } else {
+ printf("gethostbyname_r -> NULL (bad)\n");
+ }
+ return(OK);
+}
+
+static int test_localhost()
+{
+ struct hostent *host;
+
+ if (host = gethostbyname("127.0.0.1")) {
+ return(OK);
+ }
+ return(NOTOK);
+}
+
+/* ==========================================================================
+ * usage();
+ */
+void usage(void)
+{
+ printf("test_netdb [-d?]\n");
+ errno = 0;
+}
+
+main(int argc, char **argv)
+{
+
+ /* Getopt variables. */
+ extern int optind, opterr;
+ extern char *optarg;
+ char ch;
+
+ while ((ch = getopt(argc, argv, "d?")) != (char)EOF) {
+ switch (ch) {
+ case 'd':
+ debug++;
+ break;
+ case '?':
+ usage();
+ return(OK);
+ default:
+ usage();
+ return(NOTOK);
+ }
+ }
+
+ printf("test_netdb START\n");
+
+ if (test_serv() || test_localhost() || test_host()) {
+ printf("test_netdb FAILED\n");
+ exit(1);
+ }
+
+ printf("test_netdb PASSED\n");
+ exit(0);
+}