Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/telnet preserve errno because we are doing system ca...
details: https://anonhg.NetBSD.org/src/rev/54c2700c81dc
branches: trunk
changeset: 949328:54c2700c81dc
user: christos <christos%NetBSD.org@localhost>
date: Sat Jan 09 18:26:03 2021 +0000
description:
preserve errno because we are doing system calls between error printing
and error setting.
diffstat:
usr.bin/telnet/commands.c | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diffs (66 lines):
diff -r a1c4e0f54ce1 -r 54c2700c81dc usr.bin/telnet/commands.c
--- a/usr.bin/telnet/commands.c Sat Jan 09 18:22:42 2021 +0000
+++ b/usr.bin/telnet/commands.c Sat Jan 09 18:26:03 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: commands.c,v 1.78 2021/01/09 18:22:42 christos Exp $ */
+/* $NetBSD: commands.c,v 1.79 2021/01/09 18:26:03 christos Exp $ */
/*
* Copyright (C) 1997 and 1998 WIDE Project.
@@ -63,7 +63,7 @@
#if 0
static char sccsid[] = "@(#)commands.c 8.4 (Berkeley) 5/30/95";
#else
-__RCSID("$NetBSD: commands.c,v 1.78 2021/01/09 18:22:42 christos Exp $");
+__RCSID("$NetBSD: commands.c,v 1.79 2021/01/09 18:26:03 christos Exp $");
#endif
#endif /* not lint */
@@ -2086,7 +2086,7 @@
{
struct addrinfo hints, *res, *res0;
const char *cause = "telnet: unknown";
- int error;
+ int error, serrno = 0;
char *cmd, *hostp = 0;
const char *portp = 0;
const char *user = 0;
@@ -2193,6 +2193,7 @@
printf("Trying %s...\n", sockaddr_ntop(res->ai_addr));
net = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
if (net < 0) {
+ serrno = errno;
cause = "telnet: socket";
continue;
}
@@ -2203,11 +2204,13 @@
#if defined(IPSEC) && defined(IPSEC_POLICY_IPSEC)
if (setpolicy(net, res, ipsec_policy_in) < 0) {
+ serrno = errno;
(void) NetClose(net);
net = -1;
continue;
}
if (setpolicy(net, res, ipsec_policy_out) < 0) {
+ serrno = errno;
(void) NetClose(net);
net = -1;
continue;
@@ -2218,6 +2221,7 @@
if (res->ai_next) {
warn("Connect to address %s: ", sockaddr_ntop(res->ai_addr));
}
+ serrno = errno;
cause = "Unable to connect to remote host";
(void) NetClose(net);
net = -1;
@@ -2232,7 +2236,7 @@
}
freeaddrinfo(res0);
if (net < 0 || connected == 0) {
- warn("%s", cause);
+ warnc(serrno, "%s", cause);
return 0;
}
Home |
Main Index |
Thread Index |
Old Index