Move client-detached into server_client_lost so it is fired even if a
authornicm <nicm@openbsd.org>
Mon, 5 Apr 2021 14:11:05 +0000 (14:11 +0000)
committernicm <nicm@openbsd.org>
Mon, 5 Apr 2021 14:11:05 +0000 (14:11 +0000)
client is closed unexpectedly.

usr.bin/tmux/server-client.c

index cdfc95c..0fc3920 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: server-client.c,v 1.370 2021/02/17 07:18:36 nicm Exp $ */
+/* $OpenBSD: server-client.c,v 1.371 2021/04/05 14:11:05 nicm Exp $ */
 
 /*
  * Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -299,6 +299,9 @@ server_client_lost(struct client *c)
        TAILQ_REMOVE(&clients, c, entry);
        log_debug("lost client %p", c);
 
+       if (c->flags & CLIENT_ATTACHED)
+               notify_client("client-detached", c);
+
        if (c->flags & CLIENT_CONTROL)
                control_stop(c);
        if (c->flags & CLIENT_TERMINAL)
@@ -1769,9 +1772,6 @@ server_client_check_exit(struct client *c)
                if (EVBUFFER_LENGTH(cf->buffer) != 0)
                        return;
        }
-
-       if (c->flags & CLIENT_ATTACHED)
-               notify_client("client-detached", c);
        c->flags |= CLIENT_EXITED;
 
        switch (c->exit_type) {