• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

KIOSlave

  • kioslave
  • http
http.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2000,2001 Dawit Alemayehu <adawit@kde.org>
3 Copyright (C) 2000,2001 Waldo Bastian <bastian@kde.org>
4 Copyright (C) 2000,2001 George Staikos <staikos@kde.org>
5 Copyright (C) 2001,2002 Hamish Rodda <rodda@kde.org>
6 Copyright (C) 2007 Daniel Nicoletti <mirttex@users.sourceforge.net>
7 Copyright (C) 2008,2009 Andreas Hartmetz <ahartmetz@gmail.com>
8
9 This library is free software; you can redistribute it and/or
10 modify it under the terms of the GNU Library General Public
11 License as published by the Free Software Foundation; either
12 version 2 of the License, or (at your option) any later version.
13
14 This library is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 Library General Public License for more details.
18
19 You should have received a copy of the GNU Library General Public License
20 along with this library; see the file COPYING.LIB. If not, write to
21 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 Boston, MA 02110-1301, USA.
23*/
24
25#ifndef HTTP_H
26#define HTTP_H
27
28
29#include <sys/types.h>
30#include <netinet/in.h>
31#include <arpa/inet.h>
32#include <string.h>
33#include <stdio.h>
34#include <time.h>
35
36#include <QtCore/QList>
37#include <QtCore/QStringList>
38#include <QtNetwork/QLocalSocket>
39
40#include <kurl.h>
41#include "kio/tcpslavebase.h"
42#include "kio/http.h"
43
44
45class QDomNodeList;
46class QFile;
47class QIODevice;
48
49namespace KIO {
50 class AuthInfo;
51}
52
53class HeaderTokenizer;
54class KAbstractHttpAuthentication;
55
56class HTTPProtocol : public QObject, public KIO::TCPSlaveBase
57{
58 Q_OBJECT
59public:
60 HTTPProtocol( const QByteArray &protocol, const QByteArray &pool,
61 const QByteArray &app );
62 virtual ~HTTPProtocol();
63
65 enum HTTP_REV {HTTP_None, HTTP_Unknown, HTTP_10, HTTP_11, SHOUTCAST};
66
68 enum AUTH_SCHEME {AUTH_None, AUTH_Basic, AUTH_NTLM, AUTH_Digest, AUTH_Negotiate};
69
71 struct DAVRequest
72 {
73 DAVRequest ()
74 {
75 overwrite = false;
76 depth = 0;
77 }
78
79 QString desturl;
80 bool overwrite;
81 int depth;
82 };
83
84 enum CacheIOMode {
85 NoCache = 0,
86 ReadFromCache = 1,
87 WriteToCache = 2
88 };
89
90 struct CacheTag
91 {
92 CacheTag()
93 {
94 useCache = false;
95 ioMode = NoCache;
96 bytesCached = 0;
97 file = 0;
98 expireDate = 0;
99 servedDate = 0;
100 lastModifiedDate = 0;
101 fileUseCount = 0;
102 }
103
104 enum CachePlan {
105 UseCached = 0,
106 ValidateCached,
107 IgnoreCached
108 };
109
110 CachePlan plan(int maxCacheAge) const;
111 QByteArray serialize() const;
112 bool deserialize(const QByteArray &);
113
114 KIO::CacheControl policy; // ### initialize in the constructor?
115 bool useCache; // Whether the cache should be used
116 enum CacheIOMode ioMode; // Write to cache file, read from it, or don't use it.
117 quint32 fileUseCount;
118 quint32 bytesCached;
119 QString etag; // entity tag header as described in the HTTP standard.
120 QFile *file; // file on disk - either a QTemporaryFile (write) or QFile (read)
121 qint64 servedDate; // Date when the resource was served by the origin server
122 qint64 lastModifiedDate; // Last modified.
123 qint64 expireDate; // Date when the cache entry will expire
124 QString charset;
125 };
126
128 struct HTTPRequest
129 {
130 HTTPRequest ()
131 {
132 method = KIO::HTTP_UNKNOWN;
133 offset = 0;
134 endoffset = 0;
135 allowTransferCompression = false;
136 disablePassDialog = false;
137 doNotWWWAuthenticate = false;
138 doNotProxyAuthenticate = false;
139 preferErrorPage = false;
140 useCookieJar = false;
141 }
142
143 QByteArray methodString() const;
144
145 KUrl url;
146 QString encoded_hostname; //### can be calculated on-the-fly
147 // Persistent connections
148 bool isKeepAlive;
149 int keepAliveTimeout; // Timeout in seconds.
150
151 KIO::HTTP_METHOD method;
152 QString methodStringOverride; // Overrides method if non-empty.
153 QByteArray sentMethodString; // Stores http method actually sent
154 KIO::filesize_t offset;
155 KIO::filesize_t endoffset;
156 QString windowId; // Window Id this request is related to.
157 // Header fields
158 QString referrer;
159 QString charsets;
160 QString languages;
161 QString userAgent;
162 // Previous and current response codes
163 unsigned int responseCode;
164 unsigned int prevResponseCode;
165 // Miscellaneous
166 QString id;
167 DAVRequest davData;
168 KUrl redirectUrl;
169 KUrl proxyUrl;
170 QStringList proxyUrls;
171
172 bool isPersistentProxyConnection;
173 bool allowTransferCompression;
174 bool disablePassDialog;
175 bool doNotWWWAuthenticate;
176 bool doNotProxyAuthenticate;
177 // Indicates whether an error page or error message is preferred.
178 bool preferErrorPage;
179
180 // Use the cookie jar (or pass cookies to the application as metadata instead)
181 bool useCookieJar;
182 // Cookie flags
183 enum { CookiesAuto, CookiesManual, CookiesNone } cookieMode;
184
185 CacheTag cacheTag;
186 };
187
189 struct HTTPServerState
190 {
191 HTTPServerState()
192 {
193 isKeepAlive = false;
194 isPersistentProxyConnection = false;
195 }
196
197 void initFrom(const HTTPRequest &request)
198 {
199 url = request.url;
200 encoded_hostname = request.encoded_hostname;
201 isKeepAlive = request.isKeepAlive;
202 proxyUrl = request.proxyUrl;
203 isPersistentProxyConnection = request.isPersistentProxyConnection;
204 }
205
206 void updateCredentials(const HTTPRequest &request)
207 {
208 if (url.host() == request.url.host() && url.port() == request.url.port()) {
209 url.setUserName(request.url.userName());
210 url.setPassword(request.url.password());
211 }
212 if (proxyUrl.host() == request.proxyUrl.host() &&
213 proxyUrl.port() == request.proxyUrl.port()) {
214 proxyUrl.setUserName(request.proxyUrl.userName());
215 proxyUrl.setPassword(request.proxyUrl.password());
216 }
217 }
218
219 void clear()
220 {
221 url.clear();
222 encoded_hostname.clear();
223 proxyUrl.clear();
224 isKeepAlive = false;
225 isPersistentProxyConnection = false;
226 }
227
228 KUrl url;
229 QString encoded_hostname;
230 KUrl proxyUrl;
231 bool isKeepAlive;
232 bool isPersistentProxyConnection;
233 };
234
235//---------------------- Re-implemented methods ----------------
236 virtual void setHost(const QString& host, quint16 port, const QString& user,
237 const QString& pass);
238
239 virtual void slave_status();
240
241 virtual void get( const KUrl& url );
242 virtual void put( const KUrl& url, int _mode, KIO::JobFlags flags );
243
244//----------------- Re-implemented methods for WebDAV -----------
245 virtual void listDir( const KUrl& url );
246 virtual void mkdir( const KUrl& url, int _permissions );
247
248 virtual void rename( const KUrl& src, const KUrl& dest, KIO::JobFlags flags );
249 virtual void copy( const KUrl& src, const KUrl& dest, int _permissions, KIO::JobFlags flags );
250 virtual void del( const KUrl& url, bool _isfile );
251
252 // ask the host whether it supports WebDAV & cache this info
253 bool davHostOk();
254
255 // send generic DAV request
256 void davGeneric( const KUrl& url, KIO::HTTP_METHOD method, qint64 size = -1 );
257
258 // Send requests to lock and unlock resources
259 void davLock( const KUrl& url, const QString& scope,
260 const QString& type, const QString& owner );
261 void davUnlock( const KUrl& url );
262
263 // Calls httpClose() and finished()
264 void davFinished();
265
266 // Handle error conditions
267 QString davError( int code = -1, const QString &url = QString() );
268//---------------------------- End WebDAV -----------------------
269
279 virtual void special( const QByteArray &data );
280
281 virtual void mimetype( const KUrl& url);
282
283 virtual void stat( const KUrl& url );
284
285 virtual void reparseConfiguration();
286
290 virtual void closeConnection();
291
292 void post( const KUrl& url, qint64 size = -1 );
293 void multiGet(const QByteArray &data);
294 bool maybeSetRequestUrl(const KUrl &);
295
299 bool sendHttpError();
300
304 bool sendErrorPageNotification();
305
309 bool isOffline();
310
311protected Q_SLOTS:
312 void slotData(const QByteArray &);
313 void slotFilterError(const QString &text);
314 void error(int errid, const QString &text);
315 void proxyAuthenticationForSocket(const QNetworkProxy &, QAuthenticator *);
316 void saveProxyAuthenticationForSocket();
317
318protected:
319 int readChunked();
320 int readLimited();
321 int readUnlimited();
322
327 ssize_t write(const void *buf, size_t nbytes);
328 using SlaveBase::write;
329
335 void addEncoding(const QString &, QStringList &);
336
337 quint16 defaultPort() const;
338
339 // The methods between here and sendQuery() are helpers for sendQuery().
340
346 bool satisfyRequestFromCache(bool *cacheHasPage);
347 QString formatRequestUri() const;
351 QString authenticationHeader();
352 bool sendQuery();
353
357 void httpClose(bool keepAlive);
361 bool httpOpenConnection();
365 void httpCloseConnection();
369 bool httpShouldCloseConnection();
370
371 void forwardHttpResponseHeader(bool forwardImmediately = true);
372
378 void fixupResponseMimetype();
384 void fixupResponseContentEncoding();
385
386 bool readResponseHeader();
387 bool parseHeaderFromCache();
388 void parseContentDisposition(const QString &disposition);
389
390 bool sendBody();
391 bool sendCachedBody();
392
393 // where dataInternal == true, the content is to be made available
394 // to an internal function.
395 bool readBody( bool dataInternal = false );
396
400 void davSetRequest( const QByteArray& requestXML );
401 void davStatList( const KUrl& url, bool stat = true );
402 void davParsePropstats( const QDomNodeList& propstats, KIO::UDSEntry& entry );
403 void davParseActiveLocks( const QDomNodeList& activeLocks,
404 uint& lockCount );
405
409 int codeFromResponse( const QString& response );
410
415 QString davProcessLocks();
416
420 void addCookies( const QString &url, const QByteArray &cookieHeader);
421
425 QString findCookies( const QString &url);
426
427 void cacheParseResponseHeader(const HeaderTokenizer &tokenizer);
428
429 QString cacheFilePathFromUrl(const KUrl &url) const;
430 bool cacheFileOpenRead();
431 bool cacheFileOpenWrite();
432 void cacheFileClose();
433 void sendCacheCleanerCommand(const QByteArray &command);
434
435 QByteArray cacheFileReadPayload(int maxLength);
436 void cacheFileWritePayload(const QByteArray &d);
437 void cacheFileWriteTextHeader();
441 bool cacheFileReadTextHeader1(const KUrl &desiredUrl);
445 bool cacheFileReadTextHeader2();
446 void setCacheabilityMetadata(bool cachingAllowed);
447
456 void proceedUntilResponseContent( bool dataInternal = false );
457
461 bool proceedUntilResponseHeader();
462
466 void resetSessionSettings();
467
471 void resetResponseParsing();
472
479 void resetConnectionSettings();
480
487 void cachePostData(const QByteArray&);
488
495 void clearPostDataBuffer();
496
500 bool retrieveAllData();
501
505 void saveAuthenticationData();
506
510 bool handleAuthenticationHeader(const HeaderTokenizer* tokenizer);
511
515 void copyPut(const KUrl& src, const KUrl& dest, KIO::JobFlags flags);
516
520 bool davStatDestination();
521
522protected:
523 HTTPServerState m_server;
524 HTTPRequest m_request;
525 QList<HTTPRequest> m_requestQueue;
526
527 // Processing related
528 KIO::filesize_t m_iSize;
529 KIO::filesize_t m_iPostDataSize;
530 KIO::filesize_t m_iBytesLeft;
531 KIO::filesize_t m_iContentLeft;
532 QByteArray m_receiveBuf;
533 bool m_dataInternal;
534 bool m_isChunked;
535
536 bool m_isBusy;
537 bool m_isEOF;
538 bool m_isEOD;
539
540//--- Settings related to a single response only
541 bool m_isRedirection;
542 QStringList m_responseHeaders;
543
544
545 // Language/Encoding related
546 QStringList m_transferEncodings;
547 QStringList m_contentEncodings;
548 QString m_contentMD5;
549 QString m_mimeType; // TODO QByteArray?
550
551
552//--- WebDAV
553 // Data structure to hold data which will be passed to an internal func.
554 QByteArray m_webDavDataBuf;
555 QStringList m_davCapabilities;
556
557 bool m_davHostOk;
558 bool m_davHostUnsupported;
559//----------
560
561 // Mimetype determination
562 bool m_cpMimeBuffer;
563 QByteArray m_mimeTypeBuffer;
564
565
566 // Holds the POST data so it won't get lost on if we
567 // happend to get a 401/407 response when submitting
568 // a form.
569 QIODevice* m_POSTbuf;
570
571 // Cache related
572 int m_maxCacheAge;
573 long m_maxCacheSize;
574 QString m_strCacheDir;
575 QLocalSocket m_cacheCleanerConnection;
576
577 // Operation mode
578 QByteArray m_protocol;
579
580 KAbstractHttpAuthentication *m_wwwAuth;
581 KAbstractHttpAuthentication *m_proxyAuth;
582 // For proxy auth when it's handled by the Qt/KDE socket classes
583 QAuthenticator *m_socketProxyAuth;
584
585 // Indicates whether there was some error.
586 int m_iError;
587 // Whether we are loading an error page (we should close the connection afterwards)
588 bool m_isLoadingErrorPage;
589
590 // Values that determine the remote connection timeouts.
591 int m_remoteRespTimeout;
592
593 // EOF Retry count
594 quint8 m_iEOFRetryCount;
595
596 QByteArray m_unreadBuf;
597 void clearUnreadBuffer();
598 void unread(char *buf, size_t size);
599 size_t readBuffered(char *buf, size_t size, bool unlimited = true);
600 bool readDelimitedText(char *buf, int *idx, int end, int numNewlines);
601};
602#endif
HTTPProtocol
Definition: http.h:57
HTTPProtocol::m_socketProxyAuth
QAuthenticator * m_socketProxyAuth
Definition: http.h:583
HTTPProtocol::httpClose
void httpClose(bool keepAlive)
Close transfer.
Definition: http.cpp:3988
HTTPProtocol::maybeSetRequestUrl
bool maybeSetRequestUrl(const KUrl &)
Definition: http.cpp:650
HTTPProtocol::fixupResponseMimetype
void fixupResponseMimetype()
fix common mimetype errors by webservers.
Definition: http.cpp:2770
HTTPProtocol::davError
QString davError(int code=-1, const QString &url=QString())
Definition: http.cpp:1576
HTTPProtocol::cacheParseResponseHeader
void cacheParseResponseHeader(const HeaderTokenizer &tokenizer)
Definition: http.cpp:3647
HTTPProtocol::m_protocol
QByteArray m_protocol
Definition: http.h:578
HTTPProtocol::handleAuthenticationHeader
bool handleAuthenticationHeader(const HeaderTokenizer *tokenizer)
Handles HTTP authentication.
Definition: http.cpp:5357
HTTPProtocol::m_maxCacheSize
long m_maxCacheSize
Maximum cache size in Kb.
Definition: http.h:573
HTTPProtocol::readBody
bool readBody(bool dataInternal=false)
This function is our "receive" function.
Definition: http.cpp:4342
HTTPProtocol::addEncoding
void addEncoding(const QString &, QStringList &)
Add an encoding on to the appropriate stack this is nececesary because transfer encodings and content...
Definition: http.cpp:3621
HTTPProtocol::setHost
virtual void setHost(const QString &host, quint16 port, const QString &user, const QString &pass)
Definition: http.cpp:618
HTTPProtocol::isOffline
bool isOffline()
Check network status.
Definition: http.cpp:1931
HTTPProtocol::proceedUntilResponseHeader
bool proceedUntilResponseHeader()
Ensure we are connected, send our query, and get the response header.
Definition: http.cpp:696
HTTPProtocol::httpCloseConnection
void httpCloseConnection()
Close connection.
Definition: http.cpp:4022
HTTPProtocol::put
virtual void put(const KUrl &url, int _mode, KIO::JobFlags flags)
Definition: http.cpp:1337
HTTPProtocol::httpShouldCloseConnection
bool httpShouldCloseConnection()
Check whether to keep or close the connection.
Definition: http.cpp:2163
HTTPProtocol::formatRequestUri
QString formatRequestUri() const
Definition: http.cpp:2336
HTTPProtocol::cacheFileOpenRead
bool cacheFileOpenRead()
Definition: http.cpp:4870
HTTPProtocol::davStatDestination
bool davStatDestination()
Stats a remote DAV file and returns true if it exists.
Definition: http.cpp:5556
HTTPProtocol::m_mimeTypeBuffer
QByteArray m_mimeTypeBuffer
Definition: http.h:563
HTTPProtocol::m_transferEncodings
QStringList m_transferEncodings
Definition: http.h:546
HTTPProtocol::sendHttpError
bool sendHttpError()
Generate and send error message based on response code.
Definition: http.cpp:1887
HTTPProtocol::m_proxyAuth
KAbstractHttpAuthentication * m_proxyAuth
Definition: http.h:581
HTTPProtocol::m_webDavDataBuf
QByteArray m_webDavDataBuf
Definition: http.h:554
HTTPProtocol::readResponseHeader
bool readResponseHeader()
This function will read in the return header from the server.
Definition: http.cpp:2901
HTTPProtocol::davLock
void davLock(const KUrl &url, const QString &scope, const QString &type, const QString &owner)
Definition: http.cpp:1492
HTTPProtocol::m_responseHeaders
QStringList m_responseHeaders
All headers.
Definition: http.h:542
HTTPProtocol::readLimited
int readLimited()
Read maximum m_iSize bytes.
Definition: http.cpp:4215
HTTPProtocol::copy
virtual void copy(const KUrl &src, const KUrl &dest, int _permissions, KIO::JobFlags flags)
Definition: http.cpp:1366
HTTPProtocol::findCookies
QString findCookies(const QString &url)
Look for cookies in the cookiejar.
Definition: http.cpp:4613
HTTPProtocol::retrieveAllData
bool retrieveAllData()
Returns true on successful retrieval of all content data.
Definition: http.cpp:5109
HTTPProtocol::defaultPort
quint16 defaultPort() const
Definition: http.cpp:487
HTTPProtocol::slotFilterError
void slotFilterError(const QString &text)
Definition: http.cpp:4577
HTTPProtocol::readDelimitedText
bool readDelimitedText(char *buf, int *idx, int end, int numNewlines)
Definition: http.cpp:2109
HTTPProtocol::cacheFileReadTextHeader2
bool cacheFileReadTextHeader2()
load the rest of the text fields
Definition: http.cpp:4821
HTTPProtocol::m_cacheCleanerConnection
QLocalSocket m_cacheCleanerConnection
Connection to the cache cleaner process.
Definition: http.h:575
HTTPProtocol::resetResponseParsing
void resetResponseParsing()
Resets variables related to parsing a response.
Definition: http.cpp:492
HTTPProtocol::sendBody
bool sendBody()
Definition: http.cpp:3894
HTTPProtocol::m_maxCacheAge
int m_maxCacheAge
Maximum age of a cache entry in seconds.
Definition: http.h:572
HTTPProtocol::addCookies
void addCookies(const QString &url, const QByteArray &cookieHeader)
Send a cookie to the cookiejar.
Definition: http.cpp:4605
HTTPProtocol::del
virtual void del(const KUrl &url, bool _isfile)
Definition: http.cpp:1446
HTTPProtocol::cacheFileOpenWrite
bool cacheFileOpenWrite()
Definition: http.cpp:4904
HTTPProtocol::m_iContentLeft
KIO::filesize_t m_iContentLeft
Definition: http.h:531
HTTPProtocol::readUnlimited
int readUnlimited()
Read as much as possible.
Definition: http.cpp:4237
HTTPProtocol::sendErrorPageNotification
bool sendErrorPageNotification()
Call SlaveBase::errorPage() and remember that we've called it.
Definition: http.cpp:1918
HTTPProtocol::readChunked
int readChunked()
Read a chunk.
Definition: http.cpp:4144
HTTPProtocol::saveProxyAuthenticationForSocket
void saveProxyAuthenticationForSocket()
Definition: http.cpp:5290
HTTPProtocol::codeFromResponse
int codeFromResponse(const QString &response)
Returns the error code from a "HTTP/1.1 code Code Name" string.
Definition: http.cpp:960
HTTPProtocol::resetSessionSettings
void resetSessionSettings()
Resets any per session settings.
Definition: http.cpp:508
HTTPProtocol::slave_status
virtual void slave_status()
Definition: http.cpp:4031
HTTPProtocol::m_strCacheDir
QString m_strCacheDir
Location of the cache.
Definition: http.h:574
HTTPProtocol::davUnlock
void davUnlock(const KUrl &url)
Definition: http.cpp:1556
HTTPProtocol::closeConnection
virtual void closeConnection()
Forced close of connection.
Definition: http.cpp:4016
HTTPProtocol::m_POSTbuf
QIODevice * m_POSTbuf
Definition: http.h:569
HTTPProtocol::cacheFileWriteTextHeader
void cacheFileWriteTextHeader()
Definition: http.cpp:4774
HTTPProtocol::davGeneric
void davGeneric(const KUrl &url, KIO::HTTP_METHOD method, qint64 size=-1)
Definition: http.cpp:939
HTTPProtocol::post
void post(const KUrl &url, qint64 size=-1)
Definition: http.cpp:1477
HTTPProtocol::write
ssize_t write(const void *buf, size_t nbytes)
A thin wrapper around TCPSlaveBase::write() that will retry writing as long as no error occurs.
Definition: http.cpp:2035
HTTPProtocol::slotData
void slotData(const QByteArray &)
Definition: http.cpp:4256
HTTPProtocol::m_iEOFRetryCount
quint8 m_iEOFRetryCount
Definition: http.h:594
HTTPProtocol::fixupResponseContentEncoding
void fixupResponseContentEncoding()
fix common content-encoding errors by webservers.
Definition: http.cpp:2834
HTTPProtocol::m_cpMimeBuffer
bool m_cpMimeBuffer
Definition: http.h:562
HTTPProtocol::m_receiveBuf
QByteArray m_receiveBuf
Receive buffer.
Definition: http.h:532
HTTPProtocol::sendCachedBody
bool sendCachedBody()
Definition: http.cpp:3851
HTTPProtocol::cacheFileReadPayload
QByteArray cacheFileReadPayload(int maxLength)
Definition: http.cpp:5044
HTTPProtocol::listDir
virtual void listDir(const KUrl &url)
Definition: http.cpp:787
HTTPProtocol::HTTP_REV
HTTP_REV
HTTP version.
Definition: http.h:65
HTTPProtocol::HTTP_11
@ HTTP_11
Definition: http.h:65
HTTPProtocol::HTTP_None
@ HTTP_None
Definition: http.h:65
HTTPProtocol::HTTP_10
@ HTTP_10
Definition: http.h:65
HTTPProtocol::HTTP_Unknown
@ HTTP_Unknown
Definition: http.h:65
HTTPProtocol::SHOUTCAST
@ SHOUTCAST
Definition: http.h:65
HTTPProtocol::m_request
HTTPRequest m_request
Definition: http.h:524
HTTPProtocol::davSetRequest
void davSetRequest(const QByteArray &requestXML)
Performs a WebDAV stat or list.
Definition: http.cpp:798
HTTPProtocol::m_isChunked
bool m_isChunked
Chunked transfer encoding.
Definition: http.h:534
HTTPProtocol::unread
void unread(char *buf, size_t size)
Definition: http.cpp:2061
HTTPProtocol::davParsePropstats
void davParsePropstats(const QDomNodeList &propstats, KIO::UDSEntry &entry)
Definition: http.cpp:967
HTTPProtocol::m_isRedirection
bool m_isRedirection
Indicates current request is a redirection.
Definition: http.h:541
HTTPProtocol::cacheFileReadTextHeader1
bool cacheFileReadTextHeader1(const KUrl &desiredUrl)
check URL to guard against hash collisions, and load the etag for validation
Definition: http.cpp:4802
HTTPProtocol::resetConnectionSettings
void resetConnectionSettings()
Resets any per connection settings.
Definition: http.cpp:480
HTTPProtocol::m_dataInternal
bool m_dataInternal
Data is for internal consumption.
Definition: http.h:533
HTTPProtocol::setCacheabilityMetadata
void setCacheabilityMetadata(bool cachingAllowed)
Definition: http.cpp:3836
HTTPProtocol::m_isEOF
bool m_isEOF
Definition: http.h:537
HTTPProtocol::davProcessLocks
QString davProcessLocks()
Extracts locks from metadata Returns the appropriate If: header.
Definition: http.cpp:1192
HTTPProtocol::mimetype
virtual void mimetype(const KUrl &url)
Definition: http.cpp:4041
HTTPProtocol::copyPut
void copyPut(const KUrl &src, const KUrl &dest, KIO::JobFlags flags)
Handles file -> webdav put requests.
Definition: http.cpp:5522
HTTPProtocol::davFinished
void davFinished()
Definition: http.cpp:1295
HTTPProtocol::cacheFileClose
void cacheFileClose()
Definition: http.cpp:4961
HTTPProtocol::parseContentDisposition
void parseContentDisposition(const QString &disposition)
Definition: http.cpp:3609
HTTPProtocol::m_contentEncodings
QStringList m_contentEncodings
Definition: http.h:547
HTTPProtocol::multiGet
void multiGet(const QByteArray &data)
Definition: http.cpp:1945
HTTPProtocol::proxyAuthenticationForSocket
void proxyAuthenticationForSocket(const QNetworkProxy &, QAuthenticator *)
Definition: http.cpp:5231
HTTPProtocol::stat
virtual void stat(const KUrl &url)
Definition: http.cpp:755
HTTPProtocol::m_iBytesLeft
KIO::filesize_t m_iBytesLeft
Definition: http.h:530
HTTPProtocol::proceedUntilResponseContent
void proceedUntilResponseContent(bool dataInternal=false)
Do everything proceedUntilResponseHeader does, and also get the response body.
Definition: http.cpp:673
HTTPProtocol::forwardHttpResponseHeader
void forwardHttpResponseHeader(bool forwardImmediately=true)
Definition: http.cpp:2719
HTTPProtocol::mkdir
virtual void mkdir(const KUrl &url, int _permissions)
Definition: http.cpp:1302
HTTPProtocol::CacheIOMode
CacheIOMode
Definition: http.h:84
HTTPProtocol::NoCache
@ NoCache
Definition: http.h:85
HTTPProtocol::WriteToCache
@ WriteToCache
Definition: http.h:87
HTTPProtocol::ReadFromCache
@ ReadFromCache
Definition: http.h:86
HTTPProtocol::get
virtual void get(const KUrl &url)
Definition: http.cpp:1322
HTTPProtocol::parseHeaderFromCache
bool parseHeaderFromCache()
Definition: http.cpp:2731
HTTPProtocol::m_isEOD
bool m_isEOD
Definition: http.h:538
HTTPProtocol::m_iPostDataSize
KIO::filesize_t m_iPostDataSize
Definition: http.h:529
HTTPProtocol::authenticationHeader
QString authenticationHeader()
create HTTP authentications response(s), if any
Definition: http.cpp:5146
HTTPProtocol::saveAuthenticationData
void saveAuthenticationData()
Saves HTTP authentication data.
Definition: http.cpp:5311
HTTPProtocol::sendCacheCleanerCommand
void sendCacheCleanerCommand(const QByteArray &command)
Definition: http.cpp:5020
HTTPProtocol::cacheFilePathFromUrl
QString cacheFilePathFromUrl(const KUrl &url) const
Definition: http.cpp:4860
HTTPProtocol::m_isBusy
bool m_isBusy
Busy handling request queue.
Definition: http.h:536
HTTPProtocol::m_isLoadingErrorPage
bool m_isLoadingErrorPage
Definition: http.h:588
HTTPProtocol::m_requestQueue
QList< HTTPRequest > m_requestQueue
Definition: http.h:525
HTTPProtocol::error
void error(int errid, const QString &text)
Definition: http.cpp:4582
HTTPProtocol::reparseConfiguration
virtual void reparseConfiguration()
Definition: http.cpp:466
HTTPProtocol::davStatList
void davStatList(const KUrl &url, bool stat=true)
Definition: http.cpp:804
HTTPProtocol::readBuffered
size_t readBuffered(char *buf, size_t size, bool unlimited=true)
Definition: http.cpp:2075
HTTPProtocol::m_wwwAuth
KAbstractHttpAuthentication * m_wwwAuth
Definition: http.h:580
HTTPProtocol::sendQuery
bool sendQuery()
This function is responsible for opening up the connection to the remote HTTP server and sending the ...
Definition: http.cpp:2377
HTTPProtocol::m_davHostUnsupported
bool m_davHostUnsupported
Definition: http.h:558
HTTPProtocol::m_iError
int m_iError
Definition: http.h:586
HTTPProtocol::m_mimeType
QString m_mimeType
Definition: http.h:549
HTTPProtocol::m_remoteRespTimeout
int m_remoteRespTimeout
Definition: http.h:591
HTTPProtocol::m_davHostOk
bool m_davHostOk
Definition: http.h:557
HTTPProtocol::davParseActiveLocks
void davParseActiveLocks(const QDomNodeList &activeLocks, uint &lockCount)
Definition: http.cpp:1146
HTTPProtocol::rename
virtual void rename(const KUrl &src, const KUrl &dest, KIO::JobFlags flags)
Definition: http.cpp:1403
HTTPProtocol::special
virtual void special(const QByteArray &data)
Special commands supported by this slave : 1 - HTTP POST 2 - Cache has been updated 3 - SSL Certifica...
Definition: http.cpp:4060
HTTPProtocol::cachePostData
void cachePostData(const QByteArray &)
Caches the POST data in a temporary buffer.
Definition: http.cpp:5089
HTTPProtocol::clearPostDataBuffer
void clearPostDataBuffer()
Clears the POST data buffer.
Definition: http.cpp:5100
HTTPProtocol::AUTH_SCHEME
AUTH_SCHEME
Authorization method used.
Definition: http.h:68
HTTPProtocol::AUTH_Basic
@ AUTH_Basic
Definition: http.h:68
HTTPProtocol::AUTH_NTLM
@ AUTH_NTLM
Definition: http.h:68
HTTPProtocol::AUTH_None
@ AUTH_None
Definition: http.h:68
HTTPProtocol::AUTH_Digest
@ AUTH_Digest
Definition: http.h:68
HTTPProtocol::AUTH_Negotiate
@ AUTH_Negotiate
Definition: http.h:68
HTTPProtocol::cacheFileWritePayload
void cacheFileWritePayload(const QByteArray &d)
Definition: http.cpp:5057
HTTPProtocol::clearUnreadBuffer
void clearUnreadBuffer()
Definition: http.cpp:2054
HTTPProtocol::m_contentMD5
QString m_contentMD5
Definition: http.h:548
HTTPProtocol::m_iSize
KIO::filesize_t m_iSize
Expected size of message.
Definition: http.h:528
HTTPProtocol::m_unreadBuf
QByteArray m_unreadBuf
Definition: http.h:596
HTTPProtocol::m_davCapabilities
QStringList m_davCapabilities
Definition: http.h:555
HTTPProtocol::satisfyRequestFromCache
bool satisfyRequestFromCache(bool *cacheHasPage)
Return true if the request is already "done", false otherwise.
Definition: http.cpp:2295
HTTPProtocol::httpOpenConnection
bool httpOpenConnection()
Open connection.
Definition: http.cpp:2185
HTTPProtocol::davHostOk
bool davHostOk()
Definition: http.cpp:1241
HTTPProtocol::m_server
HTTPServerState m_server
Definition: http.h:523
HTTPProtocol::~HTTPProtocol
virtual ~HTTPProtocol()
Definition: http.cpp:461
HeaderTokenizer
Definition: parsinghelpers.h:65
KAbstractHttpAuthentication
Definition: httpauthentication.h:38
KIO::SlaveBase::data
void data(const QByteArray &data)
KIO::TCPSlaveBase
KIO::TCPSlaveBase::port
quint16 port() const
KIO::UDSEntry
KUrl
QIODevice
QList
QObject
kurl.h
KIO
KIO::CacheControl
CacheControl
KIO::filesize_t
qulonglong filesize_t
HTTPProtocol::CacheTag
Definition: http.h:91
HTTPProtocol::CacheTag::servedDate
qint64 servedDate
Definition: http.h:121
HTTPProtocol::CacheTag::ioMode
enum CacheIOMode ioMode
Definition: http.h:116
HTTPProtocol::CacheTag::CachePlan
CachePlan
Definition: http.h:104
HTTPProtocol::CacheTag::ValidateCached
@ ValidateCached
Definition: http.h:106
HTTPProtocol::CacheTag::UseCached
@ UseCached
Definition: http.h:105
HTTPProtocol::CacheTag::IgnoreCached
@ IgnoreCached
Definition: http.h:107
HTTPProtocol::CacheTag::deserialize
bool deserialize(const QByteArray &)
Definition: http.cpp:4723
HTTPProtocol::CacheTag::file
QFile * file
Definition: http.h:120
HTTPProtocol::CacheTag::bytesCached
quint32 bytesCached
Definition: http.h:118
HTTPProtocol::CacheTag::charset
QString charset
Definition: http.h:124
HTTPProtocol::CacheTag::lastModifiedDate
qint64 lastModifiedDate
Definition: http.h:122
HTTPProtocol::CacheTag::useCache
bool useCache
Definition: http.h:115
HTTPProtocol::CacheTag::policy
KIO::CacheControl policy
Definition: http.h:114
HTTPProtocol::CacheTag::expireDate
qint64 expireDate
Definition: http.h:123
HTTPProtocol::CacheTag::etag
QString etag
Definition: http.h:119
HTTPProtocol::CacheTag::CacheTag
CacheTag()
Definition: http.h:92
HTTPProtocol::CacheTag::plan
CachePlan plan(int maxCacheAge) const
Definition: http.cpp:4629
HTTPProtocol::CacheTag::serialize
QByteArray serialize() const
Definition: http.cpp:4693
HTTPProtocol::CacheTag::fileUseCount
quint32 fileUseCount
Definition: http.h:117
HTTPProtocol::DAVRequest
DAV-specific request elements for the current connection.
Definition: http.h:72
HTTPProtocol::DAVRequest::DAVRequest
DAVRequest()
Definition: http.h:73
HTTPProtocol::DAVRequest::overwrite
bool overwrite
Definition: http.h:80
HTTPProtocol::DAVRequest::depth
int depth
Definition: http.h:81
HTTPProtocol::DAVRequest::desturl
QString desturl
Definition: http.h:79
HTTPProtocol::HTTPRequest
The request for the current connection.
Definition: http.h:129
HTTPProtocol::HTTPRequest::encoded_hostname
QString encoded_hostname
Definition: http.h:146
HTTPProtocol::HTTPRequest::useCookieJar
bool useCookieJar
Definition: http.h:181
HTTPProtocol::HTTPRequest::userAgent
QString userAgent
Definition: http.h:161
HTTPProtocol::HTTPRequest::windowId
QString windowId
Definition: http.h:156
HTTPProtocol::HTTPRequest::referrer
QString referrer
Definition: http.h:158
HTTPProtocol::HTTPRequest::methodString
QByteArray methodString() const
Definition: http.cpp:356
HTTPProtocol::HTTPRequest::allowTransferCompression
bool allowTransferCompression
Definition: http.h:173
HTTPProtocol::HTTPRequest::CookiesManual
@ CookiesManual
Definition: http.h:183
HTTPProtocol::HTTPRequest::CookiesNone
@ CookiesNone
Definition: http.h:183
HTTPProtocol::HTTPRequest::CookiesAuto
@ CookiesAuto
Definition: http.h:183
HTTPProtocol::HTTPRequest::sentMethodString
QByteArray sentMethodString
Definition: http.h:153
HTTPProtocol::HTTPRequest::endoffset
KIO::filesize_t endoffset
Definition: http.h:155
HTTPProtocol::HTTPRequest::cacheTag
CacheTag cacheTag
Definition: http.h:185
HTTPProtocol::HTTPRequest::doNotWWWAuthenticate
bool doNotWWWAuthenticate
Definition: http.h:175
HTTPProtocol::HTTPRequest::cookieMode
enum HTTPProtocol::HTTPRequest::@1 cookieMode
HTTPProtocol::HTTPRequest::preferErrorPage
bool preferErrorPage
Definition: http.h:178
HTTPProtocol::HTTPRequest::responseCode
unsigned int responseCode
Definition: http.h:163
HTTPProtocol::HTTPRequest::prevResponseCode
unsigned int prevResponseCode
Definition: http.h:164
HTTPProtocol::HTTPRequest::redirectUrl
KUrl redirectUrl
Definition: http.h:168
HTTPProtocol::HTTPRequest::keepAliveTimeout
int keepAliveTimeout
Definition: http.h:149
HTTPProtocol::HTTPRequest::isKeepAlive
bool isKeepAlive
Definition: http.h:148
HTTPProtocol::HTTPRequest::languages
QString languages
Definition: http.h:160
HTTPProtocol::HTTPRequest::proxyUrl
KUrl proxyUrl
Definition: http.h:169
HTTPProtocol::HTTPRequest::disablePassDialog
bool disablePassDialog
Definition: http.h:174
HTTPProtocol::HTTPRequest::methodStringOverride
QString methodStringOverride
Definition: http.h:152
HTTPProtocol::HTTPRequest::HTTPRequest
HTTPRequest()
Definition: http.h:130
HTTPProtocol::HTTPRequest::proxyUrls
QStringList proxyUrls
Definition: http.h:170
HTTPProtocol::HTTPRequest::offset
KIO::filesize_t offset
Definition: http.h:154
HTTPProtocol::HTTPRequest::isPersistentProxyConnection
bool isPersistentProxyConnection
Definition: http.h:172
HTTPProtocol::HTTPRequest::method
KIO::HTTP_METHOD method
Definition: http.h:151
HTTPProtocol::HTTPRequest::url
KUrl url
Definition: http.h:145
HTTPProtocol::HTTPRequest::davData
DAVRequest davData
Definition: http.h:167
HTTPProtocol::HTTPRequest::doNotProxyAuthenticate
bool doNotProxyAuthenticate
Definition: http.h:176
HTTPProtocol::HTTPRequest::id
QString id
Definition: http.h:166
HTTPProtocol::HTTPRequest::charsets
QString charsets
Definition: http.h:159
HTTPProtocol::HTTPServerState
State of the current connection to the server.
Definition: http.h:190
HTTPProtocol::HTTPServerState::url
KUrl url
Definition: http.h:228
HTTPProtocol::HTTPServerState::clear
void clear()
Definition: http.h:219
HTTPProtocol::HTTPServerState::proxyUrl
KUrl proxyUrl
Definition: http.h:230
HTTPProtocol::HTTPServerState::initFrom
void initFrom(const HTTPRequest &request)
Definition: http.h:197
HTTPProtocol::HTTPServerState::HTTPServerState
HTTPServerState()
Definition: http.h:191
HTTPProtocol::HTTPServerState::isPersistentProxyConnection
bool isPersistentProxyConnection
Definition: http.h:232
HTTPProtocol::HTTPServerState::encoded_hostname
QString encoded_hostname
Definition: http.h:229
HTTPProtocol::HTTPServerState::isKeepAlive
bool isKeepAlive
Definition: http.h:231
HTTPProtocol::HTTPServerState::updateCredentials
void updateCredentials(const HTTPRequest &request)
Definition: http.h:206
tcpslavebase.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KIOSlave

Skip menu "KIOSlave"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal