Skip to content

Commit b21af62

Browse files
committed
modify:deamon and back verification method
1 parent 6754b9b commit b21af62

File tree

5 files changed

+73
-105
lines changed

5 files changed

+73
-105
lines changed

XEngine_Release/XEngine_Config/XEngine_Config.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"nHttpPort": 5501,
66
"nRFCPort": 5502,
77
"nNTPPort": 0,
8-
"nDNSPort": 0,
8+
"nDNSPort": 53,
99
"XMax": {
1010
"nMaxClient": 10000,
1111
"nMaxQueue": 10000,
@@ -65,6 +65,9 @@
6565
"XVerification": {
6666
"tszUserName": "xyry",
6767
"tszUserPass": "11",
68+
"tszAPIAuth": "",
69+
"nVType": 1,
70+
"bEnable": false,
6871
"st_VerSwitch": {
6972
"bBackService": false,
7073
"bDeamon": false

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp

Lines changed: 68 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,18 @@ XHTHREAD XCALLBACK HTTPTask_TastPost_Thread(XPVOID lParam)
3333
//再循环客户端拥有的任务个数
3434
for (int j = 0; j < ppSst_ListAddr[i]->nPktCount; j++)
3535
{
36-
int nMsgLen = 0; //客户端发送的数据大小,不包括头
36+
int nSDLen = 0; //客户端发送的数据大小,不包括头
3737
int nHDRCount = 0;
3838
XCHAR* ptszMsgBuffer = NULL; //客户端发送的数据
3939
XCHAR** pptszListHdr;
4040
RFCCOMPONENTS_HTTP_REQPARAM st_HTTPReqparam; //客户端的请求参数
4141

4242
memset(&st_HTTPReqparam, '\0', sizeof(RFCCOMPONENTS_HTTP_REQPARAM));
4343
//得到一个指定客户端的完整数据包
44-
if (HttpProtocol_Server_GetMemoryEx(xhHTTPPacket, ppSst_ListAddr[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &st_HTTPReqparam, &pptszListHdr, &nHDRCount))
44+
if (HttpProtocol_Server_GetMemoryEx(xhHTTPPacket, ppSst_ListAddr[i]->tszClientAddr, &ptszMsgBuffer, &nSDLen, &st_HTTPReqparam, &pptszListHdr, &nHDRCount))
4545
{
4646
//在另外一个函数里面处理数据
47-
HTTPTask_TastPost_Handle(&st_HTTPReqparam, ppSst_ListAddr[i]->tszClientAddr, ptszMsgBuffer, nMsgLen, pptszListHdr, nHDRCount);
47+
HTTPTask_TastPost_Handle(&st_HTTPReqparam, ppSst_ListAddr[i]->tszClientAddr, ptszMsgBuffer, nSDLen, pptszListHdr, nHDRCount);
4848
//释放内存
4949
BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
5050
BaseLib_Memory_Free((XPPPMEM)&pptszListHdr, nHDRCount);
@@ -55,12 +55,15 @@ XHTHREAD XCALLBACK HTTPTask_TastPost_Thread(XPVOID lParam)
5555
}
5656
return 0;
5757
}
58-
bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen, XCHAR** pptszHDRList, int nHDRCount)
58+
bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszMSGBuffer, int nMSGLen, XCHAR** pptszHDRList, int nHDRCount)
5959
{
60-
int nMsgLen = 4096;
60+
bool bVerification = false;
61+
int nSDLen = 4096;
62+
int nRVLen = 4096;
6163
LPCXSTR lpszMethodPost = _X("POST");
6264
LPCXSTR lpszMethodGet = _X("GET");
63-
XCHAR tszMsgBuffer[4096] = {};
65+
XCHAR tszSDBuffer[4096] = {};
66+
XCHAR tszRVBuffer[4096] = {};
6467
RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam = {};
6568

6669
st_HDRParam.nHttpCode = 200; //HTTP CODE码
@@ -91,8 +94,8 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
9194
return true;
9295
}
9396
st_HDRParam.nHttpCode = 404;
94-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
95-
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
97+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam);
98+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
9699
BaseLib_Memory_Free((XPPPMEM)&pptszList, nListCount);
97100
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, tszGBKBuffer);
98101
return false;
@@ -122,16 +125,16 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
122125
//后去验证方法
123126
if (!Verification_HTTP_GetType(pptszHDRList, nHDRCount, &nVType))
124127
{
125-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, NULL, 0, tszHDRBuffer);
126-
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
128+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer);
129+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
127130
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,验证方式:%d,错误:%lX"), lpszClientAddr, st_ServiceConfig.st_XVerifcation.nVType, Verification_GetLastError());
128131
return false;
129132
}
130133
//验证方式是否一致
131134
if (st_ServiceConfig.st_XVerifcation.nVType != nVType)
132135
{
133-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, NULL, 0, tszHDRBuffer);
134-
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
136+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer);
137+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
135138
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,验证方式错误,请求:%d,需求:%d"), lpszClientAddr, nVType, st_ServiceConfig.st_XVerifcation.nVType);
136139
return false;
137140
}
@@ -146,25 +149,25 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
146149
if (!APIClient_Http_Request(_X("GET"), st_ServiceConfig.st_XVerifcation.tszAPIAuth, NULL, &nHTTPCode, &ptszMSGBuffer, &nMSGLen, NULL, NULL, &st_APIHttp))
147150
{
148151
st_HDRParam.nHttpCode = 500;
149-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, NULL, 0, tszHDRBuffer);
150-
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
152+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer);
153+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
151154
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误码:%lX"), lpszClientAddr, st_ServiceConfig.st_XVerifcation.tszAPIAuth, APIClient_GetLastError());
152155
return false;
153156
}
154157
if (200 != nHTTPCode)
155158
{
156159
st_HDRParam.nHttpCode = 500;
157-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, NULL, 0, tszHDRBuffer);
158-
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
160+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer);
161+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
159162
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误:%d"), lpszClientAddr, st_ServiceConfig.st_XVerifcation.tszAPIAuth, nHTTPCode);
160163
return false;
161164
}
162165
XENGINE_PROTOCOL_USERAUTH st_UserAuth = {};
163-
if (!ModuleProtocol_Parse_Verifcation(ptszMSGBuffer, nMsgLen, st_UserAuth.tszUserName, st_UserAuth.tszUserPass))
166+
if (!ModuleProtocol_Parse_Verifcation(ptszMSGBuffer, nSDLen, st_UserAuth.tszUserName, st_UserAuth.tszUserPass))
164167
{
165168
st_HDRParam.nHttpCode = 500;
166-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, NULL, 0, tszHDRBuffer);
167-
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
169+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer);
170+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
168171
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,返回内容:%s 错误,无法继续"), lpszClientAddr, ptszMSGBuffer);
169172
BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer);
170173
return false;
@@ -194,11 +197,12 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
194197

195198
if (!bRet)
196199
{
197-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, NULL, 0, tszHDRBuffer);
198-
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
200+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, NULL, 0, tszHDRBuffer);
201+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
199202
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,验证处理错误,可能用户密码登信息不匹配,类型:%d"), lpszClientAddr, nVType);
200203
return false;
201204
}
205+
bVerification = true;
202206
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,HTTP验证类型:%d 通过"), lpszClientAddr, nVType);
203207
}
204208

@@ -238,8 +242,8 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
238242
if (0 != _tcsxnicmp(lpszFuncName, tszUrlName, _tcsxlen(lpszFuncName)))
239243
{
240244
st_HDRParam.nHttpCode = 404;
241-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
242-
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
245+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam);
246+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
243247
BaseLib_Memory_Free((XPPPMEM)&pptszList, nListCount);
244248
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, tszGBKBuffer);
245249
return false;
@@ -249,8 +253,8 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
249253
if (0 != _tcsxnicmp(lpszParamFuncKey, tszKey, _tcsxlen(lpszParamFuncKey)))
250254
{
251255
st_HDRParam.nHttpCode = 404;
252-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
253-
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
256+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam);
257+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
254258
BaseLib_Memory_Free((XPPPMEM)&pptszList, nListCount);
255259
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, tszGBKBuffer);
256260
return false;
@@ -259,7 +263,7 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
259263
int nPluginType = 0;
260264
if (ModulePlugin_Loader_Find(tszValue, &nPluginType))
261265
{
262-
XEngine_PluginTask_Handle(tszValue, lpszClientAddr, lpszRVBuffer, nRVLen, &pptszList, nListCount, nPluginType);
266+
XEngine_PluginTask_Handle(tszValue, lpszClientAddr, lpszMSGBuffer, nMSGLen, &pptszList, nListCount, nPluginType);
263267
return true;
264268
}
265269
if (0 == _tcsxnicmp(lpszMethodPost, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodPost)))
@@ -270,47 +274,47 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
270274
memset(tszKey, '\0', sizeof(tszKey));
271275
memset(tszValue, '\0', sizeof(tszValue));
272276
BaseLib_String_GetKeyValue(pptszList[1], "=", tszKey, tszValue);
273-
HTTPTask_TastPost_P2PClient(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue));
277+
HTTPTask_TastPost_P2PClient(lpszClientAddr, lpszMSGBuffer, nMSGLen, _ttxoi(tszValue));
274278
}
275279
else if (0 == _tcsxnicmp(lpszParamZIPCode, tszValue, _tcsxlen(lpszParamZIPCode)))
276280
{
277281
//邮政信息:http://app.xyry.org:5501/api?function=zipcode&params1=0
278282
memset(tszKey, '\0', sizeof(tszKey));
279283
memset(tszValue, '\0', sizeof(tszValue));
280284
BaseLib_String_GetKeyValue(pptszList[1], "=", tszKey, tszValue);
281-
HTTPTask_TastPost_PostCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue));
285+
HTTPTask_TastPost_PostCode(lpszClientAddr, lpszMSGBuffer, nMSGLen, _ttxoi(tszValue));
282286
}
283287
else if (0 == _tcsxnicmp(lpszParamXLog, tszValue, _tcsxlen(lpszParamXLog)))
284288
{
285289
//日志信息:http://app.xyry.org:5501/api?function=log&params1=0
286290
memset(tszKey, '\0', sizeof(tszKey));
287291
memset(tszValue, '\0', sizeof(tszValue));
288292
BaseLib_String_GetKeyValue(pptszList[1], "=", tszKey, tszValue);
289-
HTTPTask_TastPost_LogInfo(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue));
293+
HTTPTask_TastPost_LogInfo(lpszClientAddr, lpszMSGBuffer, nMSGLen, _ttxoi(tszValue));
290294
}
291295
else if (0 == _tcsxnicmp(lpszParamQRCode, tszValue, _tcsxlen(lpszParamQRCode)))
292296
{
293297
//二维码生成:http://app.xyry.org:5501/api?function=qrcode&params1=0 或者 1
294298
memset(tszKey, '\0', sizeof(tszKey));
295299
memset(tszValue, '\0', sizeof(tszValue));
296300
BaseLib_String_GetKeyValue(pptszList[1], "=", tszKey, tszValue);
297-
HTTPTask_TaskPost_QRCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue));
301+
HTTPTask_TaskPost_QRCode(lpszClientAddr, lpszMSGBuffer, nMSGLen, _ttxoi(tszValue));
298302
}
299303
else if (0 == _tcsxnicmp(lpszParamSocket, tszValue, _tcsxlen(lpszParamSocket)))
300304
{
301305
//网络测试:http://app.xyry.org:5501/api?function=socket&params1=0 或者 1
302306
memset(tszKey, '\0', sizeof(tszKey));
303307
memset(tszValue, '\0', sizeof(tszValue));
304308
BaseLib_String_GetKeyValue(pptszList[1], "=", tszKey, tszValue);
305-
HTTPTask_TastPost_SocketTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue));
309+
HTTPTask_TastPost_SocketTest(lpszClientAddr, lpszMSGBuffer, nMSGLen, _ttxoi(tszValue));
306310
}
307311
else if (0 == _tcsxnicmp(lpszParamDTest, tszValue, _tcsxlen(lpszParamDTest)))
308312
{
309313
//数据测试:http://app.xyry.org:5501/api?function=dtest&params1=0 或者 1
310314
memset(tszKey, '\0', sizeof(tszKey));
311315
memset(tszValue, '\0', sizeof(tszValue));
312316
BaseLib_String_GetKeyValue(pptszList[1], "=", tszKey, tszValue);
313-
HTTPTask_TastPost_DTest(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszValue));
317+
HTTPTask_TastPost_DTest(lpszClientAddr, lpszMSGBuffer, nMSGLen, _ttxoi(tszValue));
314318
}
315319
else if (0 == _tcsxnicmp(lpszParamShortLink, tszValue, _tcsxlen(lpszParamShortLink)))
316320
{
@@ -319,7 +323,7 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
319323
memset(tszType, '\0', sizeof(tszType));
320324

321325
BaseLib_String_GetKeyValue(pptszList[1], "=", tszKey, tszType);
322-
HTTPTask_TaskPost_ShortLink(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszType));
326+
HTTPTask_TaskPost_ShortLink(lpszClientAddr, lpszMSGBuffer, nMSGLen, _ttxoi(tszType));
323327
}
324328
else if (0 == _tcsxnicmp(lpszParamWordFilter, tszValue, _tcsxlen(lpszParamWordFilter)))
325329
{
@@ -328,26 +332,42 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
328332
memset(tszType, '\0', sizeof(tszType));
329333

330334
BaseLib_String_GetKeyValue(pptszList[1], "=", tszKey, tszType);
331-
HTTPTask_TastPost_WordFilter(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszType));
335+
HTTPTask_TastPost_WordFilter(lpszClientAddr, lpszMSGBuffer, nMSGLen, _ttxoi(tszType));
332336
}
333337
else if (0 == _tcsxnicmp(lpszParamBack, tszValue, _tcsxlen(lpszParamBack)))
334338
{
335339
//后台管理接口:http://app.xyry.org:5501/api?function=back&params1=0
336340
XCHAR tszType[64];
337341
memset(tszType, '\0', sizeof(tszType));
338342

343+
if (st_ServiceConfig.st_XVerifcation.st_VerSwitch.bBackService && !bVerification)
344+
{
345+
ModuleProtocol_Packet_Common(tszRVBuffer, &nSDLen, 403, _X("User verification required"));
346+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
347+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
348+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求后台协议失败,此模式需要进行验证,但是请求未验证"), lpszClientAddr);
349+
return false;
350+
}
339351
BaseLib_String_GetKeyValue(pptszList[1], "=", tszKey, tszType);
340-
HTTPTask_TaskPost_BackService(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszType));
352+
HTTPTask_TaskPost_BackService(lpszClientAddr, lpszMSGBuffer, nMSGLen, _ttxoi(tszType));
341353
}
342354
else if (0 == _tcsxnicmp(lpszParamImage, tszValue, _tcsxlen(lpszParamImage)))
343355
{
344356
//图像处理接口:http://app.xyry.org:5501/api?function=image&params1=0
345-
HTTPTask_TaskPost_Image(lpszClientAddr, lpszRVBuffer, nRVLen, &pptszList, nListCount);
357+
HTTPTask_TaskPost_Image(lpszClientAddr, lpszMSGBuffer, nMSGLen, &pptszList, nListCount);
346358
}
347359
else if (0 == _tcsxnicmp(lpszParamDeamon, tszValue, _tcsxlen(lpszParamDeamon)))
348360
{
349361
//守护进程接口:http://app.xyry.org:5501/api?function=deamon&params1=0
350-
HTTPTask_TaskPost_Deamon(lpszClientAddr, lpszRVBuffer, nRVLen);
362+
if (st_ServiceConfig.st_XVerifcation.st_VerSwitch.bDeamon && !bVerification)
363+
{
364+
ModuleProtocol_Packet_Common(tszRVBuffer, &nSDLen, 403, _X("User verification required"));
365+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen);
366+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
367+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求守护进程协议失败,此模式需要进行验证,但是请求未验证"), lpszClientAddr);
368+
return false;
369+
}
370+
HTTPTask_TaskPost_Deamon(lpszClientAddr, lpszMSGBuffer, nMSGLen);
351371
}
352372
else if (0 == _tcsxnicmp(lpszParamMachine, tszValue, _tcsxlen(lpszParamMachine)))
353373
{
@@ -356,14 +376,14 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
356376
memset(tszType, '\0', sizeof(tszType));
357377

358378
BaseLib_String_GetKeyValue(pptszList[1], "=", tszKey, tszType);
359-
HTTPTask_TastPost_Machine(lpszClientAddr, lpszRVBuffer, nRVLen, _ttxoi(tszType));
379+
HTTPTask_TastPost_Machine(lpszClientAddr, lpszMSGBuffer, nMSGLen, _ttxoi(tszType));
360380
}
361381
else
362382
{
363383
st_HDRParam.nHttpCode = 404;
364-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
365-
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
366-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的请求不支持:%s,内容:\r\n%s"), lpszClientAddr, tszGBKBuffer, lpszRVBuffer);
384+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam);
385+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
386+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的请求不支持:%s,内容:\r\n%s"), lpszClientAddr, tszGBKBuffer, lpszMSGBuffer);
367387
}
368388
}
369389
else if (0 == _tcsxnicmp(lpszMethodGet, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodGet)))
@@ -482,26 +502,26 @@ bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST
482502
//phone:http://127.0.0.1:5501/api?function=phone&param=1369943
483503
//ip:http://127.0.0.1:5501/api?function=ip&param=117.172.221.14&language=en
484504
//mac:http://127.0.0.1:5501/api?function=mac&param=00:00:0C
485-
memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer));
505+
memset(tszSDBuffer, '\0', sizeof(tszSDBuffer));
486506

487-
BaseLib_String_GetKeyValue(pptszList[1], "=", tszKey, tszMsgBuffer);
507+
BaseLib_String_GetKeyValue(pptszList[1], "=", tszKey, tszSDBuffer);
488508
if (nListCount <= 2)
489509
{
490-
HTTPTask_TaskGet_APIModule(lpszClientAddr, tszValue, tszMsgBuffer, NULL);
510+
HTTPTask_TaskGet_APIModule(lpszClientAddr, tszValue, tszSDBuffer, NULL);
491511
}
492512
else
493513
{
494514
XCHAR tszTPStr[128] = {};
495515
BaseLib_String_GetKeyValue(pptszList[2], "=", tszKey, tszTPStr);
496-
HTTPTask_TaskGet_APIModule(lpszClientAddr, tszValue, tszMsgBuffer, tszTPStr);
516+
HTTPTask_TaskGet_APIModule(lpszClientAddr, tszValue, tszSDBuffer, tszTPStr);
497517
}
498518
}
499519
else
500520
{
501521
st_HDRParam.nHttpCode = 404;
502-
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam);
503-
XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen);
504-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的请求不支持:%s,内容:\r\n%s"), lpszClientAddr, tszGBKBuffer, lpszRVBuffer);
522+
HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam);
523+
XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen);
524+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,发送的请求不支持:%s,内容:\r\n%s"), lpszClientAddr, tszGBKBuffer, lpszMSGBuffer);
505525
}
506526
}
507527
else

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@
1313
//任务处理池,用来获取一个完整包
1414
XHTHREAD XCALLBACK HTTPTask_TastPost_Thread(XPVOID lParam);
1515
//任务处理相关函数,处理包的内容
16-
bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszRVBuffer, int nRVLen, XCHAR** pptszHDRList, int nHDRCount);
16+
bool HTTPTask_TastPost_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszMSGBuffer, int nMSGLen, XCHAR** pptszHDRList, int nHDRCount);

0 commit comments

Comments
 (0)