Ivailo Monev
ea98009a53
kutils: build fix for the case when OPENSSL_VERSION_PREREQ() macro is not defined
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-01-01 06:08:43 +02:00
Ivailo Monev
1fb4ffa5a8
kioslave: deprecation warning fix
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-01-01 04:57:40 +02:00
Ivailo Monev
d298d73a50
kutils: deprecation warning fix
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-01-01 04:57:07 +02:00
Ivailo Monev
73c729f27b
kdecore: remove unused and private members
...
note that KSycocaFactory also has a d member
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-01-01 04:04:21 +02:00
Ivailo Monev
2310927e2d
kdecore: reserve space for the protocols in KProtocolInfoFactory::protocols()
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-01-01 03:34:52 +02:00
Ivailo Monev
f6b8759d51
kdecore: remove unused KProtocolInfo::isFilterProtocol() methods
...
opposite of KProtocolManager::isSourceProtocol()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-01-01 03:27:41 +02:00
Ivailo Monev
bb23c25fb2
kdecore: format and indent kprotocolinfo source and header files
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-01-01 03:23:31 +02:00
Ivailo Monev
4cb8afa14d
generic: remove unused KIO protocol input/output information
...
KIO slaves are either helper (e.g. vnc/rdp), not source (e.g. thumbnail
which is also helper in a way) or have listing capability (e.g. file
which is filesystem type)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-01-01 02:46:51 +02:00
Ivailo Monev
5e7a19f6f7
generic: store KIO slaves listing capability as boolean
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-01-01 00:57:27 +02:00
Ivailo Monev
f53360be62
kdecore: remove unused KProtocolInfo::capabilities() getter
...
no .protocol file specifies Capabilities and there are
KProtocolManager::supportsListing(), KProtocolManager::supportsReading(),
etc. capability getters (altought reading multiple config entries is
sub-optimal)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-01-01 00:39:34 +02:00
Ivailo Monev
c9ee5d3195
kio: add note about a gap in the HTTP RFC
...
HTTP is a one-way street, do I really want to keep a server up until a file
transfer is finished tho (not in the case of KDirShare - the directory may
be unshared because the system is about to be rebooted or shutdown)?
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-29 08:51:56 +02:00
Ivailo Monev
4c7db025ff
kdeui: someone's typos
...
why do KIconLoader methods take two size arguments overriding each other?
could've used negative values for KIconLoader::Group. I guess I will have
to fix someone's mess at some point
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-28 15:51:11 +02:00
Ivailo Monev
e7c46ec677
kimgio: add note about the mask in ico plugin
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-28 11:02:07 +02:00
Ivailo Monev
873f109a57
kimgio: const-ify bmpimagemasksize in ICOHandler::write()
...
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-27 20:30:22 +02:00
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
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