diff options
Diffstat (limited to 'server/src/session.c')
-rw-r--r-- | server/src/session.c | 14 |
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; +} |