diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2011-09-15 14:22:32 +0300 |
---|---|---|
committer | Aris Adamantiadis <aris@0xbadc0de.be> | 2011-09-18 20:34:15 +0200 |
commit | 8f1161f64968b6df250e0b3f3b0f952ccdcf85ad (patch) | |
tree | 9529187dba61939dbdef1db73df19842027b5133 | |
parent | 2cc95e1e088553a94b0a8e07c458b1bc0a60d9b1 (diff) | |
download | libssh-8f1161f64968b6df250e0b3f3b0f952ccdcf85ad.tar.gz libssh-8f1161f64968b6df250e0b3f3b0f952ccdcf85ad.tar.xz libssh-8f1161f64968b6df250e0b3f3b0f952ccdcf85ad.zip |
scp: introduce a 64bits getter to respect ABI
-rw-r--r-- | include/libssh/libssh.h | 3 | ||||
-rw-r--r-- | src/scp.c | 15 |
2 files changed, 16 insertions, 2 deletions
diff --git a/include/libssh/libssh.h b/include/libssh/libssh.h index 2a8c70f7..2b9aa505 100644 --- a/include/libssh/libssh.h +++ b/include/libssh/libssh.h @@ -495,7 +495,8 @@ LIBSSH_API int ssh_scp_push_file64(ssh_scp scp, const char *filename, uint64_t s LIBSSH_API int ssh_scp_read(ssh_scp scp, void *buffer, size_t size); LIBSSH_API const char *ssh_scp_request_get_filename(ssh_scp scp); LIBSSH_API int ssh_scp_request_get_permissions(ssh_scp scp); -LIBSSH_API uint64_t ssh_scp_request_get_size(ssh_scp scp); +LIBSSH_API size_t ssh_scp_request_get_size(ssh_scp scp); +LIBSSH_API uint64_t ssh_scp_request_get_size64(ssh_scp scp); LIBSSH_API const char *ssh_scp_request_get_warning(ssh_scp scp); LIBSSH_API int ssh_scp_write(ssh_scp scp, const void *buffer, size_t len); LIBSSH_API int ssh_select(ssh_channel *channels, ssh_channel *outchannels, socket_t maxfd, @@ -737,8 +737,21 @@ int ssh_scp_request_get_permissions(ssh_scp scp){ /** @brief Get the size of the file being pushed from the other party. * * @returns The numeric size of the file being read. + * @warning The real size may not fit in a 32 bits field and may + * be truncated. + * @see ssh_scp_request_get_size64() */ -uint64_t ssh_scp_request_get_size(ssh_scp scp){ +size_t ssh_scp_request_get_size(ssh_scp scp){ + if(scp==NULL) + return 0; + return scp->filelen; +} + +/** @brief Get the size of the file being pushed from the other party. + * + * @returns The numeric size of the file being read. + */ +uint64_t ssh_scp_request_get_size64(ssh_scp scp){ if(scp==NULL) return 0; return scp->filelen; |