Copyright © 2001 - 2007 SILC Project SILC Project Website | SILC Toolkit Reference Manual Index

SILC Toolkit Reference Manual SILC Crypto Library Introduction to SILC RNG SILC RNG Interface SILC Cipher API SILC PKCS API SILC Public Key API SILC PKCS #1 API SILC Hash Interface SILC HMAC Interface SILC Core Library SILC Authentication Interface SILC Message Interface SILC Channel Interface SILC Command Interface SILC Notify Interface SILC Status Types SILC Modes SILC ID Interface SILC Argument Interface SILC Attributes Interface Packet Engine Interface SILC Public Key Payload Interface SILC Key Exchange Library SILC SKE Interface SILC Connection Authentication Interface SILC VCard Library SILC VCard Interface SILC Math Library SILC MP Interface SILC Math Interface SILC Client Library Using SILC Client Library Tutorial Arguments for command_reply Client Operation SilcStatus Error Arguments in command_reply Client Operation Arguments for notify Client Operation Unicode and UTF-8 Strings in Client Library Client Library Interface Reference Client Entry Interface Reference SILC ASN.1 Library SILC ASN.1 Interface SILC BER interface SILC HTTP Library SILC HTTP Server Interface SILC HTTP PHP Translator SILC Utility Library Basic Types and Definitions Data Buffer Interface Data Buffer Format Interface Hash Table Interface Memory Allocation Interface Data Stack (memory pool) Interface Finite State Machine Interface Thread Interface Mutual Exclusion Lock Interface Condition Variable Interface Atomic Operations Interface Network (TCP and UDP) Interface Scheduler Interface Asynchronous Operation Interface Abstract Stream Interface Socket Stream Interface File Descriptor Stream Interface File Utility Functions String Utility Interface Snprintf Interface UTF-8 String Interface Stringprep Interface Utility Functions List Interface Dynamic List Interface MIME Interface Time Utility Functions Logging Interface Config File Interface SILC Key Repository Library SILC SKR Interface SILC Application Utility Library SILC Application Utilities SILC ID Cache Interface SILC SFTP Library SILC SFTP Interface SFTP Filesystems Interface Resource Links SILC Project Website SILC Protocol Documentation SILC White Paper SILC FAQs
Structure SilcSFTPFilesystemOps NAME
        typedef struct SilcSFTPFilesystemOpsStruct { ... }
                         *SilcSFTPFilesystemOps;
DESCRIPTION
        This structure defines the generic filesystem access.  When the
        filesystem is accessed these functions are called to do the requested
        filesystem operation.  The level that implements the actual filesystem
        must fill this structure with the callback functions providing the
        access to the filesystem.
SOURCE
        typedef struct SilcSFTPFilesystemOpsStruct {
          /* Find a file handle by the file handle data indicated by the `data'.
             If the handle is not found this returns NULL. */
          SilcSFTPHandle (*sftp_get_handle)(void *context, SilcSFTP sftp,
                                            const unsigned char *data,
                                            SilcUInt32 data_len);

          /* Return encoded handle of `handle' or NULL on error. The caller
             must free the returned buffer. */
          unsigned char *(*sftp_encode_handle)(void *context, SilcSFTP sftp,
                                               SilcSFTPHandle handle,
                                               SilcUInt32 *handle_len);

          /* Open a file indicated by the `filename' with flags indicated by the
             `pflags', and with attributes indicated by the `attr'.  Calls the
             `callback' to return the opened file handle. */
          void (*sftp_open)(void *context, SilcSFTP sftp,
                            const char *filename,
                            SilcSFTPFileOperation pflags,
                            SilcSFTPAttributes attr,
                            SilcSFTPHandleCallback callback,
                            void *callback_context);

          /* Closes the file indicated by the file handle `handle'.  Calls the
             `callback' to indicate the status of the closing. */
          void (*sftp_close)(void *context, SilcSFTP sftp,
                             SilcSFTPHandle handle,
                             SilcSFTPStatusCallback callback,
                             void *callback_context);

          /* Reads data from the file indicated by the file handle `handle' starting
             from the offset of `offset' at most `len' bytes.  The `callback' is
             called to return the read data. */
          void (*sftp_read)(void *context, SilcSFTP sftp,
                            SilcSFTPHandle handle,
                            SilcUInt64 offset,
                            SilcUInt32 len,
                            SilcSFTPDataCallback callback,
                            void *callback_context);

          /* Writes to a file indicated by the file handle `handle' starting from
             offset of `offset' at most `data_len' bytes of `data'.  The `callback'
             is called to indicate the status of the writing. */
          void (*sftp_write)(void *context, SilcSFTP sftp,
                             SilcSFTPHandle handle,
                             SilcUInt64 offset,
                             const unsigned char *data,
                             SilcUInt32 data_len,
                             SilcSFTPStatusCallback callback,
                             void *callback_context);

          /* Removes a file indicated by the `filename'.  Calls the `callback'
             to indicate the status of the removing. */
          void (*sftp_remove)(void *context, SilcSFTP sftp,
                              const char *filename,
                              SilcSFTPStatusCallback callback,
                              void *callback_context);

          /* Renames a file indicated by the `oldname' to the name `newname'.  The
             `callback' is called to indicate the status of the renaming. */
          void (*sftp_rename)(void *context, SilcSFTP sftp,
                              const char *oldname,
                              const char *newname,
                              SilcSFTPStatusCallback callback,
                              void *callback_context);

          /* Creates a new directory indicated by the `path' with attributes indicated
             by the `attrs'. The `callback' is called to indicate the status of the
             creation. */
          void (*sftp_mkdir)(void *context, SilcSFTP sftp,
                             const char *path,
                             SilcSFTPAttributes attrs,
                             SilcSFTPStatusCallback callback,
                             void *callback_context);

          /* Removes a directory indicated by the `path' and calls the `callback'
             to indicate the status of the removal. */
          void (*sftp_rmdir)(void *context, SilcSFTP sftp,
                             const char *path,
                             SilcSFTPStatusCallback callback,
                             void *callback_context);

          /* Opens a directory indicated by the `path'.  The `callback' is called
             to return the opened file handle. */
          void (*sftp_opendir)(void *context, SilcSFTP sftp,
                               const char *path,
                               SilcSFTPHandleCallback callback,
                               void *callback_context);

          /* Reads the contents of the directory indicated by the `handle' and
             calls the `callback' to return the read file(s) from the directory. */
          void (*sftp_readdir)(void *context, SilcSFTP sftp,
                               SilcSFTPHandle handle,
                               SilcSFTPNameCallback callback,
                               void *callback_context);

          /* Gets the file attributes for a file indicated by the `path'. This
             will follow symbolic links also. Calls the `callback' to return the
             file attributes. */
          void (*sftp_stat)(void *context, SilcSFTP sftp,
                            const char *path,
                            SilcSFTPAttrCallback callback,
                            void *callback_context);

          /* Gets the file attributes for a file indicated by the `path'. This
             will not follow symbolic links. Calls the `callback' to return the
             file attributes. */
          void (*sftp_lstat)(void *context, SilcSFTP sftp,
                             const char *path,
                             SilcSFTPAttrCallback callback,
                             void *callback_context);

          /* Gets a file attributes for a opened file indicated by the `handle'.
             Calls the `callback' to return the file attributes. */
          void (*sftp_fstat)(void *context, SilcSFTP sftp,
                             SilcSFTPHandle handle,
                             SilcSFTPAttrCallback callback,
                             void *callback_context);

          /* Sets a file attributes to a file indicated by the `path' with the
             attributes indicated by the `attrs'.  Calls the `callback' to indicate
             the status of the setting. */
          void (*sftp_setstat)(void *context, SilcSFTP sftp,
                               const char *path,
                               SilcSFTPAttributes attrs,
                               SilcSFTPStatusCallback callback,
                               void *callback_context);

          /* Sets a file attributes to a opened file indicated by the `handle' with
             the attributes indicated by the `attrs'.  Calls the `callback' to
             indicate the status of the setting. */
          void (*sftp_fsetstat)(void *context, SilcSFTP sftp,
                                SilcSFTPHandle handle,
                                SilcSFTPAttributes attrs,
                                SilcSFTPStatusCallback callback,
                                void *callback_context);

          /* Reads the target of a symbolic link indicated by the `path'.  The
             `callback' is called to return the target of the symbolic link. */
          void (*sftp_readlink)(void *context, SilcSFTP sftp,
                                const char *path,
                                SilcSFTPNameCallback callback,
                                void *callback_context);

          /* Creates a new symbolic link indicated by the `linkpath' to the target
             indicated by the `targetpath'.  The `callback' is called to indicate
             the status of creation. */
          void (*sftp_symlink)(void *context, SilcSFTP sftp,
                               const char *linkpath,
                               const char *targetpath,
                               SilcSFTPStatusCallback callback,
                               void *callback_context);

          /* Canonicalizes the path indicated by the `path' to a absolute path.
             The `callback' is called to return the absolute path. */
          void (*sftp_realpath)(void *context, SilcSFTP sftp,
                                const char *path,
                                SilcSFTPNameCallback callback,
                                void *callback_context);

          /* Performs an extended operation indicated by the `request' with
             optional extended operation data indicated by the `data'.  The callback
             is called to return any data associated with the extended request. */
          void (*sftp_extended)(void *context, SilcSFTP sftp,
                                const char *request,
                                const unsigned char *data,
                                SilcUInt32 data_len,
                                SilcSFTPExtendedCallback callback,
                                void *callback_context);
        } *SilcSFTPFilesystemOps;
SFTP Filesystems Interface SilcSFTPFilesystemOps SilcSFTPFilesystem SilcSFTPFSMemoryPerm silc_sftp_fs_memory_alloc silc_sftp_fs_memory_free silc_sftp_fs_memory_add_dir silc_sftp_fs_memory_del_dir silc_sftp_fs_memory_add_file silc_sftp_fs_memory_del_file

Copyright © 2001 - 2007 SILC Project SILC Project Website | SILC Toolkit Reference Manual Index