]> jfr.im git - solanum.git/blobdiff - ircd/chmode.c
Add ipv4-in-ipv6 logic to check_one_kline
[solanum.git] / ircd / chmode.c
index d60dfddf1b175b97d2c35b7afadf0ed72351cb09..591843b555de648882b13c02016815f91e102e61 100644 (file)
@@ -253,7 +253,7 @@ add_id(struct Client *source_p, struct Channel *chptr, const char *banid, const
         */
        if(MyClient(source_p))
        {
-               if((rb_dlink_list_length(&chptr->banlist) + rb_dlink_list_length(&chptr->exceptlist) + rb_dlink_list_length(&chptr->invexlist) + rb_dlink_list_length(&chptr->quietlist)) >= (unsigned long)(chptr->mode.mode & MODE_EXLIMIT ? ConfigChannel.max_bans_large : ConfigChannel.max_bans))
+               if((rb_dlink_list_length(&chptr->banlist) + rb_dlink_list_length(&chptr->exceptlist) + rb_dlink_list_length(&chptr->invexlist) + rb_dlink_list_length(&chptr->quietlist)) >= (unsigned long)((chptr->mode.mode & MODE_EXLIMIT) ? ConfigChannel.max_bans_large : ConfigChannel.max_bans))
                {
                        sendto_one(source_p, form_str(ERR_BANLISTFULL),
                                   me.name, source_p->name, chptr->chname, realban);
@@ -1778,8 +1778,8 @@ set_channel_mode(struct Client *client_p, struct Client *source_p,
                                *mbuf = '\0';
 
                                if(cur_len > mlen)
-                                       sendto_channel_local(flags, chptr, "%s %s", modebuf,
-                                                            parabuf);
+                                       sendto_channel_local(IsServer(source_p) ? fakesource_p : source_p,
+                                                       flags, chptr, "%s %s", modebuf, parabuf);
                                else
                                        continue;
 
@@ -1815,7 +1815,8 @@ set_channel_mode(struct Client *client_p, struct Client *source_p,
 
                *mbuf = '\0';
                if(cur_len > mlen)
-                       sendto_channel_local(flags, chptr, "%s %s", modebuf, parabuf);
+                       sendto_channel_local(IsServer(source_p) ? fakesource_p : source_p,
+                               flags, chptr, "%s %s", modebuf, parabuf);
        }
 
        /* only propagate modes originating locally, or if we're hubbing */