summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd T. Fries <todd@cvs.openbsd.org>2002-02-01 18:51:45 +0000
committerTodd T. Fries <todd@cvs.openbsd.org>2002-02-01 18:51:45 +0000
commit15f6463e4e76b9a1d393ad96a66a891e29e168df (patch)
tree934e0b2b4c45fa9118fc55eec2a3eb3f71a10096
parenta11a0fe9cc20035ea8df2f93542de8798d4ea4e5 (diff)
getaddrinfo regress
-rw-r--r--regress/lib/libc_r/getaddrinfo/Makefile5
-rw-r--r--regress/lib/libc_r/getaddrinfo/getaddrinfo.c94
-rw-r--r--regress/lib/libpthread/getaddrinfo/Makefile5
-rw-r--r--regress/lib/libpthread/getaddrinfo/getaddrinfo.c94
4 files changed, 198 insertions, 0 deletions
diff --git a/regress/lib/libc_r/getaddrinfo/Makefile b/regress/lib/libc_r/getaddrinfo/Makefile
new file mode 100644
index 00000000000..59f66ed04ef
--- /dev/null
+++ b/regress/lib/libc_r/getaddrinfo/Makefile
@@ -0,0 +1,5 @@
+# $OpenBSD: Makefile,v 1.1 2002/02/01 18:51:44 todd Exp $
+
+PROG= getaddrinfo
+
+.include <bsd.regress.mk>
diff --git a/regress/lib/libc_r/getaddrinfo/getaddrinfo.c b/regress/lib/libc_r/getaddrinfo/getaddrinfo.c
new file mode 100644
index 00000000000..1ba2e5f6e68
--- /dev/null
+++ b/regress/lib/libc_r/getaddrinfo/getaddrinfo.c
@@ -0,0 +1,94 @@
+/* $OpenBSD: getaddrinfo.c,v 1.1 2002/02/01 18:51:44 todd Exp $ */
+
+/*
+ * Copyright (c) 2002 Todd T. Fries <todd@OpenBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+ * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <pthread.h>
+#include <netdb.h>
+#include <resolv.h>
+
+#include "test.h"
+
+void *func(void *);
+void *foo(void *);
+
+int
+main(argc, argv)
+ int argc;
+ char **argv;
+{
+ pthread_t threads[10];
+ char *status;
+ int i;
+
+ for (i = 0; i < 2; i++) {
+ CHECKr(pthread_create(&threads[i], NULL, func, (void *)i));
+ }
+
+ pthread_yield();
+ sleep(1); /* (ensure the thread is dead) */
+ CHECKr(pthread_join(threads[i-1],(void **)&status));
+
+ SUCCEED;
+}
+
+void *
+func(arg)
+ void *arg;
+{
+ struct addrinfo hints, *res;
+ char h[NI_MAXHOST];
+ int i,me = (int)arg;
+
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_family = PF_UNSPEC;
+ hints.ai_socktype = SOCK_DGRAM;
+ hints.ai_flags = AI_CANONNAME;
+
+ printf("Starting thread %d\n", me );
+ for(i=0;i<50;i++) {
+ if (getaddrinfo("www.openbsd.org", "0", &hints, &res))
+ printf("error on thread %p\n", pthread_self());
+ else {
+ getnameinfo(res->ai_addr, res->ai_addrlen, h, sizeof h,
+ NULL, 0, NI_NUMERICHOST);
+ printf("success on thread %d: %s is %s\n",
+ me, res->ai_canonname, h);
+ freeaddrinfo(res);
+ }
+ }
+ return NULL;
+}
+
+void *
+foo(arg)
+ void *arg;
+{
+ sleep(5);
+ exit(NOTOK);
+}
diff --git a/regress/lib/libpthread/getaddrinfo/Makefile b/regress/lib/libpthread/getaddrinfo/Makefile
new file mode 100644
index 00000000000..59f66ed04ef
--- /dev/null
+++ b/regress/lib/libpthread/getaddrinfo/Makefile
@@ -0,0 +1,5 @@
+# $OpenBSD: Makefile,v 1.1 2002/02/01 18:51:44 todd Exp $
+
+PROG= getaddrinfo
+
+.include <bsd.regress.mk>
diff --git a/regress/lib/libpthread/getaddrinfo/getaddrinfo.c b/regress/lib/libpthread/getaddrinfo/getaddrinfo.c
new file mode 100644
index 00000000000..1ba2e5f6e68
--- /dev/null
+++ b/regress/lib/libpthread/getaddrinfo/getaddrinfo.c
@@ -0,0 +1,94 @@
+/* $OpenBSD: getaddrinfo.c,v 1.1 2002/02/01 18:51:44 todd Exp $ */
+
+/*
+ * Copyright (c) 2002 Todd T. Fries <todd@OpenBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+ * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <pthread.h>
+#include <netdb.h>
+#include <resolv.h>
+
+#include "test.h"
+
+void *func(void *);
+void *foo(void *);
+
+int
+main(argc, argv)
+ int argc;
+ char **argv;
+{
+ pthread_t threads[10];
+ char *status;
+ int i;
+
+ for (i = 0; i < 2; i++) {
+ CHECKr(pthread_create(&threads[i], NULL, func, (void *)i));
+ }
+
+ pthread_yield();
+ sleep(1); /* (ensure the thread is dead) */
+ CHECKr(pthread_join(threads[i-1],(void **)&status));
+
+ SUCCEED;
+}
+
+void *
+func(arg)
+ void *arg;
+{
+ struct addrinfo hints, *res;
+ char h[NI_MAXHOST];
+ int i,me = (int)arg;
+
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_family = PF_UNSPEC;
+ hints.ai_socktype = SOCK_DGRAM;
+ hints.ai_flags = AI_CANONNAME;
+
+ printf("Starting thread %d\n", me );
+ for(i=0;i<50;i++) {
+ if (getaddrinfo("www.openbsd.org", "0", &hints, &res))
+ printf("error on thread %p\n", pthread_self());
+ else {
+ getnameinfo(res->ai_addr, res->ai_addrlen, h, sizeof h,
+ NULL, 0, NI_NUMERICHOST);
+ printf("success on thread %d: %s is %s\n",
+ me, res->ai_canonname, h);
+ freeaddrinfo(res);
+ }
+ }
+ return NULL;
+}
+
+void *
+foo(arg)
+ void *arg;
+{
+ sleep(5);
+ exit(NOTOK);
+}