version 1.79, 2018/05/04 08:21:42 |
version 1.80, 2018/08/02 11:56:12 |
|
|
|
|
struct sessions sessions; |
struct sessions sessions; |
static u_int next_session_id; |
static u_int next_session_id; |
struct session_groups session_groups; |
struct session_groups session_groups = RB_INITIALIZER(&session_groups); |
|
|
static void session_free(int, short, void *); |
static void session_free(int, short, void *); |
|
|
|
|
static void session_group_remove(struct session *); |
static void session_group_remove(struct session *); |
static void session_group_synchronize1(struct session *, struct session *); |
static void session_group_synchronize1(struct session *, struct session *); |
|
|
RB_GENERATE(sessions, session, entry, session_cmp); |
|
|
|
int |
int |
session_cmp(struct session *s1, struct session *s2) |
session_cmp(struct session *s1, struct session *s2) |
{ |
{ |
return (strcmp(s1->name, s2->name)); |
return (strcmp(s1->name, s2->name)); |
} |
} |
|
RB_GENERATE(sessions, session, entry, session_cmp); |
|
|
RB_GENERATE(session_groups, session_group, entry, session_group_cmp); |
static int |
|
|
int |
|
session_group_cmp(struct session_group *s1, struct session_group *s2) |
session_group_cmp(struct session_group *s1, struct session_group *s2) |
{ |
{ |
return (strcmp(s1->name, s2->name)); |
return (strcmp(s1->name, s2->name)); |
} |
} |
|
RB_GENERATE_STATIC(session_groups, session_group, entry, session_group_cmp); |
|
|
/* |
/* |
* Find if session is still alive. This is true if it is still on the global |
* Find if session is still alive. This is true if it is still on the global |