Commit graph

30 commits

Author SHA1 Message Date
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
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
Renamed from kioslave/http/http.cpp (Browse further)