22
33BOOL CALLBACK XEngine_Callback_DownloadLogin (LPCTSTR lpszClientAddr, SOCKET hSocket, LPVOID lParam)
44{
5+ if (st_ServiceCfg.st_XCert .bDLEnable )
6+ {
7+ OPenSsl_Server_AcceptEx (xhDLSsl, hSocket, lpszClientAddr);
8+ }
59 RfcComponents_HttpServer_CreateClientEx (xhDLHttp, lpszClientAddr, 0 );
610 SocketOpt_HeartBeat_InsertAddrEx (xhHBDownload, lpszClientAddr);
711 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 下载客户端:%s,进入了服务器" ), lpszClientAddr);
812 return TRUE ;
913}
1014void CALLBACK XEngine_Callback_DownloadRecv (LPCTSTR lpszClientAddr, SOCKET hSocket, LPCTSTR lpszRecvMsg, int nMsgLen, LPVOID lParam)
1115{
12- if (! RfcComponents_HttpServer_InserQueueEx (xhDLHttp, lpszClientAddr, lpszRecvMsg, nMsgLen) )
16+ if (st_ServiceCfg. st_XCert . bDLEnable )
1317 {
14- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 下载客户端:%s,投递数据失败,大小:%d,错误;%lX" ), lpszClientAddr, nMsgLen, HttpServer_GetLastError ());
15- return ;
18+ int nSLen = 0 ;
19+ TCHAR* ptszMsgBuffer = NULL ;
20+ OPenSsl_Server_RecvMemoryEx (xhDLSsl, lpszClientAddr, &ptszMsgBuffer, &nSLen, lpszRecvMsg, nMsgLen);
21+ if (!RfcComponents_HttpServer_InserQueueEx (xhDLHttp, lpszClientAddr, ptszMsgBuffer, nSLen))
22+ {
23+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 下载客户端:%s,投递数据失败,大小:%d,错误;%lX" ), lpszClientAddr, nMsgLen, HttpServer_GetLastError ());
24+ return ;
25+ }
26+ BaseLib_OperatorMemory_FreeCStyle ((XPPMEM)&ptszMsgBuffer);
27+ }
28+ else
29+ {
30+ if (!RfcComponents_HttpServer_InserQueueEx (xhDLHttp, lpszClientAddr, lpszRecvMsg, nMsgLen))
31+ {
32+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 下载客户端:%s,投递数据失败,大小:%d,错误;%lX" ), lpszClientAddr, nMsgLen, HttpServer_GetLastError ());
33+ return ;
34+ }
1635 }
1736 SocketOpt_HeartBeat_ActiveAddrEx (xhHBDownload, lpszClientAddr);
1837 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DEBUG, _T (" 下载客户端:%s,投递包成功,大小:%d" ), lpszClientAddr, nMsgLen);
@@ -24,6 +43,10 @@ void CALLBACK XEngine_Callback_DownloadLeave(LPCTSTR lpszClientAddr, SOCKET hSoc
2443// ////////////////////////////////////////////////////////////////////////
2544BOOL CALLBACK XEngine_Callback_UPLoaderLogin (LPCTSTR lpszClientAddr, SOCKET hSocket, LPVOID lParam)
2645{
46+ if (st_ServiceCfg.st_XCert .bUPEnable )
47+ {
48+ OPenSsl_Server_AcceptEx (xhUPSsl, hSocket, lpszClientAddr);
49+ }
2750 RfcComponents_HttpServer_CreateClientEx (xhUPHttp, lpszClientAddr, 0 );
2851 RfcComponents_HttpServer_SetRecvModeEx (xhUPHttp, lpszClientAddr, 1 ); // 设置为文件接受模式
2952 SocketOpt_HeartBeat_InsertAddrEx (xhHBUPLoader, lpszClientAddr);
@@ -32,10 +55,25 @@ BOOL CALLBACK XEngine_Callback_UPLoaderLogin(LPCTSTR lpszClientAddr, SOCKET hSoc
3255}
3356void CALLBACK XEngine_Callback_UPLoaderRecv (LPCTSTR lpszClientAddr, SOCKET hSocket, LPCTSTR lpszRecvMsg, int nMsgLen, LPVOID lParam)
3457{
35- if (! RfcComponents_HttpServer_InserQueueEx (xhUPHttp, lpszClientAddr, lpszRecvMsg, nMsgLen) )
58+ if (st_ServiceCfg. st_XCert . bUPEnable )
3659 {
37- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 上传客户端:%s,投递数据失败,大小:%d,错误;%lX" ), lpszClientAddr, nMsgLen, HttpServer_GetLastError ());
38- return ;
60+ int nSLen = 0 ;
61+ TCHAR* ptszMsgBuffer = NULL ;
62+ OPenSsl_Server_RecvMemoryEx (xhUPSsl, lpszClientAddr, &ptszMsgBuffer, &nSLen, lpszRecvMsg, nMsgLen);
63+ if (!RfcComponents_HttpServer_InserQueueEx (xhUPHttp, lpszClientAddr, ptszMsgBuffer, nSLen))
64+ {
65+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 上传客户端:%s,投递数据失败,大小:%d,错误;%lX" ), lpszClientAddr, nMsgLen, HttpServer_GetLastError ());
66+ return ;
67+ }
68+ BaseLib_OperatorMemory_FreeCStyle ((XPPMEM)&ptszMsgBuffer);
69+ }
70+ else
71+ {
72+ if (!RfcComponents_HttpServer_InserQueueEx (xhUPHttp, lpszClientAddr, lpszRecvMsg, nMsgLen))
73+ {
74+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 上传客户端:%s,投递数据失败,大小:%d,错误;%lX" ), lpszClientAddr, nMsgLen, HttpServer_GetLastError ());
75+ return ;
76+ }
3977 }
4078 SocketOpt_HeartBeat_ActiveAddrEx (xhHBUPLoader, lpszClientAddr);
4179
@@ -53,17 +91,36 @@ void CALLBACK XEngine_Callback_UPLoaderLeave(LPCTSTR lpszClientAddr, SOCKET hSoc
5391// ////////////////////////////////////////////////////////////////////////
5492BOOL CALLBACK XEngine_Callback_CenterLogin (LPCTSTR lpszClientAddr, SOCKET hSocket, LPVOID lParam)
5593{
94+ if (st_ServiceCfg.st_XCert .bCHEnable )
95+ {
96+ OPenSsl_Server_AcceptEx (xhCHSsl, hSocket, lpszClientAddr);
97+ }
5698 RfcComponents_HttpServer_CreateClientEx (xhCenterHttp, lpszClientAddr, 0 );
5799 SocketOpt_HeartBeat_InsertAddrEx (xhHBCenter, lpszClientAddr);
58100 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" 业务客户端:%s,进入了服务器" ), lpszClientAddr);
59101 return TRUE ;
60102}
61103void CALLBACK XEngine_Callback_CenterRecv (LPCTSTR lpszClientAddr, SOCKET hSocket, LPCTSTR lpszRecvMsg, int nMsgLen, LPVOID lParam)
62104{
63- if (! RfcComponents_HttpServer_InserQueueEx (xhCenterHttp, lpszClientAddr, lpszRecvMsg, nMsgLen) )
105+ if (st_ServiceCfg. st_XCert . bCHEnable )
64106 {
65- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 业务客户端:%s,投递数据失败,大小:%d,错误;%lX" ), lpszClientAddr, nMsgLen, HttpServer_GetLastError ());
66- return ;
107+ int nSLen = 0 ;
108+ TCHAR* ptszMsgBuffer = NULL ;
109+ OPenSsl_Server_RecvMemoryEx (xhCHSsl, lpszClientAddr, &ptszMsgBuffer, &nSLen, lpszRecvMsg, nMsgLen);
110+ if (!RfcComponents_HttpServer_InserQueueEx (xhCenterHttp, lpszClientAddr, ptszMsgBuffer, nSLen))
111+ {
112+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 业务客户端:%s,投递数据失败,大小:%d,错误;%lX" ), lpszClientAddr, nMsgLen, HttpServer_GetLastError ());
113+ return ;
114+ }
115+ BaseLib_OperatorMemory_FreeCStyle ((XPPMEM)&ptszMsgBuffer);
116+ }
117+ else
118+ {
119+ if (!RfcComponents_HttpServer_InserQueueEx (xhCenterHttp, lpszClientAddr, lpszRecvMsg, nMsgLen))
120+ {
121+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 业务客户端:%s,投递数据失败,大小:%d,错误;%lX" ), lpszClientAddr, nMsgLen, HttpServer_GetLastError ());
122+ return ;
123+ }
67124 }
68125 SocketOpt_HeartBeat_ActiveAddrEx (xhHBCenter, lpszClientAddr);
69126 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DEBUG, _T (" 业务客户端:%s,投递包成功,大小:%d" ), lpszClientAddr, nMsgLen);
@@ -170,6 +227,9 @@ BOOL XEngine_Net_CloseClient(LPCTSTR lpszClientAddr, int nLeaveType, int nClient
170227 RfcComponents_HttpServer_CloseClinetEx (xhUPHttp, lpszClientAddr);
171228 RfcComponents_HttpServer_CloseClinetEx (xhDLHttp, lpszClientAddr);
172229 RfcComponents_HttpServer_CloseClinetEx (xhCenterHttp, lpszClientAddr);
230+ OPenSsl_Server_CloseClientEx (xhDLSsl, lpszClientAddr);
231+ OPenSsl_Server_CloseClientEx (xhUPSsl, lpszClientAddr);
232+ OPenSsl_Server_CloseClientEx (xhCHSsl, lpszClientAddr);
173233 HelpComponents_Datas_DeleteEx (xhP2XPPacket, lpszClientAddr);
174234 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T (" %s:%s,与服务器断开,原因:%s" ), m_StrClient.c_str (), lpszClientAddr, lpszLeaveMsg);
175235 return TRUE ;
@@ -181,23 +241,59 @@ BOOL XEngine_Net_SendMsg(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsg
181241
182242 if (STORAGE_NETTYPE_HTTPDOWNLOAD == nType)
183243 {
184- bRet = NetCore_TCPXCore_SendEx (xhNetDownload, lpszClientAddr, lpszMsgBuffer, nMsgLen, 0 , 10 );
244+ if (st_ServiceCfg.st_XCert .bDLEnable )
245+ {
246+ int nSLen = 0 ;
247+ TCHAR *ptszMsgBuffer = NULL ;
248+
249+ OPenSsl_Server_SendMemoryEx (xhDLSsl, lpszClientAddr, lpszMsgBuffer, nMsgLen, &ptszMsgBuffer, &nSLen);
250+ bRet = NetCore_TCPXCore_SendEx (xhNetDownload, lpszClientAddr, ptszMsgBuffer, nSLen);
251+ BaseLib_OperatorMemory_FreeCStyle ((XPPMEM)&ptszMsgBuffer);
252+ }
253+ else
254+ {
255+ bRet = NetCore_TCPXCore_SendEx (xhNetDownload, lpszClientAddr, lpszMsgBuffer, nMsgLen, 0 , 10 );
256+ }
185257 if (bRet && st_ServiceCfg.st_XTime .bHBTime )
186258 {
187259 SocketOpt_HeartBeat_ActiveAddrEx (xhHBDownload, lpszClientAddr);
188260 }
189261 }
190262 else if (STORAGE_NETTYPE_HTTPUPLOADER == nType)
191263 {
192- bRet = NetCore_TCPXCore_SendEx (xhNetUPLoader, lpszClientAddr, lpszMsgBuffer, nMsgLen);
264+ if (st_ServiceCfg.st_XCert .bUPEnable )
265+ {
266+ int nSLen = 0 ;
267+ TCHAR* ptszMsgBuffer = NULL ;
268+
269+ OPenSsl_Server_SendMemoryEx (xhUPSsl, lpszClientAddr, lpszMsgBuffer, nMsgLen, &ptszMsgBuffer, &nSLen);
270+ bRet = NetCore_TCPXCore_SendEx (xhNetUPLoader, lpszClientAddr, ptszMsgBuffer, nSLen);
271+ BaseLib_OperatorMemory_FreeCStyle ((XPPMEM)&ptszMsgBuffer);
272+ }
273+ else
274+ {
275+ bRet = NetCore_TCPXCore_SendEx (xhNetUPLoader, lpszClientAddr, lpszMsgBuffer, nMsgLen);
276+ }
193277 if (bRet && st_ServiceCfg.st_XTime .bHBTime )
194278 {
195279 SocketOpt_HeartBeat_ActiveAddrEx (xhHBUPLoader, lpszClientAddr);
196280 }
197281 }
198282 else if (STORAGE_NETTYPE_HTTPCENTER == nType)
199283 {
200- bRet = NetCore_TCPXCore_SendEx (xhNetCenter, lpszClientAddr, lpszMsgBuffer, nMsgLen);
284+ if (st_ServiceCfg.st_XCert .bCHEnable )
285+ {
286+ int nSLen = 0 ;
287+ TCHAR* ptszMsgBuffer = NULL ;
288+
289+ OPenSsl_Server_SendMemoryEx (xhCHSsl, lpszClientAddr, lpszMsgBuffer, nMsgLen, &ptszMsgBuffer, &nSLen);
290+ bRet = NetCore_TCPXCore_SendEx (xhNetCenter, lpszClientAddr, ptszMsgBuffer, nSLen);
291+ BaseLib_OperatorMemory_FreeCStyle ((XPPMEM)&ptszMsgBuffer);
292+ }
293+ else
294+ {
295+ bRet = NetCore_TCPXCore_SendEx (xhNetCenter, lpszClientAddr, lpszMsgBuffer, nMsgLen);
296+ }
201297 if (bRet && st_ServiceCfg.st_XTime .bHBTime )
202298 {
203299 SocketOpt_HeartBeat_ActiveAddrEx (xhHBCenter, lpszClientAddr);
0 commit comments