From 2b65f4989fc44873b55ce3b8d384488cf911bc4d Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Sun, 24 Jun 2007 14:16:01 +0000 Subject: [PATCH] Added silc_packet_engine_free_streams_list. --- lib/silccore/silcpacket.c | 19 +++++++++++++++++-- lib/silccore/silcpacket.h | 15 ++++++++++++++- 2 files changed, 31 insertions(+), 3 deletions(-) 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, diff --git a/lib/silccore/silcpacket.h b/lib/silccore/silcpacket.h index 5eae06aa..fc66439d 100644 --- a/lib/silccore/silcpacket.h +++ b/lib/silccore/silcpacket.h @@ -400,11 +400,24 @@ 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. * ***/ 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 -- 2.24.0