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 Payload 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