From 3ad79d43f91668fb50049d334b0717e4b0bd0397 Mon Sep 17 00:00:00 2001 From: Nicolas Viennot Date: Sat, 2 Jan 2016 22:19:06 -0500 Subject: [PATCH] Avoid sending innapropriate client_left() msgs to proxy --- tmate-proxy.c | 7 +++++++ tmux.h | 3 +++ 2 files changed, 10 insertions(+) diff --git a/tmate-proxy.c b/tmate-proxy.c index c8b4606b..7af94a78 100644 --- a/tmate-proxy.c +++ b/tmate-proxy.c @@ -196,6 +196,8 @@ void tmate_notify_client_join(__unused struct tmate_session *session, if (!tmate_has_proxy()) return; + c->flags |= CLIENT_TMATE_NOTIFIED_JOIN; + pack(array, 5); pack(int, TMATE_CTL_CLIENT_JOIN); pack(int, c->id); @@ -212,6 +214,11 @@ void tmate_notify_client_left(__unused struct tmate_session *session, if (!tmate_has_proxy()) return; + if (!(c->flags & CLIENT_TMATE_NOTIFIED_JOIN)) + return; + + c->flags &= ~CLIENT_TMATE_NOTIFIED_JOIN; + pack(array, 2); pack(int, TMATE_CTL_CLIENT_LEFT); pack(int, c->id); diff --git a/tmux.h b/tmux.h index e4fc5824..01575cc9 100644 --- a/tmux.h +++ b/tmux.h @@ -1280,6 +1280,9 @@ struct client { #define CLIENT_256COLOURS 0x20000 #define CLIENT_IDENTIFIED 0x40000 #define CLIENT_STATUSFORCE 0x80000 +#ifdef TMATE_SLAVE +#define CLIENT_TMATE_NOTIFIED_JOIN 0x10000000 +#endif int flags; struct key_table *keytable;