aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libssh/sftp.h11
-rw-r--r--libssh/libssh.map1
-rw-r--r--libssh/sftp.c6
3 files changed, 17 insertions, 1 deletions
diff --git a/include/libssh/sftp.h b/include/libssh/sftp.h
index de6e5675..8b283185 100644
--- a/include/libssh/sftp.h
+++ b/include/libssh/sftp.h
@@ -470,6 +470,17 @@ int sftp_seek64(SFTP_FILE *file, uint64_t new_offset);
unsigned long sftp_tell(SFTP_FILE *file);
/**
+ * @brief Report current byte position in file.
+ *
+ * @param file Open sftp file handle.
+ *
+ * @return The offset of the current byte relative to the beginning
+ * of the file associated with the file descriptor. < 0 on
+ * error.
+ */
+u64 sftp_tell64(SFTP_FILE *file);
+
+/**
* @brief Rewinds the position of the file pointer to the beginning of the
* file.
*
diff --git a/libssh/libssh.map b/libssh/libssh.map
index 84a9b03e..f67353f3 100644
--- a/libssh/libssh.map
+++ b/libssh/libssh.map
@@ -38,6 +38,7 @@ SSH_0.3 {
sftp_new; sftp_free; sftp_init; sftp_opendir; sftp_readdir; sftp_dir_eof;
sftp_stat; sftp_lstat; sftp_fstat; sftp_attributes_free; sftp_dir_close;
sftp_file_close; sftp_open; sftp_read; sftp_write; sftp_seek; sftp_tell;
+ sftp_tell64;
sftp_rewind; sftp_rm; sftp_rmdir; sftp_mkdir; sftp_rename; sftp_setstat;
sftp_symlink; sftp_readlink;
sftp_canonicalize_path; sftp_server_new; sftp_server_init;
diff --git a/libssh/sftp.c b/libssh/sftp.c
index c9653baf..e888dc21 100644
--- a/libssh/sftp.c
+++ b/libssh/sftp.c
@@ -1777,7 +1777,11 @@ int sftp_seek64(SFTP_FILE *file, u64 new_offset) {
/* Report current byte position in file. */
unsigned long sftp_tell(SFTP_FILE *file) {
- return file->offset;
+ return (unsigned long)file->offset;
+}
+/* Report current byte position in file. */
+u64 sftp_tell64(SFTP_FILE *file) {
+ return (u64)file->offset;
}
/* Rewinds the position of the file pointer to the beginning of the file.*/