session support get/set current packet
This commit is contained in:
@@ -294,11 +294,19 @@ void session_set_s2c_1st_md(struct session *sess, struct metadata *md)
|
||||
|
||||
struct metadata *session_get0_c2s_1st_md(struct session *sess)
|
||||
{
|
||||
if (sess->c2s_1st_md.len == 0)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
return &sess->c2s_1st_md;
|
||||
}
|
||||
|
||||
struct metadata *session_get0_s2c_1st_md(struct session *sess)
|
||||
{
|
||||
if (sess->s2c_1st_md.len == 0)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
return &sess->s2c_1st_md;
|
||||
}
|
||||
|
||||
@@ -323,6 +331,36 @@ uint64_t session_get_last_time(struct session *sess)
|
||||
return sess->last_time;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* session current packet
|
||||
******************************************************************************/
|
||||
|
||||
// session current packet
|
||||
void session_set0_cur_pkt(struct session *sess, const struct packet *pkt)
|
||||
{
|
||||
sess->cur_pkt = pkt;
|
||||
}
|
||||
|
||||
struct packet *session_get0_cur_pkt(struct session *sess)
|
||||
{
|
||||
return sess->cur_pkt;
|
||||
}
|
||||
|
||||
// session current dir
|
||||
void session_set_cur_dir(struct session *sess, enum session_dir dir)
|
||||
{
|
||||
sess->cur_dir = dir;
|
||||
}
|
||||
|
||||
enum session_dir session_get_cur_dir(struct session *sess)
|
||||
{
|
||||
return sess->cur_dir;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* session event
|
||||
******************************************************************************/
|
||||
|
||||
// session event
|
||||
bool session_push_event(struct session *sess, uint32_t event)
|
||||
{
|
||||
|
||||
@@ -64,9 +64,16 @@ struct session_key
|
||||
uint64_t security_zone;
|
||||
};
|
||||
|
||||
enum session_dir
|
||||
{
|
||||
SESSION_DIR_C2S = 0,
|
||||
SESSION_DIR_S2C = 1,
|
||||
};
|
||||
|
||||
struct metadata
|
||||
{
|
||||
char data[64]; // TODO
|
||||
int len;
|
||||
};
|
||||
|
||||
struct session;
|
||||
@@ -121,7 +128,18 @@ void session_set_create_time(struct session *sess, uint64_t timestamp);
|
||||
void session_set_last_time(struct session *sess, uint64_t timestamp);
|
||||
uint64_t session_get_create_time(struct session *sess);
|
||||
uint64_t session_get_last_time(struct session *sess);
|
||||
uint64_t session_get_expire_time(struct session *sess);
|
||||
|
||||
/******************************************************************************
|
||||
* session current packet
|
||||
******************************************************************************/
|
||||
|
||||
// session current packet
|
||||
void session_set0_cur_pkt(struct session *sess, const struct packet *pkt);
|
||||
struct packet *session_get0_cur_pkt(struct session *sess);
|
||||
|
||||
// session current dir
|
||||
void session_set_cur_dir(struct session *sess, enum session_dir dir);
|
||||
enum session_dir session_get_cur_dir(struct session *sess);
|
||||
|
||||
/******************************************************************************
|
||||
* session event
|
||||
|
||||
@@ -168,7 +168,7 @@ void session_manager_set_session_eventcb(struct session_manager *mgr, session_ev
|
||||
mgr->arg = arg;
|
||||
}
|
||||
|
||||
struct session *session_manager_find_sessions(struct session_manager *mgr, const struct packet *pkt)
|
||||
struct session *session_manager_find_session(struct session_manager *mgr, const struct packet *pkt)
|
||||
{
|
||||
struct session_key key;
|
||||
// TODO packet to key
|
||||
|
||||
@@ -49,6 +49,14 @@ struct session
|
||||
uint64_t create_time;
|
||||
uint64_t last_time;
|
||||
|
||||
/******************************
|
||||
* Session Current Packet
|
||||
******************************/
|
||||
|
||||
// session current packet
|
||||
struct packet *cur_pkt;
|
||||
enum session_dir cur_dir;
|
||||
|
||||
/******************************
|
||||
* Session Ev Queue Zone
|
||||
******************************/
|
||||
|
||||
Reference in New Issue
Block a user