SILC Core Library
    SILC Auth API
    SILC Channel API
    SILC Command API
    SILC ID API
    SILC ID Cache API
    SILC Modes
    SILC Notify API
    SILC Packet API
    SILC Argument API
    SILC Private API
SILC Math Library
    SILC Math API
    SILC MP API
SILC SFTP Library
    SILC SFTP API
    SILC SFTP Filesystems
SILC Utility Library
    SILC Buffer API
    SILC Buffer Format API
    SILC Buffer Utility API
    SILC Hash Table API
    SILC Log and Debug API
    SILC Memory API
    SILC Mutex API
    SILC Thread API
    SILC Net API
    SILC Schedule API
    SILC Socket Connection API
    SILC Protocol API
    SILC Util API
    SILC Zip API
    SILC List API
    SILC Dynamic List API
SILC Key Exchange Library
    SILC SKE API
    SILC SKE Status
SILC Client Library
    SILC Client API
SILC Crypto Library
    SILC Cipher API
    SILC Hash API
    SILC HMAC API
    SILC PKCS API
    SILC RNG API
Structure SilcProtocol

NAME
 
    typedef struct SilcProtocolStruct { ... } *SilcProtocol;

DESCRIPTION

    The actual protocol object. This is allocated by the silc_protocol_alloc
    and holds the information about the current protocol. Information
    such as the current state, execution callback and final callback.
    The context is freed by silc_protocol_free function.

    Short description of the field following:

    SilcProtocolObject *protocol

      This is the pointer to the SilcProtocolObject and holds the
      protocol specific information.

    SilcProtocolState state

      Protocol state. The state of the protocol can be changed in the
      callback function.

    void *context

      Context to be sent for the callback function. This is usually 
      object for either SILC client or server. However, this abstraction 
      makes it possible that this pointer could be some other object as
      well. Note that the context is not delivered in any callback 
      function. Application can access it through this context.

    SilcProtocolFinalCallback final_callback;

      This is a callback function that is called with timeout _after_ the
      protocol has finished or error occurs. If this is NULL, naturally 
      nothing will be executed. Protocol should call this function only at 
      SILC_PROTOCOL_STATE_END and SILC_PROTOCOL_STATE_ERROR states.

>> silcprotocol.h
>> SilcProtocolType
>> SilcProtocolState
>> SilcProtocolCallback
>> SilcProtocolFinalCallback
>> SilcProtocolObject
>> SilcProtocol
>> silc_protocol_register
>> silc_protocol_unregister
>> silc_protocol_alloc
>> silc_protocol_free
>> silc_protocol_execute
>> silc_protocol_execute_final
>> silc_protocol_cancel