diff options
| author | liuxueli <[email protected]> | 2023-05-24 15:00:56 +0800 |
|---|---|---|
| committer | 杨威 <[email protected]> | 2023-06-02 19:34:06 +0800 |
| commit | 93d7d4a6a23a8276a7c942e4e4680afda13387b2 (patch) | |
| tree | 64b9b45a7626d654acc72ffc921d7fbdc0572346 | |
| parent | e79b9357ac1c2a1d1fdc86f1b4eca100dece51d2 (diff) | |
TSG-15248: 超时淘汰的会话,由于缺少原始包导致closing状态同步失败v4.3.7
| -rw-r--r-- | include/private/stream_internal.h | 3 | ||||
| -rw-r--r-- | src/packet_io/sapp_inject.c | 8 | ||||
| -rw-r--r-- | src/packet_io/sendpacket.c | 5 |
3 files changed, 8 insertions, 8 deletions
diff --git a/include/private/stream_internal.h b/include/private/stream_internal.h index 21b3a86..df2ae11 100644 --- a/include/private/stream_internal.h +++ b/include/private/stream_internal.h @@ -220,7 +220,8 @@ struct streaminfo_private unsigned int hash_slave; /* 2015-12-14 lijia add, ʹ��linux_jhash����ʱ, ����ͬʱ�õ��������ϵ�HASHֵ, ��HASH����ȷ����HASH����SLOTλ��, slave_HASH���ڿ��ٱȽϵ�ַ�Ƿ���� */ unsigned char hash_not_head_times;/* 2015-12-15 lijia add, ��ǰindex����HASH SLOT�ĵ�һλ�Ĵ��� */ unsigned char cur_layer_raw_hdr_len; /* 2017-10-31 lijia add, ��ǰ���ԭʼ����ַ����, ��pppͷ��ѹ��, ԭ���汾���������״̬, ����ʱҲ����֪��ַ������ */ - unsigned char __pad:3; + unsigned char __pad:2; + unsigned char is_ctrl_pkt:1; unsigned char packet_io_context:1; /* 2019-09-07 lijia add, for polling entry send packet */ unsigned char stream_close_reason:4; /* 2019-02-14 lijia add, ����TCPʹ��tcpdetail_private��link_state����, ����UDP֮ǰû��, ���pad�����˱��� */ unsigned char gdev_block_timer; diff --git a/src/packet_io/sapp_inject.c b/src/packet_io/sapp_inject.c index 0ee6a5c..706fe2f 100644 --- a/src/packet_io/sapp_inject.c +++ b/src/packet_io/sapp_inject.c @@ -90,16 +90,14 @@ int sapp_inject_ctrl_pkt(struct streaminfo *stream, enum sapp_inject_opt sio, co { struct streaminfo_private *stream_pr = (struct streaminfo_private *)stream; - if(stream_pr == NULL || stream_pr->raw_pkt == NULL) + if(stream_pr == NULL) { return -1; } - unsigned char raw_is_ctrl_pkt_flag=stream_pr->raw_pkt->is_ctrl_pkt; - - ((raw_pkt_t *)stream_pr->raw_pkt)->is_ctrl_pkt = 1; + stream_pr->is_ctrl_pkt=1; int ret=sapp_inject_pkt(stream, SIO_DEFAULT, payload, payload_len, snd_routedir); - ((raw_pkt_t *)stream_pr->raw_pkt)->is_ctrl_pkt = raw_is_ctrl_pkt_flag; + stream_pr->is_ctrl_pkt=0; return ret; } diff --git a/src/packet_io/sendpacket.c b/src/packet_io/sendpacket.c index 73d7133..e0baafc 100644 --- a/src/packet_io/sendpacket.c +++ b/src/packet_io/sendpacket.c @@ -3407,9 +3407,10 @@ int __sapp_inject_pkt(struct streaminfo *raw_stream, enum sapp_inject_opt sio, { ((raw_pkt_t *)raw_pkt)->stream_trace_id = raw_stream_pr->stream_trace_id; } - - if (((raw_pkt_t *)raw_pkt)->is_ctrl_pkt != 0) + + if (raw_stream_pr->is_ctrl_pkt==1) { + ((raw_pkt_t *)raw_pkt)->is_ctrl_pkt=1; ((raw_pkt_t *)raw_pkt)->payload_len=payload_len; } |
