summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryangwei <[email protected]>2024-03-20 18:50:50 +0800
committeryangwei <[email protected]>2024-03-20 18:50:50 +0800
commitb39dc2f9785e0e6938f67bcf9f18a2782483746b (patch)
tree51af54e2a7f5527d1eb152d9d8f627e96ee3f97f
parent3b6bcd5348c1d29baa8ef4f587043985a380fbbb (diff)
🐞 fix(get meta by session): replace sapp api with stream dirFeature-get-rawpkt-by-stream-dir
-rw-r--r--src/adapter/adapter.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/adapter/adapter.c b/src/adapter/adapter.c
index 302b694..07d40c2 100644
--- a/src/adapter/adapter.c
+++ b/src/adapter/adapter.c
@@ -10,6 +10,7 @@
#include "uthash/utarray.h"
#include <MESA/stream.h>
+#include <stream_inc/stream_control.h>
inline void adapter_session_poll(struct session *sess)
@@ -468,8 +469,17 @@ const char *session_get0_l2_l3_hdr(struct session *sess, int session_direction,
static const void *session_get_rawpkt(struct session *sess, int session_direction)
{
if(sess == NULL || sess->cur_pkt == NULL || sess->cur_pkt->a_stream == NULL) return NULL;
- int route_direction=(session_direction==SESSION_DIRECTION_IN)?(DIR_ROUTE_UP):(DIR_ROUTE_DOWN);
- return get_rawpkt_from_streaminfo(sess->cur_pkt->a_stream, route_direction);
+ //int route_direction=(session_direction==SESSION_DIRECTION_IN)?(DIR_ROUTE_UP):(DIR_ROUTE_DOWN);
+ //return get_rawpkt_from_streaminfo(sess->cur_pkt->a_stream, route_direction);
+ if(session_direction==sess->session_direction)
+ {
+ return get_rawpkt_by_stream_dir(sess->cur_pkt->a_stream, DIR_C2S);
+ }
+ else
+ {
+ return get_rawpkt_by_stream_dir(sess->cur_pkt->a_stream, DIR_S2C);
+
+ }
}
uint16_t *session_get0_segment_id_list(struct session *sess, int session_direction, size_t *sid_num)
@@ -493,7 +503,8 @@ const char *session_get0_route_ctx(struct session *sess, int session_direction,
if(sapp_rawpkt==NULL)return NULL;
void *route_ctx = NULL;
int len=sizeof(route_ctx);
- enum MESA_stream_opt opt=((session_direction==SESSION_DIRECTION_IN)?(MSO_STREAM_INBOND_ROUTE_CTX):(MSO_STREAM_OUTBOND_ROUTE_CTX));
+ //enum MESA_stream_opt opt=((session_direction==SESSION_DIRECTION_IN)?(MSO_STREAM_INBOND_ROUTE_CTX):(MSO_STREAM_OUTBOND_ROUTE_CTX));
+ enum MESA_stream_opt opt=(session_direction==sess->session_direction)?(MSO_STREAM_C2S_ROUTE_CTX):(MSO_STREAM_S2C_ROUTE_CTX);
int ret = MESA_get_stream_opt(sess->cur_pkt->a_stream, opt, &route_ctx, &len);
if (ret < 0)return NULL;
*route_ctx_len=len;