summaryrefslogtreecommitdiffstats
path: root/session.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2010-12-20 00:03:55 +0000
committerNicholas Marriott <nicm@openbsd.org>2010-12-20 00:03:55 +0000
commita51dcdc430150b688d56ec35e8c96ce6f978f68b (patch)
treef006980fa330e0dd844d56d142a80993ef60ac3e /session.c
parentc65d4220f019b8022ae0192d4a9014be5cc08f40 (diff)
Unify the way sessions are used by callbacks - store the address and use
the reference count, then check it is still on the global sessions list in the callback.
Diffstat (limited to 'session.c')
-rw-r--r--session.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/session.c b/session.c
index 7d3fb32d..c4d553cb 100644
--- a/session.c
+++ b/session.c
@@ -35,6 +35,18 @@ struct session_groups session_groups;
struct winlink *session_next_alert(struct winlink *);
struct winlink *session_previous_alert(struct winlink *);
+/*
+ * Find if session is still alive. This is true if it is still on the global
+ * sessions list.
+ */
+int
+session_alive(struct session *s)
+{
+ u_int idx;
+
+ return (session_index(s, &idx) == 0);
+}
+
/* Find session by name. */
struct session *
session_find(const char *name)