TokenMessage 解密失败需要上抛 让上层做一些处理
添加ErrorCode进行区分 ErrorCode仅本地使用 不与云端沟通
This commit is contained in:
parent
5d54bc805a
commit
a8415f47ca
|
@ -216,7 +216,11 @@ bool TokenController::OnReceive(Message& msg)
|
|||
for (int i = 0; i < ArrayLength(_RecvQueue); i++)
|
||||
{
|
||||
auto& qi = _RecvQueue[i];
|
||||
if (qi.Code == msg.Code && qi.Seq == tmsg.Seq && qi.Time > start) return true;
|
||||
if (qi.Code == msg.Code && qi.Seq == tmsg.Seq && qi.Time > start)
|
||||
{
|
||||
tmsg.ErrorCode = SeqError;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < ArrayLength(_RecvQueue); i++)
|
||||
{
|
||||
|
@ -248,7 +252,9 @@ bool TokenController::OnReceive(Message& msg)
|
|||
Key.Show(true);
|
||||
|
||||
msg.Length = 0;
|
||||
return Controller::OnReceive(msg);
|
||||
((TokenMessage&)msg).ErrorCode = DecryptError;
|
||||
// 加解密失败也上抛数据,让TokenClient做一些处理
|
||||
// return Controller::OnReceive(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
TokenMessage::TokenMessage(byte code) : Message(code)
|
||||
{
|
||||
Data = _Data;
|
||||
|
||||
ErrorCode = NoError;
|
||||
//OneWay = false;
|
||||
Seq = 0;
|
||||
}
|
||||
|
|
|
@ -3,12 +3,20 @@
|
|||
|
||||
#include "Message\Message.h"
|
||||
|
||||
enum ErrorCodeType :byte
|
||||
{
|
||||
NoError, // 没错
|
||||
DecryptError, // 解密失败
|
||||
SeqError, // Seq无效
|
||||
};
|
||||
|
||||
// 令牌消息
|
||||
class TokenMessage : public Message
|
||||
{
|
||||
public:
|
||||
//byte OneWay; // 单向传输。无应答
|
||||
byte Seq; // 消息序号
|
||||
ErrorCodeType ErrorCode; // 错误类型 仅本地使用,不与云端交互
|
||||
|
||||
byte _Data[512]; // 数据
|
||||
|
||||
|
|
|
@ -48,7 +48,8 @@ void TokenSession::OnReceive(TokenMessage& msg)
|
|||
TS("TokenSession::OnReceive");
|
||||
|
||||
LastActive = Sys.Ms();
|
||||
if (Token == 0 && msg.Code > 1 && Key.Length() == 0)
|
||||
// if (Token == 0 && msg.Code > 1 && Key.Length() == 0)
|
||||
if(msg.ErrorCode == DecryptError) // 解密失败 直接让他重新来过
|
||||
{
|
||||
auto rs = msg.CreateReply();
|
||||
|
||||
|
|
Loading…
Reference in New Issue