Packet streams: make packet handling callback pointers read only.
[silc.git] / lib / silccore / silcpacket.h
index fc66439dccc0f3d98caf333265defdb26c1e5e8d..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
@@ -402,6 +402,12 @@ const char *silc_packet_error_string(SilcPacketError error);
  *    Returns list of packet streams added to the packet engine.  The caller
  *    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);
 
@@ -645,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, ...);
 
@@ -665,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