mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-29 16:06:37 +02:00
ee1d6818b4
Several notes: * This only checks on-JOIN (not on nick change, message, etc) for performance reasons * If the #channel in ~inherit:#channel also contains ~inherit entries then those are not processed (no recursion and no looping) * Only a limited number of ~inherit entries is permitted. This will be moved to set:: items in a future commit so you can set different amounts for +b/+e/+I ~inherit. * This is work in progress, UnrealIRCd or the entire world could explode * Documentation will follow later Developers: * Sadly, clean_ban_mask() needed to be changed to have two more parameters, 'ban_type' and 'channel' were added at different positions. This because the module needs the ban type (EXBTYPE_BAN, EXBTYPE_EXCEPT, EXBTYPE_INVEX) and channel because it rejects based on number of existing ~inherit entries in the channel... and while is_ok() is called for local clients and has all this information, for services clients is_ok() is not called so the only way to reject the +beI is through xxx_conv_param() which comes from clean_ban_mask().