Skip to content

Commit 4533e9b

Browse files
committed
added:MKCOL method support for webdav
1 parent 991a74d commit 4533e9b

File tree

3 files changed

+30
-7
lines changed

3 files changed

+30
-7
lines changed

XEngine_Source/StorageModule_Database/Database_File/Database_File.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -477,8 +477,8 @@ bool CDatabase_File::Database_File_CreateTable()
477477
memset(tszTableName, '\0', sizeof(tszTableName));
478478
memset(tszSQLQuery, '\0', sizeof(tszSQLQuery));
479479

480-
XENGINE_LIBTIMER st_DBTime;
481-
memset(&st_DBTime, 0, sizeof(XENGINE_LIBTIMER));
480+
XENGINE_LIBTIME st_DBTime;
481+
memset(&st_DBTime, 0, sizeof(XENGINE_LIBTIME));
482482

483483
BaseLib_Time_GetSysTime(&st_DBTime);
484484

@@ -542,8 +542,8 @@ bool CDatabase_File::Database_File_TimeMonth(LPCXSTR lpszStartTime, int* pInt_Mo
542542
{
543543
Database_IsErrorOccur = false;
544544

545-
XENGINE_LIBTIMER st_EndTime;
546-
memset(&st_EndTime, '\0', sizeof(XENGINE_LIBTIMER));
545+
XENGINE_LIBTIME st_EndTime;
546+
memset(&st_EndTime, '\0', sizeof(XENGINE_LIBTIME));
547547

548548
BaseLib_Time_GetSysTime(&st_EndTime);
549549

XEngine_Source/StorageModule_Database/Database_Help/Database_Help.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ bool CDatabase_Help::Database_Help_Insert(XCHAR* ptszSQLBuffer, XSTORAGECORE_DBF
4343
Database_IsErrorOccur = false;
4444

4545
XCHAR tszTableName[64];
46-
XENGINE_LIBTIMER st_LibTimer;
46+
XENGINE_LIBTIME st_LibTimer;
4747

4848
memset(tszTableName, '\0', sizeof(tszTableName));
49-
memset(&st_LibTimer, '\0', sizeof(XENGINE_LIBTIMER));
49+
memset(&st_LibTimer, '\0', sizeof(XENGINE_LIBTIME));
5050
//获得插入日期表
5151
BaseLib_Time_GetSysTime(&st_LibTimer);
5252

XEngine_Source/XEngine_StorageApp/StorageApp_Webdav.cpp

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ bool XEngine_Task_HttpWebdav(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
5656
LPCXSTR lpszMethodDel = _X("DELETE");
5757
LPCXSTR lpszMethodLock = _X("LOCK");
5858
LPCXSTR lpszMethodUNLock = _X("UNLOCK");
59+
LPCXSTR lpszMethodMKCol = _X("MKCOL");
5960

6061
st_HDRParam.bIsClose = false;
6162
st_HDRParam.nHttpCode = 200;
@@ -232,7 +233,7 @@ bool XEngine_Task_HttpWebdav(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
232233
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPWEBDAV);
233234
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("WEBDAV客户端:%s,处理WEBDAV协议UNLOCK方法成功,锁文件:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri);
234235
return true;
235-
}
236+
}
236237
else if (0 == _tcsxnicmp(lpszMethodPropPatch, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodPropPatch)))
237238
{
238239
st_HDRParam.bIsClose = false;
@@ -274,6 +275,28 @@ bool XEngine_Task_HttpWebdav(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
274275
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("WEBDAV客户端:%s,处理WEBDAV协议DELETE方法成功,删除的文件:%s"), lpszClientAddr, tszFileName);
275276
return true;
276277
}
278+
else if (0 == _tcsxnicmp(lpszMethodMKCol, pSt_HTTPParam->tszHttpMethod, _tcsxlen(lpszMethodMKCol)))
279+
{
280+
XENGINE_STORAGEBUCKET st_StorageBucket = {};
281+
if (!APIHelp_Distributed_DLStorage(pSt_HTTPParam->tszHttpUri, st_LoadbalanceCfg.st_LoadBalance.pStl_ListBucket, &st_StorageBucket))
282+
{
283+
st_HDRParam.bIsClose = true;
284+
st_HDRParam.nHttpCode = 400;
285+
HttpProtocol_Server_SendMsgEx(xhWebdavHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
286+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPWEBDAV);
287+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("WEBDAV客户端:%s,处理WEBDAV协议PROPFIND方法失败,URL:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri);
288+
return false;
289+
}
290+
int nALen = 0;
291+
XCHAR tszCreateDir[MAX_PATH] = {};
292+
_tcsxcpy(tszCreateDir, pSt_HTTPParam->tszHttpUri + 1);
293+
BaseLib_String_Replace(tszCreateDir, &nALen, st_StorageBucket.tszBuckKey, st_StorageBucket.tszFilePath, true);
294+
295+
st_HDRParam.nHttpCode = 201;
296+
HttpProtocol_Server_SendMsgEx(xhWebdavHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
297+
XEngine_Net_SendMsg(lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPWEBDAV);
298+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("WEBDAV客户端:%s,处理WEBDAV协议MLCOL方法成功,创建的路径:%s"), lpszClientAddr, tszCreateDir);
299+
}
277300
else
278301
{
279302
st_HDRParam.bIsClose = true;

0 commit comments

Comments
 (0)