From 8f82d31db1827ae444b503087b949006b6df8354 Mon Sep 17 00:00:00 2001 From: TingPing Date: Mon, 11 Mar 2013 10:22:37 -0300 Subject: [PATCH] Fix reconnecting to keyed channels closes #16 --- src/common/inbound.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/common/inbound.c b/src/common/inbound.c index 54e5bff0..88d1e1c3 100644 --- a/src/common/inbound.c +++ b/src/common/inbound.c @@ -1053,8 +1053,17 @@ check_autojoin_channels (server *serv) if (po) *po = 0; - channels = g_slist_append (channels, g_strdup (sess->waitchannel)); - keys = g_slist_append (keys, g_strdup (sess->channelkey)); + /* There can be no gap between keys, list keyed chans first. */ + if (sess->channelkey[0] != 0) + { + channels = g_slist_prepend (channels, g_strdup (sess->waitchannel)); + keys = g_slist_prepend (keys, g_strdup (sess->channelkey)); + } + else + { + channels = g_slist_append (channels, g_strdup (sess->waitchannel)); + keys = g_slist_append (keys, g_strdup (sess->channelkey)); + } i++; } }