This commit is contained in:
azw 2023-04-24 07:59:49 +00:00
parent afe06bb99c
commit 10f58e24ca
4 changed files with 4 additions and 4 deletions

View File

@ -100,7 +100,7 @@ void KcpSession::DecodeUserPacket(char* buf, int& offset, unsigned int buflen)
p->seqid,
&buf[offset + sizeof(f8::PackHead) + GetSecretKeyLen()],
p->packlen);
offset += sizeof(f8::PackHead) + p->packlen;
offset += sizeof(f8::PackHead) + p->packlen + GetSecretKeyLen();
} else {
warning = true;
offset++;

View File

@ -22,7 +22,7 @@ public:
void SendClientMsg(char* buf, int buf_len);
virtual void OnRecvPacket(a8::UdpPacket* pkt) override;
static int GetSecretKeyLen() { return sizeof(long long) / 4; }
static int GetSecretKeyLen() { return sizeof(long long); }
static long long ReadSecretKey(const char* buf, int buf_len)
{
return buf_len < GetSecretKeyLen() ? 0 : *((long long*)buf);

View File

@ -84,7 +84,7 @@ void LongSessionMgr::ProcUdpPacket(a8::UdpPacket* pkt)
const int IKCP_OVERHEAD = 24;
if (pkt->buf_len > IKCP_OVERHEAD + KcpSession::GetSecretKeyLen()) {
int socket_handle = ikcp_getconv(pkt->buf);
long long secret_key = KcpSession::ReadSecretKey(pkt->buf, pkt->buf_len);
long long secret_key = KcpSession::ReadSecretKey(pkt->buf + IKCP_OVERHEAD, pkt->buf_len);
auto session = GetSession(socket_handle);
if (session && secret_key == session->GetKcpSession()->GetSecretKey()) {
session->GetKcpSession()->OnRecvPacket(pkt);

2
third_party/a8 vendored

@ -1 +1 @@
Subproject commit e24aab092d253aab99b2d8e8a2ac4b3d635162e1
Subproject commit afffb63a95cf4e0486410388f74cfcd4a6aac206