Module Name:    src
Committed By:   christos
Date:           Fri Mar  4 18:52:01 UTC 2016

Modified Files:
        src/tests/net/net: t_tcp.c

Log Message:
make it work on linux, be pickier about errors, and correct variable type.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/tests/net/net/t_tcp.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/net/net/t_tcp.c
diff -u src/tests/net/net/t_tcp.c:1.3 src/tests/net/net/t_tcp.c:1.4
--- src/tests/net/net/t_tcp.c:1.3	Thu Oct 17 08:53:28 2013
+++ src/tests/net/net/t_tcp.c	Fri Mar  4 13:52:01 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: t_tcp.c,v 1.3 2013/10/17 12:53:28 christos Exp $	*/
+/*	$NetBSD: t_tcp.c,v 1.4 2016/03/04 18:52:01 christos Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
 
 #include <sys/cdefs.h>
 #ifdef __RCSID
-__RCSID("$Id: t_tcp.c,v 1.3 2013/10/17 12:53:28 christos Exp $");
+__RCSID("$Id: t_tcp.c,v 1.4 2016/03/04 18:52:01 christos Exp $");
 #endif
 
 /* Example code. Should block; does with accept not paccept. */
@@ -61,6 +61,10 @@ __RCSID("$Id: t_tcp.c,v 1.3 2013/10/17 1
 #define FAIL(msg, ...)  ATF_CHECK_MSG(0, msg, ## __VA_ARGS__); goto fail
 #endif
 
+#ifdef __linux__
+#define paccept(a, b, c, d, e) accept4((a), (b), (c), (e))
+#endif
+
 static void
 ding(int al)
 {
@@ -70,7 +74,8 @@ static void 
 paccept_block(bool pacceptblock, bool fcntlblock)
 {
 	int srvr = -1, clnt = -1, as = -1;
-	int ok, fl, n;
+	int ok, fl;
+	ssize_t n;
 	char buf[10];
 	struct sockaddr_in sin, ba;
 	struct sigaction sa;
@@ -105,10 +110,12 @@ paccept_block(bool pacceptblock, bool fc
 
 	/* may not connect first time */
 	ok = connect(clnt, (struct sockaddr *) &ba, addrlen);
+	if (ok != -1 || errno != EINPROGRESS)
+		FAIL("expected connect to fail");
 	as = paccept(srvr, NULL, NULL, NULL, pacceptblock ? 0 : SOCK_NONBLOCK);
 	ok = connect(clnt, (struct sockaddr *) &ba, addrlen);
 	if (ok == -1 && errno != EISCONN)
-		FAIL("both connects failed");
+		FAIL("connect failed");
 
 #if 0
 	fl = fcntl(srvr, F_GETFL, 0);

Reply via email to