X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilccore%2Fsilcpacket.c;h=cbf55bb8bc80aa5a7fa5fa4f3252b995b8a72cea;hb=2b65f4989fc44873b55ce3b8d384488cf911bc4d;hp=17f0a9e4fe98b2c5bb466ff1e710ebcf61ec9c66;hpb=9872ff33dc922d6448d2ef193db7ed2749800741;p=silc.git diff --git a/lib/silccore/silcpacket.c b/lib/silccore/silcpacket.c index 17f0a9e4..cbf55bb8 100644 --- a/lib/silccore/silcpacket.c +++ b/lib/silccore/silcpacket.c @@ -638,7 +638,7 @@ static const char *packet_error[] = { const char *silc_packet_error_string(SilcPacketError error) { if (error < SILC_PACKET_ERR_READ || error > SILC_PACKET_ERR_NO_MEMORY) - return ""; + return ""; return packet_error[error]; } @@ -655,13 +655,28 @@ SilcDList silc_packet_engine_get_streams(SilcPacketEngine engine) silc_mutex_lock(engine->lock); silc_list_start(engine->streams); - while ((ps = silc_list_get(engine->streams))) + while ((ps = silc_list_get(engine->streams))) { + silc_packet_stream_ref(ps); silc_dlist_add(list, ps); + } silc_mutex_unlock(engine->lock); return list; } +/* Free list returned by silc_packet_engine_get_streams */ + +void silc_packet_engine_free_streams_list(SilcDList streams) +{ + SilcPacketStream ps; + + silc_dlist_start(streams); + while ((ps = silc_dlist_get(streams))) + silc_packet_stream_unref(ps); + + silc_dlist_uninit(streams); +} + /* Create new packet stream */ SilcPacketStream silc_packet_stream_create(SilcPacketEngine engine,