diff options
-rw-r--r-- | include/libssh/libssh.h | 3 | ||||
-rw-r--r-- | libssh/scp.c | 24 |
2 files changed, 27 insertions, 0 deletions
diff --git a/include/libssh/libssh.h b/include/libssh/libssh.h index f7896fb2..c36b7fc6 100644 --- a/include/libssh/libssh.h +++ b/include/libssh/libssh.h @@ -487,6 +487,9 @@ LIBSSH_API int ssh_scp_pull_request(ssh_scp scp); LIBSSH_API int ssh_scp_deny_request(ssh_scp scp, const char *reason); LIBSSH_API int ssh_scp_accept_request(ssh_scp scp); 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 const char *ssh_scp_request_get_permissions(ssh_scp scp); +LIBSSH_API size_t ssh_scp_request_get_size(ssh_scp scp); #ifdef __cplusplus diff --git a/libssh/scp.c b/libssh/scp.c index 2c891472..5bcfdd98 100644 --- a/libssh/scp.c +++ b/libssh/scp.c @@ -459,3 +459,27 @@ int ssh_scp_read(ssh_scp scp, void *buffer, size_t size){ } return r; } + +/** Gets the name of the directory or file being + * pushed from the other party + * @returns file name. Should not be freed. + */ +const char *ssh_scp_request_get_filename(ssh_scp scp){ + return scp->request_name; +} + +/** Gets the permissions of the directory or file being + * pushed from the other party + * @returns Unix permission string, e.g "0644". Should not be freed. + */ +const char *ssh_scp_request_get_permissions(ssh_scp scp){ + return scp->request_mode; +} + +/** Gets the size of the file being pushed + * from the other party + * @returns Numeric size of the file being read. + */ +size_t ssh_scp_request_get_size(ssh_scp scp){ + return scp->filelen; +} |