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

SILC Toolkit Reference Manual 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 Protocol Interface SILC Public Key Payload Interface 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 ASN.1 Library SILC ASN.1 Interface SILC BER 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 Key Exchange Library SILC SKE Interface SILC Connection Authentication Interface SILC VCard Library SILC VCard Interface SILC SFTP Library SILC SFTP Interface SFTP Filesystems Interface SILC HTTP Library SILC HTTP Server Interface SILC HTTP PHP Translator 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 Application Utility Library SILC Application Utilities SILC ID Cache Interface SILC Math Library SILC MP Interface SILC Math Interface Resource Links SILC Project Website SILC Protocol Documentation SILC White Paper SILC FAQs
Client Library Interface Header: silcclient.h DESCRIPTION
     This interface defines the SILC Client Library API for the application.
     The Client Library is a full featured SILC client without user interface.
     A simple interface called SILC Client Operations (SilcClientOperations)
     is provided for applications to implmeent the necessary functions to use
     the client library.  The silcclient.h header file includes client library
     API, such as command handling and message sending.  The silcclient_entry.h
     header file includes entry handling, such as channel and user entry
     handling.

     Practically all functions in the Client Library API accepts SilcClient
     and SilcClientConnection as their first two argument.  The first argument
     is the actual SilcClient context and the second is the SilcClientConnection
     context of the connection in question.  Application may create and handle
     multiple connections in one SilcClient.  Connections can be created to
     servers and other clients.

     The Client Library support multiple threads and is threads safe if used
     correctly.  Messages can be sent from multiple threads without any
     locking.  Messages however are always received only in one thread unless
     message waiting (see silc_client_private_message_wait as an example) is
     used.  The threads can be turned on and off by giving a parameter to the
     SilcClient.  When turned on, each new connection to remote host is always
     executed in an own thread.  All tasks related to that connection are then
     executed in that thread.  This means that client operation callbacks for
     that connections may be called from threads and application will need to
     employ concurrency control if the callbacks need to access shared data
     in the application.  Messages are also received in that thread.
SilcClientConnectionStatus SilcClientRunning SilcClientStopped SilcClientConnectCallback SilcClient SilcClientConnection SilcChannelUser SilcClientStats SilcKeyAgreementStatus SilcKeyAgreementCallback SilcPrivateMessageKeys SilcChannelPrivateKey SilcAskPassphrase SilcVerifyPublicKey SilcGetAuthMeth SilcClientMessageType SilcClientOperations SilcClientParams silc_client_alloc silc_client_free silc_client_init silc_client_run silc_client_run_one silc_client_stop SilcClientConnectionParams silc_client_connect_to_server silc_client_connect_to_client silc_client_key_exchange silc_client_close_connection silc_client_send_channel_message silc_client_send_private_message silc_client_private_message_wait_init silc_client_private_message_wait_uninit silc_client_private_message_wait silc_client_on_channel silc_client_command_call SilcClientCommandReply silc_client_command_send silc_client_command_pending silc_client_add_private_message_key silc_client_add_private_message_key_ske silc_client_del_private_message_key silc_client_list_private_message_keys silc_client_free_private_message_keys silc_client_private_message_key_is_set silc_client_add_channel_private_key silc_client_del_channel_private_keys silc_client_del_channel_private_key silc_client_list_channel_private_keys silc_client_current_channel_private_key silc_client_send_key_agreement silc_client_perform_key_agreement silc_client_perform_key_agreement_stream silc_client_abort_key_agreement silc_client_set_away_message SilcClientMonitorStatus SilcClientFileError SilcClientFileMonitor SilcClientFileName SilcClientFileAskName silc_client_file_send silc_client_file_receive silc_client_file_close silc_client_attribute_add silc_client_attribute_del silc_client_attributes_get silc_client_attributes_request silc_client_nickname_format silc_client_nickname_parse

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