Skip to content

Commit 47f738d

Browse files
committed
improved:get buffer from packet
1 parent 8a5362c commit 47f738d

File tree

4 files changed

+29
-16
lines changed

4 files changed

+29
-16
lines changed

XEngine_Source/XEngine_StorageApp/StorageApp_Center.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
XHTHREAD CALLBACK XEngine_Center_HTTPThread(LPVOID lParam)
44
{
55
int nThreadPos = *(int*)lParam;
6-
TCHAR tszMsgBuffer[10240];
76
nThreadPos++;
87

98
while (bIsRun)
@@ -16,7 +15,6 @@ XHTHREAD CALLBACK XEngine_Center_HTTPThread(LPVOID lParam)
1615
RFCCOMPONENTS_HTTP_PKTCLIENT** ppSt_PKTClient;
1716

1817
memset(&st_HTTPParam, '\0', sizeof(RFCCOMPONENTS_HTTP_REQPARAM));
19-
memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer));
2018
//获取当前队列池中所有触发上传客户端
2119
RfcComponents_HttpServer_GetPoolEx(xhCenterHttp, nThreadPos, &ppSt_PKTClient, &nListCount);
2220
for (int i = 0; i < nListCount; i++)
@@ -25,12 +23,14 @@ XHTHREAD CALLBACK XEngine_Center_HTTPThread(LPVOID lParam)
2523
{
2624
int nMsgLen = 10240;
2725
int nHdrCount = 0;
26+
CHAR* ptszMsgBuffer = NULL;
2827
CHAR** ppszListHdr = NULL;
2928
//获得指定上传客户端触发信息
30-
if (RfcComponents_HttpServer_GetClientEx(xhCenterHttp, ppSt_PKTClient[i]->tszClientAddr, tszMsgBuffer, &nMsgLen, &st_HTTPParam, &ppszListHdr, &nHdrCount))
29+
if (RfcComponents_HttpServer_GetMemoryEx(xhCenterHttp, ppSt_PKTClient[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &st_HTTPParam, &ppszListHdr, &nHdrCount))
3130
{
32-
XEngine_Task_HttpCenter(ppSt_PKTClient[i]->tszClientAddr, tszMsgBuffer, nMsgLen, &st_HTTPParam, ppszListHdr, nHdrCount);
31+
XEngine_Task_HttpCenter(ppSt_PKTClient[i]->tszClientAddr, ptszMsgBuffer, nMsgLen, &st_HTTPParam, ppszListHdr, nHdrCount);
3332
}
33+
BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&st_HTTPParam);
3434
BaseLib_OperatorMemory_Free((XPPPMEM)&ppszListHdr, nHdrCount);
3535
}
3636
}

XEngine_Source/XEngine_StorageApp/StorageApp_Download.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
XHTHREAD CALLBACK XEngine_Download_HTTPThread(LPVOID lParam)
44
{
55
int nThreadPos = *(int*)lParam;
6-
TCHAR tszClientAddr[128];
7-
TCHAR tszMsgBuffer[4096];
86
nThreadPos++;
97

108
while (bIsRun)
@@ -18,21 +16,21 @@ XHTHREAD CALLBACK XEngine_Download_HTTPThread(LPVOID lParam)
1816
RFCCOMPONENTS_HTTP_PKTCLIENT** ppSt_PKTClient;
1917

2018
memset(&st_HTTPParam, '\0', sizeof(RFCCOMPONENTS_HTTP_REQPARAM));
21-
memset(tszClientAddr, '\0', sizeof(tszClientAddr));
22-
memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer));
2319
//获取当前队列池中所有触发下载客户端
2420
RfcComponents_HttpServer_GetPoolEx(xhDLHttp, nThreadPos, &ppSt_PKTClient, &nListCount);
2521
for (int i = 0; i < nListCount; i++)
2622
{
2723
for (int j = 0; j < ppSt_PKTClient[i]->nPktCount; j++)
2824
{
2925
int nHdrCount = 0;
26+
CHAR* ptszMsgBuffer = NULL;
3027
CHAR** ppszListHdr = NULL;
3128
//获得指定下载客户端触发信息
32-
if (RfcComponents_HttpServer_GetClientEx(xhDLHttp, ppSt_PKTClient[i]->tszClientAddr, tszMsgBuffer, &nMsgLen, &st_HTTPParam, &ppszListHdr, &nHdrCount))
29+
if (RfcComponents_HttpServer_GetMemoryEx(xhDLHttp, ppSt_PKTClient[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &st_HTTPParam, &ppszListHdr, &nHdrCount))
3330
{
34-
XEngine_Task_HttpDownload(ppSt_PKTClient[i]->tszClientAddr, tszClientAddr, nMsgLen, &st_HTTPParam, ppszListHdr, nHdrCount);
31+
XEngine_Task_HttpDownload(ppSt_PKTClient[i]->tszClientAddr, ptszMsgBuffer, nMsgLen, &st_HTTPParam, ppszListHdr, nHdrCount);
3532
}
33+
BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
3634
BaseLib_OperatorMemory_Free((XPPPMEM)&ppszListHdr, nHdrCount);
3735
}
3836
}

XEngine_Source/XEngine_StorageApp/StorageApp_P2XPNet.cpp

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ BOOL XEngine_Task_TCPP2xp(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCTSTR lpszClie
184184
//响应请求客户端
185185
memset(tszSDBuffer, '\0', sizeof(tszSDBuffer));
186186
pSt_ProtocolHdr->unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_P2XP_REPCONNECT;
187-
P2XPProtocol_Packet_Common(pSt_ProtocolHdr,tszSDBuffer, &nSDLen);
187+
P2XPProtocol_Packet_Common(pSt_ProtocolHdr, tszSDBuffer, &nSDLen);
188188
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_TCPP2XP);
189189
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("P2XP客户端:%s,用户名:%s,请求查询用户:%s 状态成功"), lpszClientAddr, st_P2XPIONet.tszSourceUser, st_P2XPIONet.tszDestUser);
190190
}
@@ -218,10 +218,25 @@ BOOL XEngine_Task_TCPP2xp(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCTSTR lpszClie
218218
}
219219
else if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_STORAGE_REQQUERY == pSt_ProtocolHdr->unOperatorCode)
220220
{
221+
TCHAR tszTimeStart[MAX_PATH];
222+
TCHAR tszTimeEnd[MAX_PATH];
223+
TCHAR tszFileName[MAX_PATH];
221224
TCHAR tszFileHash[MAX_PATH];
225+
226+
memset(tszTimeStart, '\0', MAX_PATH);
227+
memset(tszTimeEnd, '\0', MAX_PATH);
228+
memset(tszFileName, '\0', MAX_PATH);
222229
memset(tszFileHash, '\0', MAX_PATH);
223230

224-
XStorageProtocol_Core_REQQueryFile(lpszMsgBuffer, NULL, NULL, NULL, tszFileHash);
231+
if (!XStorageProtocol_Core_REQQueryFile(lpszMsgBuffer, tszTimeStart, tszTimeEnd, tszFileName, tszFileHash))
232+
{
233+
P2XPProtocol_Packet_Common(pSt_ProtocolHdr, tszSDBuffer, &nSDLen, 400, "协议错误");
234+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_TCPP2XP);
235+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("P2XP客户端:%s,查询文件失败,解析协议失败,错误码:%lX"), lpszClientAddr, P2XPPeer_GetLastError());
236+
return FALSE;
237+
}
238+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_TCPP2XP);
239+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("客户端:%s,请求查询用户"), lpszClientAddr);
225240
}
226241
else
227242
{

XEngine_Source/XEngine_StorageApp/StorageApp_UPLoader.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
XHTHREAD CALLBACK XEngine_UPLoader_HTTPThread(LPVOID lParam)
44
{
55
int nThreadPos = *(int*)lParam;
6-
TCHAR tszMsgBuffer[10240];
76
nThreadPos++;
87

98
while (bIsRun)
@@ -16,7 +15,6 @@ XHTHREAD CALLBACK XEngine_UPLoader_HTTPThread(LPVOID lParam)
1615
RFCCOMPONENTS_HTTP_PKTCLIENT** ppSt_PKTClient;
1716

1817
memset(&st_HTTPParam, '\0', sizeof(RFCCOMPONENTS_HTTP_REQPARAM));
19-
memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer));
2018
//获取当前队列池中所有触发上传客户端
2119
RfcComponents_HttpServer_GetPoolEx(xhUPHttp, nThreadPos, &ppSt_PKTClient, &nListCount);
2220
for (int i = 0; i < nListCount; i++)
@@ -25,12 +23,14 @@ XHTHREAD CALLBACK XEngine_UPLoader_HTTPThread(LPVOID lParam)
2523
{
2624
int nMsgLen = 10240;
2725
int nHdrCount = 0;
26+
CHAR* ptszMsgBuffer = NULL;
2827
CHAR** ppszListHdr = NULL;
2928
//获得指定上传客户端触发信息
30-
if (RfcComponents_HttpServer_GetClientEx(xhUPHttp, ppSt_PKTClient[i]->tszClientAddr, tszMsgBuffer, &nMsgLen, &st_HTTPParam, &ppszListHdr, &nHdrCount))
29+
if (RfcComponents_HttpServer_GetMemoryEx(xhUPHttp, ppSt_PKTClient[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &st_HTTPParam, &ppszListHdr, &nHdrCount))
3130
{
32-
XEngine_Task_HttpUPLoader(ppSt_PKTClient[i]->tszClientAddr, tszMsgBuffer, nMsgLen, &st_HTTPParam, ppszListHdr, nHdrCount);
31+
XEngine_Task_HttpUPLoader(ppSt_PKTClient[i]->tszClientAddr, ptszMsgBuffer, nMsgLen, &st_HTTPParam, ppszListHdr, nHdrCount);
3332
}
33+
BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
3434
BaseLib_OperatorMemory_Free((XPPPMEM)&ppszListHdr, nHdrCount);
3535
}
3636
}

0 commit comments

Comments
 (0)