@@ -28,7 +28,7 @@ XHTHREAD XCALLBACK XEngine_Download_HTTPThread(XPVOID lParam)
2828 // 获得指定下载客户端触发信息
2929 if (HttpProtocol_Server_GetMemoryEx (xhDLHttp, ppSt_PKTClient[i]->tszClientAddr , &ptszMsgBuffer, &nMsgLen, &st_HTTPParam, &ppszListHdr, &nHdrCount))
3030 {
31- XEngine_Task_HttpDownload (ppSt_PKTClient[i]->tszClientAddr , ptszMsgBuffer, nMsgLen, &st_HTTPParam, ppszListHdr, nHdrCount);
31+ XEngine_Task_HttpDownload (ppSt_PKTClient[i]->tszClientAddr , ptszMsgBuffer, nMsgLen, &st_HTTPParam, ppszListHdr, nHdrCount, STORAGE_NETTYPE_HTTPDOWNLOAD );
3232 }
3333 BaseLib_Memory_FreeCStyle ((XPPMEM)&ptszMsgBuffer);
3434 BaseLib_Memory_Free ((XPPPMEM)&ppszListHdr, nHdrCount);
@@ -44,6 +44,7 @@ void XCALLBACK XEngine_Download_CBSend(LPCXSTR lpszClientAddr, XSOCKET hSocket,
4444{
4545 int nMsgLen = 4096 ;
4646 int nListCount = 0 ;
47+ int nNetType = *(int *)lParam;
4748 __int64u nTimeWait = 0 ;
4849 XCHAR tszMsgBuffer[4096 ];
4950 SESSION_STORAGEINFO st_StorageInfo;
@@ -59,7 +60,7 @@ void XCALLBACK XEngine_Download_CBSend(LPCXSTR lpszClientAddr, XSOCKET hSocket,
5960 if (nLimitTime > (__int64u)st_StorageInfo.nLimit )
6061 {
6162 // 当前平均速度大于限制速度,不做处理
62- NetCore_TCPXCore_CBSendEx (xhNetDownload, lpszClientAddr, XEngine_Download_CBSend);
63+ NetCore_TCPXCore_CBSendEx (xhNetDownload, lpszClientAddr, XEngine_Download_CBSend, lParam );
6364 return ;
6465 }
6566 }
@@ -98,7 +99,7 @@ void XCALLBACK XEngine_Download_CBSend(LPCXSTR lpszClientAddr, XSOCKET hSocket,
9899 {
99100 Algorithm_Calculation_ADDSDFlow (st_StorageInfo.xhToken , nMsgLen);
100101 }
101- XEngine_Task_SendDownload (lpszClientAddr, tszMsgBuffer, nMsgLen);
102+ XEngine_Task_SendDownload (lpszClientAddr, tszMsgBuffer, nMsgLen, nNetType );
102103 }
103104 }
104105 else
@@ -115,7 +116,7 @@ void XCALLBACK XEngine_Download_CBSend(LPCXSTR lpszClientAddr, XSOCKET hSocket,
115116 }
116117}
117118
118- bool XEngine_Task_HttpDownload (LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, XCHAR** pptszListHdr, int nHdrCount)
119+ bool XEngine_Task_HttpDownload (LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, XCHAR** pptszListHdr, int nHdrCount, int nNetType )
119120{
120121 int nSDLen = 2048 ;
121122 int nLimit = 0 ;
@@ -137,7 +138,7 @@ bool XEngine_Task_HttpDownload(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in
137138 st_HDRParam.nHttpCode = 405 ;
138139
139140 HttpProtocol_Server_SendMsgEx (xhDLHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
140- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD );
141+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, nNetType );
141142 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 下载客户端:%s,发送的方法不支持" ), lpszClientAddr);
142143 return false ;
143144 }
@@ -150,7 +151,7 @@ bool XEngine_Task_HttpDownload(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in
150151 st_HDRParam.nHttpCode = 503 ;
151152
152153 HttpProtocol_Server_SendMsgEx (xhDLHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
153- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD );
154+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, nNetType );
154155 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 下载客户端:%s,请求失败,连接数超过限制:%d,无法继续" ), lpszClientAddr, st_ServiceCfg.st_XLimit .nMaxDNConnect );
155156 return false ;
156157 }
@@ -170,7 +171,7 @@ bool XEngine_Task_HttpDownload(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in
170171 st_HDRParam.nHttpCode = 401 ;
171172
172173 HttpProtocol_Server_SendMsgEx (xhDLHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
173- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD );
174+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, nNetType );
174175 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 下载客户端:%s,用户验证失败,错误:%lX" ), lpszClientAddr, StorageHelp_GetLastError ());
175176 return false ;
176177 }
@@ -187,7 +188,7 @@ bool XEngine_Task_HttpDownload(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in
187188 st_HDRParam.nHttpCode = nResponseCode;
188189
189190 HttpProtocol_Server_SendMsgEx (xhDLHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
190- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD );
191+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, nNetType );
191192 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 下载客户端:%s,用户验证失败,用户名:%s,密码:%s,错误码:%d,错误内容:%s" ), tszUserName, tszUserPass, tszUserPass, nResponseCode, ptszBody);
192193 }
193194 Protocol_StorageParse_SpeedLimit (ptszBody, nSDLen, &nCode, &nLimit);
@@ -211,7 +212,7 @@ bool XEngine_Task_HttpDownload(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in
211212 _xstprintf (tszHdrBuffer, _X (" Location: %s%s\r\n " ), tszStorageAddr, pSt_HTTPParam->tszHttpUri );
212213
213214 HttpProtocol_Server_SendMsgEx (xhDLHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL , 0 , tszHdrBuffer);
214- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD );
215+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, nNetType );
215216 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 下载客户端:%s,请求的文件被要求重定向到:%s%s" ), lpszClientAddr, tszStorageAddr, pSt_HTTPParam->tszHttpUri );
216217 return true ;
217218 }
@@ -244,7 +245,7 @@ bool XEngine_Task_HttpDownload(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in
244245 st_HDRParam.nHttpCode = 404 ;
245246
246247 HttpProtocol_Server_SendMsgEx (xhDLHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
247- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD );
248+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, nNetType );
248249 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 下载客户端:%s,请求文件失败,可能BUCKET:%s 不正确,错误:%lX" ), lpszClientAddr, pSt_HTTPParam->tszHttpUri , StorageHelp_GetLastError ());
249250 return false ;
250251 }
@@ -254,7 +255,7 @@ bool XEngine_Task_HttpDownload(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in
254255 st_HDRParam.nHttpCode = 404 ;
255256
256257 HttpProtocol_Server_SendMsgEx (xhDLHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
257- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD );
258+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, nNetType );
258259 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 下载客户端:%s,请求文件失败,请求的BUCKET:%s 已经被禁用" ), lpszClientAddr, st_StorageBucket.tszBuckKey );
259260 return false ;
260261 }
@@ -285,7 +286,7 @@ bool XEngine_Task_HttpDownload(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in
285286 st_HDRParam.nHttpCode = 404 ;
286287
287288 HttpProtocol_Server_SendMsgEx (xhDLHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
288- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD );
289+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, nNetType );
289290 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 下载客户端:%s,插入用户请求失败,文件:%s,错误:%lX" ), lpszClientAddr, tszFileDir, Session_GetLastError ());
290291 return false ;
291292 }
@@ -310,32 +311,32 @@ bool XEngine_Task_HttpDownload(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in
310311 }
311312 _xstprintf (tszFieldStr, _X (" FileHash: %s\r\n " ), tszHashStr);
312313 HttpProtocol_Server_SendMsgEx (xhDLHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL , ullSize, tszFieldStr);
313- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD );
314+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, nNetType );
314315 // 不能在send之前调用
315- if (!NetCore_TCPXCore_CBSendEx (xhNetDownload, lpszClientAddr, XEngine_Download_CBSend))
316+ if (!NetCore_TCPXCore_CBSendEx (xhNetDownload, lpszClientAddr, XEngine_Download_CBSend, &nNetType ))
316317 {
317318 st_HDRParam.bIsClose = true ;
318319 st_HDRParam.nHttpCode = 404 ;
319320
320321 HttpProtocol_Server_SendMsgEx (xhDLHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
321- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPDOWNLOAD );
322+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, nNetType );
322323 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 下载客户端:%s,设置回调下载失败,文件:%s,错误:%lX" ), lpszClientAddr, tszFileDir, Session_GetLastError ());
323324 return false ;
324325 }
325326 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 下载客户端:%s,请求下载文件成功,文件名:%s,总大小:%llu,发送大小:%llu,范围:%d - %d" ), lpszClientAddr, tszFileDir, ullCount, ullSize, nPosStart, nPosEnd);
326327 return true ;
327328}
328- bool XEngine_Task_SendDownload (LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen)
329+ bool XEngine_Task_SendDownload (LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nNetType )
329330{
330- if (!XEngine_Net_SendMsg (lpszClientAddr, lpszMsgBuffer, nMsgLen, STORAGE_NETTYPE_HTTPDOWNLOAD ))
331+ if (!XEngine_Net_SendMsg (lpszClientAddr, lpszMsgBuffer, nMsgLen, nNetType ))
331332 {
332333 if (Session_DLStorage_SetSeek (lpszClientAddr, -nMsgLen))
333334 {
334335 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X (" 下载客户端:%s,正在发送文件数据,发送失败,移动指针:%d" ), lpszClientAddr, -nMsgLen);
335336 }
336337 else
337338 {
338- XEngine_Net_CloseClient (lpszClientAddr, STORAGE_LEAVETYPE_CLOSE, STORAGE_NETTYPE_HTTPDOWNLOAD );
339+ XEngine_Net_CloseClient (lpszClientAddr, STORAGE_LEAVETYPE_CLOSE, nNetType );
339340 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 下载客户端:%s,正在发送文件数据,大小:%d,发送超过重试次数,无法继续,移除发送队列" ), lpszClientAddr, nMsgLen);
340341 }
341342 return false ;
0 commit comments