Packet streams: make packet handling callback pointers read only.
[silc.git] / lib / silccore / silcpacket.h
index 5eae06aa918fed9cddcce438b590674f6c587721..0caf10d8c21bc8b54c245e3311265b8b785e6e9a 100644 (file)
@@ -115,7 +115,7 @@ typedef SilcUInt8 SilcPacketFlags;
 #define SILC_PACKET_FLAG_ACK              0x10    /* Acknowledge packet */
 
 /* Impelemntation specific flags */
-#define SILC_PACKET_FLAG_LONG_PAD         0x12    /* Use maximum padding */
+#define SILC_PACKET_FLAG_LONG_PAD         0x20    /* Use maximum padding */
 /***/
 
 /****s* silccore/SilcPacketAPI/SilcPacketEngine
@@ -361,7 +361,7 @@ typedef struct {
  ***/
 SilcPacketEngine
 silc_packet_engine_start(SilcRng rng, SilcBool router,
-                        SilcPacketCallbacks *callbacks,
+                        const SilcPacketCallbacks *callbacks,
                         void *callback_context);
 
 /****f* silccore/SilcPacketAPI/silc_packet_engine_stop
@@ -400,11 +400,30 @@ const char *silc_packet_error_string(SilcPacketError error);
  * DESCRIPTION
  *
  *    Returns list of packet streams added to the packet engine.  The caller
- *    must free the list with silc_dlist_uninit.
+ *    must free the list with silc_packet_engine_free_streams_list.
+ *
+ * NOTES
+ *
+ *    This function may also return disconnected and destroyed streams.  The
+ *    caller should use silc_packet_stream_is_valid to check if the stream
+ *    is valid.
  *
  ***/
 SilcDList silc_packet_engine_get_streams(SilcPacketEngine engine);
 
+/****f* silccore/SilcPacketAPI/silc_packet_engine_free_streams_list
+ *
+ * SYNOPSIS
+ *
+ *    void silc_packet_engine_free_streams_list(SilcDList streams);
+ *
+ * DESCRIPTION
+ *
+ *    Free's the streams list returned by silc_packet_engine_get_streams.
+ *
+ ***/
+void silc_packet_engine_free_streams_list(SilcDList streams);
+
 /****f* silccore/SilcPacketAPI/silc_packet_stream_create
  *
  * SYNOPSIS
@@ -632,7 +651,7 @@ SilcStream silc_packet_stream_get_stream(SilcPacketStream stream);
  *
  ***/
 SilcBool silc_packet_stream_link(SilcPacketStream stream,
-                                SilcPacketCallbacks *callbacks,
+                                const SilcPacketCallbacks *callbacks,
                                 void *callback_context,
                                 int priority, ...);
 
@@ -652,7 +671,7 @@ SilcBool silc_packet_stream_link(SilcPacketStream stream,
  *
  ***/
 void silc_packet_stream_unlink(SilcPacketStream stream,
-                              SilcPacketCallbacks *callbacks,
+                              const SilcPacketCallbacks *callbacks,
                               void *callback_context);
 
 /****f* silccore/SilcPacketAPI/SilcPacketWrapCoder