version 1.6.2.3, 2002/10/11 14:53:07 |
version 1.7, 2002/02/05 00:00:46 |
|
|
/* $OpenBSD$ */ |
/* $OpenBSD$ */ |
|
|
/* |
/* |
* Copyright (c) 2001,2002 Damien Miller. All rights reserved. |
* Copyright (c) 2001-2002 Damien Miller. All rights reserved. |
* |
* |
* Redistribution and use in source and binary forms, with or without |
* Redistribution and use in source and binary forms, with or without |
* modification, are permitted provided that the following conditions |
* modification, are permitted provided that the following conditions |
|
|
|
|
/* Client side of SSH2 filexfer protocol */ |
/* Client side of SSH2 filexfer protocol */ |
|
|
#ifndef _SFTP_CLIENT_H |
|
#define _SFTP_CLIENT_H |
|
|
|
typedef struct SFTP_DIRENT SFTP_DIRENT; |
typedef struct SFTP_DIRENT SFTP_DIRENT; |
|
|
struct SFTP_DIRENT { |
struct SFTP_DIRENT { |
|
|
* Initialiase a SSH filexfer connection. Returns -1 on error or |
* Initialiase a SSH filexfer connection. Returns -1 on error or |
* protocol version on success. |
* protocol version on success. |
*/ |
*/ |
struct sftp_conn *do_init(int, int, u_int, u_int); |
int do_init(int, int); |
|
|
u_int sftp_proto_version(struct sftp_conn *); |
|
|
|
/* Close file referred to by 'handle' */ |
/* Close file referred to by 'handle' */ |
int do_close(struct sftp_conn *, char *, u_int); |
int do_close(int, int, char *, u_int); |
|
|
|
/* List contents of directory 'path' to stdout */ |
|
int do_ls(int, int, char *); |
|
|
/* Read contents of 'path' to NULL-terminated array 'dir' */ |
/* Read contents of 'path' to NULL-terminated array 'dir' */ |
int do_readdir(struct sftp_conn *, char *, SFTP_DIRENT ***); |
int do_readdir(int, int, char *, SFTP_DIRENT ***); |
|
|
/* Frees a NULL-terminated array of SFTP_DIRENTs (eg. from do_readdir) */ |
/* Frees a NULL-terminated array of SFTP_DIRENTs (eg. from do_readdir) */ |
void free_sftp_dirents(SFTP_DIRENT **); |
void free_sftp_dirents(SFTP_DIRENT **); |
|
|
/* Delete file 'path' */ |
/* Delete file 'path' */ |
int do_rm(struct sftp_conn *, char *); |
int do_rm(int, int, char *); |
|
|
/* Create directory 'path' */ |
/* Create directory 'path' */ |
int do_mkdir(struct sftp_conn *, char *, Attrib *); |
int do_mkdir(int, int, char *, Attrib *); |
|
|
/* Remove directory 'path' */ |
/* Remove directory 'path' */ |
int do_rmdir(struct sftp_conn *, char *); |
int do_rmdir(int, int, char *); |
|
|
/* Get file attributes of 'path' (follows symlinks) */ |
/* Get file attributes of 'path' (follows symlinks) */ |
Attrib *do_stat(struct sftp_conn *, char *, int); |
Attrib *do_stat(int, int, char *, int); |
|
|
/* Get file attributes of 'path' (does not follow symlinks) */ |
/* Get file attributes of 'path' (does not follow symlinks) */ |
Attrib *do_lstat(struct sftp_conn *, char *, int); |
Attrib *do_lstat(int, int, char *, int); |
|
|
/* Get file attributes of open file 'handle' */ |
/* Get file attributes of open file 'handle' */ |
Attrib *do_fstat(struct sftp_conn *, char *, u_int, int); |
Attrib *do_fstat(int, int, char *, u_int, int); |
|
|
/* Set file attributes of 'path' */ |
/* Set file attributes of 'path' */ |
int do_setstat(struct sftp_conn *, char *, Attrib *); |
int do_setstat(int, int, char *, Attrib *); |
|
|
/* Set file attributes of open file 'handle' */ |
/* Set file attributes of open file 'handle' */ |
int do_fsetstat(struct sftp_conn *, char *, u_int, Attrib *); |
int do_fsetstat(int, int, char *, u_int, Attrib *); |
|
|
/* Canonicalise 'path' - caller must free result */ |
/* Canonicalise 'path' - caller must free result */ |
char *do_realpath(struct sftp_conn *, char *); |
char *do_realpath(int, int, char *); |
|
|
/* Rename 'oldpath' to 'newpath' */ |
/* Rename 'oldpath' to 'newpath' */ |
int do_rename(struct sftp_conn *, char *, char *); |
int do_rename(int, int, char *, char *); |
|
|
/* Rename 'oldpath' to 'newpath' */ |
/* Rename 'oldpath' to 'newpath' */ |
int do_symlink(struct sftp_conn *, char *, char *); |
int do_symlink(int, int, char *, char *); |
|
|
/* Return target of symlink 'path' - caller must free result */ |
/* Return target of symlink 'path' - caller must free result */ |
char *do_readlink(struct sftp_conn *, char *); |
char *do_readlink(int, int, char *); |
|
|
/* XXX: add callbacks to do_download/do_upload so we can do progress meter */ |
/* XXX: add callbacks to do_download/do_upload so we can do progress meter */ |
|
|
|
|
* Download 'remote_path' to 'local_path'. Preserve permissions and times |
* Download 'remote_path' to 'local_path'. Preserve permissions and times |
* if 'pflag' is set |
* if 'pflag' is set |
*/ |
*/ |
int do_download(struct sftp_conn *, char *, char *, int); |
int do_download(int, int, char *, char *, int, size_t); |
|
|
/* |
/* |
* Upload 'local_path' to 'remote_path'. Preserve permissions and times |
* Upload 'local_path' to 'remote_path'. Preserve permissions and times |
* if 'pflag' is set |
* if 'pflag' is set |
*/ |
*/ |
int do_upload(struct sftp_conn *, char *, char *, int); |
int do_upload(int, int, char *, char *, int , size_t); |
|
|
#endif |
|