Commit graph

230 commits

Author SHA1 Message Date
Ivailo Monev
817b7a4aab kdecore: rework KMimeType
more accurate probing then before, notably by probing the file content
from the file slave (only the name was checked before because the
filepath was not a full path in some cases and the file could not be
open)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-05-04 20:14:53 +03:00
Ivailo Monev
ee4c56ad5e kioslave: use the full path to determine the MIME type in file slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-05-04 04:14:15 +03:00
Ivailo Monev
f34328e051 kioslave: update comment in file slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-05-04 04:08:44 +03:00
Ivailo Monev
6820e4e63c kioslave: different take on MIME type determination in curl slave
because FTP and SFTP are special about it so is the MIME type
determination

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-05-04 04:03:02 +03:00
Ivailo Monev
d1fd7fdab6 kioslave: curl slave optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-05-03 23:14:51 +03:00
Ivailo Monev
c763b1266a kioslave: remove bits used during curl slave rework
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-05-03 22:32:01 +03:00
Ivailo Monev
c560428d0d kio: remove KIO::SlaveBase compat bits
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-05-03 07:30:00 +03:00
Ivailo Monev
e273741fdb kio: drop MIME type feature of slaves
the specialized one, stat() does it now because emitting MIME type while
also emitting data (in or out) interrupts the data flow

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-05-03 05:26:56 +03:00
Ivailo Monev
b5b73968c3 kioslave: initialize variable in FileProtocol::put()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-05-03 01:06:22 +03:00
Ivailo Monev
5cf8aa96b9 kio: rename Charsets metadata to Charset
because in configs (e.g. written by dolphin) it is "Charset", less
confusion

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-05-02 22:19:07 +03:00
Ivailo Monev
97e7649bd3 kio: drop KRemoteEncoding class
can be done by slaves via custom QTextConverter or whatever, the
converter is using Charset metadata and the KRemoteEncoding class is not
required outside the slaves

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-05-02 21:47:54 +03:00
Ivailo Monev
1a5f247e86 kio: remove redundant KIO::SlaveBase methods
assume there is no metadata if empty, otherwise it is 2x the trip - one
time to check and one time to get the metadata

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-05-02 21:27:30 +03:00
Ivailo Monev
77d32f4169 kio: always calculate the speed on fixed 1sec interval based on the difference in processed size
because there are quircks such as slaves emitting total and/or processed
size way too often, the total size may not even be known at the start of
the get (chunked HTTP(s) transfer)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-05-01 06:15:31 +03:00
Ivailo Monev
d4fb98cc28 generic: KIO protocols classification optimization
unfortunate as it is the class for getting protocol information is not
part of kio library so generic..

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-04-14 09:54:36 +03:00
Ivailo Monev
e879c440fb kioslave: adjust to Katie changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-29 15:26:25 +02:00
Ivailo Monev
08a76dd091 kioslave: typo
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-29 10:05:24 +02:00
Ivailo Monev
b43339cf19 kio: drop proxy support
because curl internally checks the environment for proxy-related variables
it is redundant to duplicate that feature, that however is possible due to
the rewrite of the ftp, sftp and http slaves that I did. some other changes
were made while at it such enable automatic resuming by default, if KIO
slaves cannot resume or do not resume transfers that is different thing

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-29 09:54:38 +02:00
Ivailo Monev
599c76018a kioslave: do not redirect to the original URL from curl slave
now that QHostInfo resolves in a more relaxed way (without NI_NAMEREQD
flag) it can happen that the hostname of the result is the address
itself

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-29 06:07:37 +02:00
Ivailo Monev
cdf208de0a kioslave: branch to not log warning in curl slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-23 03:41:59 +02:00
Ivailo Monev
31b4f47a7d kioslave: ftp line parsing optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-22 12:07:13 +02:00
Ivailo Monev
fe050791bf kioslave: correct warning message in curl slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-22 10:57:30 +02:00
Ivailo Monev
72fc471eb7 kioslave: map 416 and 501 HTTP status to KIO error codes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-22 02:31:42 +02:00
Ivailo Monev
72faa00809 kioslave: curl slave review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-21 18:46:39 +02:00
Ivailo Monev
2fb22a0840 kioslave: much simpler curlKeyCallback() implementation
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-21 08:14:13 +02:00
Ivailo Monev
78dcdcfd18 kioslave: mark unused curlKeyCallback() function arguments as such
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-21 07:46:00 +02:00
Ivailo Monev
b8a3129a1a kioslave: implement option to accept or reject keys from curl slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-21 07:42:42 +02:00
Ivailo Monev
24c871eb30 kioslave: set CURLOPT_SSH_AUTH_TYPES from curl slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-21 06:52:45 +02:00
Ivailo Monev
b76733954b kioslave: use only one variable for ftp and sftp in curl slave
no sftp specific code yet, I was expecting I will have to write some tho

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-21 00:51:11 +02:00
Ivailo Monev
21e5f5c2ab kioslave: ftp line parsing optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-20 23:58:18 +02:00
Ivailo Monev
e8237a61ac kioslave: emit upload progress for put action from curl slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-20 23:47:49 +02:00
Ivailo Monev
04fcbb5f05 kioslave: do not emit canResume() signal for put jobs from curl slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-20 08:23:22 +02:00
Ivailo Monev
c6d390bb5f kioslave: do not rely on servers to include "." and ".." entries when listing in curl slave
demo.wftpserver.com is one of those, the hack is only for the root
directory anyway and was done to even greater extend by the old ftp
slave

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-20 03:40:30 +02:00
Ivailo Monev
303ef92157 kioslave: pass the unmodified URL to CurlProtocol::performCurl()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-20 03:31:08 +02:00
Ivailo Monev
d49aa1d382 kioslave: enable moving for ftp and sftp protocols
with the other functionality in place it works now

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-20 00:25:55 +02:00
Ivailo Monev
79273ab93a kioslave: implement modification time for curl slave in ftp/sftp mode
totally made up (due to lack of info about the actual date and time) but
required for sorting and such (e.g. by classes using KFileItem and
KDirModel)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-20 00:17:06 +02:00
Ivailo Monev
7d66339e7c kioslave: set permissions of the file on put from curl slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-19 23:07:32 +02:00
Ivailo Monev
aeedbca8ed kioslave: basic put for curl slave
tested only on ftp with small files

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-19 22:53:31 +02:00
Ivailo Monev
a663155801 kioslave: map CURLE_REMOTE_ACCESS_DENIED to KIO::ERR_ACCESS_DENIED in curl slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-19 22:37:47 +02:00
Ivailo Monev
485f5add57 kioslave: curl slave review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-19 22:04:36 +02:00
Ivailo Monev
b266599a69 kioslave: curl slave line parser optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-19 00:17:27 +02:00
Ivailo Monev
a2c0f0f006 kioslave: const-ify curl slave slot arguments
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-19 00:14:28 +02:00
Ivailo Monev
657fc7dd05 kioslave: log resolve warning to the correct debug area
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-19 00:09:02 +02:00
Ivailo Monev
3bc5e8c500 kioslave: pass percentage-encoded URL to curl from curl slave
fixes transfer actions (e.g. stat) on file/directories with whitespace in
their filename

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-18 23:34:16 +02:00
Ivailo Monev
2d905e38c5 kioslave: different take on the curl slave line parser
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-18 08:38:26 +02:00
Ivailo Monev
8040336e6e kioslave: curl slave optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-18 07:52:20 +02:00
Ivailo Monev
2057e0ee0c kioslave: de-duplicate curl slave code
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-18 07:47:54 +02:00
Ivailo Monev
eea6dac2b5 kioslave: rename ftpFilePermissions() function in curl slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-18 07:19:40 +02:00
Ivailo Monev
e0b6fcfa8b kioslave: add FIXME for curl slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-18 07:01:26 +02:00
Ivailo Monev
403cb77854 kioslave: drop experimental chown feature of curl slave
curl mentions it (https://curl.se/libcurl/c/CURLOPT_QUOTE.html) but the RFC
for the protocol (https://datatracker.ietf.org/doc/html/rfc959) does not,
the old ftp slave did not implement it either. that leaves only put to be
implemented for the slave to be complete (rename is optional)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-18 07:01:12 +02:00
Ivailo Monev
ac3921d0c8 kioslave: implement mkdir and del for curl slave
tested on my own server and works for files and directories, on the TODO is
to de-duplicate the code because it is pretty much the same with minor
functional differences

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-18 06:13:28 +02:00