mirror of
https://github.com/irssi/irssi.git
synced 2024-12-04 14:46:39 -05:00
wait a bit longer before sending massjoin signal. also added a comment how
it's supposed to work. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2904 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
parent
52c44351c1
commit
746ae09050
@ -218,6 +218,18 @@ static void server_check_massjoins(IRC_SERVER_REC *server, time_t max)
|
|||||||
{
|
{
|
||||||
GSList *tmp;
|
GSList *tmp;
|
||||||
|
|
||||||
|
/*
|
||||||
|
1) First time always save massjoin count to last_massjoins
|
||||||
|
2) Next time check if there's been less than massjoin_max_joins
|
||||||
|
(yes, the name is misleading..) joins since previous check.
|
||||||
|
yes) send a massjoin signal and reset last_massjoin count
|
||||||
|
no) unless we've waited for massjoin_max_wait seconds already,
|
||||||
|
goto 2.
|
||||||
|
|
||||||
|
So, with single joins the massjoin signal is sent 1-2 seconds after
|
||||||
|
the join.
|
||||||
|
*/
|
||||||
|
|
||||||
/* Scan all channels through for massjoins */
|
/* Scan all channels through for massjoins */
|
||||||
for (tmp = server->channels; tmp != NULL; tmp = tmp->next) {
|
for (tmp = server->channels; tmp != NULL; tmp = tmp->next) {
|
||||||
IRC_CHANNEL_REC *rec = tmp->data;
|
IRC_CHANNEL_REC *rec = tmp->data;
|
||||||
@ -226,7 +238,8 @@ static void server_check_massjoins(IRC_SERVER_REC *server, time_t max)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (rec->massjoin_start < max || /* We've waited long enough */
|
if (rec->massjoin_start < max || /* We've waited long enough */
|
||||||
rec->massjoins-massjoin_max_joins < rec->last_massjoins) { /* Less than x joins since last check */
|
(rec->last_massjoins > 0 &&
|
||||||
|
rec->massjoins-massjoin_max_joins < rec->last_massjoins)) { /* Less than x joins since last check */
|
||||||
/* send them */
|
/* send them */
|
||||||
massjoin_send(rec);
|
massjoin_send(rec);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user