bool CDAVFile::Rename(const CURL& url, const CURL& urlnew) { if (m_opened) return false; CDAVFile dav; CURL url2(urlnew); std::string strProtocol = url2.GetTranslatedProtocol(); url2.SetProtocol(strProtocol); std::string strRequest = "MOVE"; dav.SetCustomRequest(strRequest); dav.SetRequestHeader("Destination", url2.GetWithoutUserDetails()); if (!dav.Execute(url)) { CLog::Log(LOGERROR, "%s - Unable to rename dav resource (%s)", __FUNCTION__, url.Get().c_str()); return false; } dav.Close(); return true; }
int CDAVFile::Stat(const CURL& url, struct __stat64* buffer) { CDAVFile dav; std::string strRequest = "PROPFIND"; dav.SetCustomRequest(strRequest); dav.SetRequestHeader("depth", 0); dav.SetMimeType("text/xml; charset=\"utf-8\""); if (buffer) { CLog::Log(LOGDEBUG, "CDAVFile::Stat - Execute STAT (%s)", url.GetRedacted().c_str()); dav.SetPostData( "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" " <D:propfind xmlns:D=\"DAV:\">" " <D:prop>" " <D:resourcetype/>" " <D:getcontentlength/>" " <D:getlastmodified/>" " <D:creationdate/>" " <D:displayname/>" " </D:prop>" " </D:propfind>"); } else { dav.SetPostData( "<?xml version=\"1.0\" encoding=\"utf-8\" ?>"); } if (!dav.Execute(url)) { if (buffer) CLog::Log(LOGERROR, "CDAVFile::Stat - Unable to stat resource (%s) with code %i", url.GetRedacted().c_str(), m_lastResponseCode); return -1; } dav.Close(); // Iterate over all responses for (TiXmlNode *pChild = m_davResponse.RootElement()->FirstChild(); pChild != 0; pChild = pChild->NextSibling()) { if (CDAVCommon::ValueWithoutNamespace(pChild, "response")) { if (ParseResponse(pChild->ToElement(), buffer)) return 0; else return -1; } } return -1; }