Add session timer
This commit is contained in:
@@ -184,11 +184,6 @@ void session_set_last_time(struct session *sess, uint64_t timestamp)
|
||||
sess->last_time = timestamp;
|
||||
}
|
||||
|
||||
void session_set_expire_time(struct session *sess, uint64_t timestamp)
|
||||
{
|
||||
sess->expire_time = timestamp;
|
||||
}
|
||||
|
||||
uint64_t session_get_create_time(struct session *sess)
|
||||
{
|
||||
return sess->create_time;
|
||||
@@ -199,11 +194,6 @@ uint64_t session_get_last_time(struct session *sess)
|
||||
return sess->last_time;
|
||||
}
|
||||
|
||||
uint64_t session_get_expire_time(struct session *sess)
|
||||
{
|
||||
return sess->expire_time;
|
||||
}
|
||||
|
||||
// session event
|
||||
bool session_push_event(struct session *sess, uint32_t event)
|
||||
{
|
||||
@@ -304,3 +294,34 @@ void session_free_ex_data(struct session *sess, uint8_t idx)
|
||||
|
||||
sess->ex_data[idx] = NULL;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* session expire
|
||||
******************************************************************************/
|
||||
|
||||
// session expire
|
||||
void session_set_expirecb(struct session *sess, session_expire_cb fn, uint64_t abs_expire_ts)
|
||||
{
|
||||
struct timeout *timeout = &sess->timeout;
|
||||
|
||||
timeout_init(timeout, TIMEOUT_ABS);
|
||||
timeout_setcb(timeout, fn, sess);
|
||||
sess->abs_expire_ts = abs_expire_ts;
|
||||
}
|
||||
|
||||
void session_del_expirecb(struct session *sess)
|
||||
{
|
||||
struct timeout *timeout = &sess->timeout;
|
||||
|
||||
timeout_init(timeout, 0);
|
||||
sess->abs_expire_ts = 0;
|
||||
}
|
||||
|
||||
void session_run_expirecb(struct session *sess)
|
||||
{
|
||||
struct timeout *timeout = &sess->timeout;
|
||||
if (timeout->callback.fn)
|
||||
{
|
||||
timeout->callback.fn(timeout->callback.arg);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user