summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorwangmenglan <[email protected]>2023-05-10 20:06:07 +0800
committerwangmenglan <[email protected]>2023-05-10 20:06:54 +0800
commit935aa7235e05b508ca7c989c2b54abad45bc2c1f (patch)
tree61ad517423eaf879500d3556b0469293c8c561a4 /common
parent2a55a2be7504a39dd19b4ea2ff2f73c4a0be35f2 (diff)
TFE优化解析控制报文,解决mpack只有proxy字段时,解析错误v4.8.11-20230510release-4.9
Diffstat (limited to 'common')
-rw-r--r--common/src/tfe_mpack.cpp4
-rw-r--r--common/src/tfe_packet_io.cpp6
2 files changed, 2 insertions, 8 deletions
diff --git a/common/src/tfe_mpack.cpp b/common/src/tfe_mpack.cpp
index e7f2893..5844f52 100644
--- a/common/src/tfe_mpack.cpp
+++ b/common/src/tfe_mpack.cpp
@@ -280,7 +280,7 @@ int parse_messagepack(const char* data, size_t length, void *ctx)
}
params = mpack_node_map_cstr(root, "params");
- if (!mpack_node_is_nil(mpack_node_map_cstr(params, "sce")))
+ if (!mpack_node_is_missing(mpack_node_map_str_optional(params, "sce", strlen("sce"))))
{
sce_map = mpack_node_map_cstr(params, "sce");
if (mpack_node_is_nil(mpack_node_map_cstr(sce_map, "rule_ids")))
@@ -301,7 +301,7 @@ int parse_messagepack(const char* data, size_t length, void *ctx)
}
}
- if (mpack_node_is_nil(mpack_node_map_cstr(params, "proxy")))
+ if (mpack_node_is_missing(mpack_node_map_str_optional(params, "proxy", strlen("proxy"))))
{
TFE_LOG_ERROR(g_default_logger, "%s: unexpected control packet: (proxy no found)", LOG_TAG_CTRLPKT);
goto error;
diff --git a/common/src/tfe_packet_io.cpp b/common/src/tfe_packet_io.cpp
index ef9c8f9..766ea48 100644
--- a/common/src/tfe_packet_io.cpp
+++ b/common/src/tfe_packet_io.cpp
@@ -1045,12 +1045,6 @@ static void send_event_log(struct session_ctx *s_ctx, int thread_seq, void *ctx)
}
return;
}
-
- struct ethhdr *eth_hdr = (struct ethhdr *)s_ctx->ctrl_meta->raw_data;
- struct ip *ip_hdr = (struct ip *)((char *)eth_hdr + sizeof(struct ethhdr));
- struct tcphdr *tcp_hdr = (struct tcphdr *)((char *)ip_hdr + sizeof(struct ip));
- // ip_hdr->ip_len = htons(sizeof(struct ip) + (ntohs(tcp_hdr->th_off) * 4) + size);
- ip_hdr->ip_len = htons(sizeof(struct ip) + 20 + size);
char *raw_packet_header_data = s_ctx->ctrl_meta->raw_data;
int raw_packet_header_len = s_ctx->ctrl_meta->l7offset;