Skip to content

Commit fd20f7d

Browse files
committed
p2p client support query other user
1 parent 4f559d6 commit fd20f7d

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

XEngine_Source/XEngine_StorageApp/StorageApp_P2XPNet.cpp

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,16 +227,35 @@ BOOL XEngine_Task_TCPP2xp(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCTSTR lpszClie
227227
memset(tszTimeEnd, '\0', MAX_PATH);
228228
memset(tszFileName, '\0', MAX_PATH);
229229
memset(tszFileHash, '\0', MAX_PATH);
230-
230+
//用于验证协议是否正确
231231
if (!Protocol_StorageParse_QueryFile(lpszMsgBuffer, tszTimeStart, tszTimeEnd, tszFileName, tszFileHash))
232232
{
233233
Protocol_P2XPPacket_Common(pSt_ProtocolHdr, tszSDBuffer, &nSDLen, 400, "协议错误");
234234
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_TCPP2XP);
235235
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("P2XP客户端:%s,查询文件失败,解析协议失败,错误码:%lX"), lpszClientAddr, P2XPPeer_GetLastError());
236236
return FALSE;
237237
}
238+
//确认
239+
pSt_ProtocolHdr->unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_STORAGE_REPQUERY;
240+
Protocol_P2XPPacket_Common(pSt_ProtocolHdr, tszSDBuffer, &nSDLen);
238241
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_TCPP2XP);
239-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("客户端:%s,请求查询用户"), lpszClientAddr);
242+
//通知
243+
int nListCount = 0;
244+
TCHAR** pppszP2XPClient;
245+
P2XPPeer_Manage_GetAllList(&pppszP2XPClient, &nListCount);
246+
pSt_ProtocolHdr->unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_STORAGE_REQQUERY;
247+
for (int i = 0; i < nListCount; i++)
248+
{
249+
//过滤自己
250+
if (0 == _tcsncmp(lpszClientAddr, pppszP2XPClient[i], _tcslen(lpszClientAddr)))
251+
{
252+
continue;
253+
}
254+
XEngine_Net_SendMsg(pppszP2XPClient[i], (LPCTSTR)pSt_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR), STORAGE_NETTYPE_TCPP2XP);
255+
XEngine_Net_SendMsg(pppszP2XPClient[i], lpszMsgBuffer, nMsgLen, STORAGE_NETTYPE_TCPP2XP);
256+
}
257+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("客户端:%s,请求查询文件:%s,用户个数:%d"), lpszClientAddr, tszFileName, tszFileHash, nListCount--);
258+
BaseLib_OperatorMemory_Free((XPPPMEM)&pppszP2XPClient, nListCount);
240259
}
241260
else
242261
{

0 commit comments

Comments
 (0)