Skip to content

Commit d8fbb96

Browse files
committed
improved:forward protocol handle
1 parent 1d05c36 commit d8fbb96

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

XEngine_Source/XEngine_ServiceApp/XEngine_ForwardTask.cpp

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,17 @@ bool XEngine_Forward_Handle(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n
6363
XEngine_Network_Send(lpszClientAddr, (LPCXSTR)pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR), XENGINE_CLIENT_NETTYPE_FORWARD);
6464
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("Forward客户端:%s,设置的用户:%s,登录到服务器"), lpszClientAddr, st_UserAuth.tszUserName);
6565
}
66+
else
67+
{
68+
pSt_ProtocolHdr->wReserve = ERROR_XENGINE_PROXY_PROTOCOL_NOTSUPPORT;
69+
pSt_ProtocolHdr->unPacketSize = 0;
70+
XEngine_Network_Send(lpszClientAddr, (LPCXSTR)pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR), XENGINE_CLIENT_NETTYPE_FORWARD);
71+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("Forward客户端:%s,发送了不支持的验证协议:%d"), lpszClientAddr, pSt_ProtocolHdr->unOperatorCode);
72+
}
6673
}
67-
//处理转发协议
68-
if (ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_USER_FORWARD == pSt_ProtocolHdr->unOperatorType)
74+
else if (ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_USER_FORWARD == pSt_ProtocolHdr->unOperatorType)
6975
{
76+
//处理转发协议
7077
if (!ModuleSession_Forward_Get(lpszClientAddr))
7178
{
7279
pSt_ProtocolHdr->wReserve = ERROR_XENGINE_PROXY_PROTOCOL_NOTLOGIN;
@@ -153,8 +160,21 @@ bool XEngine_Forward_Handle(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n
153160
XEngine_Network_Send(lpszClientAddr, (LPCXSTR)pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR), XENGINE_CLIENT_NETTYPE_FORWARD);
154161
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("Forward客户端:%s,请求匿名绑定转发地址:%s 成功"), lpszClientAddr, tszDstAddr);
155162
}
163+
else
164+
{
165+
pSt_ProtocolHdr->wReserve = ERROR_XENGINE_PROXY_PROTOCOL_NOTSUPPORT;
166+
pSt_ProtocolHdr->unPacketSize = 0;
167+
XEngine_Network_Send(lpszClientAddr, (LPCXSTR)pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR), XENGINE_CLIENT_NETTYPE_FORWARD);
168+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("Forward客户端:%s,发送了不支持的转发协议:%d"), lpszClientAddr, pSt_ProtocolHdr->unOperatorCode);
169+
}
170+
}
171+
else
172+
{
173+
pSt_ProtocolHdr->wReserve = ERROR_XENGINE_PROXY_PROTOCOL_NOTSUPPORT;
174+
pSt_ProtocolHdr->unPacketSize = 0;
175+
XEngine_Network_Send(lpszClientAddr, (LPCXSTR)pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR), XENGINE_CLIENT_NETTYPE_FORWARD);
176+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("Forward客户端:%s,发送了不支持的协议:%d-%d"), lpszClientAddr, pSt_ProtocolHdr->unOperatorType, pSt_ProtocolHdr->unOperatorCode);
156177
}
157-
158178
return true;
159179
}
160180
void CALLBACK XEngine_Forward_CBRecv(XHANDLE xhToken, XNETHANDLE xhClient, XSOCKET hSocket, ENUM_XCLIENT_SOCKET_EVENTS enTCPClientEvents, LPCXSTR lpszMsgBuffer, int nLen, XPVOID lParam)

XEngine_Source/XEngine_UserProtocol.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@ typedef enum en_XEngine_XUser_Protocol
3232
#define ERROR_XENGINE_PROXY_PROTOCOL_FORMAT 0x01 //协议格式内容错误
3333
#define ERROR_XENGINE_PROXY_PROTOCOL_SERVER 0x02 //服务器内部处理错误
3434
#define ERROR_XENGINE_PROXY_PROTOCOL_DOMAIN 0x03 //域名转IP错误
35-
#define ERROR_XENGINE_PROXY_PROTOCOL_NOTLOGIN 0x04 //未登录
35+
#define ERROR_XENGINE_PROXY_PROTOCOL_NOTLOGIN 0x04 //未登录
3636
#define ERROR_XENGINE_PROXY_PROTOCOL_NOTFOUND 0x05 //未找到
37+
#define ERROR_XENGINE_PROXY_PROTOCOL_NOTSUPPORT 0x06 //不支持
3738
///////////////////////////////////////////////////////////////////////////
3839
// 导出的数据结构
3940
///////////////////////////////////////////////////////////////////////////

0 commit comments

Comments
 (0)