1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-12-24 19:37:48 +03:00

sftp_aio.c, sftp.h: Add capping to sftp aio write API

Signed-off-by: Eshan Kelkar <eshankelkar@galorithm.com>
Reviewed-by: Jakub Jelen <jjelen@redhat.com>
This commit is contained in:
Eshan Kelkar
2023-12-07 10:44:58 +05:30
committed by Jakub Jelen
parent 91990f9dfa
commit 188a9cf68f
2 changed files with 26 additions and 17 deletions

View File

@@ -738,6 +738,12 @@ LIBSSH_API ssize_t sftp_aio_wait_read(sftp_aio *aio,
* calling sftp_close() or to keep it open and perform some more operations
* on it.
*
* This function caps the length a user is allowed to write to an sftp file,
* the value of len parameter after capping is returned on success.
*
* The value used for the cap is same as the value of the max_write_length
* field of the sftp_limits_t returned by sftp_limits().
*
* @param file The opened sftp file handle to write to.
*
* @param buf Pointer to the buffer containing data to write.
@@ -747,11 +753,14 @@ LIBSSH_API ssize_t sftp_aio_wait_read(sftp_aio *aio,
* @param aio Pointer to a location where the sftp aio handle
* (corresponding to the sent request) should be stored.
*
* @returns SSH_OK on success, SSH_ERROR with sftp and ssh errors
* @returns On success, the number of bytes the server is
* requested to write (value of len parameter after
* capping). On error, SSH_ERROR with sftp and ssh errors
* set.
*
* @warning When calling this function, the internal offset is
* updated corresponding to the len parameter.
* @warning When calling this function, the internal file offset is
* updated corresponding to the number of bytes requested
* to write.
*
* @warning A call to sftp_aio_begin_write() sends a request to
* the server. When the server answers, libssh allocates
@@ -766,10 +775,10 @@ LIBSSH_API ssize_t sftp_aio_wait_read(sftp_aio *aio,
* @see sftp_get_error()
* @see ssh_get_error()
*/
LIBSSH_API int sftp_aio_begin_write(sftp_file file,
const void *buf,
size_t len,
sftp_aio *aio);
LIBSSH_API ssize_t sftp_aio_begin_write(sftp_file file,
const void *buf,
size_t len,
sftp_aio *aio);
/**
* @brief Wait for an asynchronous write to complete.
@@ -784,11 +793,6 @@ LIBSSH_API int sftp_aio_begin_write(sftp_file file,
* been executed yet, this function returns SSH_AGAIN and must be called
* again using the same sftp aio handle.
*
* On success, this function returns the number of bytes written.
* The SFTP protocol doesn't support partial writes to remote files,
* hence on success this returned value will always be equal to the
* len passed in the previous corresponding call to sftp_aio_begin_write().
*
* @param aio Pointer to the sftp aio handle returned by
* sftp_aio_begin_write().
*