mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-29 04:36:37 +02:00
b078a9c8b5
using mixed UnrealIRCd 5 and UnrealIRCd 6 networks. This is a slightly complex rewrite of make_mode_str() and do_mode(), as we nog go from single mode lines to potentially multiple mode lines. In short: whenever we would be near buffer cut-off point (the famous 512 byte limit) then previously we would prevent the mode, though not succesfully in all cases where a network consists of mixed 5.x and 6.x. From this point onward we no longer do that. Instead we convert one MODE command to two MODE lines if that is needed. The benefit of this is that we no longer prevent it BEFORE processing the MODE, which is a flawed method and could be wrong (causing desyncs). And also, we no longer partially ignore MODE lines from clients when they would cause the limit to be exceeded, as we replace them with two MODE lines instead. These are more changes than I wanted at such a late point but.. they seem to be necessary to prevent U5-U6 compatibility issues.