From 85740555605ab6461f35b2c6028f01aaeaa7e99f Mon Sep 17 00:00:00 2001 From: dtucker Date: Sun, 10 Dec 2017 05:55:29 +0000 Subject: [PATCH] Put remote client info back into the ClientAlive connection termination message. Based in part on diff from lars.nooden at gmail, ok djm --- usr.bin/ssh/packet.c | 10 +++++----- usr.bin/ssh/packet.h | 3 ++- usr.bin/ssh/serverloop.c | 6 ++++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/usr.bin/ssh/packet.c b/usr.bin/ssh/packet.c index 8ce7db0584a..039359eb546 100644 --- a/usr.bin/ssh/packet.c +++ b/usr.bin/ssh/packet.c @@ -1,4 +1,4 @@ -/* $OpenBSD: packet.c,v 1.267 2017/11/25 06:46:22 dtucker Exp $ */ +/* $OpenBSD: packet.c,v 1.268 2017/12/10 05:55:29 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1785,8 +1785,8 @@ ssh_packet_send_debug(struct ssh *ssh, const char *fmt,...) fatal("%s: %s", __func__, ssh_err(r)); } -static void -fmt_connection_id(struct ssh *ssh, char *s, size_t l) +void +sshpkt_fmt_connection_id(struct ssh *ssh, char *s, size_t l) { snprintf(s, l, "%.200s%s%s port %d", ssh->log_preamble ? ssh->log_preamble : "", @@ -1802,7 +1802,7 @@ sshpkt_fatal(struct ssh *ssh, const char *tag, int r) { char remote_id[512]; - fmt_connection_id(ssh, remote_id, sizeof(remote_id)); + sshpkt_fmt_connection_id(ssh, remote_id, sizeof(remote_id)); switch (r) { case SSH_ERR_CONN_CLOSED: @@ -1864,7 +1864,7 @@ ssh_packet_disconnect(struct ssh *ssh, const char *fmt,...) * Format the message. Note that the caller must make sure the * message is of limited size. */ - fmt_connection_id(ssh, remote_id, sizeof(remote_id)); + sshpkt_fmt_connection_id(ssh, remote_id, sizeof(remote_id)); va_start(args, fmt); vsnprintf(buf, sizeof(buf), fmt, args); va_end(args); diff --git a/usr.bin/ssh/packet.h b/usr.bin/ssh/packet.h index e5b3e3aecba..f0af467f2e5 100644 --- a/usr.bin/ssh/packet.h +++ b/usr.bin/ssh/packet.h @@ -1,4 +1,4 @@ -/* $OpenBSD: packet.h,v 1.83 2017/10/25 00:17:08 djm Exp $ */ +/* $OpenBSD: packet.h,v 1.84 2017/12/10 05:55:29 dtucker Exp $ */ /* * Author: Tatu Ylonen @@ -188,6 +188,7 @@ int sshpkt_get_cstring(struct ssh *ssh, char **valp, size_t *lenp); int sshpkt_get_ec(struct ssh *ssh, EC_POINT *v, const EC_GROUP *g); int sshpkt_get_bignum2(struct ssh *ssh, BIGNUM *v); int sshpkt_get_end(struct ssh *ssh); +void sshpkt_fmt_connection_id(struct ssh *ssh, char *s, size_t l); const u_char *sshpkt_ptr(struct ssh *, size_t *lenp); /* OLD API */ diff --git a/usr.bin/ssh/serverloop.c b/usr.bin/ssh/serverloop.c index 955656ec81e..309a2567fc2 100644 --- a/usr.bin/ssh/serverloop.c +++ b/usr.bin/ssh/serverloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: serverloop.c,v 1.199 2017/10/23 05:08:00 djm Exp $ */ +/* $OpenBSD: serverloop.c,v 1.200 2017/12/10 05:55:29 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -165,10 +165,12 @@ static void client_alive_check(struct ssh *ssh) { int channel_id; + char remote_id[512]; /* timeout, check to see how many we have had */ if (packet_inc_alive_timeouts() > options.client_alive_count_max) { - logit("Timeout, client not responding."); + sshpkt_fmt_connection_id(ssh, remote_id, sizeof(remote_id)); + logit("Timeout, client not responding from %s", remote_id); cleanup_exit(255); } -- 2.20.1