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

KIOSlave

  • sources
  • kde-4.12
  • kdelibs
  • 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 
45 class QDomNodeList;
46 class QFile;
47 class QIODevice;
48 
49 namespace KIO {
50  class AuthInfo;
51 }
52 
53 class HeaderTokenizer;
54 class KAbstractHttpAuthentication;
55 
56 class HTTPProtocol : public QObject, public KIO::TCPSlaveBase
57 {
58  Q_OBJECT
59 public:
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 
311 protected 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 
318 protected:
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 
512 protected:
513  HTTPServerState m_server;
514  HTTPRequest m_request;
515  QList<HTTPRequest> m_requestQueue;
516 
517  // Processing related
518  KIO::filesize_t m_iSize;
519  KIO::filesize_t m_iPostDataSize;
520  KIO::filesize_t m_iBytesLeft;
521  KIO::filesize_t m_iContentLeft;
522  QByteArray m_receiveBuf;
523  bool m_dataInternal;
524  bool m_isChunked;
525 
526  bool m_isBusy;
527  bool m_isEOF;
528  bool m_isEOD;
529 
530 //--- Settings related to a single response only
531  bool m_isRedirection;
532  QStringList m_responseHeaders;
533 
534 
535  // Language/Encoding related
536  QStringList m_transferEncodings;
537  QStringList m_contentEncodings;
538  QString m_contentMD5;
539  QString m_mimeType; // TODO QByteArray?
540 
541 
542 //--- WebDAV
543  // Data structure to hold data which will be passed to an internal func.
544  QByteArray m_webDavDataBuf;
545  QStringList m_davCapabilities;
546 
547  bool m_davHostOk;
548  bool m_davHostUnsupported;
549 //----------
550 
551  // Mimetype determination
552  bool m_cpMimeBuffer;
553  QByteArray m_mimeTypeBuffer;
554 
555 
556  // Holds the POST data so it won't get lost on if we
557  // happend to get a 401/407 response when submitting
558  // a form.
559  QIODevice* m_POSTbuf;
560 
561  // Cache related
562  int m_maxCacheAge;
563  long m_maxCacheSize;
564  QString m_strCacheDir;
565  QLocalSocket m_cacheCleanerConnection;
566 
567  // Operation mode
568  QByteArray m_protocol;
569 
570  KAbstractHttpAuthentication *m_wwwAuth;
571  KAbstractHttpAuthentication *m_proxyAuth;
572  // For proxy auth when it's handled by the Qt/KDE socket classes
573  QAuthenticator *m_socketProxyAuth;
574 
575  // Indicates whether there was some error.
576  int m_iError;
577  // Whether we are loading an error page (we should close the connection afterwards)
578  bool m_isLoadingErrorPage;
579 
580  // Values that determine the remote connection timeouts.
581  int m_remoteRespTimeout;
582 
583  // EOF Retry count
584  quint8 m_iEOFRetryCount;
585 
586  QByteArray m_unreadBuf;
587  void clearUnreadBuffer();
588  void unread(char *buf, size_t size);
589  size_t readBuffered(char *buf, size_t size, bool unlimited = true);
590  bool readDelimitedText(char *buf, int *idx, int end, int numNewlines);
591 };
592 #endif
HTTPProtocol::CacheTag::lastModifiedDate
qint64 lastModifiedDate
Definition: http.h:122
HTTPProtocol::cachePostData
void cachePostData(const QByteArray &)
Caches the POST data in a temporary buffer.
Definition: http.cpp:5097
HTTPProtocol::HTTPRequest::isKeepAlive
bool isKeepAlive
Definition: http.h:148
HTTPProtocol::defaultPort
quint16 defaultPort() const
Definition: http.cpp:477
HTTPProtocol::m_davHostUnsupported
bool m_davHostUnsupported
Definition: http.h:548
HTTPProtocol::davStatList
void davStatList(const KUrl &url, bool stat=true)
Definition: http.cpp:793
HTTPProtocol::cacheParseResponseHeader
void cacheParseResponseHeader(const HeaderTokenizer &tokenizer)
Definition: http.cpp:3661
qint64
HTTPProtocol::HTTPRequest::referrer
QString referrer
Definition: http.h:158
HTTPProtocol::m_remoteRespTimeout
int m_remoteRespTimeout
Definition: http.h:581
HTTPProtocol::HTTPRequest::method
KIO::HTTP_METHOD method
Definition: http.h:151
KIO::filesize_t
qulonglong filesize_t
HTTPProtocol::fixupResponseMimetype
void fixupResponseMimetype()
fix common mimetype errors by webservers.
Definition: http.cpp:2782
HTTPProtocol::HTTPServerState::clear
void clear()
Definition: http.h:219
HTTPProtocol::findCookies
QString findCookies(const QString &url)
Look for cookies in the cookiejar.
Definition: http.cpp:4621
HTTPProtocol::ReadFromCache
Definition: http.h:86
HTTPProtocol::CacheTag::expireDate
qint64 expireDate
Definition: http.h:123
HTTPProtocol::HTTPRequest::methodString
QByteArray methodString() const
Definition: http.cpp:346
HTTPProtocol::AUTH_Basic
Definition: http.h:68
HTTPProtocol::HTTPRequest::CookiesManual
Definition: http.h:183
HTTPProtocol::readLimited
int readLimited()
Read maximum m_iSize bytes.
Definition: http.cpp:4223
HTTPProtocol::mkdir
virtual void mkdir(const KUrl &url, int _permissions)
Definition: http.cpp:1291
HTTPProtocol::sendErrorPageNotification
bool sendErrorPageNotification()
Call SlaveBase::errorPage() and remember that we've called it.
Definition: http.cpp:1930
HTTPProtocol::m_davHostOk
bool m_davHostOk
Definition: http.h:547
HTTPProtocol::parseContentDisposition
void parseContentDisposition(const QString &disposition)
Definition: http.cpp:3623
HTTPProtocol::cacheFileOpenWrite
bool cacheFileOpenWrite()
Definition: http.cpp:4912
kurl.h
HTTPProtocol::CacheTag::UseCached
Definition: http.h:105
HTTPProtocol::saveAuthenticationData
void saveAuthenticationData()
Saves HTTP authentication data.
Definition: http.cpp:5319
HTTPProtocol::DAVRequest
DAV-specific request elements for the current connection.
Definition: http.h:71
HTTPProtocol::HTTPRequest::CookiesNone
Definition: http.h:183
KIO::UDSEntry
HTTPProtocol::HTTPServerState::encoded_hostname
QString encoded_hostname
Definition: http.h:229
HTTPProtocol::copy
virtual void copy(const KUrl &src, const KUrl &dest, int _permissions, KIO::JobFlags flags)
Definition: http.cpp:1382
HTTPProtocol::m_isChunked
bool m_isChunked
Chunked transfer encoding.
Definition: http.h:524
HTTPProtocol::setCacheabilityMetadata
void setCacheabilityMetadata(bool cachingAllowed)
Definition: http.cpp:3850
HTTPProtocol::m_maxCacheSize
long m_maxCacheSize
Maximum cache size in Kb.
Definition: http.h:563
HTTPProtocol::HTTPRequest::windowId
QString windowId
Definition: http.h:156
HTTPProtocol::readResponseHeader
bool readResponseHeader()
This function will read in the return header from the server.
Definition: http.cpp:2913
HTTPProtocol::sendQuery
bool sendQuery()
This function is responsible for opening up the connection to the remote HTTP server and sending the ...
Definition: http.cpp:2389
HTTPProtocol::CacheTag::bytesCached
quint32 bytesCached
Definition: http.h:118
HTTPProtocol::HTTPRequest::sentMethodString
QByteArray sentMethodString
Definition: http.h:153
HTTPProtocol::httpCloseConnection
void httpCloseConnection()
Close connection.
Definition: http.cpp:4030
HTTPProtocol::m_isRedirection
bool m_isRedirection
Indicates current request is a redirection.
Definition: http.h:531
HTTPProtocol::readDelimitedText
bool readDelimitedText(char *buf, int *idx, int end, int numNewlines)
Definition: http.cpp:2121
HTTPProtocol::m_strCacheDir
QString m_strCacheDir
Location of the cache.
Definition: http.h:564
HTTPProtocol::HTTPRequest::davData
DAVRequest davData
Definition: http.h:167
HTTPProtocol::m_contentMD5
QString m_contentMD5
Definition: http.h:538
HTTPProtocol::m_cacheCleanerConnection
QLocalSocket m_cacheCleanerConnection
Connection to the cache cleaner process.
Definition: http.h:565
HTTPProtocol::davFinished
void davFinished()
Definition: http.cpp:1284
HTTPProtocol::HTTPRequest
The request for the current connection.
Definition: http.h:128
HTTPProtocol::sendCachedBody
bool sendCachedBody()
Definition: http.cpp:3865
HTTPProtocol::cacheFileReadPayload
QByteArray cacheFileReadPayload(int maxLength)
Definition: http.cpp:5052
HTTPProtocol::m_unreadBuf
QByteArray m_unreadBuf
Definition: http.h:586
HTTPProtocol::CacheTag::ValidateCached
Definition: http.h:106
HTTPProtocol::davHostOk
bool davHostOk()
Definition: http.cpp:1230
HTTPProtocol::m_iPostDataSize
KIO::filesize_t m_iPostDataSize
Definition: http.h:519
HTTPProtocol::closeConnection
virtual void closeConnection()
Forced close of connection.
Definition: http.cpp:4024
HTTPProtocol::HTTPRequest::HTTPRequest
HTTPRequest()
Definition: http.h:130
HTTPProtocol::cacheFilePathFromUrl
QString cacheFilePathFromUrl(const KUrl &url) const
Definition: http.cpp:4868
HTTPProtocol::maybeSetRequestUrl
bool maybeSetRequestUrl(const KUrl &)
Definition: http.cpp:640
quint32
HTTPProtocol::m_receiveBuf
QByteArray m_receiveBuf
Receive buffer.
Definition: http.h:522
HTTPProtocol::NoCache
Definition: http.h:85
HTTPProtocol::~HTTPProtocol
virtual ~HTTPProtocol()
Definition: http.cpp:451
HTTPProtocol::HTTPRequest::offset
KIO::filesize_t offset
Definition: http.h:154
QString
KIO::TCPSlaveBase::port
quint16 port() const
HTTPProtocol::HTTPRequest::methodStringOverride
QString methodStringOverride
Definition: http.h:152
QObject
HTTPProtocol::AUTH_None
Definition: http.h:68
HTTPProtocol::davSetRequest
void davSetRequest(const QByteArray &requestXML)
Performs a WebDAV stat or list.
Definition: http.cpp:787
HTTPProtocol::CacheTag::etag
QString etag
Definition: http.h:119
HTTPProtocol::CacheTag::IgnoreCached
Definition: http.h:107
KUrl
HTTPProtocol::isOffline
bool isOffline()
Check network status.
Definition: http.cpp:1943
HTTPProtocol::m_iBytesLeft
KIO::filesize_t m_iBytesLeft
of bytes left to receive in this message.
Definition: http.h:520
HTTPProtocol::error
void error(int errid, const QString &text)
Definition: http.cpp:4590
HTTPProtocol::CacheTag::ioMode
enum CacheIOMode ioMode
Definition: http.h:116
HTTPProtocol::put
virtual void put(const KUrl &url, int _mode, KIO::JobFlags flags)
Definition: http.cpp:1326
HTTPProtocol::CacheTag::charset
QString charset
Definition: http.h:124
HTTPProtocol::HTTPRequest::responseCode
unsigned int responseCode
Definition: http.h:163
HTTPProtocol::HTTP_Unknown
Definition: http.h:65
HTTPProtocol::HTTPRequest::url
KUrl url
Definition: http.h:145
HTTPProtocol::listDir
virtual void listDir(const KUrl &url)
Definition: http.cpp:776
HTTPProtocol::CacheTag::servedDate
qint64 servedDate
Definition: http.h:121
HTTPProtocol::sendHttpError
bool sendHttpError()
Generate and send error message based on response code.
Definition: http.cpp:1899
HTTPProtocol::CacheTag::deserialize
bool deserialize(const QByteArray &)
Definition: http.cpp:4731
HTTPProtocol::m_webDavDataBuf
QByteArray m_webDavDataBuf
Definition: http.h:544
HTTPProtocol::HTTPServerState::url
KUrl url
Definition: http.h:228
HTTPProtocol::m_responseHeaders
QStringList m_responseHeaders
All headers.
Definition: http.h:532
HTTPProtocol::readUnlimited
int readUnlimited()
Read as much as possible.
Definition: http.cpp:4245
HTTPProtocol::m_contentEncodings
QStringList m_contentEncodings
Definition: http.h:537
HTTPProtocol::m_isLoadingErrorPage
bool m_isLoadingErrorPage
Definition: http.h:578
HTTPProtocol::HTTPRequest::userAgent
QString userAgent
Definition: http.h:161
tcpslavebase.h
HTTPProtocol::HTTP_10
Definition: http.h:65
HTTPProtocol::codeFromResponse
int codeFromResponse(const QString &response)
Returns the error code from a "HTTP/1.1 code Code Name" string.
Definition: http.cpp:949
HTTPProtocol::authenticationHeader
QString authenticationHeader()
create HTTP authentications response(s), if any
Definition: http.cpp:5154
HTTPProtocol::CacheTag::policy
KIO::CacheControl policy
Definition: http.h:114
HTTPProtocol::httpShouldCloseConnection
bool httpShouldCloseConnection()
Check whether to keep or close the connection.
Definition: http.cpp:2175
HTTPProtocol::CacheTag
Definition: http.h:90
HTTPProtocol::m_protocol
QByteArray m_protocol
Definition: http.h:568
HTTPProtocol::clearUnreadBuffer
void clearUnreadBuffer()
Definition: http.cpp:2066
HTTPProtocol::sendBody
bool sendBody()
Definition: http.cpp:3902
HTTPProtocol::m_request
HTTPRequest m_request
Definition: http.h:514
HTTPProtocol::m_requestQueue
QList< HTTPRequest > m_requestQueue
Definition: http.h:515
HTTPProtocol::multiGet
void multiGet(const QByteArray &data)
Definition: http.cpp:1957
HTTPProtocol::m_isBusy
bool m_isBusy
Busy handling request queue.
Definition: http.h:526
HTTPProtocol::WriteToCache
Definition: http.h:87
HTTPProtocol::mimetype
virtual void mimetype(const KUrl &url)
Definition: http.cpp:4049
HTTPProtocol::HTTPRequest::languages
QString languages
Definition: http.h:160
QStringList
HTTPProtocol::m_socketProxyAuth
QAuthenticator * m_socketProxyAuth
Definition: http.h:573
HTTPProtocol::HTTPServerState::proxyUrl
KUrl proxyUrl
Definition: http.h:230
HTTPProtocol::HTTPRequest::encoded_hostname
QString encoded_hostname
Definition: http.h:146
HTTPProtocol::satisfyRequestFromCache
bool satisfyRequestFromCache(bool *cacheHasPage)
Return true if the request is already "done", false otherwise.
Definition: http.cpp:2307
HTTPProtocol::CacheTag::CachePlan
CachePlan
Definition: http.h:104
HTTPProtocol::setHost
virtual void setHost(const QString &host, quint16 port, const QString &user, const QString &pass)
Definition: http.cpp:608
HTTPProtocol::CacheTag::useCache
bool useCache
Definition: http.h:115
HTTPProtocol::HTTPServerState::updateCredentials
void updateCredentials(const HTTPRequest &request)
Definition: http.h:206
HTTPProtocol::m_wwwAuth
KAbstractHttpAuthentication * m_wwwAuth
Definition: http.h:570
HTTPProtocol::HTTPRequest::endoffset
KIO::filesize_t endoffset
Definition: http.h:155
HTTPProtocol::HTTPRequest::doNotWWWAuthenticate
bool doNotWWWAuthenticate
Definition: http.h:175
HTTPProtocol::post
void post(const KUrl &url, qint64 size=-1)
Definition: http.cpp:1489
KIO::CacheControl
CacheControl
HTTPProtocol::fixupResponseContentEncoding
void fixupResponseContentEncoding()
fix common content-encoding errors by webservers.
Definition: http.cpp:2846
HTTPProtocol::parseHeaderFromCache
bool parseHeaderFromCache()
Definition: http.cpp:2743
HTTPProtocol::HTTPRequest::cookieMode
enum HTTPProtocol::HTTPRequest::@1 cookieMode
HTTPProtocol::davLock
void davLock(const KUrl &url, const QString &scope, const QString &type, const QString &owner)
Definition: http.cpp:1504
HTTPProtocol::HTTPRequest::keepAliveTimeout
int keepAliveTimeout
Definition: http.h:149
HTTPProtocol::HTTPRequest::disablePassDialog
bool disablePassDialog
Definition: http.h:174
HTTPProtocol::resetResponseParsing
void resetResponseParsing()
Resets variables related to parsing a response.
Definition: http.cpp:482
HeaderTokenizer
Definition: parsinghelpers.h:64
HTTPProtocol::davGeneric
void davGeneric(const KUrl &url, KIO::HTTP_METHOD method, qint64 size=-1)
Definition: http.cpp:928
HTTPProtocol::DAVRequest::desturl
QString desturl
Definition: http.h:79
HTTPProtocol::HTTPRequest::useCookieJar
bool useCookieJar
Definition: http.h:181
HTTPProtocol::davUnlock
void davUnlock(const KUrl &url)
Definition: http.cpp:1568
HTTPProtocol::HTTPServerState
State of the current connection to the server.
Definition: http.h:189
HTTPProtocol::readChunked
int readChunked()
Read a chunk.
Definition: http.cpp:4152
KAbstractHttpAuthentication
Definition: httpauthentication.h:37
HTTPProtocol::m_iError
int m_iError
Definition: http.h:576
HTTPProtocol::HTTPProtocol
HTTPProtocol(const QByteArray &protocol, const QByteArray &pool, const QByteArray &app)
Definition: http.cpp:427
HTTPProtocol::cacheFileWriteTextHeader
void cacheFileWriteTextHeader()
Definition: http.cpp:4782
HTTPProtocol::slotData
void slotData(const QByteArray &)
Definition: http.cpp:4264
HTTPProtocol::proceedUntilResponseHeader
bool proceedUntilResponseHeader()
Ensure we are connected, send our query, and get the response header.
Definition: http.cpp:686
HTTPProtocol::DAVRequest::depth
int depth
Definition: http.h:81
HTTPProtocol::HTTP_11
Definition: http.h:65
HTTPProtocol::HTTPServerState::HTTPServerState
HTTPServerState()
Definition: http.h:191
HTTPProtocol::HTTPServerState::isPersistentProxyConnection
bool isPersistentProxyConnection
Definition: http.h:232
HTTPProtocol::SHOUTCAST
Definition: http.h:65
HTTPProtocol::reparseConfiguration
virtual void reparseConfiguration()
Definition: http.cpp:456
HTTPProtocol::HTTPRequest::proxyUrls
QStringList proxyUrls
Definition: http.h:170
HTTPProtocol::m_mimeType
QString m_mimeType
Definition: http.h:539
HTTPProtocol::m_server
HTTPServerState m_server
Definition: http.h:513
KIO::TCPSlaveBase
HTTPProtocol::retrieveAllData
bool retrieveAllData()
Returns true on successful retrieval of all content data.
Definition: http.cpp:5117
HTTPProtocol::HTTPRequest::CookiesAuto
Definition: http.h:183
HTTPProtocol::m_iContentLeft
KIO::filesize_t m_iContentLeft
of content bytes left
Definition: http.h:521
HTTPProtocol::forwardHttpResponseHeader
void forwardHttpResponseHeader(bool forwardImmediately=true)
Definition: http.cpp:2731
HTTPProtocol::HTTP_None
Definition: http.h:65
HTTPProtocol::AUTH_Digest
Definition: http.h:68
HTTPProtocol::resetSessionSettings
void resetSessionSettings()
Resets any per session settings.
Definition: http.cpp:498
HTTPProtocol::m_cpMimeBuffer
bool m_cpMimeBuffer
Definition: http.h:552
HTTPProtocol::HTTPRequest::redirectUrl
KUrl redirectUrl
Definition: http.h:168
HTTPProtocol::httpClose
void httpClose(bool keepAlive)
Close transfer.
Definition: http.cpp:3996
HTTPProtocol::CacheTag::serialize
QByteArray serialize() const
Definition: http.cpp:4701
HTTPProtocol::slave_status
virtual void slave_status()
Definition: http.cpp:4039
HTTPProtocol::handleAuthenticationHeader
bool handleAuthenticationHeader(const HeaderTokenizer *tokenizer)
Handles HTTP authentication.
Definition: http.cpp:5365
HTTPProtocol::CacheIOMode
CacheIOMode
Definition: http.h:84
HTTPProtocol::clearPostDataBuffer
void clearPostDataBuffer()
Clears the POST data buffer.
Definition: http.cpp:5108
HTTPProtocol
Definition: http.h:56
HTTPProtocol::HTTP_REV
HTTP_REV
HTTP version.
Definition: http.h:65
HTTPProtocol::readBody
bool readBody(bool dataInternal=false)
This function is our "receive" function.
Definition: http.cpp:4350
HTTPProtocol::HTTPRequest::prevResponseCode
unsigned int prevResponseCode
Definition: http.h:164
HTTPProtocol::HTTPRequest::charsets
QString charsets
Definition: http.h:159
HTTPProtocol::resetConnectionSettings
void resetConnectionSettings()
Resets any per connection settings.
Definition: http.cpp:470
HTTPProtocol::cacheFileReadTextHeader2
bool cacheFileReadTextHeader2()
load the rest of the text fields
Definition: http.cpp:4829
HTTPProtocol::cacheFileReadTextHeader1
bool cacheFileReadTextHeader1(const KUrl &desiredUrl)
check URL to guard against hash collisions, and load the etag for validation
Definition: http.cpp:4810
HTTPProtocol::rename
virtual void rename(const KUrl &src, const KUrl &dest, KIO::JobFlags flags)
Definition: http.cpp:1412
HTTPProtocol::HTTPRequest::allowTransferCompression
bool allowTransferCompression
Definition: http.h:173
HTTPProtocol::HTTPRequest::proxyUrl
KUrl proxyUrl
Definition: http.h:169
HTTPProtocol::HTTPRequest::preferErrorPage
bool preferErrorPage
Definition: http.h:178
HTTPProtocol::HTTPRequest::cacheTag
CacheTag cacheTag
Definition: http.h:185
HTTPProtocol::proxyAuthenticationForSocket
void proxyAuthenticationForSocket(const QNetworkProxy &, QAuthenticator *)
Definition: http.cpp:5239
HTTPProtocol::CacheTag::CacheTag
CacheTag()
Definition: http.h:92
HTTPProtocol::httpOpenConnection
bool httpOpenConnection()
Open connection.
Definition: http.cpp:2197
HTTPProtocol::m_davCapabilities
QStringList m_davCapabilities
Definition: http.h:545
HTTPProtocol::AUTH_Negotiate
Definition: http.h:68
HTTPProtocol::davParseActiveLocks
void davParseActiveLocks(const QDomNodeList &activeLocks, uint &lockCount)
Definition: http.cpp:1135
HTTPProtocol::CacheTag::fileUseCount
quint32 fileUseCount
Definition: http.h:117
HTTPProtocol::saveProxyAuthenticationForSocket
void saveProxyAuthenticationForSocket()
Definition: http.cpp:5298
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:2047
HTTPProtocol::unread
void unread(char *buf, size_t size)
Definition: http.cpp:2073
HTTPProtocol::HTTPRequest::id
QString id
Definition: http.h:166
HTTPProtocol::formatRequestUri
QString formatRequestUri() const
Definition: http.cpp:2348
HTTPProtocol::stat
virtual void stat(const KUrl &url)
Definition: http.cpp:744
HTTPProtocol::del
virtual void del(const KUrl &url, bool _isfile)
Definition: http.cpp:1458
HTTPProtocol::davProcessLocks
QString davProcessLocks()
Extracts locks from metadata Returns the appropriate If: header.
Definition: http.cpp:1181
HTTPProtocol::CacheTag::file
QFile * file
Definition: http.h:120
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:4068
HTTPProtocol::m_isEOD
bool m_isEOD
Definition: http.h:528
HTTPProtocol::m_mimeTypeBuffer
QByteArray m_mimeTypeBuffer
Definition: http.h:553
HTTPProtocol::CacheTag::plan
CachePlan plan(int maxCacheAge) const
Definition: http.cpp:4637
HTTPProtocol::cacheFileClose
void cacheFileClose()
Definition: http.cpp:4969
HTTPProtocol::davParsePropstats
void davParsePropstats(const QDomNodeList &propstats, KIO::UDSEntry &entry)
Definition: http.cpp:956
QIODevice
HTTPProtocol::AUTH_NTLM
Definition: http.h:68
HTTPProtocol::readBuffered
size_t readBuffered(char *buf, size_t size, bool unlimited=true)
Definition: http.cpp:2087
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:3635
HTTPProtocol::addCookies
void addCookies(const QString &url, const QByteArray &cookieHeader)
Send a cookie to the cookiejar.
Definition: http.cpp:4613
HTTPProtocol::DAVRequest::DAVRequest
DAVRequest()
Definition: http.h:73
HTTPProtocol::AUTH_SCHEME
AUTH_SCHEME
Authorization method used.
Definition: http.h:68
HTTPProtocol::DAVRequest::overwrite
bool overwrite
Definition: http.h:80
HTTPProtocol::sendCacheCleanerCommand
void sendCacheCleanerCommand(const QByteArray &command)
Definition: http.cpp:5028
HTTPProtocol::m_iSize
KIO::filesize_t m_iSize
Expected size of message.
Definition: http.h:518
HTTPProtocol::m_isEOF
bool m_isEOF
Definition: http.h:527
HTTPProtocol::cacheFileOpenRead
bool cacheFileOpenRead()
Definition: http.cpp:4878
HTTPProtocol::m_iEOFRetryCount
quint8 m_iEOFRetryCount
Definition: http.h:584
HTTPProtocol::HTTPServerState::initFrom
void initFrom(const HTTPRequest &request)
Definition: http.h:197
HTTPProtocol::cacheFileWritePayload
void cacheFileWritePayload(const QByteArray &d)
Definition: http.cpp:5065
HTTPProtocol::m_proxyAuth
KAbstractHttpAuthentication * m_proxyAuth
Definition: http.h:571
HTTPProtocol::m_dataInternal
bool m_dataInternal
Data is for internal consumption.
Definition: http.h:523
QList
HTTPProtocol::proceedUntilResponseContent
void proceedUntilResponseContent(bool dataInternal=false)
Do everything proceedUntilResponseHeader does, and also get the response body.
Definition: http.cpp:663
HTTPProtocol::HTTPRequest::isPersistentProxyConnection
bool isPersistentProxyConnection
Definition: http.h:172
HTTPProtocol::m_transferEncodings
QStringList m_transferEncodings
Definition: http.h:536
HTTPProtocol::m_POSTbuf
QIODevice * m_POSTbuf
Definition: http.h:559
HTTPProtocol::HTTPRequest::doNotProxyAuthenticate
bool doNotProxyAuthenticate
Definition: http.h:176
HTTPProtocol::HTTPServerState::isKeepAlive
bool isKeepAlive
Definition: http.h:231
HTTPProtocol::m_maxCacheAge
int m_maxCacheAge
Maximum age of a cache entry in seconds.
Definition: http.h:562
HTTPProtocol::slotFilterError
void slotFilterError(const QString &text)
Definition: http.cpp:4585
HTTPProtocol::davError
QString davError(int code=-1, const QString &url=QString())
Definition: http.cpp:1588
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:50:58 by doxygen 1.8.7 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 API Reference

Skip menu "kdelibs 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
  • kjsembed
  •   WTF
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Nepomuk-Core
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver

Search



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