@@ -102,7 +102,6 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC
102102 memset (&st_HTTPParament, ' \0 ' , sizeof (XCLIENT_APIHTTP));
103103
104104 st_HTTPParament.nTimeConnect = 2 ;
105-
106105 ProtocolModule_Packet_PassAuth (&st_ProtocolAuth, tszSDBuffer, &nSDLen, XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REQUSERLOG);
107106 APIClient_Http_Request (_X (" POST" ), st_ServiceCfg.st_XPass .tszPassLogin , tszSDBuffer, &nHTTPCode, &ptszSDBuffer, &nSDLen, NULL , NULL , &st_HTTPParament);
108107 if (200 != nHTTPCode)
@@ -137,60 +136,46 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC
137136 }
138137 else if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REQUSEROUT == pSt_ProtocolHdr->unOperatorCode )
139138 {
140- XENGINE_PROTOCOL_USERAUTH st_ProtocolAuth;
141- XENGINE_PROTOCOL_USERINFO st_ProtocolInfo;
142-
143- memset (&st_ProtocolAuth, ' \0 ' , sizeof (XENGINE_PROTOCOL_USERAUTH));
144- memset (&st_ProtocolInfo, ' \0 ' , sizeof (XENGINE_PROTOCOL_USERINFO));
145-
139+ XCHAR tszUserName[MAX_PATH] = {};
140+ XENGINE_PROTOCOL_USERINFO st_ProtocolInfo = {};
146141
147- memcpy (&st_ProtocolAuth, lpszMsgBuffer, sizeof (XENGINE_PROTOCOL_USERAUTH));
148- if (!SessionModule_Client_GetInfoByUser (st_ProtocolAuth.tszUserName , &st_ProtocolInfo))
142+ if (!SessionModule_Client_GetUser (lpszClientAddr, tszUserName))
149143 {
150144 pSt_ProtocolHdr->wReserve = 711 ;
151145 ProtocolModule_Packet_Common (nNetType, pSt_ProtocolHdr, NULL , tszSDBuffer, &nSDLen);
152146 XEngine_MQXService_Send (lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
153- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" %s客户端:%s,请求登出失败,没有找到用户,可能用户没有登录,错误:%lX " ), lpszClientType, lpszClientAddr, SessionModule_GetLastError () );
147+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" %s客户端:%s,请求登出失败,用户没有登录 " ), lpszClientType, lpszClientAddr);
154148 return false ;
155149 }
156- // 判断用户是否正确
157- if (0 == _tcsxncmp (st_ProtocolInfo.tszUserName , st_ProtocolAuth.tszUserPass , _tcsxlen (st_ProtocolInfo.tszUserName )) && (0 == _tcsxncmp (st_ProtocolInfo.tszUserPass , st_ProtocolAuth.tszUserPass , _tcsxlen (st_ProtocolInfo.tszUserPass ))))
150+ SessionModule_Client_GetInfoByUser (tszUserName, &st_ProtocolInfo);
151+ // 是否需要通知
152+ if (_tcsxlen (st_ServiceCfg.st_XPass .tszPassLogout ) > 0 )
158153 {
159- // 是否需要通知
160- if (_tcsxlen (st_ServiceCfg.st_XPass .tszPassLogout ) > 0 )
161- {
162- int nSDLen = 0 ;
163- int nHTTPCode = 0 ;
164- XCHAR tszSDBuffer[1024 ];
165- XCLIENT_APIHTTP st_HTTPParament;
166- XENGINE_PROTOCOL_USERAUTH st_ProtocolAuth;
167-
168- memset (tszSDBuffer, ' \0 ' , sizeof (tszSDBuffer));
169- memset (&st_HTTPParament, ' \0 ' , sizeof (XCLIENT_APIHTTP));
170- memset (&st_ProtocolAuth, ' \0 ' , sizeof (XENGINE_PROTOCOL_USERAUTH));
154+ int nSDLen = 0 ;
155+ int nHTTPCode = 0 ;
156+ XCHAR tszSDBuffer[1024 ] = {};
157+ XCLIENT_APIHTTP st_HTTPParament = {};
158+ XENGINE_PROTOCOL_USERAUTH st_ProtocolAuth = {};
171159
172- st_HTTPParament.nTimeConnect = 2 ;
160+ _tcsxcpy (st_ProtocolAuth.tszUserName , st_ProtocolInfo.tszUserName );
161+ _tcsxcpy (st_ProtocolAuth.tszUserPass , st_ProtocolInfo.tszUserPass );
173162
174- ProtocolModule_Packet_PassAuth (&st_ProtocolAuth, tszSDBuffer, &nSDLen, XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REQUSEROUT) ;
175- APIClient_Http_Request ( _X ( " POST " ), st_ServiceCfg. st_XPass . tszPassLogout , tszSDBuffer, &nHTTPCode, NULL , NULL , NULL , NULL , &st_HTTPParament );
176- if ( 200 == nHTTPCode)
177- {
178- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X ( " %s客户端:%s,请求远程注销成功 " ), lpszClientType, lpszClientAddr);
179- }
180- else
181- {
182- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X ( " %s客户端:%s,请求远程注销失败,HTTPCode:%d " ), lpszClientType, lpszClientAddr, nHTTPCode);
183- }
163+ st_HTTPParament. nTimeConnect = 2 ;
164+ ProtocolModule_Packet_PassAuth (&st_ProtocolAuth, tszSDBuffer, &nSDLen, XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REQUSEROUT );
165+ APIClient_Http_Request ( _X ( " POST " ), st_ServiceCfg. st_XPass . tszPassLogout , tszSDBuffer, & nHTTPCode, NULL , NULL , NULL , NULL , &st_HTTPParament);
166+ if ( 200 == nHTTPCode)
167+ {
168+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X ( " %s客户端:%s,请求远程注销成功 " ), lpszClientType, lpszClientAddr);
169+ }
170+ else
171+ {
172+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X ( " %s客户端:%s,请求远程注销失败,HTTPCode:%d " ), lpszClientType, lpszClientAddr, nHTTPCode);
184173 }
185- st_ProtocolInfo.nUserState = 0 ;
186- DBModule_MQUser_UserUPDate (&st_ProtocolInfo);
187- SessionModule_Client_DeleteByUser (st_ProtocolAuth.tszUserName );
188- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" %s客户端:%s,用户登出成功,用户名:%s,密码:%s" ), lpszClientType, lpszClientAddr, st_ProtocolAuth.tszUserName , st_ProtocolAuth.tszUserPass );
189- }
190- else
191- {
192- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" %s客户端:%s,用户登出失败,用户或密码错误,用户名:%s,密码:%s" ), lpszClientType, lpszClientAddr, st_ProtocolAuth.tszUserName , st_ProtocolAuth.tszUserPass );
193174 }
175+ st_ProtocolInfo.nUserState = 0 ;
176+ DBModule_MQUser_UserUPDate (&st_ProtocolInfo);
177+ SessionModule_Client_Delete (lpszClientAddr);
178+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" %s客户端:%s,用户登出成功,用户名:%s" ), lpszClientType, lpszClientAddr, tszUserName);
194179 }
195180 else if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REQUSERREG == pSt_ProtocolHdr->unOperatorCode )
196181 {
0 commit comments