25 #include <QtCore/QObject>
26 #include <QtCore/QCharRef>
27 #include <QtCore/QMutableStringListIterator>
28 #include <QtCore/QPointer>
29 #include <QtXml/QDomDocument>
31 #include <sys/types.h>
50 DavJobPrivate(
const KUrl& url)
53 QByteArray savedStaticData;
54 QByteArray str_response;
55 QDomDocument m_response;
64 DavJob *job =
new DavJob(*
new DavJobPrivate(url), method, request);
78 QDataStream stream( &d->m_packedArgs, QIODevice::WriteOnly );
79 stream << (int) 7 << d->m_url << method;
81 if ( ! request.isEmpty() ) {
82 d->staticData =
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n" + request.toUtf8();
83 d->staticData.truncate( d->staticData.size() - 1 );
84 d->savedStaticData = d->staticData;
85 stream << static_cast<qint64>( d->staticData.size() );
88 stream << static_cast<qint64>( -1 );
94 return d_func()->m_response;
100 if(d->m_redirectionURL.isEmpty() || !d->m_redirectionURL.isValid() ||
error()) {
101 unsigned int oldSize = d->str_response.size();
102 d->str_response.resize( oldSize + data.size() );
103 memcpy( d->str_response.data() + oldSize, data.data(), data.size() );
111 if (!d->m_redirectionURL.isEmpty() && d->m_redirectionURL.isValid() &&
113 QDataStream istream( d->m_packedArgs );
122 if ( (s_cmd == 7) && (s_method == (
int)KIO::DAV_PROPFIND) ) {
123 d->m_packedArgs.truncate(0);
124 QDataStream stream( &d->m_packedArgs, QIODevice::WriteOnly );
125 stream << (int)7 << d->m_redirectionURL << (
int)KIO::DAV_PROPFIND << s_size;
127 }
else if ( ! d->m_response.setContent( d->str_response,
true ) ) {
129 QDomElement root = d->m_response.createElementNS(
"DAV:",
"error-report" );
130 d->m_response.appendChild( root );
132 QDomElement el = d->m_response.createElementNS(
"DAV:",
"offending-response" );
133 QDomText textnode = d->m_response.createTextNode( d->str_response );
134 el.appendChild( textnode );
135 root.appendChild( el );
139 d->staticData = d->savedStaticData;
161 QDomElement searchrequest = doc.createElementNS(
"DAV:",
"searchrequest" );
162 QDomElement searchelement = doc.createElementNS( nsURI, qName );
163 QDomText text = doc.createTextNode( query );
164 searchelement.appendChild( text );
165 searchrequest.appendChild( searchelement );
166 doc.appendChild( searchrequest );
177 #include "davjob.moc"