@@ -60,7 +60,14 @@ void XCALLBACK XEngine_Download_CBSend(LPCXSTR lpszClientAddr, XSOCKET hSocket,
6060 if (nLimitTime > (__int64u)st_StorageInfo.nLimit )
6161 {
6262 // 当前平均速度大于限制速度,不做处理
63- NetCore_TCPXCore_CBSendEx (xhNetDownload, lpszClientAddr, XEngine_Download_CBSend, lParam);
63+ if (STORAGE_NETTYPE_HTTPWEBDAV == nNetType)
64+ {
65+ NetCore_TCPXCore_CBSendEx (xhNetWebdav, lpszClientAddr, XEngine_Download_CBSend, lParam);
66+ }
67+ else
68+ {
69+ NetCore_TCPXCore_CBSendEx (xhNetDownload, lpszClientAddr, XEngine_Download_CBSend, lParam);
70+ }
6471 return ;
6572 }
6673 }
@@ -89,7 +96,15 @@ void XCALLBACK XEngine_Download_CBSend(LPCXSTR lpszClientAddr, XSOCKET hSocket,
8996 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 下载客户端:%s,请求完成通知失败,可能对方服务没有开启,文件:%s,地址:%s" ), lpszClientAddr, st_StorageInfo.tszFileDir , st_ServiceCfg.st_XProxy .tszDLPass );
9097 }
9198 }
92- NetCore_TCPXCore_CBSendEx (xhNetDownload, lpszClientAddr);
99+ if (STORAGE_NETTYPE_HTTPWEBDAV == nNetType)
100+ {
101+ NetCore_TCPXCore_CBSendEx (xhNetWebdav, lpszClientAddr);
102+ }
103+ else
104+ {
105+ NetCore_TCPXCore_CBSendEx (xhNetDownload, lpszClientAddr);
106+ }
107+
93108 Session_DLStroage_Delete (lpszClientAddr);
94109 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 下载客户端:%s,文件已经发送完毕,用户已经被移除发送列表" ), lpszClientAddr);
95110 }
@@ -310,10 +325,17 @@ bool XEngine_Task_HttpDownload(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in
310325 st_HDRParam.bIsClose = true ;
311326 }
312327 _xstprintf (tszFieldStr, _X (" FileHash: %s\r\n " ), tszHashStr);
313- HttpProtocol_Server_SendMsgEx (xhDLHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL , ullSize, tszFieldStr);
314- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
315328 // 不能在send之前调用
316- if (!NetCore_TCPXCore_CBSendEx (xhNetDownload, lpszClientAddr, XEngine_Download_CBSend, &nNetType))
329+ bool bRet = false ;
330+ if (STORAGE_NETTYPE_HTTPWEBDAV == nNetType)
331+ {
332+ bRet = NetCore_TCPXCore_CBSendEx (xhNetWebdav, lpszClientAddr, XEngine_Download_CBSend, &nNetType);
333+ }
334+ else
335+ {
336+ bRet = NetCore_TCPXCore_CBSendEx (xhNetDownload, lpszClientAddr, XEngine_Download_CBSend, &nNetType);
337+ }
338+ if (!bRet)
317339 {
318340 st_HDRParam.bIsClose = true ;
319341 st_HDRParam.nHttpCode = 404 ;
@@ -323,6 +345,8 @@ bool XEngine_Task_HttpDownload(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in
323345 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 下载客户端:%s,设置回调下载失败,文件:%s,错误:%lX" ), lpszClientAddr, tszFileDir, Session_GetLastError ());
324346 return false ;
325347 }
348+ HttpProtocol_Server_SendMsgEx (xhDLHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL , ullSize, tszFieldStr);
349+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
326350 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" 下载客户端:%s,请求下载文件成功,文件名:%s,总大小:%llu,发送大小:%llu,范围:%d - %d" ), lpszClientAddr, tszFileDir, ullCount, ullSize, nPosStart, nPosEnd);
327351 return true ;
328352}
0 commit comments