Use a session termination message

This commit is contained in:
Nicolas Viennot 2016-01-02 11:03:04 -05:00
parent 924eb01299
commit 0a3bd83b19
4 changed files with 13 additions and 0 deletions

View File

@ -215,6 +215,10 @@ session_destroy(struct session *s)
log_debug("session %s destroyed", s->name); log_debug("session %s destroyed", s->name);
#ifdef TMATE
tmate_write_fin();
#endif
RB_REMOVE(sessions, &sessions, s); RB_REMOVE(sessions, &sessions, s);
notify_session_closed(s); notify_session_closed(s);

View File

@ -224,3 +224,9 @@ void tmate_write_copy_mode(struct window_pane *wp, const char *str)
pack(int, wp->id); pack(int, wp->id);
pack(string, str); pack(string, str);
} }
void tmate_write_fin(void)
{
pack(array, 1);
pack(int, TMATE_OUT_FIN);
}

View File

@ -48,6 +48,7 @@ enum tmate_daemon_out_msg_types {
TMATE_OUT_STATUS, TMATE_OUT_STATUS,
TMATE_OUT_SYNC_COPY_MODE, TMATE_OUT_SYNC_COPY_MODE,
TMATE_OUT_WRITE_COPY_MODE, TMATE_OUT_WRITE_COPY_MODE,
TMATE_OUT_FIN,
}; };
/* /*
@ -64,6 +65,7 @@ enum tmate_daemon_out_msg_types {
[int: type, string: input_prompt, string: input_str]]) [int: type, string: input_prompt, string: input_str]])
// Any of the array can be [] // Any of the array can be []
[TMATE_OUT_WRITE_COPY_MODE, int: pane_id, string: str] [TMATE_OUT_WRITE_COPY_MODE, int: pane_id, string: str]
[TMATE_OUT_FIN]
*/ */
enum tmate_daemon_in_msg_types { enum tmate_daemon_in_msg_types {

View File

@ -84,6 +84,7 @@ extern void tmate_failed_cmd(int client_id, const char *cause);
extern void tmate_status(const char *left, const char *right); extern void tmate_status(const char *left, const char *right);
extern void tmate_sync_copy_mode(struct window_pane *wp); extern void tmate_sync_copy_mode(struct window_pane *wp);
extern void tmate_write_copy_mode(struct window_pane *wp, const char *str); extern void tmate_write_copy_mode(struct window_pane *wp, const char *str);
extern void tmate_write_fin(void);
/* tmate-decoder.c */ /* tmate-decoder.c */