Provide better reconnection error message

This commit is contained in:
Nicolas Viennot 2016-03-28 23:29:49 -04:00
parent 46a29037d4
commit c9813a8c42
3 changed files with 10 additions and 5 deletions

View File

@ -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.

View File

@ -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);

View File

@ -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);