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)
|
struct metadata *session_get0_c2s_1st_md(struct session *sess)
|
||||||
{
|
{
|
||||||
|
if (sess->c2s_1st_md.len == 0)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
return &sess->c2s_1st_md;
|
return &sess->c2s_1st_md;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct metadata *session_get0_s2c_1st_md(struct session *sess)
|
struct metadata *session_get0_s2c_1st_md(struct session *sess)
|
||||||
{
|
{
|
||||||
|
if (sess->s2c_1st_md.len == 0)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
return &sess->s2c_1st_md;
|
return &sess->s2c_1st_md;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -323,6 +331,36 @@ uint64_t session_get_last_time(struct session *sess)
|
|||||||
return sess->last_time;
|
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
|
// session event
|
||||||
bool session_push_event(struct session *sess, uint32_t event)
|
bool session_push_event(struct session *sess, uint32_t event)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -64,9 +64,16 @@ struct session_key
|
|||||||
uint64_t security_zone;
|
uint64_t security_zone;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum session_dir
|
||||||
|
{
|
||||||
|
SESSION_DIR_C2S = 0,
|
||||||
|
SESSION_DIR_S2C = 1,
|
||||||
|
};
|
||||||
|
|
||||||
struct metadata
|
struct metadata
|
||||||
{
|
{
|
||||||
char data[64]; // TODO
|
char data[64]; // TODO
|
||||||
|
int len;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct session;
|
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);
|
void session_set_last_time(struct session *sess, uint64_t timestamp);
|
||||||
uint64_t session_get_create_time(struct session *sess);
|
uint64_t session_get_create_time(struct session *sess);
|
||||||
uint64_t session_get_last_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
|
* session event
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ void session_manager_set_session_eventcb(struct session_manager *mgr, session_ev
|
|||||||
mgr->arg = arg;
|
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;
|
struct session_key key;
|
||||||
// TODO packet to key
|
// TODO packet to key
|
||||||
|
|||||||
@@ -49,6 +49,14 @@ struct session
|
|||||||
uint64_t create_time;
|
uint64_t create_time;
|
||||||
uint64_t last_time;
|
uint64_t last_time;
|
||||||
|
|
||||||
|
/******************************
|
||||||
|
* Session Current Packet
|
||||||
|
******************************/
|
||||||
|
|
||||||
|
// session current packet
|
||||||
|
struct packet *cur_pkt;
|
||||||
|
enum session_dir cur_dir;
|
||||||
|
|
||||||
/******************************
|
/******************************
|
||||||
* Session Ev Queue Zone
|
* Session Ev Queue Zone
|
||||||
******************************/
|
******************************/
|
||||||
|
|||||||
Reference in New Issue
Block a user