• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.10.5 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 
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  }
101 
102  enum CachePlan {
103  UseCached = 0,
104  ValidateCached,
105  IgnoreCached
106  };
107  CachePlan plan(time_t maxCacheAge) const;
108 
109  QByteArray serialize() const;
110  bool deserialize(const QByteArray &);
111 
112  KIO::CacheControl policy; // ### initialize in the constructor?
113  bool useCache; // Whether the cache should be used
114  enum CacheIOMode ioMode; // Write to cache file, read from it, or don't use it.
115  quint32 fileUseCount;
116  quint32 bytesCached;
117  QString etag; // entity tag header as described in the HTTP standard.
118  QFile *file; // file on disk - either a QTemporaryFile (write) or QFile (read)
119  time_t servedDate; // Date when the resource was served by the origin server
120  time_t lastModifiedDate; // Last modified.
121  time_t expireDate; // Date when the cache entry will expire
122  QString charset;
123  };
124 
126  struct HTTPRequest
127  {
128  HTTPRequest ()
129  {
130  method = KIO::HTTP_UNKNOWN;
131  offset = 0;
132  endoffset = 0;
133  allowTransferCompression = false;
134  disablePassDialog = false;
135  doNotWWWAuthenticate = false;
136  doNotProxyAuthenticate = false;
137  preferErrorPage = false;
138  useCookieJar = false;
139  }
140 
141  QByteArray methodString() const;
142 
143  KUrl url;
144  QString encoded_hostname; //### can be calculated on-the-fly
145  // Persistent connections
146  bool isKeepAlive;
147  int keepAliveTimeout; // Timeout in seconds.
148 
149  KIO::HTTP_METHOD method;
150  QString methodStringOverride; // Overrides method if non-empty.
151  KIO::filesize_t offset;
152  KIO::filesize_t endoffset;
153  QString windowId; // Window Id this request is related to.
154  // Header fields
155  QString referrer;
156  QString charsets;
157  QString languages;
158  QString userAgent;
159  // Previous and current response codes
160  unsigned int responseCode;
161  unsigned int prevResponseCode;
162  // Miscellaneous
163  QString id;
164  DAVRequest davData;
165  KUrl redirectUrl;
166  KUrl proxyUrl;
167  QStringList proxyUrls;
168 
169  bool isPersistentProxyConnection;
170  bool allowTransferCompression;
171  bool disablePassDialog;
172  bool doNotWWWAuthenticate;
173  bool doNotProxyAuthenticate;
174  // Indicates whether an error page or error message is preferred.
175  bool preferErrorPage;
176 
177  // Use the cookie jar (or pass cookies to the application as metadata instead)
178  bool useCookieJar;
179  // Cookie flags
180  enum { CookiesAuto, CookiesManual, CookiesNone } cookieMode;
181 
182  CacheTag cacheTag;
183  };
184 
186  struct HTTPServerState
187  {
188  HTTPServerState()
189  {
190  isKeepAlive = false;
191  isPersistentProxyConnection = false;
192  }
193 
194  void initFrom(const HTTPRequest &request)
195  {
196  url = request.url;
197  encoded_hostname = request.encoded_hostname;
198  isKeepAlive = request.isKeepAlive;
199  proxyUrl = request.proxyUrl;
200  isPersistentProxyConnection = request.isPersistentProxyConnection;
201  }
202 
203  void updateCredentials(const HTTPRequest &request)
204  {
205  if (url.host() == request.url.host() && url.port() == request.url.port()) {
206  url.setUserName(request.url.userName());
207  url.setPassword(request.url.password());
208  }
209  if (proxyUrl.host() == request.proxyUrl.host() &&
210  proxyUrl.port() == request.proxyUrl.port()) {
211  proxyUrl.setUserName(request.proxyUrl.userName());
212  proxyUrl.setPassword(request.proxyUrl.password());
213  }
214  }
215 
216  void clear()
217  {
218  url.clear();
219  encoded_hostname.clear();
220  proxyUrl.clear();
221  isKeepAlive = false;
222  isPersistentProxyConnection = false;
223  }
224 
225  KUrl url;
226  QString encoded_hostname;
227  KUrl proxyUrl;
228  bool isKeepAlive;
229  bool isPersistentProxyConnection;
230  };
231 
232 //---------------------- Re-implemented methods ----------------
233  virtual void setHost(const QString& host, quint16 port, const QString& user,
234  const QString& pass);
235 
236  virtual void slave_status();
237 
238  virtual void get( const KUrl& url );
239  virtual void put( const KUrl& url, int _mode, KIO::JobFlags flags );
240 
241 //----------------- Re-implemented methods for WebDAV -----------
242  virtual void listDir( const KUrl& url );
243  virtual void mkdir( const KUrl& url, int _permissions );
244 
245  virtual void rename( const KUrl& src, const KUrl& dest, KIO::JobFlags flags );
246  virtual void copy( const KUrl& src, const KUrl& dest, int _permissions, KIO::JobFlags flags );
247  virtual void del( const KUrl& url, bool _isfile );
248 
249  // ask the host whether it supports WebDAV & cache this info
250  bool davHostOk();
251 
252  // send generic DAV request
253  void davGeneric( const KUrl& url, KIO::HTTP_METHOD method, qint64 size = -1 );
254 
255  // Send requests to lock and unlock resources
256  void davLock( const KUrl& url, const QString& scope,
257  const QString& type, const QString& owner );
258  void davUnlock( const KUrl& url );
259 
260  // Calls httpClose() and finished()
261  void davFinished();
262 
263  // Handle error conditions
264  QString davError( int code = -1, const QString &url = QString() );
265 //---------------------------- End WebDAV -----------------------
266 
276  virtual void special( const QByteArray &data );
277 
278  virtual void mimetype( const KUrl& url);
279 
280  virtual void stat( const KUrl& url );
281 
282  virtual void reparseConfiguration();
283 
287  virtual void closeConnection();
288 
289  void post( const KUrl& url, qint64 size = -1 );
290  void multiGet(const QByteArray &data);
291  bool maybeSetRequestUrl(const KUrl &);
292 
296  bool sendHttpError();
297 
301  bool sendErrorPageNotification();
302 
306  bool isOffline();
307 
308 protected Q_SLOTS:
309  void slotData(const QByteArray &);
310  void slotFilterError(const QString &text);
311  void error(int errid, const QString &text);
312  void proxyAuthenticationForSocket(const QNetworkProxy &, QAuthenticator *);
313  void saveProxyAuthenticationForSocket();
314 
315 protected:
316  int readChunked();
317  int readLimited();
318  int readUnlimited();
319 
324  ssize_t write(const void *buf, size_t nbytes);
325  using SlaveBase::write;
326 
332  void addEncoding(const QString &, QStringList &);
333 
334  quint16 defaultPort() const;
335 
336  // The methods between here and sendQuery() are helpers for sendQuery().
337 
343  bool satisfyRequestFromCache(bool *cacheHasPage);
344  QString formatRequestUri() const;
348  QString authenticationHeader();
349  bool sendQuery();
350 
354  void httpClose(bool keepAlive);
358  bool httpOpenConnection();
362  void httpCloseConnection();
366  bool httpShouldCloseConnection();
367 
368  void forwardHttpResponseHeader(bool forwardImmediately = true);
369 
375  void fixupResponseMimetype();
381  void fixupResponseContentEncoding();
382 
383  bool readResponseHeader();
384  bool parseHeaderFromCache();
385  void parseContentDisposition(const QString &disposition);
386 
387  bool sendBody();
388  bool sendCachedBody();
389 
390  // where dataInternal == true, the content is to be made available
391  // to an internal function.
392  bool readBody( bool dataInternal = false );
393 
397  void davSetRequest( const QByteArray& requestXML );
398  void davStatList( const KUrl& url, bool stat = true );
399  void davParsePropstats( const QDomNodeList& propstats, KIO::UDSEntry& entry );
400  void davParseActiveLocks( const QDomNodeList& activeLocks,
401  uint& lockCount );
402 
406  long parseDateTime( const QString& input, const QString& type );
407 
411  int codeFromResponse( const QString& response );
412 
417  QString davProcessLocks();
418 
422  void addCookies( const QString &url, const QByteArray &cookieHeader);
423 
427  QString findCookies( const QString &url);
428 
429  void cacheParseResponseHeader(const HeaderTokenizer &tokenizer);
430 
431  QString cacheFilePathFromUrl(const KUrl &url) const;
432  bool cacheFileOpenRead();
433  bool cacheFileOpenWrite();
434  void cacheFileClose();
435  void sendCacheCleanerCommand(const QByteArray &command);
436 
437  QByteArray cacheFileReadPayload(int maxLength);
438  void cacheFileWritePayload(const QByteArray &d);
439  void cacheFileWriteTextHeader();
443  bool cacheFileReadTextHeader1(const KUrl &desiredUrl);
447  bool cacheFileReadTextHeader2();
448  void setCacheabilityMetadata(bool cachingAllowed);
449 
458  void proceedUntilResponseContent( bool dataInternal = false );
459 
463  bool proceedUntilResponseHeader();
464 
468  void resetSessionSettings();
469 
473  void resetResponseParsing();
474 
481  void resetConnectionSettings();
482 
489  void cachePostData(const QByteArray&);
490 
497  void clearPostDataBuffer();
498 
502  bool retrieveAllData();
503 
507  void saveAuthenticationData();
508 
512  bool handleAuthenticationHeader(const HeaderTokenizer* tokenizer);
513 
514 protected:
515  HTTPServerState m_server;
516  HTTPRequest m_request;
517  QList<HTTPRequest> m_requestQueue;
518 
519  // Processing related
520  KIO::filesize_t m_iSize;
521  KIO::filesize_t m_iPostDataSize;
522  KIO::filesize_t m_iBytesLeft;
523  KIO::filesize_t m_iContentLeft;
524  QByteArray m_receiveBuf;
525  bool m_dataInternal;
526  bool m_isChunked;
527 
528  bool m_isBusy;
529  bool m_isEOF;
530  bool m_isEOD;
531 
532 //--- Settings related to a single response only
533  bool m_isRedirection;
534  QStringList m_responseHeaders;
535 
536 
537  // Language/Encoding related
538  QStringList m_transferEncodings;
539  QStringList m_contentEncodings;
540  QString m_contentMD5;
541  QString m_mimeType; // TODO QByteArray?
542 
543 
544 //--- WebDAV
545  // Data structure to hold data which will be passed to an internal func.
546  QByteArray m_webDavDataBuf;
547  QStringList m_davCapabilities;
548 
549  bool m_davHostOk;
550  bool m_davHostUnsupported;
551 //----------
552 
553  // Mimetype determination
554  bool m_cpMimeBuffer;
555  QByteArray m_mimeTypeBuffer;
556 
557 
558  // Holds the POST data so it won't get lost on if we
559  // happend to get a 401/407 response when submitting
560  // a form.
561  QIODevice* m_POSTbuf;
562 
563  // Cache related
564  int m_maxCacheAge;
565  long m_maxCacheSize;
566  QString m_strCacheDir;
567  QLocalSocket m_cacheCleanerConnection;
568 
569  // Operation mode
570  QByteArray m_protocol;
571 
572  KAbstractHttpAuthentication *m_wwwAuth;
573  KAbstractHttpAuthentication *m_proxyAuth;
574  // For proxy auth when it's handled by the Qt/KDE socket classes
575  QAuthenticator *m_socketProxyAuth;
576 
577  // Indicates whether there was some error.
578  int m_iError;
579  // Whether we are loading an error page (we should close the connection afterwards)
580  bool m_isLoadingErrorPage;
581 
582  // Values that determine the remote connection timeouts.
583  int m_remoteRespTimeout;
584 
585  // EOF Retry count
586  quint8 m_iEOFRetryCount;
587 
588  QByteArray m_unreadBuf;
589  void clearUnreadBuffer();
590  void unread(char *buf, size_t size);
591  size_t readBuffered(char *buf, size_t size, bool unlimited = true);
592  bool readDelimitedText(char *buf, int *idx, int end, int numNewlines);
593 };
594 #endif
HTTPProtocol::cachePostData
void cachePostData(const QByteArray &)
Caches the POST data in a temporary buffer.
Definition: http.cpp:5083
HTTPProtocol::HTTPRequest::isKeepAlive
bool isKeepAlive
Definition: http.h:146
HTTPProtocol::defaultPort
quint16 defaultPort() const
Definition: http.cpp:431
HTTPProtocol::m_davHostUnsupported
bool m_davHostUnsupported
Definition: http.h:550
HTTPProtocol::davStatList
void davStatList(const KUrl &url, bool stat=true)
Definition: http.cpp:746
HTTPProtocol::cacheParseResponseHeader
void cacheParseResponseHeader(const HeaderTokenizer &tokenizer)
Definition: http.cpp:3626
qint64
HTTPProtocol::HTTPRequest::referrer
QString referrer
Definition: http.h:155
HTTPProtocol::m_remoteRespTimeout
int m_remoteRespTimeout
Definition: http.h:583
HTTPProtocol::HTTPRequest::method
KIO::HTTP_METHOD method
Definition: http.h:149
KIO::filesize_t
qulonglong filesize_t
HTTPProtocol::fixupResponseMimetype
void fixupResponseMimetype()
fix common mimetype errors by webservers.
Definition: http.cpp:2761
HTTPProtocol::HTTPServerState::clear
void clear()
Definition: http.h:216
HTTPProtocol::findCookies
QString findCookies(const QString &url)
Look for cookies in the cookiejar.
Definition: http.cpp:4588
HTTPProtocol::ReadFromCache
Definition: http.h:86
HTTPProtocol::HTTPRequest::methodString
QByteArray methodString() const
Definition: http.cpp:300
HTTPProtocol::AUTH_Basic
Definition: http.h:68
HTTPProtocol::HTTPRequest::CookiesManual
Definition: http.h:180
HTTPProtocol::readLimited
int readLimited()
Read maximum m_iSize bytes.
Definition: http.cpp:4190
HTTPProtocol::mkdir
virtual void mkdir(const KUrl &url, int _permissions)
Definition: http.cpp:1274
HTTPProtocol::sendErrorPageNotification
bool sendErrorPageNotification()
Call SlaveBase::errorPage() and remember that we&#39;ve called it.
Definition: http.cpp:1917
HTTPProtocol::m_davHostOk
bool m_davHostOk
Definition: http.h:549
HTTPProtocol::parseContentDisposition
void parseContentDisposition(const QString &disposition)
Definition: http.cpp:3588
HTTPProtocol::cacheFileOpenWrite
bool cacheFileOpenWrite()
Definition: http.cpp:4898
kurl.h
HTTPProtocol::CacheTag::UseCached
Definition: http.h:103
HTTPProtocol::saveAuthenticationData
void saveAuthenticationData()
Saves HTTP authentication data.
Definition: http.cpp:5305
HTTPProtocol::DAVRequest
DAV-specific request elements for the current connection.
Definition: http.h:71
HTTPProtocol::HTTPRequest::CookiesNone
Definition: http.h:180
KIO::UDSEntry
HTTPProtocol::HTTPServerState::encoded_hostname
QString encoded_hostname
Definition: http.h:226
HTTPProtocol::copy
virtual void copy(const KUrl &src, const KUrl &dest, int _permissions, KIO::JobFlags flags)
Definition: http.cpp:1369
HTTPProtocol::m_isChunked
bool m_isChunked
Chunked transfer encoding.
Definition: http.h:526
HTTPProtocol::setCacheabilityMetadata
void setCacheabilityMetadata(bool cachingAllowed)
Definition: http.cpp:3817
HTTPProtocol::CacheTag::expireDate
time_t expireDate
Definition: http.h:121
HTTPProtocol::m_maxCacheSize
long m_maxCacheSize
Maximum cache size in Kb.
Definition: http.h:565
HTTPProtocol::HTTPRequest::windowId
QString windowId
Definition: http.h:153
HTTPProtocol::readResponseHeader
bool readResponseHeader()
This function will read in the return header from the server.
Definition: http.cpp:2892
HTTPProtocol::sendQuery
bool sendQuery()
This function is responsible for opening up the connection to the remote HTTP server and sending the ...
Definition: http.cpp:2371
HTTPProtocol::CacheTag::bytesCached
quint32 bytesCached
Definition: http.h:116
HTTPProtocol::httpCloseConnection
void httpCloseConnection()
Close connection.
Definition: http.cpp:3997
HTTPProtocol::m_isRedirection
bool m_isRedirection
Indicates current request is a redirection.
Definition: http.h:533
HTTPProtocol::readDelimitedText
bool readDelimitedText(char *buf, int *idx, int end, int numNewlines)
Definition: http.cpp:2108
HTTPProtocol::m_strCacheDir
QString m_strCacheDir
Location of the cache.
Definition: http.h:566
HTTPProtocol::HTTPRequest::davData
DAVRequest davData
Definition: http.h:164
HTTPProtocol::m_contentMD5
QString m_contentMD5
Definition: http.h:540
HTTPProtocol::m_cacheCleanerConnection
QLocalSocket m_cacheCleanerConnection
Connection to the cache cleaner process.
Definition: http.h:567
HTTPProtocol::davFinished
void davFinished()
Definition: http.cpp:1267
HTTPProtocol::HTTPRequest
The request for the current connection.
Definition: http.h:126
HTTPProtocol::CacheTag::servedDate
time_t servedDate
Definition: http.h:119
HTTPProtocol::sendCachedBody
bool sendCachedBody()
Definition: http.cpp:3832
HTTPProtocol::cacheFileReadPayload
QByteArray cacheFileReadPayload(int maxLength)
Definition: http.cpp:5038
HTTPProtocol::m_unreadBuf
QByteArray m_unreadBuf
Definition: http.h:588
HTTPProtocol::CacheTag::ValidateCached
Definition: http.h:104
HTTPProtocol::davHostOk
bool davHostOk()
Definition: http.cpp:1213
HTTPProtocol::m_iPostDataSize
KIO::filesize_t m_iPostDataSize
Definition: http.h:521
HTTPProtocol::closeConnection
virtual void closeConnection()
Forced close of connection.
Definition: http.cpp:3991
HTTPProtocol::HTTPRequest::HTTPRequest
HTTPRequest()
Definition: http.h:128
HTTPProtocol::cacheFilePathFromUrl
QString cacheFilePathFromUrl(const KUrl &url) const
Definition: http.cpp:4854
HTTPProtocol::maybeSetRequestUrl
bool maybeSetRequestUrl(const KUrl &)
Definition: http.cpp:593
quint32
HTTPProtocol::m_receiveBuf
QByteArray m_receiveBuf
Receive buffer.
Definition: http.h:524
HTTPProtocol::CacheTag::plan
CachePlan plan(time_t maxCacheAge) const
Definition: http.cpp:4604
HTTPProtocol::NoCache
Definition: http.h:85
HTTPProtocol::~HTTPProtocol
virtual ~HTTPProtocol()
Definition: http.cpp:405
HTTPProtocol::HTTPRequest::offset
KIO::filesize_t offset
Definition: http.h:151
QString
KIO::TCPSlaveBase::port
quint16 port() const
HTTPProtocol::HTTPRequest::methodStringOverride
QString methodStringOverride
Definition: http.h:150
QObject
HTTPProtocol::AUTH_None
Definition: http.h:68
HTTPProtocol::davSetRequest
void davSetRequest(const QByteArray &requestXML)
Performs a WebDAV stat or list.
Definition: http.cpp:740
HTTPProtocol::CacheTag::etag
QString etag
Definition: http.h:117
HTTPProtocol::CacheTag::IgnoreCached
Definition: http.h:105
KUrl
HTTPProtocol::isOffline
bool isOffline()
Check network status.
Definition: http.cpp:1930
HTTPProtocol::m_iBytesLeft
KIO::filesize_t m_iBytesLeft
of bytes left to receive in this message.
Definition: http.h:522
HTTPProtocol::error
void error(int errid, const QString &text)
Definition: http.cpp:4557
HTTPProtocol::CacheTag::ioMode
enum CacheIOMode ioMode
Definition: http.h:114
HTTPProtocol::put
virtual void put(const KUrl &url, int _mode, KIO::JobFlags flags)
Definition: http.cpp:1313
HTTPProtocol::CacheTag::charset
QString charset
Definition: http.h:122
HTTPProtocol::HTTPRequest::responseCode
unsigned int responseCode
Definition: http.h:160
HTTPProtocol::HTTP_Unknown
Definition: http.h:65
HTTPProtocol::HTTPRequest::url
KUrl url
Definition: http.h:143
HTTPProtocol::listDir
virtual void listDir(const KUrl &url)
Definition: http.cpp:729
HTTPProtocol::sendHttpError
bool sendHttpError()
Generate and send error message based on response code.
Definition: http.cpp:1886
HTTPProtocol::CacheTag::deserialize
bool deserialize(const QByteArray &)
Definition: http.cpp:4711
HTTPProtocol::m_webDavDataBuf
QByteArray m_webDavDataBuf
Definition: http.h:546
HTTPProtocol::HTTPServerState::url
KUrl url
Definition: http.h:225
HTTPProtocol::m_responseHeaders
QStringList m_responseHeaders
All headers.
Definition: http.h:534
HTTPProtocol::readUnlimited
int readUnlimited()
Read as much as possible.
Definition: http.cpp:4212
HTTPProtocol::m_contentEncodings
QStringList m_contentEncodings
Definition: http.h:539
HTTPProtocol::m_isLoadingErrorPage
bool m_isLoadingErrorPage
Definition: http.h:580
HTTPProtocol::HTTPRequest::userAgent
QString userAgent
Definition: http.h:158
HTTPProtocol::parseDateTime
long parseDateTime(const QString &input, const QString &type)
Parses a date &amp; time string.
Definition: http.cpp:1145
tcpslavebase.h
HTTPProtocol::HTTP_10
Definition: http.h:65
HTTPProtocol::codeFromResponse
int codeFromResponse(const QString &response)
Returns the error code from a &quot;HTTP/1.1 code Code Name&quot; string.
Definition: http.cpp:913
HTTPProtocol::authenticationHeader
QString authenticationHeader()
create HTTP authentications response(s), if any
Definition: http.cpp:5140
HTTPProtocol::CacheTag::policy
KIO::CacheControl policy
Definition: http.h:112
HTTPProtocol::httpShouldCloseConnection
bool httpShouldCloseConnection()
Check whether to keep or close the connection.
Definition: http.cpp:2162
HTTPProtocol::CacheTag
Definition: http.h:90
HTTPProtocol::m_protocol
QByteArray m_protocol
Definition: http.h:570
HTTPProtocol::clearUnreadBuffer
void clearUnreadBuffer()
Definition: http.cpp:2053
HTTPProtocol::sendBody
bool sendBody()
Definition: http.cpp:3869
HTTPProtocol::m_request
HTTPRequest m_request
Definition: http.h:516
HTTPProtocol::m_requestQueue
QList< HTTPRequest > m_requestQueue
Definition: http.h:517
HTTPProtocol::multiGet
void multiGet(const QByteArray &data)
Definition: http.cpp:1944
HTTPProtocol::m_isBusy
bool m_isBusy
Busy handling request queue.
Definition: http.h:528
HTTPProtocol::WriteToCache
Definition: http.h:87
HTTPProtocol::mimetype
virtual void mimetype(const KUrl &url)
Definition: http.cpp:4016
HTTPProtocol::HTTPRequest::languages
QString languages
Definition: http.h:157
QStringList
HTTPProtocol::m_socketProxyAuth
QAuthenticator * m_socketProxyAuth
Definition: http.h:575
HTTPProtocol::HTTPServerState::proxyUrl
KUrl proxyUrl
Definition: http.h:227
HTTPProtocol::HTTPRequest::encoded_hostname
QString encoded_hostname
Definition: http.h:144
HTTPProtocol::satisfyRequestFromCache
bool satisfyRequestFromCache(bool *cacheHasPage)
Return true if the request is already &quot;done&quot;, false otherwise.
Definition: http.cpp:2289
HTTPProtocol::CacheTag::CachePlan
CachePlan
Definition: http.h:102
HTTPProtocol::setHost
virtual void setHost(const QString &host, quint16 port, const QString &user, const QString &pass)
Definition: http.cpp:561
HTTPProtocol::CacheTag::useCache
bool useCache
Definition: http.h:113
HTTPProtocol::HTTPServerState::updateCredentials
void updateCredentials(const HTTPRequest &request)
Definition: http.h:203
HTTPProtocol::m_wwwAuth
KAbstractHttpAuthentication * m_wwwAuth
Definition: http.h:572
HTTPProtocol::HTTPRequest::endoffset
KIO::filesize_t endoffset
Definition: http.h:152
HTTPProtocol::HTTPRequest::doNotWWWAuthenticate
bool doNotWWWAuthenticate
Definition: http.h:172
HTTPProtocol::post
void post(const KUrl &url, qint64 size=-1)
Definition: http.cpp:1476
KIO::CacheControl
CacheControl
HTTPProtocol::fixupResponseContentEncoding
void fixupResponseContentEncoding()
fix common content-encoding errors by webservers.
Definition: http.cpp:2825
HTTPProtocol::parseHeaderFromCache
bool parseHeaderFromCache()
Definition: http.cpp:2722
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:1491
HTTPProtocol::HTTPRequest::keepAliveTimeout
int keepAliveTimeout
Definition: http.h:147
HTTPProtocol::HTTPRequest::disablePassDialog
bool disablePassDialog
Definition: http.h:171
HTTPProtocol::resetResponseParsing
void resetResponseParsing()
Resets variables related to parsing a response.
Definition: http.cpp:436
HeaderTokenizer
Definition: parsinghelpers.h:64
HTTPProtocol::davGeneric
void davGeneric(const KUrl &url, KIO::HTTP_METHOD method, qint64 size=-1)
Definition: http.cpp:892
HTTPProtocol::DAVRequest::desturl
QString desturl
Definition: http.h:79
HTTPProtocol::HTTPRequest::useCookieJar
bool useCookieJar
Definition: http.h:178
HTTPProtocol::davUnlock
void davUnlock(const KUrl &url)
Definition: http.cpp:1555
HTTPProtocol::HTTPServerState
State of the current connection to the server.
Definition: http.h:186
HTTPProtocol::readChunked
int readChunked()
Read a chunk.
Definition: http.cpp:4119
KAbstractHttpAuthentication
Definition: httpauthentication.h:37
HTTPProtocol::m_iError
int m_iError
Definition: http.h:578
HTTPProtocol::HTTPProtocol
HTTPProtocol(const QByteArray &protocol, const QByteArray &pool, const QByteArray &app)
Definition: http.cpp:381
HTTPProtocol::cacheFileWriteTextHeader
void cacheFileWriteTextHeader()
Definition: http.cpp:4768
HTTPProtocol::slotData
void slotData(const QByteArray &)
Definition: http.cpp:4231
HTTPProtocol::proceedUntilResponseHeader
bool proceedUntilResponseHeader()
Ensure we are connected, send our query, and get the response header.
Definition: http.cpp:639
HTTPProtocol::DAVRequest::depth
int depth
Definition: http.h:81
HTTPProtocol::HTTP_11
Definition: http.h:65
HTTPProtocol::HTTPServerState::HTTPServerState
HTTPServerState()
Definition: http.h:188
HTTPProtocol::HTTPServerState::isPersistentProxyConnection
bool isPersistentProxyConnection
Definition: http.h:229
HTTPProtocol::SHOUTCAST
Definition: http.h:65
HTTPProtocol::reparseConfiguration
virtual void reparseConfiguration()
Definition: http.cpp:410
HTTPProtocol::HTTPRequest::proxyUrls
QStringList proxyUrls
Definition: http.h:167
HTTPProtocol::m_mimeType
QString m_mimeType
Definition: http.h:541
HTTPProtocol::m_server
HTTPServerState m_server
Definition: http.h:515
KIO::TCPSlaveBase
HTTPProtocol::retrieveAllData
bool retrieveAllData()
Returns true on successful retrieval of all content data.
Definition: http.cpp:5103
HTTPProtocol::HTTPRequest::CookiesAuto
Definition: http.h:180
HTTPProtocol::m_iContentLeft
KIO::filesize_t m_iContentLeft
of content bytes left
Definition: http.h:523
HTTPProtocol::forwardHttpResponseHeader
void forwardHttpResponseHeader(bool forwardImmediately=true)
Definition: http.cpp:2710
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:452
HTTPProtocol::m_cpMimeBuffer
bool m_cpMimeBuffer
Definition: http.h:554
HTTPProtocol::HTTPRequest::redirectUrl
KUrl redirectUrl
Definition: http.h:165
HTTPProtocol::httpClose
void httpClose(bool keepAlive)
Close transfer.
Definition: http.cpp:3963
HTTPProtocol::CacheTag::serialize
QByteArray serialize() const
Definition: http.cpp:4668
HTTPProtocol::slave_status
virtual void slave_status()
Definition: http.cpp:4006
HTTPProtocol::handleAuthenticationHeader
bool handleAuthenticationHeader(const HeaderTokenizer *tokenizer)
Handles HTTP authentication.
Definition: http.cpp:5351
HTTPProtocol::CacheIOMode
CacheIOMode
Definition: http.h:84
HTTPProtocol::clearPostDataBuffer
void clearPostDataBuffer()
Clears the POST data buffer.
Definition: http.cpp:5094
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 &quot;receive&quot; function.
Definition: http.cpp:4317
HTTPProtocol::CacheTag::lastModifiedDate
time_t lastModifiedDate
Definition: http.h:120
HTTPProtocol::HTTPRequest::prevResponseCode
unsigned int prevResponseCode
Definition: http.h:161
HTTPProtocol::HTTPRequest::charsets
QString charsets
Definition: http.h:156
HTTPProtocol::resetConnectionSettings
void resetConnectionSettings()
Resets any per connection settings.
Definition: http.cpp:424
HTTPProtocol::cacheFileReadTextHeader2
bool cacheFileReadTextHeader2()
load the rest of the text fields
Definition: http.cpp:4815
HTTPProtocol::cacheFileReadTextHeader1
bool cacheFileReadTextHeader1(const KUrl &desiredUrl)
check URL to guard against hash collisions, and load the etag for validation
Definition: http.cpp:4796
HTTPProtocol::rename
virtual void rename(const KUrl &src, const KUrl &dest, KIO::JobFlags flags)
Definition: http.cpp:1399
HTTPProtocol::HTTPRequest::allowTransferCompression
bool allowTransferCompression
Definition: http.h:170
HTTPProtocol::HTTPRequest::proxyUrl
KUrl proxyUrl
Definition: http.h:166
HTTPProtocol::HTTPRequest::preferErrorPage
bool preferErrorPage
Definition: http.h:175
HTTPProtocol::HTTPRequest::cacheTag
CacheTag cacheTag
Definition: http.h:182
HTTPProtocol::proxyAuthenticationForSocket
void proxyAuthenticationForSocket(const QNetworkProxy &, QAuthenticator *)
Definition: http.cpp:5225
HTTPProtocol::CacheTag::CacheTag
CacheTag()
Definition: http.h:92
HTTPProtocol::httpOpenConnection
bool httpOpenConnection()
Open connection.
Definition: http.cpp:2184
HTTPProtocol::m_davCapabilities
QStringList m_davCapabilities
Definition: http.h:547
HTTPProtocol::AUTH_Negotiate
Definition: http.h:68
HTTPProtocol::davParseActiveLocks
void davParseActiveLocks(const QDomNodeList &activeLocks, uint &lockCount)
Definition: http.cpp:1099
HTTPProtocol::CacheTag::fileUseCount
quint32 fileUseCount
Definition: http.h:115
HTTPProtocol::saveProxyAuthenticationForSocket
void saveProxyAuthenticationForSocket()
Definition: http.cpp:5284
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:2034
HTTPProtocol::unread
void unread(char *buf, size_t size)
Definition: http.cpp:2060
HTTPProtocol::HTTPRequest::id
QString id
Definition: http.h:163
HTTPProtocol::formatRequestUri
QString formatRequestUri() const
Definition: http.cpp:2330
HTTPProtocol::stat
virtual void stat(const KUrl &url)
Definition: http.cpp:697
HTTPProtocol::del
virtual void del(const KUrl &url, bool _isfile)
Definition: http.cpp:1445
HTTPProtocol::davProcessLocks
QString davProcessLocks()
Extracts locks from metadata Returns the appropriate If: header.
Definition: http.cpp:1164
HTTPProtocol::CacheTag::file
QFile * file
Definition: http.h:118
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:4035
HTTPProtocol::m_isEOD
bool m_isEOD
Definition: http.h:530
HTTPProtocol::m_mimeTypeBuffer
QByteArray m_mimeTypeBuffer
Definition: http.h:555
HTTPProtocol::cacheFileClose
void cacheFileClose()
Definition: http.cpp:4955
HTTPProtocol::davParsePropstats
void davParsePropstats(const QDomNodeList &propstats, KIO::UDSEntry &entry)
Definition: http.cpp:920
QIODevice
HTTPProtocol::AUTH_NTLM
Definition: http.h:68
HTTPProtocol::readBuffered
size_t readBuffered(char *buf, size_t size, bool unlimited=true)
Definition: http.cpp:2074
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:3600
HTTPProtocol::addCookies
void addCookies(const QString &url, const QByteArray &cookieHeader)
Send a cookie to the cookiejar.
Definition: http.cpp:4580
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:5014
HTTPProtocol::m_iSize
KIO::filesize_t m_iSize
Expected size of message.
Definition: http.h:520
HTTPProtocol::m_isEOF
bool m_isEOF
Definition: http.h:529
HTTPProtocol::cacheFileOpenRead
bool cacheFileOpenRead()
Definition: http.cpp:4864
HTTPProtocol::m_iEOFRetryCount
quint8 m_iEOFRetryCount
Definition: http.h:586
HTTPProtocol::HTTPServerState::initFrom
void initFrom(const HTTPRequest &request)
Definition: http.h:194
HTTPProtocol::cacheFileWritePayload
void cacheFileWritePayload(const QByteArray &d)
Definition: http.cpp:5051
HTTPProtocol::m_proxyAuth
KAbstractHttpAuthentication * m_proxyAuth
Definition: http.h:573
HTTPProtocol::m_dataInternal
bool m_dataInternal
Data is for internal consumption.
Definition: http.h:525
QList
HTTPProtocol::proceedUntilResponseContent
void proceedUntilResponseContent(bool dataInternal=false)
Do everything proceedUntilResponseHeader does, and also get the response body.
Definition: http.cpp:616
HTTPProtocol::HTTPRequest::isPersistentProxyConnection
bool isPersistentProxyConnection
Definition: http.h:169
HTTPProtocol::m_transferEncodings
QStringList m_transferEncodings
Definition: http.h:538
HTTPProtocol::m_POSTbuf
QIODevice * m_POSTbuf
Definition: http.h:561
HTTPProtocol::HTTPRequest::doNotProxyAuthenticate
bool doNotProxyAuthenticate
Definition: http.h:173
HTTPProtocol::HTTPServerState::isKeepAlive
bool isKeepAlive
Definition: http.h:228
HTTPProtocol::m_maxCacheAge
int m_maxCacheAge
Maximum age of a cache entry in seconds.
Definition: http.h:564
HTTPProtocol::slotFilterError
void slotFilterError(const QString &text)
Definition: http.cpp:4552
HTTPProtocol::davError
QString davError(int code=-1, const QString &url=QString())
Definition: http.cpp:1575
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Jun 17 2014 17:10:18 by doxygen 1.8.5 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.10.5 API Reference

Skip menu "kdelibs-4.10.5 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