@@ -8,6 +8,7 @@ bool XEngine_AuthorizeHTTP_Client(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
88 LPCXSTR lpszAPIList = _X (" list" );
99 LPCXSTR lpszAPIClose = _X (" close" );
1010 LPCXSTR lpszAPIModify = _X (" modify" );
11+ LPCXSTR lpszAPIDelete = _X (" delete" );
1112
1213 memset (tszSDBuffer, ' \0 ' , sizeof (tszSDBuffer));
1314
@@ -141,5 +142,40 @@ bool XEngine_AuthorizeHTTP_Client(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
141142 XEngine_Client_TaskSend (lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
142143 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" HTTP客户端:%s,请求修改用户信息:%s 成功" ), lpszClientAddr, st_UserTable.st_UserInfo .tszUserName );
143144 }
145+ else if (0 == _tcsxnicmp (lpszAPIDelete, lpszAPIName, _tcsxlen (lpszAPIDelete)))
146+ {
147+ XENGINE_PROTOCOL_USERINFO st_UserInfo = {};
148+ Protocol_Parse_HttpParseUser (lpszMsgBuffer, nMsgLen, &st_UserInfo);
149+
150+ // 关闭链接
151+ int nListCount = 0 ;
152+ AUTHSESSION_NETCLIENT** ppSt_ListClient;
153+ Session_Authorize_GetClient (&ppSt_ListClient, &nListCount, st_UserInfo.tszUserName );
154+ for (int i = 0 ; i < nListCount; i++)
155+ {
156+ XEngine_CloseClient (ppSt_ListClient[i]->tszClientAddr , true );
157+ }
158+ BaseLib_OperatorMemory_Free ((XPPPMEM)&ppSt_ListClient, nListCount);
159+ // 删除数据库
160+ bool bSuccess = false ;
161+ if (0 == st_AuthConfig.st_XSql .nDBType )
162+ {
163+ bSuccess = DBModule_SQLite_UserDelete (&st_UserInfo);
164+ }
165+ else
166+ {
167+ bSuccess = DBModule_MySQL_UserDelete (&st_UserInfo);
168+ }
169+ if (!bSuccess)
170+ {
171+ Protocol_Packet_HttpComm (tszSDBuffer, &nSDLen, 404 , " not found client" );
172+ XEngine_Client_TaskSend (lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
173+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" HTTP客户端:%s,请求删除用户失败:%s 错误码:%lX" ), lpszClientAddr, st_UserInfo.tszUserName , DBModule_GetLastError ());
174+ return false ;
175+ }
176+ Protocol_Packet_HttpComm (tszSDBuffer, &nSDLen);
177+ XEngine_Client_TaskSend (lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
178+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" HTTP客户端:%s,请求删除用户:%s 成功" ), lpszClientAddr, st_UserInfo.tszUserName );
179+ }
144180 return true ;
145181}
0 commit comments