Skip to content

Commit 9260fea

Browse files
committed
support file information insert to database
modify p2p storage network set
1 parent 993c79d commit 9260fea

File tree

6 files changed

+74
-20
lines changed

6 files changed

+74
-20
lines changed

XEngine_Release/XEngine_Config/XEngine_Config.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"tszIPAddr": "127.0.0.1",
2+
"tszIPAddr": "192.168.1.7",
33
"bDeamon": 0,
44
"nCenterPort": 5100,
55
"nStorageDLPort": 5101,
@@ -28,7 +28,7 @@
2828
"LogLeave": 32
2929
},
3030
"XSql": {
31-
"SQLType": 0,
31+
"SQLType": 2,
3232
"SQLFile": "./XEngine_SQL/SQLFile.db",
3333
"SQLAddr": "192.168.1.9",
3434
"SQLPort": 3306,
@@ -58,10 +58,15 @@
5858
"nMaxDNLoad": 1024000
5959
},
6060
"XP2xp": {
61+
"nMode": 0,
62+
"nTime": 2,
63+
"nSDPort": 15000,
64+
"nRVPort": 15001,
6165
"tszQQWryFile": "./XEngine_SQL/qqwry.dat"
6266
},
6367
"XVer": {
6468
"StorageVersion": [
69+
"2.1.0.1001 Build20210805",
6570
"2.0.0.1001 Build20210723",
6671
"1.5.0.1001 Build20210716",
6772
"1.4.0.1001 Build20210702",

XEngine_Source/StorageModule_Config/Config_Define.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ typedef struct tag_XEngine_ServerConfig
8989
}st_XLimit;
9090
struct
9191
{
92-
BOOL bBroad;
92+
int nMode;
9393
int nTime;
9494
int nSDPort;
9595
int nRVPort;

XEngine_Source/StorageModule_Config/Config_Json/Config_Json.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ BOOL CConfig_Json::Config_Json_File(LPCTSTR lpszConfigFile,XENGINE_SERVERCONFIG
172172
return FALSE;
173173
}
174174
Json::Value st_JsonP2xp = st_JsonRoot["XP2xp"];
175-
pSt_ServerConfig->st_P2xp.bBroad = st_JsonP2xp["bBroad"].asInt();
175+
pSt_ServerConfig->st_P2xp.nMode = st_JsonP2xp["nMode"].asInt();
176176
pSt_ServerConfig->st_P2xp.nTime = st_JsonP2xp["nTime"].asInt();
177177
pSt_ServerConfig->st_P2xp.nRVPort = st_JsonP2xp["nRVPort"].asInt();
178178
pSt_ServerConfig->st_P2xp.nSDPort = st_JsonP2xp["nSDPort"].asInt();

XEngine_Source/XEngine_StorageApp/StorageApp_Download.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,32 @@ XHTHREAD CALLBACK XEngine_Download_SendThread(LPVOID lParam)
8686
APIHelp_HttpRequest_Post(st_ServiceCfg.st_XProxy.st_XProxyPass.tszDLPass, tszProxyStr, &nHttpCode);
8787
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_NOTICE, _T("下载客户端:%s,请求完成通知返回值:%d,文件:%s,地址:%s"), tszClientAddr, nHttpCode, st_StorageInfo.tszFileDir, st_ServiceCfg.st_XProxy.st_XProxyPass.tszDLPass);
8888
}
89+
//如果启用了数据库并且启用了P2P存储网络
90+
if ((0 != st_ServiceCfg.st_XSql.nSQLType) && (st_ServiceCfg.st_P2xp.nMode > 0))
91+
{
92+
UCHAR tszHashKey[MAX_PATH];
93+
XSTORAGECORE_DBFILE st_DBFile;
94+
SESSION_STORAGEINFO st_StorageInfo;
95+
96+
memset(tszHashKey, '\0', MAX_PATH);
97+
memset(&st_DBFile, '\0', sizeof(XSTORAGECORE_DBFILE));
98+
memset(&st_StorageInfo, '\0', sizeof(SESSION_STORAGEINFO));
99+
100+
Session_DLStroage_GetInfo(nThreadPos, i, &st_StorageInfo);
101+
102+
st_DBFile.st_ProtocolFile.nFileSize = st_StorageInfo.ullCount;
103+
OPenSsl_Api_Digest(st_StorageInfo.tszFileDir, tszHashKey, NULL, TRUE, st_ServiceCfg.st_XStorage.nHashMode);
104+
BaseLib_OperatorString_StrToHex((char*)tszHashKey, 20, st_DBFile.st_ProtocolFile.tszFileHash);
105+
BaseLib_OperatorString_GetFileAndPath(st_StorageInfo.tszFileDir, st_DBFile.st_ProtocolFile.tszFilePath, st_DBFile.st_ProtocolFile.tszFileName);
106+
if (1 == st_ServiceCfg.st_XSql.nSQLType)
107+
{
108+
XStorageSQL_File_FileInsert(&st_DBFile);
109+
}
110+
else
111+
{
112+
XStorage_SQLite_FileInsert(&st_DBFile);
113+
}
114+
}
89115
Session_DLStroage_Delete(tszClientAddr);
90116
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_NOTICE, _T("下载客户端:%s,文件已经发送完毕,用户已经被移除发送列表"), tszClientAddr);
91117
continue;

XEngine_Source/XEngine_StorageApp/Storage_APPTask/Storage_TaskP2p.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,17 @@ BOOL XEngine_Task_P2p(LPCTSTR lpszFileHash, LPCTSTR lpszClientAddr, RFCCOMPONENT
9898
}
9999
}
100100
//根据使用模式来操作
101-
if (st_ServiceCfg.st_P2xp.bBroad)
101+
if (0 == st_ServiceCfg.st_P2xp.nMode)
102+
{
103+
st_HDRParam.bIsClose = TRUE;
104+
st_HDRParam.nHttpCode = 405;
105+
106+
RfcComponents_HttpServer_SendMsgEx(xhCenterHttp, tszMsgBuffer, &nMsgLen, &st_HDRParam);
107+
XEngine_Net_SendMsg(lpszClientAddr, tszMsgBuffer, nMsgLen, STORAGE_NETTYPE_HTTPCENTER);
108+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("广播端:%s,暂时不支持的请求"), lpszClientAddr);
109+
return FALSE;
110+
}
111+
else if (1 == st_ServiceCfg.st_P2xp.nMode)
102112
{
103113
st_HDRParam.bIsClose = TRUE;
104114
st_HDRParam.nHttpCode = 405;

XEngine_Source/XEngine_StorageApp/XEngine_StorageApp.cpp

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ XHANDLE xhDLHttp = NULL;
2323
XHANDLE xhCenterHttp = NULL;
2424
XNETHANDLE xhP2XPPacket = 0;
2525

26-
SOCKET hBroadSocket;
27-
shared_ptr<std::thread> pSTDThread;
26+
SOCKET hBroadSocket = 0;
27+
shared_ptr<std::thread> pSTDThread = NULL;
2828

2929
XENGINE_SERVERCONFIG st_ServiceCfg;
3030
XENGINE_LBCONFIG st_LoadbalanceCfg;
@@ -64,8 +64,11 @@ void ServiceApp_Stop(int signo)
6464
XStorageSQL_Destory();
6565
XStorage_SQLite_Destory();
6666

67-
NetCore_BroadCast_Close(hBroadSocket);
68-
pSTDThread->join();
67+
if (NULL != pSTDThread)
68+
{
69+
NetCore_BroadCast_Close(hBroadSocket);
70+
pSTDThread->join();
71+
}
6972
exit(0);
7073
}
7174
}
@@ -375,19 +378,26 @@ int main(int argc, char** argv)
375378
}
376379
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,启动P2XP任务处理线程池成功,线程池个数:%d"), st_ServiceCfg.st_XMax.nP2XPThread);
377380

378-
if (!NetCore_BroadCast_SendInit(&hBroadSocket, st_ServiceCfg.st_P2xp.nRVPort, st_ServiceCfg.tszIPAddr))
381+
if (st_ServiceCfg.st_P2xp.nMode > 0)
379382
{
380-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,启动广播网络服务失败,错误:%d"), errno);
381-
goto XENGINE_EXITAPP;
383+
if (!NetCore_BroadCast_SendInit(&hBroadSocket, st_ServiceCfg.st_P2xp.nRVPort, st_ServiceCfg.tszIPAddr))
384+
{
385+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,启动P2P存储广播服务失败,错误:%d"), errno);
386+
goto XENGINE_EXITAPP;
387+
}
388+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,启动P2P存储广播服务成功,端口:%d"), st_ServiceCfg.st_P2xp.nRVPort);
389+
pSTDThread = make_shared<std::thread>(XEngine_Task_P2PThread);
390+
if (!pSTDThread->joinable())
391+
{
392+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,启动P2P存储广播服务线程失败,错误:%d"), errno);
393+
goto XENGINE_EXITAPP;
394+
}
395+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,启动P2P存储广播服务线程成功"));
382396
}
383-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,启动广播网络服务成功,端口:%d"), st_ServiceCfg.st_P2xp.nRVPort);
384-
pSTDThread = make_shared<std::thread>(XEngine_Task_P2PThread);
385-
if (!pSTDThread->joinable())
397+
else
386398
{
387-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,启动广播服务线程失败,错误:%d"), errno);
388-
goto XENGINE_EXITAPP;
399+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _T("启动服务中,P2P存储服务配置为不启动"));
389400
}
390-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,启动广播服务线程成功"));
391401

392402
m_StrVersion = st_ServiceCfg.st_XVer.pStl_ListStorage->front();
393403
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("所有服务成功启动,存储中心服务运行中,发行版本次数:%d,当前运行版本:%s。。。"), st_ServiceCfg.st_XVer.pStl_ListStorage->size(), m_StrVersion.c_str());
@@ -432,8 +442,11 @@ int main(int argc, char** argv)
432442
XStorageSQL_Destory();
433443
XStorage_SQLite_Destory();
434444

435-
NetCore_BroadCast_Close(hBroadSocket);
436-
pSTDThread->join();
445+
if (NULL != pSTDThread)
446+
{
447+
NetCore_BroadCast_Close(hBroadSocket);
448+
pSTDThread->join();
449+
}
437450
}
438451
#ifdef _WINDOWS
439452
WSACleanup();

0 commit comments

Comments
 (0)