aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2005-05-16 00:54:47 +0000
committerRobert Watson <rwatson@FreeBSD.org>2005-05-16 00:54:47 +0000
commit31ae05021122b9925f4160dafa10e35a961aacad (patch)
treecc0b1003053f779559b586ff81bc0ea20eeef50f /tools
parent868ee99ce39a1ff2eeacaebaecbd6323987f4f8d (diff)
downloadsrc-31ae05021122b9925f4160dafa10e35a961aacad.tar.gz
src-31ae05021122b9925f4160dafa10e35a961aacad.zip
Add an #ifdef'd non-blocking version of the test.
Update copyright.
Notes
Notes: svn path=/head/; revision=146251
Diffstat (limited to 'tools')
-rw-r--r--tools/regression/netinet/tcpconnect/tcpconnect.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/tools/regression/netinet/tcpconnect/tcpconnect.c b/tools/regression/netinet/tcpconnect/tcpconnect.c
index 781a820eaac2..5037a988d9a5 100644
--- a/tools/regression/netinet/tcpconnect/tcpconnect.c
+++ b/tools/regression/netinet/tcpconnect/tcpconnect.c
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 2004 Robert N. M. Watson
+ * Copyright (c) 2004-2005 Robert N. M. Watson
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -116,8 +116,17 @@ tcpconnect_client(int argc, char *argv[])
if (sock == -1)
errx(-1, "socket: %s", strerror(errno));
+#ifdef NONBLOCK
+ if (fcntl(sock, F_SETFL, O_NONBLOCK) != 0)
+ errx(-1, "fcntl(F_SETFL): %s", strerror(errno));
+
+ if (connect(sock, (struct sockaddr *)&sin, sizeof(sin)) == -1
+ && errno != EINPROGRESS)
+ errx(-1, "connect: %s", strerror(errno));
+#else
if (connect(sock, (struct sockaddr *)&sin, sizeof(sin)) == -1)
errx(-1, "connect: %s", strerror(errno));
+#endif
close(sock);
}