Ivailo Monev
ea22f815a4
kimgio: write mask from ico plugin
...
some browsers for example do not load ICO images without mask apparently,
the mask just makes the image bigger in (data) size tho - the actual image
data is the same (32-bit depth BGRA)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-27 19:33:52 +02:00
Ivailo Monev
aaea32c10c
kimgio: claim write support only if the format matches and the device is writable
...
for read capabilities either the format must match or the format header but
for writing the format must be exact match
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-27 19:10:39 +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
55432743c0
kutils: assume that KArchive::list() filtered the entries when recursing
...
the conditionals were there to maybe match with and without trailing slash
but KArchive::list() works correctly for the fomats that do not add
trailing slash to directories aswell
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 23:33:12 +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
27caa4c394
kdecore: update reference to KHTTP debug area
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 16:46:15 +02:00
Ivailo Monev
1f60123bd7
kutils: check if the entry is directory as fallback when recursing in KArchive::remove() and KArchive::extract()
...
for some formats (such as ISO 9660 images) the directories do not end with
trailing slash
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-25 06:44:59 +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
0c2fa57bdd
kutils: group structs and typedefs documentation
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-24 13:24:47 +02:00
Ivailo Monev
efa445c361
kutils: mark some KArchivePrivate methods as const
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-24 13:15:45 +02:00
Ivailo Monev
0bc98740e0
kutils: error string correction
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-24 13:13:14 +02:00
Ivailo Monev
5e4e0c83e2
kutils: minor KArchive documentation correction
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-24 13:03:20 +02:00
Ivailo Monev
c29fc4dca1
kutils: test KCompressor and KDecompressor with empty data
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-24 12:59:19 +02:00
Ivailo Monev
4c16e7c0d5
kutils: recursively remove/extract when paths contain directory
...
this also makes it match the behaviour of KArchive::add() which recurses
into directories and adds the files that the specified directory holds
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-24 01:56:21 +02:00
Ivailo Monev
7a4a048bdb
cmake: do not install the WebP module
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 20:49:34 +02:00
Ivailo Monev
d4aaf51952
cmake: add FindLibmicrohttpd module to the list of modules that are not installed
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 20:47:09 +02:00
Ivailo Monev
58798988c1
kdeui: minor KApplication documentation correction
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 20:27:49 +02:00
Ivailo Monev
8c5d11fc77
kioslave: map CURLE_REMOTE_FILE_EXISTS and CURLE_COULDNT_RESOLVE_HOST to KIO errors
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 19:58:56 +02:00
Ivailo Monev
02c945a3ca
kutils: plug file descriptor leak in case the output filepath is not a regular file
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 19:42:47 +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
ee59c22250
kdeui: minor KApplicationPrivate::sessionConfigName() optimization
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 18:40:00 +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
8ab4b4bd40
kdeui: close only QMainWindow and derived classes from the KApplication quit handler
...
any widget should be parented to the main window (i.e. be a child of the
main window)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 17:49:33 +02:00
Ivailo Monev
d5e9d695df
kutils: do not stop the player from KMediaWidget destructor
...
the state is saved before terminating MPV and that may require the player
to be playing (not paused or stopped)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 17:46:55 +02:00