diff options
| author | wangmenglan <[email protected]> | 2023-05-10 20:06:07 +0800 |
|---|---|---|
| committer | wangmenglan <[email protected]> | 2023-05-10 20:06:54 +0800 |
| commit | 935aa7235e05b508ca7c989c2b54abad45bc2c1f (patch) | |
| tree | 61ad517423eaf879500d3556b0469293c8c561a4 /common/src | |
| parent | 2a55a2be7504a39dd19b4ea2ff2f73c4a0be35f2 (diff) | |
TFE优化解析控制报文,解决mpack只有proxy字段时,解析错误v4.8.11-20230510release-4.9
Diffstat (limited to 'common/src')
| -rw-r--r-- | common/src/tfe_mpack.cpp | 4 | ||||
| -rw-r--r-- | common/src/tfe_packet_io.cpp | 6 |
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; |
