libssh  0.5.4
Functions
sftp.h File Reference

SFTP handling functions. More...

#include <sys/types.h>
#include "libssh.h"

Go to the source code of this file.

Macros

Server responses

Responses returned by the sftp server.

#define SSH_FX_OK   0
 No error.
 
#define SSH_FX_EOF   1
 End-of-file encountered.
 
#define SSH_FX_NO_SUCH_FILE   2
 File doesn't exist.
 
#define SSH_FX_PERMISSION_DENIED   3
 Permission denied.
 
#define SSH_FX_FAILURE   4
 Generic failure.
 
#define SSH_FX_BAD_MESSAGE   5
 Garbage received from server.
 
#define SSH_FX_NO_CONNECTION   6
 No connection has been set up.
 
#define SSH_FX_CONNECTION_LOST   7
 There was a connection, but we lost it.
 
#define SSH_FX_OP_UNSUPPORTED   8
 Operation not supported by the server.
 
#define SSH_FX_INVALID_HANDLE   9
 Invalid file handle.
 
#define SSH_FX_NO_SUCH_PATH   10
 No such file or directory path exists.
 
#define SSH_FX_FILE_ALREADY_EXISTS   11
 An attempt to create an already existing file or directory has been made.
 
#define SSH_FX_WRITE_PROTECT   12
 We are trying to write on a write-protected filesystem.
 
#define SSH_FX_NO_MEDIA   13
 No media in remote drive.
 

Functions

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...
 
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...
 
void sftp_attributes_free (sftp_attributes file)
 Free a sftp attribute structure. More...
 
char * sftp_canonicalize_path (sftp_session sftp, const char *path)
 Canonicalize a sftp path. More...
 
int sftp_chmod (sftp_session sftp, const char *file, mode_t mode)
 Change permissions of a file. More...
 
int sftp_chown (sftp_session sftp, const char *file, uid_t owner, gid_t group)
 Change the file owner and group. More...
 
int sftp_close (sftp_file file)
 Close an open file handle. More...
 
int sftp_closedir (sftp_dir dir)
 Close a directory handle opened by sftp_opendir(). More...
 
int sftp_dir_eof (sftp_dir dir)
 Tell if the directory has reached EOF (End Of File). More...
 
int sftp_extension_supported (sftp_session sftp, const char *name, const char *data)
 Check if the given extension is supported. More...
 
unsigned int sftp_extensions_get_count (sftp_session sftp)
 Get the count of extensions provided by the server. More...
 
const char * sftp_extensions_get_data (sftp_session sftp, unsigned int indexn)
 Get the data of the extension provided by the server. More...
 
const char * sftp_extensions_get_name (sftp_session sftp, unsigned int indexn)
 Get the name of the extension provided by the server. More...
 
void sftp_free (sftp_session sftp)
 Close and deallocate a sftp session. More...
 
sftp_attributes sftp_fstat (sftp_file file)
 Get information about a file or directory from a file handle. More...
 
sftp_statvfs_t sftp_fstatvfs (sftp_file file)
 Get information about a mounted file system. More...
 
int sftp_get_error (sftp_session sftp)
 Get the last sftp error. More...
 
int sftp_init (sftp_session sftp)
 Initialize the sftp session with the server. More...
 
sftp_attributes sftp_lstat (sftp_session session, const char *path)
 Get information about a file or directory. More...
 
int sftp_mkdir (sftp_session sftp, const char *directory, mode_t mode)
 Create a directory. More...
 
sftp_session sftp_new (ssh_session session)
 Start a new sftp session. More...
 
sftp_file sftp_open (sftp_session session, const char *file, int accesstype, mode_t mode)
 Open a file on the server. More...
 
sftp_dir sftp_opendir (sftp_session session, const char *path)
 Open a directory used to obtain directory entries. More...
 
ssize_t sftp_read (sftp_file file, void *buf, size_t count)
 Read from a file using an opened sftp file handle. More...
 
sftp_attributes sftp_readdir (sftp_session session, sftp_dir dir)
 Get a single file attributes structure of a directory. More...
 
char * sftp_readlink (sftp_session sftp, const char *path)
 Read the value of a symbolic link. More...
 
int sftp_rename (sftp_session sftp, const char *original, const char *newname)
 Rename or move a file or directory. More...
 
void sftp_rewind (sftp_file file)
 Rewinds the position of the file pointer to the beginning of the file. More...
 
int sftp_rmdir (sftp_session sftp, const char *directory)
 Remove a directoy. More...
 
int sftp_seek (sftp_file file, uint32_t new_offset)
 Seek to a specific location in a file. More...
 
int sftp_seek64 (sftp_file file, uint64_t new_offset)
 Seek to a specific location in a file. More...
 
int sftp_server_version (sftp_session sftp)
 Get the version of the SFTP protocol supported by the server. More...
 
int sftp_setstat (sftp_session sftp, const char *file, sftp_attributes attr)
 Set file attributes on a file, directory or symbolic link. More...
 
sftp_attributes sftp_stat (sftp_session session, const char *path)
 Get information about a file or directory. More...
 
sftp_statvfs_t sftp_statvfs (sftp_session sftp, const char *path)
 Get information about a mounted file system. More...
 
void sftp_statvfs_free (sftp_statvfs_t statvfs_o)
 Free the memory of an allocated statvfs. More...
 
int sftp_symlink (sftp_session sftp, const char *target, const char *dest)
 Create a symbolic link. More...
 
unsigned long sftp_tell (sftp_file file)
 Report current byte position in file. More...
 
uint64_t sftp_tell64 (sftp_file file)
 Report current byte position in file. More...
 
int sftp_unlink (sftp_session sftp, const char *file)
 Unlink (delete) a file. More...
 
int sftp_utimes (sftp_session sftp, const char *file, const struct timeval *times)
 Change the last modification and access time of a file. More...
 
ssize_t sftp_write (sftp_file file, const void *buf, size_t count)
 Write to a file using an opened sftp file handle. More...
 

Detailed Description

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