sftp.h revision 162852
1251877Speter/* $OpenBSD: sftp.h,v 1.5 2006/03/25 22:22:43 djm Exp $ */
2251877Speter
3251877Speter/*
4251877Speter * Copyright (c) 2001 Markus Friedl.  All rights reserved.
5251877Speter *
6251877Speter * Redistribution and use in source and binary forms, with or without
7251877Speter * modification, are permitted provided that the following conditions
8251877Speter * are met:
9251877Speter * 1. Redistributions of source code must retain the above copyright
10251877Speter *    notice, this list of conditions and the following disclaimer.
11251877Speter * 2. Redistributions in binary form must reproduce the above copyright
12251877Speter *    notice, this list of conditions and the following disclaimer in the
13251877Speter *    documentation and/or other materials provided with the distribution.
14251877Speter *
15251877Speter * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16251877Speter * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17251877Speter * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18251877Speter * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19251877Speter * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20251877Speter * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21251877Speter * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22251877Speter * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23251877Speter * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24251877Speter * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25251877Speter */
26251877Speter
27251877Speter/*
28251877Speter * draft-ietf-secsh-filexfer-01.txt
29251877Speter */
30251877Speter
31251877Speter/* version */
32251877Speter#define	SSH2_FILEXFER_VERSION		3
33251877Speter
34251877Speter/* client to server */
35251877Speter#define SSH2_FXP_INIT			1
36251877Speter#define SSH2_FXP_OPEN			3
37251877Speter#define SSH2_FXP_CLOSE			4
38251877Speter#define SSH2_FXP_READ			5
39251877Speter#define SSH2_FXP_WRITE			6
40251877Speter#define SSH2_FXP_LSTAT			7
41251877Speter#define SSH2_FXP_STAT_VERSION_0		7
42251877Speter#define SSH2_FXP_FSTAT			8
43251877Speter#define SSH2_FXP_SETSTAT		9
44251877Speter#define SSH2_FXP_FSETSTAT		10
45251877Speter#define SSH2_FXP_OPENDIR		11
46251877Speter#define SSH2_FXP_READDIR		12
47251877Speter#define SSH2_FXP_REMOVE			13
48251877Speter#define SSH2_FXP_MKDIR			14
49251877Speter#define SSH2_FXP_RMDIR			15
50251877Speter#define SSH2_FXP_REALPATH		16
51251877Speter#define SSH2_FXP_STAT			17
52251877Speter#define SSH2_FXP_RENAME			18
53251877Speter#define SSH2_FXP_READLINK		19
54251877Speter#define SSH2_FXP_SYMLINK		20
55251877Speter
56251877Speter/* server to client */
57251877Speter#define SSH2_FXP_VERSION		2
58251877Speter#define SSH2_FXP_STATUS			101
59251877Speter#define SSH2_FXP_HANDLE			102
60251877Speter#define SSH2_FXP_DATA			103
61251877Speter#define SSH2_FXP_NAME			104
62251877Speter#define SSH2_FXP_ATTRS			105
63251877Speter
64251877Speter#define SSH2_FXP_EXTENDED		200
65251877Speter#define SSH2_FXP_EXTENDED_REPLY		201
66251877Speter
67251877Speter/* attributes */
68251877Speter#define SSH2_FILEXFER_ATTR_SIZE		0x00000001
69251877Speter#define SSH2_FILEXFER_ATTR_UIDGID	0x00000002
70251877Speter#define SSH2_FILEXFER_ATTR_PERMISSIONS	0x00000004
71251877Speter#define SSH2_FILEXFER_ATTR_ACMODTIME	0x00000008
72251877Speter#define SSH2_FILEXFER_ATTR_EXTENDED	0x80000000
73251877Speter
74251877Speter/* portable open modes */
75251877Speter#define SSH2_FXF_READ			0x00000001
76251877Speter#define SSH2_FXF_WRITE			0x00000002
77251877Speter#define SSH2_FXF_APPEND			0x00000004
78251877Speter#define SSH2_FXF_CREAT			0x00000008
79251877Speter#define SSH2_FXF_TRUNC			0x00000010
80251877Speter#define SSH2_FXF_EXCL			0x00000020
81251877Speter
82251877Speter/* status messages */
83251877Speter#define SSH2_FX_OK			0
84251877Speter#define SSH2_FX_EOF			1
85251877Speter#define SSH2_FX_NO_SUCH_FILE		2
86251877Speter#define SSH2_FX_PERMISSION_DENIED	3
87251877Speter#define SSH2_FX_FAILURE			4
88251877Speter#define SSH2_FX_BAD_MESSAGE		5
89251877Speter#define SSH2_FX_NO_CONNECTION		6
90251877Speter#define SSH2_FX_CONNECTION_LOST		7
91251877Speter#define SSH2_FX_OP_UNSUPPORTED		8
92251877Speter#define SSH2_FX_MAX			8
93251877Speter