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;
}