@@ -629,6 +629,64 @@ bool CProtocol_StoragePacket::Protocol_StoragePacket_WDPropfind(XCHAR* ptszMsgBu
629629 XMLElement* pSt_XMLModifyTime = m_XMLDocument.NewElement (" d:getlastmodified" );
630630 pSt_XMLModifyTime->SetText (tszGMTTime);
631631 pSt_XMLProp->InsertEndChild (pSt_XMLModifyTime);
632+ // 增加会话属性
633+ // 获得会话
634+ XENGINE_WEBDAVLOCK st_WDLocker = {};
635+ if (Session_Webdav_Get (tszFileAlis, &st_WDLocker))
636+ {
637+ // 子元素 <lockdiscovery>
638+ XMLElement* pSt_XMLLockDiscovery = m_XMLDocument.NewElement (" D:lockdiscovery" );
639+ pSt_XMLProp->InsertEndChild (pSt_XMLLockDiscovery);
640+ // 子元素 <activelock>
641+ XMLElement* pSt_XMLLockActive = m_XMLDocument.NewElement (" D:activelock" );
642+ pSt_XMLLockDiscovery->InsertEndChild (pSt_XMLLockActive);
643+ // 子元素 <locktype>
644+ XMLElement* pSt_XMLLockType = m_XMLDocument.NewElement (" D:locktype" );
645+ pSt_XMLLockActive->InsertEndChild (pSt_XMLLockType);
646+ if (1 == st_WDLocker.byLockOP )
647+ {
648+ XMLElement* pSt_XMLLockWrite = m_XMLDocument.NewElement (" D:write" );
649+ pSt_XMLLockType->InsertEndChild (pSt_XMLLockWrite);
650+ }
651+ else if (2 == st_WDLocker.byLockOP )
652+ {
653+ XMLElement* pSt_XMLLockRead = m_XMLDocument.NewElement (" D:read" );
654+ pSt_XMLLockType->InsertEndChild (pSt_XMLLockRead);
655+ }
656+ // 子元素 <lockscope>
657+ XMLElement* pSt_XMLLockScope = m_XMLDocument.NewElement (" D:lockscope" );
658+ pSt_XMLLockActive->InsertEndChild (pSt_XMLLockScope);
659+ if (1 == st_WDLocker.byLockType )
660+ {
661+ XMLElement* pSt_XMLLockExclusive = m_XMLDocument.NewElement (" D:exclusive" );
662+ pSt_XMLLockScope->InsertEndChild (pSt_XMLLockExclusive);
663+ }
664+ else if (2 == st_WDLocker.byLockType )
665+ {
666+ XMLElement* pSt_XMLLockShared = m_XMLDocument.NewElement (" D:shared" );
667+ pSt_XMLLockScope->InsertEndChild (pSt_XMLLockShared);
668+ }
669+ // 子元素 <depth>
670+ XMLElement* pSt_XMLDepth = m_XMLDocument.NewElement (" D:depth" );
671+ pSt_XMLDepth->SetText (_X (" Infinity" ));
672+ pSt_XMLLockActive->InsertEndChild (pSt_XMLDepth);
673+ // 子元素 <owner>
674+ XMLElement* pSt_XMLOwner = m_XMLDocument.NewElement (" D:owner" );
675+ pSt_XMLLockActive->InsertEndChild (pSt_XMLOwner);
676+ XMLElement* pSt_XMHRef = m_XMLDocument.NewElement (" D:href" );
677+ pSt_XMHRef->SetText (st_WDLocker.tszOwner );
678+ pSt_XMLOwner->InsertEndChild (pSt_XMHRef);
679+ // 子元素 <timeout>
680+ XMLElement* pSt_XMLTimeout = m_XMLDocument.NewElement (" D:timeout" );
681+ pSt_XMLTimeout->SetText (st_WDLocker.tszTimeout );
682+ pSt_XMLLockActive->InsertEndChild (pSt_XMLTimeout);
683+ // 子元素 <locktoken>
684+ XMLElement* pSt_XMLLockToken = m_XMLDocument.NewElement (" D:locktoken" );
685+ pSt_XMLLockActive->InsertEndChild (pSt_XMLLockToken);
686+ XMLElement* pSt_XMHTokenRef = m_XMLDocument.NewElement (" D:href" );
687+ pSt_XMHTokenRef->SetText (st_WDLocker.tszToken );
688+ pSt_XMLLockToken->InsertEndChild (pSt_XMHTokenRef);
689+ }
632690 }
633691 else
634692 {
0 commit comments