diff options
author | Andreas Schneider <mail@cynapses.org> | 2008-12-22 09:50:40 +0000 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2008-12-22 09:50:40 +0000 |
commit | c3e026c3034d5d51f011a75b191f46c3891069cf (patch) | |
tree | e8a5e16a5443bfa2fb0de3d682934b82cd164782 /include/libssh/sftp.h | |
parent | a104c2eda38d2fbf81285e0223ed755783792169 (diff) | |
download | libssh-c3e026c3034d5d51f011a75b191f46c3891069cf.tar.gz libssh-c3e026c3034d5d51f011a75b191f46c3891069cf.tar.xz libssh-c3e026c3034d5d51f011a75b191f46c3891069cf.zip |
Create POSIX like sftp functions.
This breaks the API and will be libssh 0.3.
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@195 7dcaeef0-15fb-0310-b436-a5af3365683c
Diffstat (limited to 'include/libssh/sftp.h')
-rw-r--r-- | include/libssh/sftp.h | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/include/libssh/sftp.h b/include/libssh/sftp.h index a697baa..db3e9dd 100644 --- a/include/libssh/sftp.h +++ b/include/libssh/sftp.h @@ -26,6 +26,12 @@ MA 02111-1307, USA. */ extern "C" { #endif +#ifdef __GNUC__ +#define SFTP_DEPRECATED __attribute__ ((deprecated)) +#else +#define SFTP_DEPRECATED +#endif + typedef struct sftp_session_struct { SSH_SESSION *session; CHANNEL *channel; @@ -143,23 +149,27 @@ SFTP_ATTRIBUTES *sftp_lstat(SFTP_SESSION *session, const char *path); /* sftp_lstat stats a file but doesn't follow symlinks */ SFTP_ATTRIBUTES *sftp_fstat(SFTP_FILE *file); void sftp_attributes_free(SFTP_ATTRIBUTES *file); -int sftp_dir_close(SFTP_DIR *dir); -int sftp_file_close(SFTP_FILE *file); +int sftp_closedir(SFTP_DIR *dir); +int sftp_close(SFTP_FILE *file); /* access are the sames than the ones from ansi fopen() */ -SFTP_FILE *sftp_open(SFTP_SESSION *session, const char *file, int access, SFTP_ATTRIBUTES *attr); -int sftp_read(SFTP_FILE *file, void *dest, int len); +SFTP_FILE *sftp_open(SFTP_SESSION *session, const char *file, int access, mode_t mode); +ssize_t sftp_read(SFTP_FILE *file, void *buf, size_t count); u32 sftp_async_read_begin(SFTP_FILE *file, int len); int sftp_async_read(SFTP_FILE *file, void *data, int len, u32 id); -int sftp_write(SFTP_FILE *file, const void *source, int len); +ssize_t sftp_write(SFTP_FILE *file, const void *buf, size_t count); void sftp_seek(SFTP_FILE *file, int new_offset); void sftp_seek64(SFTP_FILE *file, u64 new_offset); unsigned long sftp_tell(SFTP_FILE *file); void sftp_rewind(SFTP_FILE *file); -int sftp_rm(SFTP_SESSION *sftp, char *file); +int sftp_rm(SFTP_SESSION *sftp, const char *file) SFTP_DEPRECATED; +int sftp_unlink(SFTP_SESSION *sftp, const char *file); int sftp_rmdir(SFTP_SESSION *sftp, const char *directory); -int sftp_mkdir(SFTP_SESSION *sftp, const char *directory, SFTP_ATTRIBUTES *attr); +int sftp_mkdir(SFTP_SESSION *sftp, const char *directory, mode_t mode); int sftp_rename(SFTP_SESSION *sftp, const char *original, const char *newname); int sftp_setstat(SFTP_SESSION *sftp, const char *file, SFTP_ATTRIBUTES *attr); +int sftp_chown(SFTP_SESSION *sftp, const char *file, uid_t owner, gid_t group); +int sftp_chmod(SFTP_SESSION *sftp, const char *file, mode_t mode); +int sftp_utimes(SFTP_SESSION *sftp, const char *file, const struct timeval *times); char *sftp_canonicalize_path(SFTP_SESSION *sftp, const char *path); #ifndef NO_SERVER @@ -270,6 +280,11 @@ void sftp_handle_remove(SFTP_SESSION *sftp, void *handle); #define SSH_FXF_EXCL 0x20 #define SSH_FXF_TEXT 0x40 +/* rename flags */ +#define SSH_FXF_RENAME_OVERWRITE 0x00000001 +#define SSH_FXF_RENAME_ATOMIC 0x00000002 +#define SSH_FXF_RENAME_NATIVE 0x00000004 + #define SFTP_OPEN SSH_FXP_OPEN #define SFTP_CLOSE SSH_FXP_CLOSE #define SFTP_READ SSH_FXP_READ @@ -290,6 +305,7 @@ void sftp_handle_remove(SFTP_SESSION *sftp, void *handle); #define SFTP_SYMLINK SSH_FXP_SYMLINK + #ifdef __cplusplus } ; #endif |