/*
- sftp_util.h
+ sftp_util.h
Author: Pekka Riikonen <priikone@silcnet.org>
#ifndef SFTP_UTIL_H
#define SFTP_UTIL_H
-typedef uint32 SilcSFTPPacket;
+typedef SilcUInt32 SilcSFTPPacket;
/* SFTP packet types */
#define SILC_SFTP_INIT 1
/* 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. */
-SilcBuffer silc_sftp_packet_encode(SilcSFTPPacket packet, uint32 len, ...);
+ 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, uint32 len,
+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.
NULL if error occurred during decoding. */
SilcSFTPPacket silc_sftp_packet_decode(SilcBuffer packet,
unsigned char **payload,
- uint32 *payload_len);
+ SilcUInt32 *payload_len);
/* Encodes the SFTP attributes to a buffer and returns the allocated buffer.
The caller must free the buffer. */
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.
+/* 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(uint32 count, SilcBuffer buffer);
+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);
+SilcSFTPStatus silc_sftp_map_errno(SilcResult err);
#endif /* SFTP_UTIL_H */