* Packet flags. Flags are defined above.
*
* unsigned char *src_id
- * uint16 src_id_len
+ * uint8 src_id_len
* unsigned char src_id_type
*
* Source ID, its length and type. On packet reception retuned ID's
* are always the hash values of the ID's from the packet.
*
* unsigned char *dst_id;
- * uint16 dst_id_len;
+ * uint8 dst_id_len;
* unsigned char src_id_type;
*
* Destination ID, its length and type. On packet reception retuned
* ID's are always the hash values of the ID's from the packet.
*
* uint16 truelen
- * uint16 padlen
+ * uint8 padlen
*
* The true lenght of the packet and the padded length of the packet.
* These may be set by the caller before calling any of the
uint8 dst_id_len;
uint8 dst_id_type;
- /* Back pointers */
- void *context;
- SilcSocketConnection sock;
-
int users;
bool long_pad; /* Set to TRUE to use maximum padding
in packet (up to 256 bytes). */
*
* SYNOPSIS
*
- * typedef void (*SilcPacketParserCallback)(SilcPacketParserContext
+ * typedef bool (*SilcPacketParserCallback)(SilcPacketParserContext
* *parse_context);
*
* DESCRIPTION
* context. The application receiving the SilcPacketParserContext
* must free it.
*
+ * This returns TRUE if the library should continue packet processing
+ * (assuming there is more data to be processed), and FALSE if the
+ * upper layer does not want the library to continue but to leave the
+ * rest of the data is the packet queue untouched. Application may
+ * want to do this for example if the cipher is not ready before
+ * processing a certain packet. In this case the application wants
+ * to recall the processing function with the correct cipher.
+ *
***/
-typedef void (*SilcPacketParserCallback)(SilcPacketParserContext
+typedef bool (*SilcPacketParserCallback)(SilcPacketParserContext
*parse_context, void *context);
/* Macros */