diff options
author | Nicolas Viennot <nicolas@viennot.biz> | 2016-03-28 23:29:49 -0400 |
---|---|---|
committer | Nicolas Viennot <nicolas@viennot.biz> | 2016-03-28 23:30:07 -0400 |
commit | c9813a8c4249f930750ee4793e0972db43048d2c (patch) | |
tree | a10d54507571103a586a063556c10935225cab84 | |
parent | 46a29037d43c774c07c1160994b15bb1a64c20a7 (diff) |
Provide better reconnection error message
-rw-r--r-- | tmate-session.c | 7 | ||||
-rw-r--r-- | tmate-ssh-client.c | 6 | ||||
-rw-r--r-- | 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); @@ -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); |