Ivailo Monev
7cfaf11ad3
kio: implement HEAD method for KHTTP
...
kinda not worth it tho - neither browsers nor KIO use it actually, maybe
optimization for bots and web crawlers
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-27 20:29:45 +02:00
Ivailo Monev
45db837f12
kio: initialize KHTTPPrivate::m_filepool member
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-27 18:53:52 +02:00
Ivailo Monev
f5fa2f2fd6
kio: thread the sending of files from KHTTP
...
for small files it may be overkill but for large files it is a huge
difference
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-27 01:18:37 +02:00
Ivailo Monev
0806e846eb
kio: insert Connection header from HTTPHeaders() function
...
required if not supported by the server, for reference:
https://www.rfc-editor.org/rfc/rfc9112#name-persistence
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-26 23:13:02 +02:00
Ivailo Monev
823c98360d
kio: handle content exceptions in KHTTP
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-26 22:06:19 +02:00
Ivailo Monev
f6ef1e42f3
kio: insert Last-Modified header when serving files from KHTTP
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-26 21:49:11 +02:00
Ivailo Monev
b1522a35dd
kio: update HTTP status codes from RFC 9110
...
for reference:
https://www.rfc-editor.org/rfc/rfc9110.html#name-changes-from-rfc-7231
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-26 20:51:41 +02:00
Ivailo Monev
9c3873613c
kio: insert Accept-Ranges header from HTTPHeaders() function
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-26 20:26:04 +02:00
Ivailo Monev
20e8594122
kio: insert Allow header from HTTPHeaders() function
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-26 19:41:44 +02:00
Ivailo Monev
5c7bcd1be4
kio: remove now unused QMutex header inclusion in khttp source file
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-26 19:40:45 +02:00
Ivailo Monev
8fcd182e2f
kio: const-ify the port argument of KHTTP::start()
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-26 16:35:34 +02:00
Ivailo Monev
a9c96f297b
kio: multi-connection safe KHTTP server stop
...
bonus points for not using mutex
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-26 03:58:28 +02:00
Ivailo Monev
529ef6912b
kio: mark the KHTTPPrivate reimplementation as final
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-26 03:21:22 +02:00
Ivailo Monev
4f01c0c369
kio: typo
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-26 03:20:52 +02:00
Ivailo Monev
9446f976e7
kio: thread-safe KHTTP server stop
...
due to QTcpServer deleting clients on close either polling for new
connection has to be done (which will slow down the server a lot) or the
server has to be mutex-locked on per-client basis
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-26 03:18:43 +02:00
Ivailo Monev
0cbc869f50
kio: convert the version to uppercase for the sake of comparison
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 21:30:17 +02:00
Ivailo Monev
496c1e3226
kio: send 505 on non-HTTP/1.1 version from KHTTP
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 21:29:09 +02:00
Ivailo Monev
362b80c063
kio: send 405 on non-GET method from KHTTP
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 21:16:37 +02:00
Ivailo Monev
8731dfa323
kio: add the HTTP status code to the content in HTTPStatusToContent() function
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 20:51:39 +02:00
Ivailo Monev
6b61bac251
kio: KHTTP optimization
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 20:33:55 +02:00
Ivailo Monev
907782ff6d
kio: KHTTP::respond() documentation update
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 18:55:17 +02:00
Ivailo Monev
931a05dbb7
kio: do not assume server does not contain space characters in HTTPHeaders() function
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 18:44:18 +02:00
Ivailo Monev
046d5caaee
kio: new KHTTP::setServerID() setter
...
because authentication is done before calling the virtual KHTTP::responed()
method which means that Server header set in the headers from it would have
no effect
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 18:33:02 +02:00
Ivailo Monev
11e4eacc8e
kio: pass authentication requirement to KHTTPPrivate::writeResponse()
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 18:14:57 +02:00
Ivailo Monev
3dbe3173be
kio: drop support for custom authentication message, de-duplicate code
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 18:05:47 +02:00
Ivailo Monev
9e0707ff8b
kio: reject large client payloads in KHTTP
...
for reference:
https://datatracker.ietf.org/doc/html/rfc7230#section-9.3
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 17:46:39 +02:00
Ivailo Monev
dc5aa31eca
kio: KHTTP dcoumentation update
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 06:26:41 +02:00
Ivailo Monev
d51e0ec201
kio: do not assume the authentication message is non-empty in KHTTP
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 06:19:21 +02:00
Ivailo Monev
59567864f0
kio: translate the error in KHTTP::setAuthenticate()
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 05:16:44 +02:00
Ivailo Monev
969ddd830f
kutils: rewrite KHTTP and move it to kio library
...
same functionality but without extra dependencies and better throughput
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 04:59:18 +02:00
Ivailo Monev
3f6c5931af
kio: add typo to the possible causes for KIO::ERR_MALFORMED_URL
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 18:45:56 +02:00
Ivailo Monev
1365112606
kio: pass the caption to KMessageBox::detailedError() from KIO::JobUiDelegate::showErrorMessage()
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 18:39:41 +02:00
Ivailo Monev
0f0db0c3a7
kio: show unqueued and detailed job error messages
...
some errors (such as KIO::ERR_SERVICE_NOT_AVAILABLE) are not handled in
KIO::rawErrorDetail() yet tho
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 04:09:49 +02:00
Ivailo Monev
9a2e49d59a
kio: replace QVariant with QMap header inclusion in global header
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 02:33:29 +02:00
Ivailo Monev
ca7fc963e7
kio: simplify SimpleJob::slotMetaData()
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 01:54:25 +02:00
Ivailo Monev
96f7941236
kio: drop KIO::MetaData from and to QVariant conversion methods
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 00:59:47 +02:00
Ivailo Monev
5a270d4864
kio: initialize all KIO::SlaveBasePrivate members before connecting the slave
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-22 23:40:05 +02:00
Ivailo Monev
b2d0b1a955
kio: remove unused CMD_SLAVE_STATUS command
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-22 23:08:32 +02:00
Ivailo Monev
83eab16683
kio: remove unused CMD_SLAVE_CONNECT command
...
never dispatched
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-22 22:31:46 +02:00
Ivailo Monev
5fa0b7a569
kio: remove unused port-related definitions
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-22 22:26:07 +02:00
Ivailo Monev
b7e764dfcd
kio: remove unimplemented KIO::SlaveBase::setLinkDest()
...
not even handled in KIO::SlaveBase::dispatch()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-22 21:23:25 +02:00
Ivailo Monev
ab75b45d49
kio: move private KIO::Command enum to job_p header
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-22 20:46:09 +02:00
Ivailo Monev
5e86975733
kio: remove unused KIO::ERR_ABORTED enum
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-22 19:58:00 +02:00
Ivailo Monev
15933214f9
kio: remove unused KIO::ERR_UNSUPPORTED_PROTOCOL enum
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-22 19:51:10 +02:00
Ivailo Monev
0b881add5e
kio: remove unused KIO::Job::detailedErrorStrings() and KIO::rawErrorDetail() methods argument
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-22 19:47:04 +02:00
Ivailo Monev
effc55e44f
kio: remove unused KIO::Error enums
...
note that KIO::ERR_NEED_PASSWD was not handled at all
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-22 19:24:56 +02:00
Ivailo Monev
8fde788cd6
kio: zero-initialize the buffer in KIO::number()
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-22 18:40:22 +02:00
Ivailo Monev
7b6f2c92d8
kio: poppler metadata extractor optimization
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-21 19:10:17 +02:00
Ivailo Monev
75e5990125
kio: taglib metadata extractor optimization
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-21 18:59:23 +02:00
Ivailo Monev
212cc9717a
kio: log KFileMetaInfo messages to the kio debug area
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-20 00:22:57 +02:00