KIOSlave
http.cpp
Go to the documentation of this file.
89 // KDE5 TODO (QT5) : use QString::htmlEscape or whatever https://qt.gitorious.org/qt/qtbase/merge_requests/56
207 static bool isPotentialSpoofingAttack(const HTTPProtocol::HTTPRequest& request, const KConfigGroup* config)
209 // kDebug(7113) << request.url << "response code: " << request.responseCode << "previous response code:" << request.prevResponseCode;
224 return ((userName.isEmpty() || userName != request.url.user()) && request.responseCode != 401 && request.prevResponseCode != 401);
227 // for a given response code, conclude if the response is going to/likely to have a response body
353 /************************************************************************************************************************/
434 /************************************** HTTPProtocol **********************************************/
537 (isEncryptedHttpVariety(m_protocol) || metaData(QLatin1String("ssl_was_in_use")) != QLatin1String("TRUE") ) )
777 entry.insert( KIO::UDSEntry::UDS_ACCESS, S_IRUSR | S_IRGRP | S_IROTH ); // readable by everybody
905 if ( !stat && thisURL.path(KUrl::AddTrailingSlash).length() == url.path(KUrl::AddTrailingSlash).length() )
991 kDebug(7113) << "Got status code" << code << "(this may mean that some properties are unavailable)";
1024 entry.insert( KIO::UDSEntry::UDS_CREATION_TIME, parseDateTime( property.text(), property.attribute(QLatin1String("dt")) ) );
1073 entry.insert( KIO::UDSEntry::UDS_MODIFICATION_TIME, parseDateTime( property.text(), property.attribute(QLatin1String("dt")) ) );
1211 response += QLatin1String(" <") + metaData( QLatin1String("davLockURL") + countStr ) + QLatin1Char('>');
1227 response += QLatin1Char('<') + metaData( QLatin1String("davLockToken") + countStr ) + QLatin1Char('>');
1508 QDomElement lockInfo = lockReq.createElementNS( QLatin1String("DAV:"), QLatin1String("lockinfo") );
1541 QDomElement prop = multiResponse.documentElement().namedItem( QLatin1String("prop") ).toElement();
1546 davParseActiveLocks( lockdiscovery.elementsByTagName( QLatin1String("activelock") ), lockCount );
1669 QDomElement multistatus = multiResponse.documentElement().namedItem( QLatin1String("multistatus") ).toElement();
1707 errorString = i18nc( "%1: request type", "Access was denied while attempting to %1.", action );
1747 errorString = i18nc( "%1: request type", "Unable to %1 because the resource is locked.", action );
1757 errorString = i18nc( "%1: request type", "Unable to %1 because the destination server refuses "
1839 *errorString = i18nc( "%1: request type", "Access was denied while attempting to %1.", action );
1853 *errorString = i18nc( "%1: request type", "Unable to %1 because the resource is locked.", action );
1859 *errorString = i18nc( "%1: request type", "Unable to %1 because the destination server refuses "
2208 connectError = connectToHost(m_request.url.host(), m_request.url.port(defaultPort()), &errorString);
2214 connectError = connectToHost(m_request.url.host(), m_request.url.port(defaultPort()), &errorString);
2216 kDebug(7113) << "Connected DIRECT: host=" << m_request.url.host() << "port=" << m_request.url.port(defaultPort());
2258 connectError = connectToHost(m_request.url.host(), m_request.url.port(defaultPort()), &errorString);
2494 davHeader = QLatin1String("Lock-token: ") + metaData(QLatin1String("davLockToken")) + QLatin1String("\r\n");
2725 setMetaData(QLatin1String("HTTP-Headers"), m_responseHeaders.join(QString(QLatin1Char('\n'))));
2781 else if (m_mimeType == QLatin1String("audio/x-mp3") || m_mimeType == QLatin1String("audio/x-mpeg") || m_mimeType == QLatin1String("audio/mp3"))
2813 else if ((m_mimeType == QLatin1String("text/plain")) || (m_mimeType == QLatin1String("application/octet-stream"))) {
3081 } else if (m_request.responseCode >= 400 && m_request.responseCode <= 499 && !isAuthenticationRequired(m_request.responseCode)) {
3173 //kDebug(7113) << " -- full response:" << endl << QByteArray(buffer, bufPos).replace("\r", "\\r").replace("\n", "\\n\n");
3466 // TODO cache the proxy auth data (not doing this means a small performance regression for now)
3587 setMetaData(QLatin1String("HTTP-Headers"), m_responseHeaders.join(QString(QLatin1Char('\n'))));
3639 } else if ((encoding == QLatin1String("x-deflate")) || (encoding == QLatin1String("deflate"))) {
3707 if (cacheStr.startsWith("no-cache") || cacheStr.startsWith("no-store")) { // krazy:exclude=strings
3786 if (m_mimeType.startsWith(QLatin1String("text/")) && (m_mimeType != QLatin1String("text/css")) &&
3932 kDebug(7113) << "Connection broken while sending POST content size to" << m_request.url.host();
4294 KMimeType::Ptr mime = KMimeType::findByNameAndContent(m_request.url.fileName(), m_mimeTypeBuffer);
4608 QDBusInterface kcookiejar( QLatin1String("org.kde.kded"), QLatin1String("/modules/kcookiejar"), QLatin1String("org.kde.KCookieServer") );
4616 QDBusInterface kcookiejar( QLatin1String("org.kde.kded"), QLatin1String("/modules/kcookiejar"), QLatin1String("org.kde.KCookieServer") );
4721 // If the file is not new headerEnd has already been read from the file and in fact the variable
5023 Q_ASSERT(command.size() == BinaryCacheFileHeader::size + s_hashedUrlNibbles + sizeof(quint32));
5029 QString socketFileName = KStandardDirs::locateLocal("socket", QLatin1String("kio_http_cache_cleaner"));
5092 m_POSTbuf = createPostBufferDeviceFor(qMax(m_iPostDataSize, static_cast<KIO::filesize_t>(data.size())));
5160 const bool useCachedAuth = (m_request.responseCode == 401 || !config()->readEntry("no-preemptive-auth-reuse", false));
5231 void HTTPProtocol::proxyAuthenticationForSocket(const QNetworkProxy &proxy, QAuthenticator *authenticator)
5263 info.comment = i18n("<b>%1</b> at <b>%2</b>", htmlEscape(info.realmValue), m_request.proxyUrl.host());
5297 kDebug(7113) << "realm:" << m_socketProxyAuth->realm() << "user:" << m_socketProxyAuth->user();
#define DEFAULT_RESPONSE_TIMEOUT
#define DEFAULT_KEEP_ALIVE_TIMEOUT
QString comment
void cachePostData(const QByteArray &)
Caches the POST data in a temporary buffer.
Definition: http.cpp:5089
static KAbstractHttpAuthentication * newAuth(const QByteArray &offer, KConfigGroup *config=0)
Returns authentication object instance appropriate for offer.
Definition: httpauthentication.cpp:266
QString i18n(const char *text)
void clear()
QDomNodeList elementsByTagName(const QString &tagname) const
void adjustPath(AdjustPathOption trailing)
int indexOf(QChar ch, int from, Qt::CaseSensitivity cs) const
void cacheParseResponseHeader(const HeaderTokenizer &tokenizer)
Definition: http.cpp:3647
void setPassword(const QString &password)
void clear()
virtual bool seek(qint64 pos)
QString & append(QChar ch)
qulonglong filesize_t
QString password() const
KAutostart::StartPhase readEntry(const KConfigGroup &group, const char *key, const KAutostart::StartPhase &aDefault)
const char header[]
QDomNode item(int index) const
Definition: http.h:86
void clear()
iterator remove(iterator pos)
KUrl url
qint64 toMSecsSinceEpoch() const
void setFragment(const QString &fragment)
bool isValid() const
bool sendErrorPageNotification()
Call SlaveBase::errorPage() and remember that we've called it.
Definition: http.cpp:1918
int toInt(bool *ok, int base) const
virtual bool atEnd() const
QList< QByteArray > split(char sep) const
void parseContentDisposition(const QString &disposition)
Definition: http.cpp:3609
void clear()
QDomNode appendChild(const QDomNode &newChild)
QByteArray toLower() const
Definition: http.h:105
QByteArray toHex() const
QString user() const
Definition: http.cpp:4679
QByteArray trimmed() const
void slotInput(const QByteArray &d)
static int httpDelError(const HTTPProtocol::HTTPRequest &request, QString *errorString)
Definition: http.cpp:1797
void setPort(int port)
Definition: http.h:183
static QString decode_string(const QString &str)
bool keepPassword
bool remove()
static bool nextLine(const char input[], int *pos, int end)
Definition: parsinghelpers.cpp:44
QString errorString() const
bool isUsingSsl() const
#define DEFAULT_HTTP_PORT
QString realm() const
virtual void copy(const KUrl &src, const KUrl &dest, int _permissions, KIO::JobFlags flags)
Definition: http.cpp:1366
quint16 port() const
void setCacheabilityMetadata(bool cachingAllowed)
Definition: http.cpp:3836
QString toString(int indent) const
QStringList split(const QString &sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const
int timeout
QString digestInfo
bool hasHost() const
void insert(uint field, const QString &value)
bool readResponseHeader()
This function will read in the return header from the server.
Definition: http.cpp:2901
void removeFirst()
bool sendQuery()
This function is responsible for opening up the connection to the remote HTTP server and sending the ...
Definition: http.cpp:2377
const_iterator constBegin() const
bool rename(const QString &newName)
virtual qint64 pos() const
QString fileName() const
QString ref() const
void chop(int n)
QString host() const
bool readDelimitedText(char *buf, int *idx, int end, int numNewlines)
Definition: http.cpp:2109
bool isEmpty() const
QVariant option(const QString &opt) const
const char * name(StandardAction id)
QLocalSocket m_cacheCleanerConnection
Connection to the cache cleaner process.
Definition: http.h:575
bool startsWith(const QByteArray &ba) const
static KDateTime fromString(const QString &string, TimeFormat format=ISODate, bool *negZero=0)
void setRef(const QString &fragment)
void setPassword(const QString &password)
QByteArray cacheFileReadPayload(int maxLength)
Definition: http.cpp:5044
void setEncodedPathAndQuery(const QString &_txt)
Definition: http.h:106
QString toString(const QString &format) const
static bool isEncryptedHttpVariety(const QByteArray &p)
Definition: http.cpp:272
QString md5()
bool isValid() const
QString toLocalFile(AdjustPathOption trailing=LeaveTrailingSlash) const
QString cacheFilePathFromUrl(const KUrl &url) const
Definition: http.cpp:4860
QDomElement documentElement() const
#define DEFAULT_MAX_CACHE_SIZE
Definition: http.h:85
bool connectToHost(const QString &protocol, const QString &host, quint16 port)
static bool canHaveResponseBody(int responseCode, KIO::HTTP_METHOD method)
Definition: http.cpp:228
QString join(const QString &separator) const
int length() const
QString & remove(int position, int n)
QDomElement createElementNS(const QString &nsURI, const QString &qName)
int port() const
virtual bool open(QFlags< QIODevice::OpenModeFlag > mode)
#define DEFAULT_CACHE_EXPIRE
QNetworkProxy applicationProxy()
static QDebug kDebug(bool cond, int area=KDE_DEFAULT_DEBUG_AREA)
void chop(int n)
bool disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *method)
void davSetRequest(const QByteArray &requestXML)
Performs a WebDAV stat or list.
Definition: http.cpp:798
FileError error() const
void setValue(const T &value) const
Definition: http.h:107
QDBusMessage call(const QString &method, const QVariant &arg1, const QVariant &arg2, const QVariant &arg3, const QVariant &arg4, const QVariant &arg5, const QVariant &arg6, const QVariant &arg7, const QVariant &arg8)
int second() const
void setQuery(const QString &query)
QString i18nc(const char *ctxt, const char *text)
KSharedConfigPtr config()
int lastIndexOf(QChar ch, int from, Qt::CaseSensitivity cs) const
bool isNull() const
#define DEFAULT_MIME_TYPE
void setPath(const QString &path)
virtual void put(const KUrl &url, int _mode, KIO::JobFlags flags)
Definition: http.cpp:1337
Definition: http.h:65
static bool isCompatibleNextUrl(const KUrl &previous, const KUrl &now)
Definition: http.cpp:2152
void clear()
static QIODevice * createPostBufferDeviceFor(KIO::filesize_t size)
Definition: http.cpp:287
void setUser(const QString &user)
void resize(int size)
QDomElement toElement() const
void setTime_t(qint64 seconds)
bool sendHttpError()
Generate and send error message based on response code.
Definition: http.cpp:1887
QString hostName() const
void setBlocking(bool b)
bool isConnected() const
virtual void fillKioAuthInfo(KIO::AuthInfo *ai) const =0
KIO compatible data to find cached credentials.
qint64 currentMSecsSinceEpoch()
const char * name() const
int indexOf(char ch, int from) const
bool startSsl()
static int startServiceByDesktopPath(const QString &_name, const QString &URL, QString *error=0, QString *serviceName=0, int *pid=0, const QByteArray &startup_id=QByteArray(), bool noWait=false)
void setProtocol(const QString &proto)
int count() const
static QString sanitizeCustomHTTPHeader(const QString &_header)
Definition: http.cpp:184
QString number(int n, int base)
int count(const T &value) const
void append(const T &value)
QString realmValue
QString fromUtf8(const char *str, int size)
Definition: http.h:65
static bool readLineChecked(QIODevice *dev, QByteArray *line)
Definition: http.cpp:4790
int codeFromResponse(const QString &response)
Returns the error code from a "HTTP/1.1 code Code Name" string.
Definition: http.cpp:960
QVariant property(const char *name) const
QString authenticationHeader()
create HTTP authentications response(s), if any
Definition: http.cpp:5146
bool hasRef() const
virtual qint64 size() const
void pop_front()
QString text() const
bool httpShouldCloseConnection()
Check whether to keep or close the connection.
Definition: http.cpp:2163
Definition: http.h:90
bool isNull() const
#define DEFAULT_PARTIAL_CHARSET_HEADER
bool verifyPath
long long numberValue(uint field, long long defaultValue=0) const
TimeFormat
QNetworkProxy::ProxyType type() const
bool isUtf8(const char *str)
void output(QList< Action > actions, QHash< QString, QString > domain)
Definition: http.cpp:4681
Definition: http.h:87
QByteArray toAce(const QString &domain)
QString user() const
QString protocol() const
void setAutoRemove(bool b)
QString pass() const
int toInt(bool *ok, int base) const
bool isEmpty() const
bool isEmpty() const
QString trimmed() const
const_iterator constEnd() const
bool satisfyRequestFromCache(bool *cacheHasPage)
Return true if the request is already "done", false otherwise.
Definition: http.cpp:2295
bool davStatDestination()
Stats a remote DAV file and returns true if it exists.
Definition: http.cpp:5556
QByteArray number(int n, int base)
const char * constData() const
KDateTime toUtc() const
virtual void setHost(const QString &host, quint16 port, const QString &user, const QString &pass)
Definition: http.cpp:618
bool startsWith(const QString &s, Qt::CaseSensitivity cs) const
QDateTime dateTime() const
void updateCredentials(const HTTPRequest &request)
Definition: http.h:206
static QByteArray bestOffer(const QList< QByteArray > &offers)
Choose the best authentication mechanism from the offered ones.
Definition: httpauthentication.cpp:227
void setPass(const QString &pass)
void fixupResponseContentEncoding()
fix common content-encoding errors by webservers.
Definition: http.cpp:2834
enum HTTPProtocol::HTTPRequest::@1 cookieMode
QString stringValue(uint field) const
QString user() const
void davLock(const KUrl &url, const QString &scope, const QString &type, const QString &owner)
Definition: http.cpp:1492
void setSocketOption(QAbstractSocket::SocketOption options, const QVariant &value)
void addData(const char *data, int length)
bool endsWith(const QString &s, Qt::CaseSensitivity cs) const
qint64 read(char *data, qint64 maxSize)
bool isOpen() const
void truncate(int pos)
Definition: parsinghelpers.h:64
void davGeneric(const KUrl &url, KIO::HTTP_METHOD method, qint64 size=-1)
Definition: http.cpp:939
#define DEFAULT_MAX_CACHE_AGE
static void skipSpace(const char input[], int *pos, int end)
Definition: parsinghelpers.cpp:32
void remove()
CopyJob * link(const KUrl &src, const KUrl &destDir, JobFlags flags=DefaultFlags)
T & first()
QByteArray headerFragment() const
insert this into the next request header after "Authorization: " or "Proxy-Authorization: " ...
Definition: httpauthentication.h:131
qulonglong toULongLong(bool *ok, int base) const
QString path(AdjustPathOption trailing=LeaveTrailingSlash) const
QString fromPercentEncoding(const QByteArray &input)
virtual bool reset()
QByteArray mid(int pos, int len) const
virtual bool open(QFlags< QIODevice::OpenModeFlag > mode)
HTTPProtocol(const QByteArray &protocol, const QByteArray &pool, const QByteArray &app)
Definition: http.cpp:437
void disconnectFromHost()
Definition: parsinghelpers.h:39
virtual void generateResponse(const QString &user, const QString &password)=0
what to do in response to challenge
void setVersion(int v)
bool proceedUntilResponseHeader()
Ensure we are connected, send our query, and get the response header.
Definition: http.cpp:696
QByteArray & append(char ch)
QDomText createTextNode(const QString &value)
KIO::CacheControl parseCacheControl(const QString &cacheControl)
Definition: http.h:65
OpenMode openMode() const
iterator end()
QString toLower() const
QDomNode namedItem(const QString &name) const
bool contains(QChar ch, Qt::CaseSensitivity cs) const
static QString protocolForProxyType(QNetworkProxy::ProxyType type)
Definition: http.cpp:5212
#define DEFAULT_HTTPS_PORT
Definition: http.h:65
static int httpPutError(const HTTPProtocol::HTTPRequest &request, QString *errorString)
Definition: http.cpp:1824
static qint64 parseDateTime(const QString &input, const QString &type)
Definition: http.cpp:307
bool hasNext() const
QByteArray simplified() const
virtual void close()
virtual void setChallenge(const QByteArray &c, const KUrl &resource, const QByteArray &httpMethod)
initiate authentication with challenge string (from HTTP header)
Definition: httpauthentication.cpp:322
KGuiItem ok()
qlonglong toLongLong(bool *ok, int base) const
static int httpGenericError(const HTTPProtocol::HTTPRequest &request, QString *errorString)
Definition: http.cpp:1782
bool isNull() const
QString fileName() const
KLocale * locale()
bool retrieveAllData()
Returns true on successful retrieval of all content data.
Definition: http.cpp:5109
const Key key(const T &value) const
QIODevice * socket() const
Definition: http.h:183
QString & replace(int position, int n, QChar after)
void forwardHttpResponseHeader(bool forwardImmediately=true)
Definition: http.cpp:2719
Definition: http.h:65
T takeLast()
bool isValid() const
#define DEFAULT_LANGUAGE_HEADER
QDomNode firstChild() const
QByteArray toLatin1() const
QString encodedPathAndQuery(AdjustPathOption trailing=LeaveTrailingSlash, const EncodedPathAndQueryOptions &options=PermitEmptyPath) const
bool flush()
QString mid(int position, int n) const
bool handleAuthenticationHeader(const HeaderTokenizer *tokenizer)
Handles HTTP authentication.
Definition: http.cpp:5357
QString password
Definition: http.h:56
static QMap< QString, QString > contentDispositionParser(const QString &disposition)
Definition: parsinghelpers.cpp:581
bool readBody(bool dataInternal=false)
This function is our "receive" function.
Definition: http.cpp:4342
QString fileName(const DirectoryOptions &options=IgnoreTrailingSlash) const
#define DEFAULT_ACCEPT_HEADER
static QString locateLocal(const char *type, const QString &filename, const KComponentData &cData=KGlobal::mainComponent())
QString & setNum(short n, int base)
T & next()
unsigned int version()
bool cacheFileReadTextHeader1(const KUrl &desiredUrl)
check URL to guard against hash collisions, and load the etag for validation
Definition: http.cpp:4802
const QChar at(int position) const
virtual void rename(const KUrl &src, const KUrl &dest, KIO::JobFlags flags)
Definition: http.cpp:1403
T & last()
typedef ConstIterator
bool allowTransferCompression
Definition: http.h:173
static qint64 toTime_t(const QString &value, KDateTime::TimeFormat format)
Definition: http.cpp:301
QString username
int writeRawData(const char *s, int len)
void proxyAuthenticationForSocket(const QNetworkProxy &, QAuthenticator *)
Definition: http.cpp:5231
void removeLast()
int length() const
void reserve(int size)
void connectToServer(const QString &name, QFlags< QIODevice::OpenModeFlag > openMode)
bool toBool() const
char * data()
void setOption(const QString &opt, const QVariant &value)
void davParseActiveLocks(const QDomNodeList &activeLocks, uint &lockCount)
Definition: http.cpp:1146
static QDebug kWarning(bool cond, int area=KDE_DEFAULT_DEBUG_AREA)
void addFilter(HTTPFilterBase *filter)
QString left(int n) const
QByteArray result() const
qint64 write(const char *data, qint64 maxSize)
bool isAutoSsl() const
void setUser(const QString &user)
QString fromLatin1(const char *str, int size)
void saveProxyAuthenticationForSocket()
Definition: http.cpp:5290
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
void copyPut(const KUrl &src, const KUrl &dest, KIO::JobFlags flags)
Handles file -> webdav put requests.
Definition: http.cpp:5522
KGuiItem cont()
void setHost(const QString &host)
QString url(AdjustPathOption trailing=LeaveTrailingSlash) const
QString davProcessLocks()
Extracts locks from metadata Returns the appropriate If: header.
Definition: http.cpp:1192
QString tagName() const
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
bool waitForConnected(int msecs)
static QByteArray makeCacheCleanerCommand(const HTTPProtocol::CacheTag &cacheTag, CacheCleanerCommandCode cmd)
Definition: http.cpp:4940
QDomElement createElement(const QString &tagName)
bool isLocalFile() const
void davParsePropstats(const QDomNodeList &propstats, KIO::UDSEntry &entry)
Definition: http.cpp:967
int size() const
size_t readBuffered(char *buf, size_t size, bool unlimited=true)
Definition: http.cpp:2075
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QString convertSize(KIO::filesize_t size)
#define DEFAULT_CACHE_CONTROL
static bool isPotentialSpoofingAttack(const HTTPProtocol::HTTPRequest &request, const KConfigGroup *config)
Definition: http.cpp:207
void setApplicationProxy(const QNetworkProxy &networkProxy)
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
void addCookies(const QString &url, const QByteArray &cookieHeader)
Send a cookie to the cookiejar.
Definition: http.cpp:4605
static bool isCrossDomainRequest(const QString &fqdn, const QString &originURL)
Definition: http.cpp:150
static bool consume(const char input[], int *pos, int end, const char *term)
Definition: http.cpp:2880
void sendCacheCleanerCommand(const QByteArray &command)
Definition: http.cpp:5020
T readEntry(const QString &key, const T &aDefault) const
bool removeOne(const T &value)
Definition: http.cpp:4680
qlonglong toLongLong(bool *ok, int base) const
LocalSocketState state() const
iterator begin()
void squeeze()
QTime time() const
QString prettyUrl(AdjustPathOption trailing=LeaveTrailingSlash) const
QString commentLabel
QByteArray toEncoded(QFlags< QUrl::FormattingOption > options) const
static bool isAuthenticationRequired(int responseCode)
Definition: http.cpp:420
bool endsWith(const QByteArray &ba) const
CopyJob * trash(const KUrl &src, JobFlags flags=DefaultFlags)
void initFrom(const HTTPRequest &request)
Definition: http.h:197
QString prompt
void cacheFileWritePayload(const QByteArray &d)
Definition: http.cpp:5057
int skipRawData(int len)
QByteArray toByteArray(int indent) const
bool waitForResponse(int t)
void proceedUntilResponseContent(bool dataInternal=false)
Do everything proceedUntilResponseHeader does, and also get the response body.
Definition: http.cpp:673
QString number(KIO::filesize_t size)
#define KDE_EXPORT
bool setContent(const QByteArray &data, bool namespaceProcessing, QString *errorMsg, int *errorLine, int *errorColumn)
qint64 readLine(char *data, qint64 maxSize)
const T value(const Key &key) const
QString davError(int code=-1, const QString &url=QString())
Definition: http.cpp:1576
QByteArray toUtf8() const
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:25:55 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:25:55 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.