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);
#ifdef TMATE
tmate_write_fin();
#endif
RB_REMOVE(sessions, &sessions, 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(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_SYNC_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]])
// Any of the array can be []
[TMATE_OUT_WRITE_COPY_MODE, int: pane_id, string: str]
[TMATE_OUT_FIN]
*/
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_sync_copy_mode(struct window_pane *wp);
extern void tmate_write_copy_mode(struct window_pane *wp, const char *str);
extern void tmate_write_fin(void);
/* tmate-decoder.c */