diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-03-26 23:11:02 -0400 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-03-26 23:11:02 -0400 |
commit | 63a520b8ce1776442f2f79528ddd23fb0de51f94 (patch) | |
tree | 65a9df033b0f993f516ae9b896401dd16f9f231f /irc_channel.c | |
parent | b9e020af6c6a88392caa9edd120fb576ec971430 (diff) |
Collect that garbage.
Diffstat (limited to 'irc_channel.c')
-rw-r--r-- | irc_channel.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/irc_channel.c b/irc_channel.c index 17904d72..c58d6b1c 100644 --- a/irc_channel.c +++ b/irc_channel.c @@ -59,6 +59,23 @@ irc_channel_t *irc_channel_by_name( irc_t *irc, const char *name ) return NULL; } +int irc_channel_free( irc_channel_t *ic ) +{ + irc_t *irc = ic->irc; + + if( ic->flags & IRC_CHANNEL_JOINED ) + irc_channel_del_user( ic, irc->user ); + + irc->channels = g_slist_remove( irc->channels, ic ); + g_slist_free( ic->users ); + + g_free( ic->name ); + g_free( ic->topic ); + g_free( ic ); + + return 1; +} + int irc_channel_add_user( irc_channel_t *ic, irc_user_t *iu ) { if( g_slist_find( ic->users, iu ) != NULL ) |