summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryangwei <[email protected]>2023-08-27 16:46:09 +0800
committeryangwei <[email protected]>2023-08-27 16:46:09 +0800
commit413b3ddafe1144a27466fda8d34c5be37f9e4573 (patch)
tree66c2ee9b3c2532e0c7169f8d541ac4eb9da07115
parent7a86ec8317fe8bec2c87d4999ab8dd98dfa5e1fb (diff)
✨ feat(adapter todo): finish some backlog
-rw-r--r--src/adapter/adapter.c36
1 files changed, 28 insertions, 8 deletions
diff --git a/src/adapter/adapter.c b/src/adapter/adapter.c
index 6d4b6f7..08ba01c 100644
--- a/src/adapter/adapter.c
+++ b/src/adapter/adapter.c
@@ -211,26 +211,47 @@ const struct packet *session_get0_current_packet(struct session *sess)
int packet_get_direction(const struct packet *pkt)
{
- // TODO: adaptor to sapp api
+ const struct streaminfo *pstream=get_streaminfo_from_rawpkt(pkt);
+ if(pstream->curdir==DIR_C2S)
+ {
+ return PACKET_DIRECTION_C2S;
+ }
+ else if(pstream->curdir==DIR_S2C)
+ {
+ return PACKET_DIRECTION_S2C;
+ }
return -1;
}
const char *packet_get0_data(const struct packet *pkt, size_t *data_len)
{
- // TODO: adaptor to sapp api
- return NULL;
+ const void *raw_data=NULL;
+ int raw_datalen=0;
+ int ret1 = get_opt_from_rawpkt(pkt, RAW_PKT_GET_DATA, &raw_data);
+ int ret2 = get_opt_from_rawpkt(pkt, RAW_PKT_GET_TOT_LEN, &raw_datalen);
+ if(ret1 >= 0 || ret2 >= 0)
+ {
+ *data_len = raw_datalen;
+ return (const char *)raw_data;
+ }
+ else
+ {
+ *data_len = 0;
+ return NULL;
+ }
}
int session_get_direction(const struct session *sess)
{
- // TODO: check route dir
if(sess->stream)
{
- if(sess->stream->curdir==DIR_C2S)
+ int c2s_router_dir=(sess->stream->curdir==DIR_C2S)?(sess->stream->routedir):((sess->stream->routedir)^1);
+ int dir=MESA_dir_link_to_human(c2s_router_dir);
+ if(dir == (int)'I')
{
return SESSION_DIRECTION_IN;
}
- else if(sess->stream->curdir==DIR_S2C)
+ if(dir == (int)'E')
{
return SESSION_DIRECTION_OUT;
}
@@ -267,6 +288,5 @@ int stellar_get_worker_thread_num(struct stellar *st)
int stellar_get_current_thread_id(struct stellar *st)
{
- // TODO: adaptor to sapp api
- return 0;
+ return get_current_worker_thread_id();
} \ No newline at end of file