feat(plugin manager): integrated plugin manager, build success

This commit is contained in:
yangwei
2024-05-17 16:55:46 +08:00
committed by luwenpeng
parent db611561f6
commit e0ec3f2d52
17 changed files with 1201 additions and 62 deletions

View File

@@ -1,5 +1,7 @@
#include "stellar/session.h"
#include <assert.h>
#include "packet_priv.h"
#include "session_priv.h"
#include "tcp_utils.h"
#include "tcp_reassembly.h"
@@ -65,6 +67,11 @@ const char *session_get_tuple6_str(const struct session *sess)
return sess->tuple_str;
}
const char *session_get0_readable_addr(struct session *sess)
{
return sess->tuple_str;
}
void session_set_direction(struct session *sess, enum session_direction dir)
{
sess->sess_dir = dir;
@@ -95,6 +102,11 @@ enum session_state session_get_state(const struct session *sess)
return sess->state;
}
enum session_state session_get_current_state(const struct session *sess)
{
return sess->state;
}
void session_set_type(struct session *sess, enum session_type type)
{
sess->type = type;
@@ -195,6 +207,49 @@ const struct packet *session_get_current_packet(const struct session *sess)
return sess->curr_pkt;
}
const inline struct packet *session_get0_current_packet(struct session *sess)
{
return sess->curr_pkt;
}
const char *session_get0_current_payload(struct session *sess, size_t *payload_len)
{
const struct packet *pkt=session_get_current_packet(sess);
if(pkt)
{
const struct packet_layer *pkt_layer=packet_get_innermost_layer(pkt, LAYER_TYPE_ALL);
if(pkt_layer)
{
*payload_len=pkt_layer->pld_len;
return pkt_layer->pld_ptr;
}
}
*payload_len=0;
return NULL;
}
int session_is_symmetric(struct session *sess, unsigned char *flag)
{
int is_symmetric=0;
if (sess->first_pkt[FLOW_DIRECTION_C2S] && sess->first_pkt[FLOW_DIRECTION_S2C])
{
if (flag)
*flag = (SESSION_SEEN_C2S_FLOW | SESSION_SEEN_S2C_FLOW);
is_symmetric = 1;
}
else if (sess->first_pkt[FLOW_DIRECTION_C2S])
{
if (flag)
*flag = SESSION_SEEN_C2S_FLOW;
}
else if (sess->first_pkt[FLOW_DIRECTION_S2C])
{
if (flag)
*flag = SESSION_SEEN_S2C_FLOW;
}
return is_symmetric;
}
void session_set_user_data(struct session *sess, void *user_data)
{
sess->user_data = user_data;