Commit graph

239 commits

Author SHA1 Message Date
Ivailo Monev
110333d920 kioslave: replace KIO::ERR_COULD_NOT_AUTHENTICATE with KIO::ERR_COULD_NOT_LOGIN in http slave
according to the KIO::ERR_COULD_NOT_AUTHENTICATE error description it is
used when the authentication method is not supported, not when credentials
are required or incorrect

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-22 20:05:21 +02:00
Ivailo Monev
03603a6127 kioslave: make curl fail on error
CURLOPT_FAILONERROR is apparently not enabled by default in recent curl
versions

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-20 13:42:45 +02:00
Ivailo Monev
f8ea6584c5 kioslave: update http slave usage
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-20 13:15:37 +02:00
Ivailo Monev
80c29cd794 kioslave: handle 404 and 503 HTTP error as service not available
note that KIO::ERR_SERVICE_NOT_AVAILABLE was not handled in
KIO::buildErrorString() (since before the fork)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-19 19:35:10 +02:00
Ivailo Monev
de4c9f1d6a kioslave: add disabled curl_easy_setopt() to http KIO slave
for debugging connection issues

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-14 14:26:50 +02:00
Ivailo Monev
bc067dbdfa kio: drop support for putting slaves on hold
with klauncher no longer responsible for KIO slave the next step is to
make them plugins and the feature to put them on hold will be of no value
because QLibrary reuses library/plugin instances and creating a new
slave object will be cheap

in other words the performance will be similar to that of KFileMetaInfo
for which I also wrote the plugins myself - they are pretty quick
compared to what strigi was doing and with more flexible configuration
interface but it took some effort to get there

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-06 04:22:23 +02:00
Ivailo Monev
b2ad647dcb kioslave: add assert about the curl_off_t assumption
curl_off_t may be typedef-ed to long on some bizarre system, Katie does not
support such tho

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-30 09:44:12 +02:00
Ivailo Monev
704ef230d5 generic: make use of KUser and KUserGroup
eventually KUser and KUserGroup will use getpwnam_r(), getgrnam_r(), etc. for thread safety

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-10 21:05:19 +03:00
Ivailo Monev
29a8459798 generic: remove checks for system headers that should be present
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-23 15:42:09 +03:00
Ivailo Monev
00f95b629b generic: compiler warnings fixes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-06-05 02:20:16 +03:00
Ivailo Monev
db065bad02 kioslave: zero-initialize the readlink() buffer in FileProtocol::createUDSEntry()
fixes possible crash in case readlink() fails

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-06-04 20:16:54 +03:00
Ivailo Monev
025dae464b generic: remove smb and nfs slave leftovers, default to sftp for remote protocol
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-06-03 14:58:53 +03:00
Ivailo Monev
17fcee4311 kioslave: implement put for http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-30 21:09:36 +03:00
Ivailo Monev
676fc025b7 kioslave: http slave no longer needs QObject
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-29 07:19:34 +03:00
Ivailo Monev
38079e572c kioslave: workaround for curl not being able to verify certificates for hosts that are address
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-24 07:22:34 +03:00
Ivailo Monev
307e46b867 kioslave: implement authorization restriction for HTTP(S)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-23 08:34:28 +03:00
Ivailo Monev
c5c68413f7 kioslave: correct KDE_rename() return value check in file slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-19 04:12:46 +03:00
Ivailo Monev
67e22b159a kioslave: setup authorization prompt similar to that of ftp slave prompt in http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-14 03:30:00 +03:00
Ivailo Monev
a94b6f0461 kioslave: pass user and password to curl separately from http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-13 23:54:20 +00:00
Ivailo Monev
fbf9ad4e28 kioslave: implement interactive authorization via redirection for http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-13 22:12:38 +03:00
Ivailo Monev
de6c3d6ca4 kioslave: implement auth from the URL user and password for http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-13 21:43:38 +03:00
Ivailo Monev
1f9692122f kio: remove now unused referrer feature
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-13 21:16:51 +03:00
Ivailo Monev
c5d816bbbf kioslave: de-duplicate code and handle curl HTTP error code in http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-13 19:46:43 +03:00
Ivailo Monev
7882f12d69 kioslave: abort HTTP transfers early on error and use curl information instead of parsing headers data in http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-13 17:16:04 +03:00
Ivailo Monev
c7ed55d158 kio: remove now unused HTTP headers propagation feature
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-13 15:37:43 +03:00
Ivailo Monev
06407334e6 kioslave: use slave-defined error enum where appropriate in http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-13 01:31:00 +03:00
Ivailo Monev
12e9b231b7 kioslave: implement stat for http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-13 00:55:00 +03:00
Ivailo Monev
16cf3fab27 kioslave: map more HTTP status codes to KIO errors
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-11 23:25:33 +03:00
Ivailo Monev
a48d4cbb28 kioslave: implement mimetype() for http slave
most of the refactoring is so that headers are parsed and error is emited
if HTTP status is >= 400 before MIME type is emited from the slave

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-11 23:06:14 +03:00
Ivailo Monev
2bccd3cfe4 kioslave: fix runtime warning related to MIME type and http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-11 22:24:56 +03:00
Ivailo Monev
3d67570272 kioslave: remove unused KHTTPHeader methods
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-10 01:25:44 +03:00
Ivailo Monev
36eb896a6c kioslave: emit download speed from http slave
fixes state of transfers done via KIO plugin in KGet (the transfers state
was set to stalled even while download is in progress)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-23 09:53:30 +03:00
Ivailo Monev
3d03a627bc kioslave: use the non-deprecated XFER information callback in http slave
XFER callback introduced in curl v7.32.0, v7.43.0+ is required for
CURL_AT_LEAST_VERSION() anyway

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-22 09:30:52 +03:00
Ivailo Monev
d0d29ef693 kioslave: fix build with curl v7.73.0+
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-10 23:43:08 +03:00
Ivailo Monev
25b5133f26 kioslave: map some curl errors to KIO errors in http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-10 21:56:21 +03:00
Ivailo Monev
6a930be53f kio: remove unused KIO::AuthInfo members and methods
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-06 23:30:27 +03:00
Ivailo Monev
6fe36e5d05 kioslave: create GUI application for ftp slave
fixes crash when authorization is required

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-06 01:14:44 +03:00
Ivailo Monev
6f85921337 generic: replace custom Curl module with CMake provided one
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-29 16:20:59 +03:00
Ivailo Monev
96b145819b kioslave: emit error on HTTP status greater or equal to 400 from http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-28 01:00:05 +03:00
Ivailo Monev
25ce9292bb kioslave: implement resume metadata for http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-26 07:55:23 +02:00
Ivailo Monev
b547419d58 kioslave: restrict http slave redirection protocols to HTTP(S)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-16 09:31:47 +02:00
Ivailo Monev
1c20e32451 kioslave: restrict http slave protocols to HTTP(S)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-16 09:18:32 +02:00
Ivailo Monev
3df1328a22 kioslave: set referrer via the dedicated curl option
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-16 09:11:33 +02:00
Ivailo Monev
aaac5ec388 generic: remove unused metainfo KIO slave and MetaInfoJob KIO class
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-10 02:21:42 +02:00
Ivailo Monev
c90d0d7d16 generic: drop support for file metadata writing
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-08 21:30:04 +02:00
Ivailo Monev
d4691a6f09 generic: remove unused configuration checks
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-08 01:07:02 +02:00
Ivailo Monev
39786a163e kioslave: workaround for something going wrong in http slave with chunked transfers
it goes like this:
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 663 from 663
Received 663 from 663
Received 663 from 663
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 0 from 0
Received 9134 from 8869796
Received 9134 from 8869796
Received 10512 from 8869796
Received 10512 from 8869796
Received 11890 from 8869796
Received 11890 from 8869796
Received 14646 from 8869796
Received 14646 from 8869796
Received 15583 from 8869796
Received 15583 from 8869796
Received 16952 from 8869796
Received 16952 from 8869796
Received 19708 from 8869796
Received 19708 from 8869796
Received 21086 from 8869796
Received 21086 from 8869796
Received 23842 from 8869796
Received 23842 from 8869796
Received 26598 from 8869796
Received 26598 from 8869796
Received 29354 from 8869796
Received 29354 from 8869796
Received 31967 from 8869796
...

it could be curl giving progress on redirects, could be servers sending
bogus content length, idk but it's not a bug that needs fixing here
(the output is from GitHub transfer)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-07 06:37:35 +02:00
Ivailo Monev
e4bf27b4bc kioslave: use the correct option for connection timeout in http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-05 05:30:07 +02:00
Ivailo Monev
e3ae3ce529 kioslave: implement no-auth for http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-05 04:38:52 +02:00
Ivailo Monev
6e5fb2f1c7 kioslave: always trim field before doing something with it in KHTTPHeader::parseHeader()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-04 03:15:50 +02:00