Module Name:    src
Committed By:   ozaki-r
Date:           Sun May 17 15:48:57 UTC 2015

Modified Files:
        src/tests/net/mcast: t_mcast.c

Log Message:
Save errno for errx


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/tests/net/mcast/t_mcast.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/mcast/t_mcast.c
diff -u src/tests/net/mcast/t_mcast.c:1.11 src/tests/net/mcast/t_mcast.c:1.12
--- src/tests/net/mcast/t_mcast.c:1.11	Fri Feb 27 13:15:49 2015
+++ src/tests/net/mcast/t_mcast.c	Sun May 17 15:48:57 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: t_mcast.c,v 1.11 2015/02/27 13:15:49 martin Exp $	*/
+/*	$NetBSD: t_mcast.c,v 1.12 2015/05/17 15:48:57 ozaki-r Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 #include <sys/cdefs.h>
 #ifdef __RCSID
-__RCSID("$NetBSD: t_mcast.c,v 1.11 2015/02/27 13:15:49 martin Exp $");
+__RCSID("$NetBSD: t_mcast.c,v 1.12 2015/05/17 15:48:57 ozaki-r Exp $");
 #else
 extern const char *__progname;
 #define getprogname() __progname
@@ -186,7 +186,7 @@ getsocket(const char *host, const char *
     int (*f)(int, const struct sockaddr *, socklen_t), socklen_t *slen,
     bool bug)
 {
-	int e, s;
+	int e, s, lasterrno = 0;
 	struct addrinfo hints, *ai0, *ai;
 	const char *cause = "?";
 
@@ -202,6 +202,7 @@ getsocket(const char *host, const char *
 	for (ai = ai0; ai; ai = ai->ai_next) {
 		s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
 		if (s == -1) {
+			lasterrno = errno;
 			cause = "socket";
 			continue;
 		}
@@ -220,13 +221,14 @@ getsocket(const char *host, const char *
 		*slen = ai->ai_addrlen;
 		break;
 out:
+		lasterrno = errno;
 		close(s);
 		s = -1;
 		continue;
 	}
 	freeaddrinfo(ai0);
 	if (s == -1)
-		ERRX(1, "%s (%s)", cause, strerror(errno));
+		ERRX(1, "%s (%s)", cause, strerror(lasterrno));
 	return s;
 }
 

Reply via email to