+++ /dev/null
-/*
-
- sftp_util.h
-
- Author: Pekka Riikonen <priikone@silcnet.org>
-
- Copyright (C) 2001 Pekka Riikonen
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
-*/
-
-#ifndef SFTP_UTIL_H
-#define SFTP_UTIL_H
-
-typedef SilcUInt32 SilcSFTPPacket;
-
-/* SFTP packet types */
-#define SILC_SFTP_INIT 1
-#define SILC_SFTP_VERSION 2
-#define SILC_SFTP_OPEN 3
-#define SILC_SFTP_CLOSE 4
-#define SILC_SFTP_READ 5
-#define SILC_SFTP_WRITE 6
-#define SILC_SFTP_LSTAT 7
-#define SILC_SFTP_FSTAT 8
-#define SILC_SFTP_SETSTAT 9
-#define SILC_SFTP_FSETSTAT 10
-#define SILC_SFTP_OPENDIR 11
-#define SILC_SFTP_READDIR 12
-#define SILC_SFTP_REMOVE 13
-#define SILC_SFTP_MKDIR 14
-#define SILC_SFTP_RMDIR 15
-#define SILC_SFTP_REALPATH 16
-#define SILC_SFTP_STAT 17
-#define SILC_SFTP_RENAME 18
-#define SILC_SFTP_READLINK 19
-#define SILC_SFTP_SYMLINK 20
-#define SILC_SFTP_STATUS 101
-#define SILC_SFTP_HANDLE 102
-#define SILC_SFTP_DATA 103
-#define SILC_SFTP_NAME 104
-#define SILC_SFTP_ATTRS 105
-#define SILC_SFTP_EXTENDED 200
-#define SILC_SFTP_EXTENDED_REPLY 201
-
-/* SFTP attributes flags */
-#define SILC_SFTP_ATTR_SIZE 0x00000001
-#define SILC_SFTP_ATTR_UIDGID 0x00000002
-#define SILC_SFTP_ATTR_PERMISSIONS 0x00000004
-#define SILC_SFTP_ATTR_ACMODTIME 0x00000008
-#define SILC_SFTP_ATTR_EXTENDED 0x80000000
-
-/* Encodes a SFTP packet of type `packet' of length `len'. The variable
- argument list is encoded as data payload to the buffer. Returns the
- encoded packet or NULL on error. The caller must free the returned
- buffer. If `packet_buf' is non-NULL then the new packet data is put
- to that buffer instead of allocating new one. If the new data cannot
- fit to `packet_buf' will be reallocated. */
-SilcBuffer silc_sftp_packet_encode(SilcSFTPPacket packet,
- SilcBuffer packet_buf, SilcUInt32 len, ...);
-
-/* Same as silc_sftp_packet_encode but takes the variable argument list
- pointer as argument. */
-SilcBuffer silc_sftp_packet_encode_vp(SilcSFTPPacket packet,
- SilcBuffer packet_buf, SilcUInt32 len,
- va_list vp);
-
-/* Decodes the SFTP packet data `data' and return the SFTP packet type.
- The payload of the packet is returned to the `payload' pointer. Returns
- NULL if error occurred during decoding. */
-SilcSFTPPacket silc_sftp_packet_decode(SilcBuffer packet,
- unsigned char **payload,
- SilcUInt32 *payload_len);
-
-/* Encodes the SFTP attributes to a buffer and returns the allocated buffer.
- The caller must free the buffer. */
-SilcBuffer silc_sftp_attr_encode(SilcSFTPAttributes attr);
-
-/* Decodes SilcSFTPAttributes from the buffer `buffer'. Returns the allocated
- attributes that the caller must free or NULL on error. */
-SilcSFTPAttributes silc_sftp_attr_decode(SilcBuffer buffer);
-
-/* Frees the attributes context and its internals. */
-void silc_sftp_attr_free(SilcSFTPAttributes attr);
-
-/* Adds an entry to the `name' context. */
-void silc_sftp_name_add(SilcSFTPName name, const char *short_name,
- const char *long_name, SilcSFTPAttributes attrs);
-
-/* Encodes the SilcSFTPName to a buffer and returns the allocated buffer.
- The caller must free the buffer. */
-SilcBuffer silc_sftp_name_encode(SilcSFTPName name);
-
-/* Decodes a SilcSFTPName structure from the `buffer' that must include
- `count' many name, longname and attribute values. Returns the allocated
- structure or NULL on error. */
-SilcSFTPName silc_sftp_name_decode(SilcUInt32 count, SilcBuffer buffer);
-
-/* Frees the name context and its internals. */
-void silc_sftp_name_free(SilcSFTPName name);
-
-/* Maps errno to SFTP status message. */
-SilcSFTPStatus silc_sftp_map_errno(int err);
-
-#endif /* SFTP_UTIL_H */