Skip to content

Commit 6e82409

Browse files
committed
added:file lock and create time attribute support for webdav
1 parent 0f5e67f commit 6e82409

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

XEngine_Source/StorageModule_Protocol/Protocol_Packet/Protocol_StoragePacket.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -820,6 +820,15 @@ bool CProtocol_StoragePacket::Protocol_StoragePacket_WDPropfind(XCHAR* ptszMsgBu
820820
XMLElement* pSt_XMLModifyTime = m_XMLDocument.NewElement("d:getlastmodified");
821821
pSt_XMLModifyTime->SetText(tszGMTTime);
822822
pSt_XMLProp->InsertEndChild(pSt_XMLModifyTime);
823+
//属性创建时间
824+
#if XENGINE_VERSION_KERNEL >= 9 && XENGINE_VERSION_MAIN >= 22
825+
XCHAR tszISOTime[128] = {};
826+
BaseLib_Time_ISOTime(tszISOTime, st_FileAttr.nCreateTime);
827+
828+
XMLElement* pSt_XMLCreateTime = m_XMLDocument.NewElement("d:creationdate");
829+
pSt_XMLCreateTime->SetText(tszISOTime);
830+
pSt_XMLProp->InsertEndChild(pSt_XMLCreateTime);
831+
#endif
823832
if (st_FileAttr.bFile)
824833
{
825834
//增加会话属性
@@ -880,6 +889,29 @@ bool CProtocol_StoragePacket::Protocol_StoragePacket_WDPropfind(XCHAR* ptszMsgBu
880889
pSt_XMHTokenRef->SetText(st_WDLocker.tszToken);
881890
pSt_XMLLockToken->InsertEndChild(pSt_XMHTokenRef);
882891
}
892+
else
893+
{
894+
//没有锁定
895+
// 子元素 <supportedlock>
896+
XMLElement* pSt_XMLLockSupport = m_XMLDocument.NewElement("d:supportedlock");
897+
pSt_XMLProp->InsertEndChild(pSt_XMLLockSupport);
898+
899+
XMLElement* pSt_XMLLockEntry = m_XMLDocument.NewElement("d:lockentry");
900+
pSt_XMLLockSupport->InsertEndChild(pSt_XMLLockEntry);
901+
902+
XMLElement* pSt_XMLLockScope = m_XMLDocument.NewElement("d:lockscope");
903+
pSt_XMLLockEntry->InsertEndChild(pSt_XMLLockScope);
904+
XMLElement* pSt_XMLLockExclusive = m_XMLDocument.NewElement("d:exclusive");
905+
pSt_XMLLockScope->InsertEndChild(pSt_XMLLockExclusive);
906+
907+
XMLElement* pSt_XMLLockType = m_XMLDocument.NewElement("d:locktype");
908+
pSt_XMLLockEntry->InsertEndChild(pSt_XMLLockType);
909+
XMLElement* pSt_XMLLockWrite = m_XMLDocument.NewElement("d:write");
910+
pSt_XMLLockType->InsertEndChild(pSt_XMLLockWrite);
911+
912+
XMLElement* pSt_XMLLockDiscovery = m_XMLDocument.NewElement("d:lockdiscovery");
913+
pSt_XMLProp->InsertEndChild(pSt_XMLLockDiscovery);
914+
}
883915
}
884916
else
885917
{

XEngine_Source/XEngine_StorageApp/StorageApp_UPLoader.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ bool XEngine_Task_HttpUPLoader(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, in
324324
memset(ptszIPClient, '\0', XPATH_MAX);
325325
_tcsxcpy(ptszIPClient, lpszClientAddr);
326326

327-
nLimit = nLimit == 0 ? st_ServiceCfg.st_XLimit.nMaxUPLoader : nLimit;
327+
nLimit = nLimit == 0 ? (int)st_ServiceCfg.st_XLimit.nMaxUPLoader : nLimit;
328328
xhUPSpeed = Algorithm_Calculation_Create();
329329
Algorithm_Calculation_PassiveOPen(xhUPSpeed, XEngine_UPLoader_UPFlow, nLimit, 0, 0, false, ptszIPClient);
330330
NetCore_TCPXCore_PasueRecvEx(xhNetUPLoader, lpszClientAddr, false);

0 commit comments

Comments
 (0)