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. * 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); on_reconnect_retry, session);
evtimer_add(&session->ev_connection_retry, &tv); 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. * 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; bool last_client;
va_list ap; va_list ap;
char *message = NULL;
TAILQ_REMOVE(&client->tmate_session->clients, client, node); TAILQ_REMOVE(&client->tmate_session->clients, client, node);
last_client = TAILQ_EMPTY(&client->tmate_session->clients); last_client = TAILQ_EMPTY(&client->tmate_session->clients);
if (fmt && last_client) { if (fmt && last_client) {
va_start(ap, fmt); va_start(ap, fmt);
__tmate_status_message(fmt, ap); xvasprintf(&message, fmt, ap);
va_end(ap); va_end(ap);
tmate_status_message("%s", message);
} }
tmate_debug("SSH client killed (%s)", client->server_ip); 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) if (last_client)
tmate_reconnect_session(client->tmate_session); tmate_reconnect_session(client->tmate_session, message);
free(client->server_ip); free(client->server_ip);
free(client); free(client);

View File

@ -195,7 +195,7 @@ struct tmate_session {
extern struct tmate_session tmate_session; extern struct tmate_session tmate_session;
extern void tmate_session_init(struct event_base *base); extern void tmate_session_init(struct event_base *base);
extern void tmate_session_start(void); 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 */ /* tmate-debug.c */
extern void tmate_print_stack_trace(void); extern void tmate_print_stack_trace(void);