Commit graph

97 commits

Author SHA1 Message Date
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
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
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
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
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
Ivailo Monev
ec6bed0b02 kioslave: fix parsing of HTTP2 header in KHTTPHeader::parseHeader()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-04 03:01:46 +02:00
Ivailo Monev
2440917156 kioslave: set curl proxy type and string based on the proxy protocol, host and port
implement no-proxy-auth and no-auth while at it

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-03 00:53:09 +02:00
Ivailo Monev
f5c5f3cd63 kioslave: round values before passing them to method in http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-23 20:46:19 +02:00
Ivailo Monev
a5c1269288 kioslave: instruct curl to not use signals, set timeout value to the one set in config
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-23 18:14:27 +02:00
Ivailo Monev
8576d1c7de kioslave: use KIO::ERR_CONNECTION_BROKEN as error when setting HTTP header fails
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-21 12:57:31 +02:00
Ivailo Monev
1c92f16897 kioslave: check the return value of most curl_easy_setopt() calls
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-21 12:51:49 +02:00
Ivailo Monev
e0bfca1e23 kioslave: curl does its own caching for which there is no option
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-21 12:51:18 +02:00
Ivailo Monev
3ea24dec27 kioslave: reset curl handle on every get()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-21 12:42:23 +02:00
Ivailo Monev
9d0e55c1f6 kioslave: disable copying of KHTTPHeader
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-21 06:39:23 +02:00
Ivailo Monev
a0068c5d85 kioslave: fix crash in case charset is not set in content-type field
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-21 06:27:41 +02:00
Ivailo Monev
1cda27ba73 kioslave: implement charset, modified and accept metadata for http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-21 06:09:45 +02:00
Ivailo Monev
cb3f976585 kioslave: reset header data on every get from http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-19 21:51:46 +02:00
Ivailo Monev
2b5f2ec093 kioslave: implement PropagateHttpHeader for http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-19 19:44:16 +02:00
Ivailo Monev
26b5f5f341 kioslave: the argument of SlaveBase::mimeType() is of QString type
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-19 19:26:22 +02:00
Ivailo Monev
fcd8ecf950 kioslave: implement proxy and referrer metadata for http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-19 19:19:09 +02:00
Ivailo Monev
69af879278 kioslave: reimplement HTTP(S) slave via curl
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-19 16:40:06 +02:00
Ivailo Monev
cc5a959285 kioslave: sleep 400ms on each iteration in http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-18 20:04:44 +02:00