Fix the 'mode changes appear multiple times' bug.
This commit is contained in:
parent
5e09b8c741
commit
2f39232fab
|
@ -2108,6 +2108,7 @@ set_channel_mode(struct Client *client_p, struct Client *source_p,
|
||||||
for(i = 0; i < mode_count; i++)
|
for(i = 0; i < mode_count; i++)
|
||||||
{
|
{
|
||||||
if(mode_changes[i].letter == 0 || mode_changes[i].mems != flags)
|
if(mode_changes[i].letter == 0 || mode_changes[i].mems != flags)
|
||||||
|
continue;
|
||||||
|
|
||||||
if(mode_changes[i].override != override)
|
if(mode_changes[i].override != override)
|
||||||
continue;
|
continue;
|
||||||
|
@ -2193,6 +2194,7 @@ set_channel_mode(struct Client *client_p, struct Client *source_p,
|
||||||
msptr->flags &= ~CHFL_CHANOP;
|
msptr->flags &= ~CHFL_CHANOP;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* only propagate modes originating locally, or if we're hubbing */
|
/* only propagate modes originating locally, or if we're hubbing */
|
||||||
if(MyClient(source_p) || rb_dlink_list_length(&serv_list) > 1)
|
if(MyClient(source_p) || rb_dlink_list_length(&serv_list) > 1)
|
||||||
send_cap_mode_changes(client_p, source_p, chptr, mode_changes, mode_count);
|
send_cap_mode_changes(client_p, source_p, chptr, mode_changes, mode_count);
|
||||||
|
|
Loading…
Reference in New Issue