[BACK]Return to sftp-client.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Annotation of src/usr.bin/ssh/sftp-client.h, Revision 1.9

1.9     ! djm         1: /* $OpenBSD: sftp-client.h,v 1.8 2002/02/12 12:32:27 djm Exp $ */
1.1       djm         2:
                      3: /*
1.9     ! djm         4:  * Copyright (c) 2001,2002 Damien Miller.  All rights reserved.
1.1       djm         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:
1.9     ! djm        29: #ifndef _SFTP_CLIENT_H
        !            30: #define _SFTP_CLIENT_H
        !            31:
1.3       djm        32: typedef struct SFTP_DIRENT SFTP_DIRENT;
                     33:
                     34: struct SFTP_DIRENT {
                     35:        char *filename;
                     36:        char *longname;
                     37:        Attrib a;
                     38: };
                     39:
1.5       markus     40: /*
                     41:  * Initialiase a SSH filexfer connection. Returns -1 on error or
1.2       djm        42:  * protocol version on success.
                     43:  */
1.9     ! djm        44: struct sftp_conn *
        !            45: do_init(int, int, u_int, u_int);
        !            46:
        !            47: u_int
        !            48: sftp_proto_version(struct sftp_conn *);
1.1       djm        49:
                     50: /* Close file referred to by 'handle' */
1.9     ! djm        51: int do_close(struct sftp_conn *, char *, u_int);
1.1       djm        52:
                     53: /* List contents of directory 'path' to stdout */
1.9     ! djm        54: int do_ls(struct sftp_conn *, char *);
1.3       djm        55:
                     56: /* Read contents of 'path' to NULL-terminated array 'dir' */
1.9     ! djm        57: int do_readdir(struct sftp_conn *, char *, SFTP_DIRENT ***);
1.3       djm        58:
                     59: /* Frees a NULL-terminated array of SFTP_DIRENTs (eg. from do_readdir) */
1.6       itojun     60: void free_sftp_dirents(SFTP_DIRENT **);
1.1       djm        61:
                     62: /* Delete file 'path' */
1.9     ! djm        63: int do_rm(struct sftp_conn *, char *);
1.1       djm        64:
                     65: /* Create directory 'path' */
1.9     ! djm        66: int do_mkdir(struct sftp_conn *, char *, Attrib *);
1.1       djm        67:
                     68: /* Remove directory 'path' */
1.9     ! djm        69: int do_rmdir(struct sftp_conn *, char *);
1.1       djm        70:
                     71: /* Get file attributes of 'path' (follows symlinks) */
1.9     ! djm        72: Attrib *do_stat(struct sftp_conn *, char *, int);
1.1       djm        73:
                     74: /* Get file attributes of 'path' (does not follow symlinks) */
1.9     ! djm        75: Attrib *do_lstat(struct sftp_conn *, char *, int);
1.1       djm        76:
                     77: /* Get file attributes of open file 'handle' */
1.9     ! djm        78: Attrib *do_fstat(struct sftp_conn *, char *, u_int, int);
1.1       djm        79:
                     80: /* Set file attributes of 'path' */
1.9     ! djm        81: int do_setstat(struct sftp_conn *, char *, Attrib *);
1.1       djm        82:
                     83: /* Set file attributes of open file 'handle' */
1.9     ! djm        84: int do_fsetstat(struct sftp_conn *, char *, u_int, Attrib *);
1.1       djm        85:
                     86: /* Canonicalise 'path' - caller must free result */
1.9     ! djm        87: char *do_realpath(struct sftp_conn *, char *);
1.1       djm        88:
                     89: /* Rename 'oldpath' to 'newpath' */
1.9     ! djm        90: int do_rename(struct sftp_conn *, char *, char *);
1.2       djm        91:
                     92: /* Rename 'oldpath' to 'newpath' */
1.9     ! djm        93: int do_symlink(struct sftp_conn *, char *, char *);
1.2       djm        94:
                     95: /* Return target of symlink 'path' - caller must free result */
1.9     ! djm        96: char *do_readlink(struct sftp_conn *, char *);
1.1       djm        97:
                     98: /* XXX: add callbacks to do_download/do_upload so we can do progress meter */
                     99:
                    100: /*
                    101:  * Download 'remote_path' to 'local_path'. Preserve permissions and times
                    102:  * if 'pflag' is set
                    103:  */
1.9     ! djm       104: int do_download(struct sftp_conn *, char *, char *, int);
1.1       djm       105:
                    106: /*
                    107:  * Upload 'local_path' to 'remote_path'. Preserve permissions and times
                    108:  * if 'pflag' is set
                    109:  */
1.9     ! djm       110: int do_upload(struct sftp_conn *, char *, char *, int);
        !           111:
        !           112: #endif