Commit graph

202 commits

Author SHA1 Message Date
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
Ivailo Monev
9c369cbad3 kioslave: implement chmod and experimental chown for curl slave
NOTE: chmod works for directories only if the directory URL ends with slash
much like anything on UNIX going over wire (unless the servers implementing
the protocol do something like what I did for KUrl::upUrl())

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-18 05:22:36 +02:00
Ivailo Monev
517c29d120 kioslave: curl slave review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-18 03:38:19 +02:00
Ivailo Monev
d03279a48f kioslave: add reference to CURLOPT_QUOTE man page
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-18 00:31:30 +02:00
Ivailo Monev
cfb5c488d4 kioslave: implement stat() for curl slave in ftp/sftp mode
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-18 00:26:05 +02:00
Ivailo Monev
0c10290cf2 kioslave: disable PASV based on value from kio_ftprc in curl slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-17 22:06:04 +02:00
Ivailo Monev
d80be928b3 kio: magic bits to fill user and password when required but not specified
at the cost of more round-trips to store and (possibly) retrive such, very
convenient tho

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-17 21:39:58 +02:00
Ivailo Monev
44b4a7ace6 kioslave: different take on authorization in curl slave
unfortunately redirection has to be done just for the sake of visual
pleasantry (so that the URL in the navigation bar matches the actual
address), if it was not for that then the whole redirect thing can be
avoided

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-17 20:59:51 +02:00
Ivailo Monev
0269b70b0a kioslave: send KIO error codes from curl slave where possible
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-17 19:23:40 +02:00
Ivailo Monev
c8769ed4f3 kioslave: different take on authorization in curl slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-17 08:48:30 +02:00
Ivailo Monev
7a4ebe677f kioslave: secure string scanning in curl slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-17 03:23:24 +02:00
Ivailo Monev
f7d3fca5ed kioslave: decode filepaths via KRemoteEncoding from curl slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-17 03:02:42 +02:00
Ivailo Monev
58f43fbe7d kioslave: implement authorization info caching for curl slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-17 02:21:27 +02:00
Ivailo Monev
a5132853b0 kioslave: reimplement ftp and sftp slaves via curl
the sftp KIO slave is in the kde-workspace repo and the module for
finding libssh was for it. tested ftp and sftp - both work with user and
password authentication as intended (in read-only mode, put() not
implemented)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-03-17 00:48:01 +02:00
Ivailo Monev
7139774873 kioslave: fix file slave runtime warning
prior to cf6ac06d91 the slave was simply
exiting but that is no longer the case

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-19 20:20:15 +03:00
Ivailo Monev
00400ef6de kioslave: correct close() result check in FileProtocol::put()
close() is not documented to return positive integer, it returns either
zero or -1

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-19 19:35:42 +03:00
Ivailo Monev
552d89425b kioslave: implement Authorization metadata for http slave
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-16 13:46:36 +03:00
Ivailo Monev
0f0dcc7b33 kio: drop redundant and disabled by default kionetrc/.netrc support
no interface to enable it and with KPasswdStore in place it is simply
redundant (other than the auto-login macros maybe)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-09 15:46:45 +03:00
Ivailo Monev
5545cb7e2f kio: remove unused KProtocolManager::supportsOpening() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-07-31 20:35:46 +00:00
Ivailo Monev
938ac263ab kioslave: remove unused QVarLengthArray header inclusion
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-07-30 18:20:53 +00:00
Ivailo Monev
c882cf5442 kioslave: map 504 HTTP(S) status to KIO::ERR_SERVER_TIMEOUT
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-29 06:10:52 +03:00
Ivailo Monev
727a889883 kioslave: mark permissions and flags arguments of HttpProtocol::put() as unused
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-27 04:04:18 +03:00
Ivailo Monev
eac8fd79cc kdecore: re-use KUrl::AdjustPathOption for KUrl::fileName() and KUrl::directory()
so that it is clear that the options shall affect only the result, also for
local files the correct thing can be done regardless of the trailing slash
as is done in KUrl::upUrl()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-26 20:47:38 +03:00
Ivailo Monev
9f05a33ee6 generic: build fix
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-23 14:08:10 +03:00
Ivailo Monev
cf6ac06d91 kioslave: return on put() error instead of exiting the slave
if the slave is not a forked process that would exit the program executing
the put job

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-21 21:54:38 +03:00
Ivailo Monev
aee73d3abb kioslave: fix removal of .part files on file put
_dest is never set to something

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-21 21:46:20 +03:00
Ivailo Monev
ba1d5268ee kioslave: format and indent
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-21 21:24:38 +03:00
Ivailo Monev
387022831a kioslave: remove redundant FileProtocol::createUDSEntry() argument
true is always passed

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-21 21:12:55 +03:00
Ivailo Monev
9fe6a221cc kio: include config-acl header in file_unix source file
for the HAVE_POSIX_ACL definition

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-21 20:50:59 +03:00