inspircd/inspircd — pull request #113 by nenolod (2012-05-04 23:48:43+00:00)
Title: modules/m_mlock: new module implementing server-side MLOCK.

atheme-5 and newer have support for server-side MLOCK synchronization. this is supported by unreal 3.2.10 (added in atheme-7) and charybdis already.

the way it works is, services sends a list of modeletters which may not be changed, then the ircd simply drops any mode changes for those letters.

this works on all sorts of modes, not just simple modes and lockable modes, for example, atheme-7.1 turned on ircd-side enforcement of SECURE using the serverside MLOCK mechanism.

the net benefit to server-side benefit is that the ircd blocks mode changes that would otherwise be bounced (providing an explanation of course), creating a more straightforward user experience.

this adds the requested functionality in issue #110.