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
Function silc_packet_receive_process SYNOPSIS
        void silc_packet_receive_process(SilcSocketConnection sock,
                                         bool local_is_router,
                                         SilcCipher cipher, SilcHmac hmac,
                                         SilcPacketParserCallback parser,
                                         void *parser_context);
DESCRIPTION
        Processes and decrypts the incmoing data, and calls parser callback
        for each received packet that will handle the actual packet parsing.
        If more than one packet was received this calls the parser multiple
        times.  The parser callback will get context SilcPacketParserContext
        that includes the packet and the `parser_context' sent to this
        function.

        The `local_is_router' indicates whether the caller is router server
        in which case the receiving process of a certain packet types may
        be special.  Normal server and client must set it to FALSE.  The
        SilcPacketParserContext will indicate also whether the received
        packet was normal or special packet.
>> SilcPacketAPI >> SilcPacketType >> SilcPacketVersion >> SilcPacketFlags >> SilcPacketContext >> SilcPacketParserContext >> SilcPacketParserCallback >> SILC_PACKET_LENGTH >> SILC_PACKET_PADLEN >> SILC_PACKET_PADLEN_MAX >> silc_packet_send >> silc_packet_encrypt >> silc_packet_assemble >> silc_packet_send_prepare >> silc_packet_receive >> silc_packet_receive_process >> silc_packet_parse >> silc_packet_parse_special >> silc_packet_context_alloc >> silc_packet_context_dup >> silc_packet_context_free