summaryrefslogtreecommitdiff
path: root/server/src/session.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/session.c')
-rw-r--r--server/src/session.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/server/src/session.c b/server/src/session.c
index 8955ff9..70a1cf1 100644
--- a/server/src/session.c
+++ b/server/src/session.c
@@ -12,6 +12,7 @@ int init_session(int socket) {
ses->id = next_id;
next_id++;
ses->socket = socket;
+ ses->alive = 1;
list_add(&ses->list, &sessions);
return ses->id;
}
@@ -39,3 +40,16 @@ size_t read_session(int id, char *data, size_t size) {
return -1;
return read(ses->socket, data, size);
}
+
+int num_alive_sessions(void) {
+ int ret = 0;
+
+ struct list_head *temp = sessions.next;
+ while (temp != NULL) {
+ if (container_of(temp, struct session, list)->alive == 1)
+ ret++;
+ temp = temp->next;
+ }
+
+ return ret;
+}