@@ -4,38 +4,48 @@ XHTHREAD XEngine_Task_P2PThread()
44{
55 TCHAR tszMsgBuffer[2048 ];
66 TCHAR tszIPAddr[128 ];
7+ TCHAR tszTimeStart[64 ];
8+ TCHAR tszTimeEnd[64 ];
79 TCHAR tszFileName[MAX_PATH];
810 TCHAR tszFileHash[MAX_PATH];
911
1012 while (bIsRun)
1113 {
1214 int nMsgLen = 2048 ;
1315 memset (tszMsgBuffer, ' \0 ' , sizeof (tszMsgBuffer));
16+ memset (tszIPAddr, ' \0 ' , sizeof (tszIPAddr));
17+ memset (tszTimeStart, ' \0 ' , sizeof (tszTimeStart));
18+ memset (tszTimeEnd, ' \0 ' , sizeof (tszTimeEnd));
1419 memset (tszFileName, ' \0 ' , MAX_PATH);
1520 memset (tszFileHash, ' \0 ' , MAX_PATH);
1621
1722 if (NetCore_BroadCast_Recv (hBroadSocket, tszMsgBuffer, &nMsgLen, tszIPAddr))
1823 {
1924 // 收到文件查询请求
20- if (XStorageProtocol_Core_REQQueryFile (tszMsgBuffer, NULL , NULL , tszFileName, tszFileHash))
25+ if (XStorageProtocol_Core_REQQueryFile (tszMsgBuffer, tszTimeStart, tszTimeEnd , tszFileName, tszFileHash))
2126 {
2227 // 查询文件是否存在数据库,不存在不关心
2328 if (0 != st_ServiceCfg.st_XSql .nSQLType )
2429 {
25- int nListCount;
30+ int nListCount = 0 ;
2631 XSTORAGECORE_DBFILE** pppSt_ListFile;
2732 if (1 == st_ServiceCfg.st_XSql .nSQLType )
2833 {
29- XStorageSQL_File_FileQuery (&pppSt_ListFile, &nListCount, NULL , NULL , tszFileName, tszFileHash);
34+ XStorageSQL_File_FileQuery (&pppSt_ListFile, &nListCount, tszTimeStart, tszTimeEnd , tszFileName, tszFileHash);
3035 }
3136 else
3237 {
33- XStorage_SQLite_FileQuery (&pppSt_ListFile, &nListCount, NULL , NULL , tszFileName, tszFileHash);
38+ XStorage_SQLite_FileQuery (&pppSt_ListFile, &nListCount, tszTimeStart, tszTimeEnd , tszFileName, tszFileHash);
3439 }
3540 if (nListCount > 0 )
3641 {
37- XStorageProtocol_Core_REPQueryFile (tszMsgBuffer, &nMsgLen, &pppSt_ListFile, nListCount);
42+ XStorageProtocol_Core_REPQueryFile (tszMsgBuffer, &nMsgLen, &pppSt_ListFile, nListCount, tszTimeStart, tszTimeEnd );
3843 BaseLib_OperatorMemory_Free ((XPPPMEM)&pppSt_ListFile, nListCount);
44+
45+ SOCKET hSDSocket;
46+ NetCore_BroadCast_SendInit (&hSDSocket, st_ServiceCfg.st_P2xp .nSDPort , st_ServiceCfg.tszIPAddr );
47+ NetCore_BroadCast_Send (hSDSocket, tszMsgBuffer, nMsgLen);
48+ NetCore_BroadCast_Close (hSDSocket);
3949 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 广播端:%s,请求查询文件成功,列表个数:%d" ), tszIPAddr, nListCount);
4050 }
4151 }
@@ -71,52 +81,42 @@ BOOL XEngine_Task_P2p(LPCTSTR lpszFileHash, LPCTSTR lpszClientAddr, RFCCOMPONENT
7181 }
7282 else
7383 {
74- SOCKET hSDSocket;
7584 TCHAR tszIPAddr[128 ];
76-
7785 memset (tszIPAddr, ' \0 ' , sizeof (tszIPAddr));
7886 // 开始广播请求文件
7987 XStorageProtocol_Client_REQQueryFile (tszSDBuffer, &nSDLen, NULL , lpszFileHash);
80- if (!NetCore_BroadCast_SendInit (&hSDSocket, st_ServiceCfg.st_P2xp .nSDPort , st_ServiceCfg.tszIPAddr ))
81- {
82- st_HDRParam.bIsClose = TRUE ;
83- st_HDRParam.nHttpCode = 500 ;
84-
85- RfcComponents_HttpServer_SendMsgEx (xhCenterHttp, tszMsgBuffer, &nMsgLen, &st_HDRParam);
86- XEngine_Net_SendMsg (lpszClientAddr, tszMsgBuffer, nMsgLen, STORAGE_NETTYPE_HTTPCENTER);
87- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 广播端:%s,初始化广播请求失败,错误:%lX" ), lpszClientAddr, NetCore_GetLastError ());
88- return FALSE ;
89- }
90- if (NetCore_BroadCast_Send (hSDSocket, tszSDBuffer, nSDLen))
88+ if (!NetCore_BroadCast_Send (hBroadSocket, tszSDBuffer, nSDLen))
9189 {
9290 st_HDRParam.bIsClose = TRUE ;
9391 st_HDRParam.nHttpCode = 500 ;
9492
9593 RfcComponents_HttpServer_SendMsgEx (xhCenterHttp, tszMsgBuffer, &nMsgLen, &st_HDRParam);
9694 XEngine_Net_SendMsg (lpszClientAddr, tszMsgBuffer, nMsgLen, STORAGE_NETTYPE_HTTPCENTER);
9795 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 广播端:%s,发送广播请求失败,错误:%lX" ), lpszClientAddr, NetCore_GetLastError ());
98- NetCore_BroadCast_Close (hSDSocket);
9996 return FALSE ;
10097 }
101- if (!NetCore_BroadCast_Recv (hSDSocket, tszRVBuffer, &nRVLen, tszIPAddr, 2000 ))
98+
99+ SOCKET hRVSocket;
100+ NetCore_BroadCast_RecvInit (&hRVSocket, st_ServiceCfg.st_P2xp .nSDPort );
101+ if (!NetCore_BroadCast_Recv (hRVSocket, tszRVBuffer, &nRVLen, tszIPAddr, 2000 ))
102102 {
103103 st_HDRParam.bIsClose = TRUE ;
104104 st_HDRParam.nHttpCode = 404 ;
105105
106106 RfcComponents_HttpServer_SendMsgEx (xhCenterHttp, tszMsgBuffer, &nMsgLen, &st_HDRParam);
107107 XEngine_Net_SendMsg (lpszClientAddr, tszMsgBuffer, nMsgLen, STORAGE_NETTYPE_HTTPCENTER);
108108 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 广播端:%s,发送广播请求失败,错误:%lX" ), lpszClientAddr, NetCore_GetLastError ());
109- NetCore_BroadCast_Close (hSDSocket );
109+ NetCore_BroadCast_Close (hRVSocket );
110110 return FALSE ;
111111 }
112+ NetCore_BroadCast_Close (hRVSocket);
113+
112114 st_HDRParam.bIsClose = TRUE ;
113115 st_HDRParam.nHttpCode = 200 ;
114116
115117 RfcComponents_HttpServer_SendMsgEx (xhCenterHttp, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszRVBuffer, nRVLen);
116118 XEngine_Net_SendMsg (lpszClientAddr, tszMsgBuffer, nMsgLen, STORAGE_NETTYPE_HTTPCENTER);
117- NetCore_BroadCast_Close (hSDSocket);
118119 printf (" %s\n " , tszRVBuffer);
119120 }
120-
121121 return TRUE ;
122122}
0 commit comments