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
Function SilcPacketReceiveCb SYNOPSIS
        typedef SilcBool (*SilcPacketReceiveCb)(SilcPacketEngine engine,
                                                SilcPacketStream stream,
                                                SilcPacket packet,
                                                void *callback_context,
                                                void *stream_context);
DESCRIPTION
        The packet receive callback is called by the packet engine when a new
        SILC Packet has arrived.  The application must free the returned
        SilcPacket with silc_packet_free if it takes the packet in for
        processing.  This callback is set in the SilcPacketCallbacks structure.
        The `callback_context' is the context set as argument in the
        silc_packet_engine_start function.  The `stream_context' is stream
        specific context that was set by calling silc_packet_set_context.

        If the application takes the received packet `packet' into processing
        TRUE must be returned.  If FALSE is returned the packet engine will
        pass the packet to other packet processor, if one has been linked
        to the stream with silc_packet_stream_link function.  If no extra
        processor is linked the packet is dropped.
EXAMPLE
        SilcBool
        silc_foo_packet_receive_cb(SilcPacketEngine engine,
                                   SilcPacketStream stream, SilcPacket packet,
                                   void *callback_context, void *stream_context)
        {
          Application ctx = callback_context;

          // If we're not up yet, let's not process the packet
          if (ctx->initialized == FALSE)
            return FALSE;

          // Process the incoming packet...
          ...

          // It's our packet now, no one else will get it
          return TRUE;
        }
SILC Packet Engine Interface SilcPacketType SilcPacketFlags SilcPacketEngine SilcPacketStream SilcPacket SilcPacketError SilcPacketReceiveCb SilcPacketEosCb SilcPacketErrorCb SilcPacketCallbacks silc_packet_engine_start silc_packet_engine_stop silc_packet_error_string silc_packet_engine_get_streams silc_packet_engine_free_streams_list silc_packet_stream_create silc_packet_stream_add_remote silc_packet_stream_inject silc_packet_stream_destroy silc_packet_stream_is_valid silc_packet_stream_set_router silc_packet_stream_set_iv_included silc_packet_stream_set_stream silc_packet_stream_get_stream silc_packet_stream_link silc_packet_stream_unlink SilcPacketWrapCoder silc_packet_stream_wrap silc_packet_stream_is_udp silc_packet_get_sender silc_packet_stream_ref silc_packet_stream_unref silc_packet_get_engine silc_packet_set_context silc_packet_get_context silc_packet_set_keys silc_packet_get_keys silc_packet_set_ids silc_packet_get_ids silc_packet_set_sid silc_packet_send silc_packet_send_ext silc_packet_send_va silc_packet_send_va_ext silc_packet_wait_init silc_packet_wait_uninit silc_packet_wait silc_packet_free

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