diff options
author | Andreas Schneider <mail@cynapses.org> | 2009-04-24 10:16:16 +0000 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2009-04-24 10:16:16 +0000 |
commit | cefe2399587e7d7656188a570546ee848ee1fcfc (patch) | |
tree | cb4bf083367def821685b3dbf320ec5974c76c3e | |
parent | 29e6f140fa094e15c001d4b58c8aa2c5877fbeb1 (diff) | |
download | libssh-cefe2399587e7d7656188a570546ee848ee1fcfc.tar.gz libssh-cefe2399587e7d7656188a570546ee848ee1fcfc.tar.xz libssh-cefe2399587e7d7656188a570546ee848ee1fcfc.zip |
Improve the sftp seek functions.
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@605 7dcaeef0-15fb-0310-b436-a5af3365683c
-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. */ |