mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-07-02 14:33:14 +02:00
d3c98c73c2
This broke SASL services autodetection and also sasl=x,y,z in CAP. Reported by Valware in https://bugs.unrealircd.org/view.php?id=5960 Of course the easiest solution would be just to set .remote_write=1 for this, which is what I've just done for the 5.2.1.1 release. But there seems to be a pattern here. When a server wants to write its own object (irc1.example.net writing to the MD object of irc1.example.net) we have the problem that that object is both "our client" and from the other server POV it is "themselves". On one hand you may want to allow that (eg for 'saslmechlist'), on the other hand a server writing its own 'certfp' sounds like a bad idea in principle. So we now add a new option for the 'self' case and make some MD objects use it. In fact, in the core we now have zero MD objects using remote_write. We keep the option available though, for example for k4be's geoip modules and possibly future features. Module API change: * .self_write added which allows a server to write to its own object (irc1.example.net writing to the MD object of irc1.example.net) * .remote_write still exists too if you want to allow remote servers to write to your own objects * Note that in all cases, servers can always write to their own (child) client objects. Changes: * The link-security MD changed from .remote_write=1 to .self_write=1 * The salmechslist MD now has .self_write=1, this fixes the actual bug