|
#define | LIBSFTP_VERSION 3 |
|
#define | SFTP_HANDLES 256 |
|
#define | SSH_FXP_INIT 1 |
|
#define | SSH_FXP_VERSION 2 |
|
#define | SSH_FXP_OPEN 3 |
|
#define | SSH_FXP_CLOSE 4 |
|
#define | SSH_FXP_READ 5 |
|
#define | SSH_FXP_WRITE 6 |
|
#define | SSH_FXP_LSTAT 7 |
|
#define | SSH_FXP_FSTAT 8 |
|
#define | SSH_FXP_SETSTAT 9 |
|
#define | SSH_FXP_FSETSTAT 10 |
|
#define | SSH_FXP_OPENDIR 11 |
|
#define | SSH_FXP_READDIR 12 |
|
#define | SSH_FXP_REMOVE 13 |
|
#define | SSH_FXP_MKDIR 14 |
|
#define | SSH_FXP_RMDIR 15 |
|
#define | SSH_FXP_REALPATH 16 |
|
#define | SSH_FXP_STAT 17 |
|
#define | SSH_FXP_RENAME 18 |
|
#define | SSH_FXP_READLINK 19 |
|
#define | SSH_FXP_SYMLINK 20 |
|
#define | SSH_FXP_STATUS 101 |
|
#define | SSH_FXP_HANDLE 102 |
|
#define | SSH_FXP_DATA 103 |
|
#define | SSH_FXP_NAME 104 |
|
#define | SSH_FXP_ATTRS 105 |
|
#define | SSH_FXP_EXTENDED 200 |
|
#define | SSH_FXP_EXTENDED_REPLY 201 |
|
#define | SSH_FILEXFER_ATTR_SIZE 0x00000001 |
|
#define | SSH_FILEXFER_ATTR_PERMISSIONS 0x00000004 |
|
#define | SSH_FILEXFER_ATTR_ACCESSTIME 0x00000008 |
|
#define | SSH_FILEXFER_ATTR_ACMODTIME 0x00000008 |
|
#define | SSH_FILEXFER_ATTR_CREATETIME 0x00000010 |
|
#define | SSH_FILEXFER_ATTR_MODIFYTIME 0x00000020 |
|
#define | SSH_FILEXFER_ATTR_ACL 0x00000040 |
|
#define | SSH_FILEXFER_ATTR_OWNERGROUP 0x00000080 |
|
#define | SSH_FILEXFER_ATTR_SUBSECOND_TIMES 0x00000100 |
|
#define | SSH_FILEXFER_ATTR_EXTENDED 0x80000000 |
|
#define | SSH_FILEXFER_ATTR_UIDGID 0x00000002 |
|
#define | SSH_FILEXFER_TYPE_REGULAR 1 |
|
#define | SSH_FILEXFER_TYPE_DIRECTORY 2 |
|
#define | SSH_FILEXFER_TYPE_SYMLINK 3 |
|
#define | SSH_FILEXFER_TYPE_SPECIAL 4 |
|
#define | SSH_FILEXFER_TYPE_UNKNOWN 5 |
|
#define | SSH_FXF_READ 0x01 |
|
#define | SSH_FXF_WRITE 0x02 |
|
#define | SSH_FXF_APPEND 0x04 |
|
#define | SSH_FXF_CREAT 0x08 |
|
#define | SSH_FXF_TRUNC 0x10 |
|
#define | SSH_FXF_EXCL 0x20 |
|
#define | SSH_FXF_TEXT 0x40 |
|
#define | SSH_S_IFMT 00170000 |
|
#define | SSH_S_IFSOCK 0140000 |
|
#define | SSH_S_IFLNK 0120000 |
|
#define | SSH_S_IFREG 0100000 |
|
#define | SSH_S_IFBLK 0060000 |
|
#define | SSH_S_IFDIR 0040000 |
|
#define | SSH_S_IFCHR 0020000 |
|
#define | SSH_S_IFIFO 0010000 |
|
#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 |
|
#define | SFTP_WRITE SSH_FXP_WRITE |
|
#define | SFTP_LSTAT SSH_FXP_LSTAT |
|
#define | SFTP_FSTAT SSH_FXP_FSTAT |
|
#define | SFTP_SETSTAT SSH_FXP_SETSTAT |
|
#define | SFTP_FSETSTAT SSH_FXP_FSETSTAT |
|
#define | SFTP_OPENDIR SSH_FXP_OPENDIR |
|
#define | SFTP_READDIR SSH_FXP_READDIR |
|
#define | SFTP_REMOVE SSH_FXP_REMOVE |
|
#define | SFTP_MKDIR SSH_FXP_MKDIR |
|
#define | SFTP_RMDIR SSH_FXP_RMDIR |
|
#define | SFTP_REALPATH SSH_FXP_REALPATH |
|
#define | SFTP_STAT SSH_FXP_STAT |
|
#define | SFTP_RENAME SSH_FXP_RENAME |
|
#define | SFTP_READLINK SSH_FXP_READLINK |
|
#define | SFTP_SYMLINK SSH_FXP_SYMLINK |
|
#define | SFTP_EXTENDED SSH_FXP_EXTENDED |
|
#define | SSH_FXE_STATVFS_ST_RDONLY 0x1 /* read-only */ |
|
#define | SSH_FXE_STATVFS_ST_NOSUID 0x2 /* no setuid */ |
|
|
LIBSSH_API sftp_session | sftp_new (ssh_session session) |
| Start a new sftp session. More...
|
|
LIBSSH_API sftp_session | sftp_new_channel (ssh_session session, ssh_channel channel) |
| Start a new sftp session with an existing channel. More...
|
|
LIBSSH_API void | sftp_free (sftp_session sftp) |
| Close and deallocate a sftp session. More...
|
|
LIBSSH_API int | sftp_init (sftp_session sftp) |
| Initialize the sftp session with the server. More...
|
|
LIBSSH_API int | sftp_get_error (sftp_session sftp) |
| Get the last sftp error. More...
|
|
LIBSSH_API unsigned int | sftp_extensions_get_count (sftp_session sftp) |
| Get the count of extensions provided by the server. More...
|
|
LIBSSH_API const char * | sftp_extensions_get_name (sftp_session sftp, unsigned int indexn) |
| Get the name of the extension provided by the server. More...
|
|
LIBSSH_API const char * | sftp_extensions_get_data (sftp_session sftp, unsigned int indexn) |
| Get the data of the extension provided by the server. More...
|
|
LIBSSH_API int | sftp_extension_supported (sftp_session sftp, const char *name, const char *data) |
| Check if the given extension is supported. More...
|
|
LIBSSH_API sftp_dir | sftp_opendir (sftp_session session, const char *path) |
| Open a directory used to obtain directory entries. More...
|
|
LIBSSH_API sftp_attributes | sftp_readdir (sftp_session session, sftp_dir dir) |
| Get a single file attributes structure of a directory. More...
|
|
LIBSSH_API int | sftp_dir_eof (sftp_dir dir) |
| Tell if the directory has reached EOF (End Of File). More...
|
|
LIBSSH_API sftp_attributes | sftp_stat (sftp_session session, const char *path) |
| Get information about a file or directory. More...
|
|
LIBSSH_API sftp_attributes | sftp_lstat (sftp_session session, const char *path) |
| Get information about a file or directory. More...
|
|
LIBSSH_API sftp_attributes | sftp_fstat (sftp_file file) |
| Get information about a file or directory from a file handle. More...
|
|
LIBSSH_API void | sftp_attributes_free (sftp_attributes file) |
| Free a sftp attribute structure. More...
|
|
LIBSSH_API int | sftp_closedir (sftp_dir dir) |
| Close a directory handle opened by sftp_opendir(). More...
|
|
LIBSSH_API int | sftp_close (sftp_file file) |
| Close an open file handle. More...
|
|
LIBSSH_API sftp_file | sftp_open (sftp_session session, const char *file, int accesstype, mode_t mode) |
| Open a file on the server. More...
|
|
LIBSSH_API void | sftp_file_set_nonblocking (sftp_file handle) |
| Make the sftp communication for this file handle non blocking. More...
|
|
LIBSSH_API void | sftp_file_set_blocking (sftp_file handle) |
| Make the sftp communication for this file handle blocking. More...
|
|
LIBSSH_API ssize_t | sftp_read (sftp_file file, void *buf, size_t count) |
| Read from a file using an opened sftp file handle. More...
|
|
LIBSSH_API int | sftp_async_read_begin (sftp_file file, uint32_t len) |
| Start an asynchronous read from a file using an opened sftp file handle. More...
|
|
LIBSSH_API int | sftp_async_read (sftp_file file, void *data, uint32_t len, uint32_t id) |
| Wait for an asynchronous read to complete and save the data. More...
|
|
LIBSSH_API ssize_t | sftp_write (sftp_file file, const void *buf, size_t count) |
| Write to a file using an opened sftp file handle. More...
|
|
LIBSSH_API int | sftp_seek (sftp_file file, uint32_t new_offset) |
| Seek to a specific location in a file. More...
|
|
LIBSSH_API int | sftp_seek64 (sftp_file file, uint64_t new_offset) |
| Seek to a specific location in a file. This is the 64bit version. More...
|
|
LIBSSH_API unsigned long | sftp_tell (sftp_file file) |
| Report current byte position in file. More...
|
|
LIBSSH_API uint64_t | sftp_tell64 (sftp_file file) |
| Report current byte position in file. More...
|
|
LIBSSH_API void | sftp_rewind (sftp_file file) |
| Rewinds the position of the file pointer to the beginning of the file. More...
|
|
LIBSSH_API int | sftp_unlink (sftp_session sftp, const char *file) |
| Unlink (delete) a file. More...
|
|
LIBSSH_API int | sftp_rmdir (sftp_session sftp, const char *directory) |
| Remove a directoy. More...
|
|
LIBSSH_API int | sftp_mkdir (sftp_session sftp, const char *directory, mode_t mode) |
| Create a directory. More...
|
|
LIBSSH_API int | sftp_rename (sftp_session sftp, const char *original, const char *newname) |
| Rename or move a file or directory. More...
|
|
LIBSSH_API int | sftp_setstat (sftp_session sftp, const char *file, sftp_attributes attr) |
| Set file attributes on a file, directory or symbolic link. More...
|
|
LIBSSH_API int | sftp_chown (sftp_session sftp, const char *file, uid_t owner, gid_t group) |
| Change the file owner and group. More...
|
|
LIBSSH_API int | sftp_chmod (sftp_session sftp, const char *file, mode_t mode) |
| Change permissions of a file. More...
|
|
LIBSSH_API int | sftp_utimes (sftp_session sftp, const char *file, const struct timeval *times) |
| Change the last modification and access time of a file. More...
|
|
LIBSSH_API int | sftp_symlink (sftp_session sftp, const char *target, const char *dest) |
| Create a symbolic link. More...
|
|
LIBSSH_API char * | sftp_readlink (sftp_session sftp, const char *path) |
| Read the value of a symbolic link. More...
|
|
LIBSSH_API sftp_statvfs_t | sftp_statvfs (sftp_session sftp, const char *path) |
| Get information about a mounted file system. More...
|
|
LIBSSH_API sftp_statvfs_t | sftp_fstatvfs (sftp_file file) |
| Get information about a mounted file system. More...
|
|
LIBSSH_API void | sftp_statvfs_free (sftp_statvfs_t statvfs_o) |
| Free the memory of an allocated statvfs. More...
|
|
LIBSSH_API int | sftp_fsync (sftp_file file) |
| Synchronize a file's in-core state with storage device. More...
|
|
LIBSSH_API char * | sftp_canonicalize_path (sftp_session sftp, const char *path) |
| Canonicalize a sftp path. More...
|
|
LIBSSH_API int | sftp_server_version (sftp_session sftp) |
| Get the version of the SFTP protocol supported by the server. More...
|
|
sftp_packet | sftp_packet_read (sftp_session sftp) |
|
int | sftp_packet_write (sftp_session sftp, uint8_t type, ssh_buffer payload) |
|
void | sftp_packet_free (sftp_packet packet) |
|
int | buffer_add_attributes (ssh_buffer buffer, sftp_attributes attr) |
|
sftp_attributes | sftp_parse_attr (sftp_session session, ssh_buffer buf, int expectname) |
|
LIBSSH_API sftp_client_message | sftp_get_client_message (sftp_session sftp) |
|
LIBSSH_API void | sftp_client_message_free (sftp_client_message msg) |
|
LIBSSH_API uint8_t | sftp_client_message_get_type (sftp_client_message msg) |
|
LIBSSH_API const char * | sftp_client_message_get_filename (sftp_client_message msg) |
|
LIBSSH_API void | sftp_client_message_set_filename (sftp_client_message msg, const char *newname) |
|
LIBSSH_API const char * | sftp_client_message_get_data (sftp_client_message msg) |
|
LIBSSH_API uint32_t | sftp_client_message_get_flags (sftp_client_message msg) |
|
LIBSSH_API const char * | sftp_client_message_get_submessage (sftp_client_message msg) |
|
LIBSSH_API int | sftp_send_client_message (sftp_session sftp, sftp_client_message msg) |
|
LIBSSH_API int | sftp_reply_name (sftp_client_message msg, const char *name, sftp_attributes attr) |
|
LIBSSH_API int | sftp_reply_handle (sftp_client_message msg, ssh_string handle) |
|
LIBSSH_API ssh_string | sftp_handle_alloc (sftp_session sftp, void *info) |
|
LIBSSH_API int | sftp_reply_attr (sftp_client_message msg, sftp_attributes attr) |
|
LIBSSH_API void * | sftp_handle (sftp_session sftp, ssh_string handle) |
|
LIBSSH_API int | sftp_reply_status (sftp_client_message msg, uint32_t status, const char *message) |
|
LIBSSH_API int | sftp_reply_names_add (sftp_client_message msg, const char *file, const char *longname, sftp_attributes attr) |
|
LIBSSH_API int | sftp_reply_names (sftp_client_message msg) |
|
LIBSSH_API int | sftp_reply_data (sftp_client_message msg, const void *data, int len) |
|
LIBSSH_API void | sftp_handle_remove (sftp_session sftp, void *handle) |
|
SFTP handling functions.
SFTP commands are channeled by the ssh sftp subsystem. Every packet is sent/read using a sftp_packet type structure. Related to these packets, most of the server answers are messages having an ID and a message specific part. It is described by sftp_message when reading a message, the sftp system puts it into the queue, so the process having asked for it can fetch it, while continuing to read for other messages (it is unspecified in which order messages may be sent back to the client