diff options
author | Berke Viktor <berkeviktor@aol.com> | 2012-06-02 04:34:03 +0200 |
---|---|---|
committer | Berke Viktor <berkeviktor@aol.com> | 2012-06-02 04:34:03 +0200 |
commit | e17c390d574d50844e99fb810eadbbb6f99c2ab2 (patch) | |
tree | d35255d58c3d25728b5d1dff7836e583b5646ae1 | |
parent | 2f6eccd87373fd19cdc35af32dfbe8565f10653c (diff) | |
parent | 23f20cc230f0d98d8f4ffb2d2439d1472cc735e3 (diff) |
Merge branch 'master' into wdk
-rw-r--r-- | src/common/inbound.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/common/inbound.c b/src/common/inbound.c index 59ffaf2b..1c124db4 100644 --- a/src/common/inbound.c +++ b/src/common/inbound.c @@ -1028,6 +1028,8 @@ check_autojoin_channels (server *serv) /* this is really only for re-connects when you * join channels not in the auto-join list. */ + channels = NULL; + keys = NULL; while (list) { sess = list->data; @@ -1037,18 +1039,28 @@ check_autojoin_channels (server *serv) { strcpy (sess->waitchannel, sess->willjoinchannel); sess->willjoinchannel[0] = 0; - serv->p_join (serv, sess->waitchannel, sess->channelkey); + po = strchr (sess->waitchannel, ','); if (po) *po = 0; po = strchr (sess->waitchannel, ' '); if (po) *po = 0; + + channels = g_slist_append (channels, g_strdup (sess->waitchannel)); + keys = g_slist_append (keys, g_strdup (sess->channelkey)); i++; } } list = list->next; } + + if (channels) + { + serv->p_join_list (serv, channels, keys); + joinlist_free (channels, keys); + } + serv->joindelay_tag = 0; fe_server_event (serv, FE_SE_LOGGEDIN, i); return FALSE; |