✨ feat(plugin manager): integrated plugin manager, build success
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user