So I went ahead and wrote a module that does exactly that. =] I even went a bit further and also applied these restrictions to SAMODE. ;]<PeGaSuS> as everyone that uses Anope services know, the ChanServ has a feature named 'peace' that disallows any op to set a ban like '*!*@*'..
<PeGaSuS> but, if for some reason we don't have the services running, and if the one 'non-op' user obtains op after a crash, *net *split or whatever, they can set that ban and no one will be able to join the channel (except IRCops, ofc) and that's bad. in my humble opinion, UnrealIRCd could have an option like 'deny ban { mask *@*; };' to avoid such situation
Simply load the module and fire up an editor to change unrealircd.conf. The config block looks like this:
Code: Select all
denyban {
allowopers 0;
denynotice 1;
//reason "$num of your ban masks were disallowed by the network operators";
mask BAN_ALL;
mask *!*@*myirc.net;
};
The directives allowopers and denynotice should be pretty clear. They default to 1 and 0, respectively.
For the reason directive you can use $num, which will be replaced with the actual amount of stripped masks. ;] No masks means they'll see the default message.
I went with denyban over deny ban (notice the space) as I'm not sure if the latter will conflict with any of Unreal's internals (like "deny dcc" etc).
Get it from here.