mirror of
https://github.com/tmate-io/tmate.git
synced 2025-02-16 18:31:40 +01:00
Provide better reconnection error message
This commit is contained in:
parent
46a29037d4
commit
c9813a8c42
@ -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.
|
||||
|
@ -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);
|
||||
|
2
tmate.h
2
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);
|
||||
|
Loading…
Reference in New Issue
Block a user