Commit graph

231 commits

Author SHA1 Message Date
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
Ivailo Monev
9c4bc997c4 kioslave: replace FileProtocol::isExtendedACL() method with its body
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-21 20:27:19 +03:00
Ivailo Monev
c2ba59db1e kioslave: remove unused QProcess header inclusion
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-21 20:06:31 +03:00
Ivailo Monev
bb8ac83d00 kioslave: mark FileProtocol reimplementations as final
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-21 20:05:23 +03:00
Ivailo Monev
5613e5483c generic: remove redundant build varibles
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-17 20:25:52 +03:00
Ivailo Monev
986a303ff6 kio: KAutoMount and KAutoUnmount rewrite to use org.kde.SolidUiServer interface
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-15 22:05:16 +03:00
Ivailo Monev
2249377a9b kioslave: remove "emit" in HttpProtocol::slotProgress()
KIO::SlaveBase::processedSize() and KIO::SlaveBase::totalSize() are not
signals

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-13 02:38:02 +03:00
Ivailo Monev
ef6c4b0c32 kioslave: remove useless DEBUG.howto file
no info on the page

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-08 16:25:02 +03:00
Ivailo Monev
d9eca4f771 kio: remove unused KIO::FileJob class and random access I/O API
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-05 23:06:32 +03:00
Ivailo Monev
1fb4ffa5a8 kioslave: deprecation warning fix
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-01-01 04:57:40 +02:00
Ivailo Monev
4cb8afa14d generic: remove unused KIO protocol input/output information
KIO slaves are either helper (e.g. vnc/rdp), not source (e.g. thumbnail
which is also helper in a way) or have listing capability (e.g. file
which is filesystem type)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-01-01 02:46:51 +02:00
Ivailo Monev
5e7a19f6f7 generic: store KIO slaves listing capability as boolean
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-01-01 00:57:27 +02:00
Ivailo Monev
8c5d11fc77 kioslave: map CURLE_REMOTE_FILE_EXISTS and CURLE_COULDNT_RESOLVE_HOST to KIO errors
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 19:58:56 +02:00
Ivailo Monev
b2d0b1a955 kio: remove unused CMD_SLAVE_STATUS command
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-22 23:08:32 +02:00
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