From c9813a8c4249f930750ee4793e0972db43048d2c Mon Sep 17 00:00:00 2001 From: Nicolas Viennot Date: Mon, 28 Mar 2016 23:29:49 -0400 Subject: [PATCH] Provide better reconnection error message --- tmate-session.c | 7 +++++-- tmate-ssh-client.c | 6 ++++-- tmate.h | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/tmate-session.c b/tmate-session.c index 6c9fea69..b43a261b 100644 --- a/tmate-session.c +++ b/tmate-session.c @@ -157,7 +157,7 @@ static void on_reconnect_retry(__unused evutil_socket_t fd, __unused short what, } } -void tmate_reconnect_session(struct tmate_session *session) +void tmate_reconnect_session(struct tmate_session *session, const char *message) { /* * We no longer have an SSH connection. Time to reconnect. @@ -171,7 +171,10 @@ void tmate_reconnect_session(struct tmate_session *session) on_reconnect_retry, session); evtimer_add(&session->ev_connection_retry, &tv); - tmate_status_message("Reconnecting..."); + if (message) + tmate_status_message("Reconnecting... (%s)", message); + else + tmate_status_message("Reconnecting..."); /* * This says that we'll need to send a snapshot of the current state. diff --git a/tmate-ssh-client.c b/tmate-ssh-client.c index 6a351483..7495d584 100644 --- a/tmate-ssh-client.c +++ b/tmate-ssh-client.c @@ -395,14 +395,16 @@ static void kill_ssh_client(struct tmate_ssh_client *client, { bool last_client; va_list ap; + char *message = NULL; TAILQ_REMOVE(&client->tmate_session->clients, client, node); last_client = TAILQ_EMPTY(&client->tmate_session->clients); if (fmt && last_client) { va_start(ap, fmt); - __tmate_status_message(fmt, ap); + xvasprintf(&message, fmt, ap); va_end(ap); + tmate_status_message("%s", message); } tmate_debug("SSH client killed (%s)", client->server_ip); @@ -429,7 +431,7 @@ static void kill_ssh_client(struct tmate_ssh_client *client, } if (last_client) - tmate_reconnect_session(client->tmate_session); + tmate_reconnect_session(client->tmate_session, message); free(client->server_ip); free(client); diff --git a/tmate.h b/tmate.h index fb764c54..f096a35c 100644 --- a/tmate.h +++ b/tmate.h @@ -195,7 +195,7 @@ struct tmate_session { extern struct tmate_session tmate_session; extern void tmate_session_init(struct event_base *base); extern void tmate_session_start(void); -extern void tmate_reconnect_session(struct tmate_session *session); +extern void tmate_reconnect_session(struct tmate_session *session, const char *message); /* tmate-debug.c */ extern void tmate_print_stack_trace(void);