source: trunk/third/openssh/sftp-client.h @ 18759

Revision 18759, 3.6 KB checked in by zacheiss, 22 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r18758, which included commits to RCS files with non-trunk default branches.
Line 
1/* $OpenBSD: sftp-client.h,v 1.11 2002/09/11 22:41:50 djm Exp $ */
2
3/*
4 * Copyright (c) 2001,2002 Damien Miller.  All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 *    notice, this list of conditions and the following disclaimer in the
13 *    documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27/* Client side of SSH2 filexfer protocol */
28
29#ifndef _SFTP_CLIENT_H
30#define _SFTP_CLIENT_H
31
32typedef struct SFTP_DIRENT SFTP_DIRENT;
33
34struct SFTP_DIRENT {
35        char *filename;
36        char *longname;
37        Attrib a;
38};
39
40/*
41 * Initialiase a SSH filexfer connection. Returns -1 on error or
42 * protocol version on success.
43 */
44struct sftp_conn *do_init(int, int, u_int, u_int);
45
46u_int sftp_proto_version(struct sftp_conn *);
47
48/* Close file referred to by 'handle' */
49int do_close(struct sftp_conn *, char *, u_int);
50
51/* Read contents of 'path' to NULL-terminated array 'dir' */
52int do_readdir(struct sftp_conn *, char *, SFTP_DIRENT ***);
53
54/* Frees a NULL-terminated array of SFTP_DIRENTs (eg. from do_readdir) */
55void free_sftp_dirents(SFTP_DIRENT **);
56
57/* Delete file 'path' */
58int do_rm(struct sftp_conn *, char *);
59
60/* Create directory 'path' */
61int do_mkdir(struct sftp_conn *, char *, Attrib *);
62
63/* Remove directory 'path' */
64int do_rmdir(struct sftp_conn *, char *);
65
66/* Get file attributes of 'path' (follows symlinks) */
67Attrib *do_stat(struct sftp_conn *, char *, int);
68
69/* Get file attributes of 'path' (does not follow symlinks) */
70Attrib *do_lstat(struct sftp_conn *, char *, int);
71
72/* Get file attributes of open file 'handle' */
73Attrib *do_fstat(struct sftp_conn *, char *, u_int, int);
74
75/* Set file attributes of 'path' */
76int do_setstat(struct sftp_conn *, char *, Attrib *);
77
78/* Set file attributes of open file 'handle' */
79int do_fsetstat(struct sftp_conn *, char *, u_int, Attrib *);
80
81/* Canonicalise 'path' - caller must free result */
82char *do_realpath(struct sftp_conn *, char *);
83
84/* Rename 'oldpath' to 'newpath' */
85int do_rename(struct sftp_conn *, char *, char *);
86
87/* Rename 'oldpath' to 'newpath' */
88int do_symlink(struct sftp_conn *, char *, char *);
89
90/* Return target of symlink 'path' - caller must free result */
91char *do_readlink(struct sftp_conn *, char *);
92
93/* XXX: add callbacks to do_download/do_upload so we can do progress meter */
94
95/*
96 * Download 'remote_path' to 'local_path'. Preserve permissions and times
97 * if 'pflag' is set
98 */
99int do_download(struct sftp_conn *, char *, char *, int);
100
101/*
102 * Upload 'local_path' to 'remote_path'. Preserve permissions and times
103 * if 'pflag' is set
104 */
105int do_upload(struct sftp_conn *, char *, char *, int);
106
107#endif
Note: See TracBrowser for help on using the repository browser.