diff options
-rw-r--r-- | include/libssh/sftp.h | 8 | ||||
-rw-r--r-- | libssh/sftp.c | 20 |
2 files changed, 22 insertions, 6 deletions
diff --git a/include/libssh/sftp.h b/include/libssh/sftp.h index 37b45a9..c7e6a7c 100644 --- a/include/libssh/sftp.h +++ b/include/libssh/sftp.h @@ -443,8 +443,10 @@ ssize_t sftp_write(SFTP_FILE *file, const void *buf, size_t count); * @param file Open sftp file handle to seek in. * * @param new_offset Offset in bytes to seek. + * + * @return 0 on success, < 0 on error. */ -void sftp_seek(SFTP_FILE *file, int new_offset); +int sftp_seek(SFTP_FILE *file, u32 new_offset); /** * @brief Seek to a specific location in a file. This is the @@ -453,8 +455,10 @@ void sftp_seek(SFTP_FILE *file, int new_offset); * @param file Open sftp file handle to seek in. * * @param new_offset Offset in bytes to seek. + * + * @return 0 on success, < 0 on error. */ -void sftp_seek64(SFTP_FILE *file, u64 new_offset); +int sftp_seek64(SFTP_FILE *file, u64 new_offset); /** * @brief Report current byte position in file. diff --git a/libssh/sftp.c b/libssh/sftp.c index 376520c..26e1b1f 100644 --- a/libssh/sftp.c +++ b/libssh/sftp.c @@ -1744,12 +1744,24 @@ ssize_t sftp_write(SFTP_FILE *file, const void *buf, size_t count) { } /* Seek to a specific location in a file. */ -void sftp_seek(SFTP_FILE *file, int new_offset){ - file->offset=new_offset; +int sftp_seek(SFTP_FILE *file, u32 new_offset) { + if (file == NULL) { + return -1; + } + + file->offset = new_offset; + + return 0; } -void sftp_seek64(SFTP_FILE *file, u64 new_offset){ - file->offset=new_offset; +int sftp_seek64(SFTP_FILE *file, u64 new_offset) { + if (file == NULL) { + return -1; + } + + file->offset = new_offset; + + return 0; } /* Report current byte position in file. */ |