[NeoStats-Devel] Protocol updates
"M" <[email protected]>
| Newsgroups | gmane.comp.neostats.devel |
|---|---|
| Message-ID | <[email protected]> |
I am currently in the process of adding more core side protocol support to further reduce the overhead on protocol modules. Once complete, protocol modules will become more "modifiers" of the core support rather than having to implement all of the protocol code themselves. This is an extension of changes made throughout the 3.0 series to make protocol coding easier and represents the final set of changes planned for 3.0 protocol support. The current changes are in two areas: Mode support: Some modes are common to all ircds so these are now provided core side with the protocol specific mode table becoming additional options rather than authoritive. Before anyone cries "my ircd redefines chanop as some weird mode which breaks every standard for IRC ever written", the system also provides for this since by providing the mode you wish to override and a zero value for the mode flag will effectively cancel the default setting. No ircd currently needs this, but neostats is thus future proofed against the possibility with the new system. It is limited in what it can offer protocol modules but provides a base for future extensions if necessary. Send command support: NeoStats will be able to access the messages and tokens required to send ircd commands so can provide default functions for the majority of ircds that support standard protocols. This will reduce the code overhead for all ircds with the obvious exception of IRCu P10 and derivatives. In addition, the entire system is currently optional. A protocol module can choose to manage itself completely by not providing the symbols needed by NeoStats to generate the core side support. At present, Unreal 3.2 is the only protocol to utilise the new system and does so in a very minor manner. Other protocols will be ported in due course but the optional nature of the system means that both the original 3.0 format and the work in progress one will live happily together for the time being. Once complete, we have the ideal opportunity to extend NeoStats ircd message processing to the maximum possible range with the least amount of code. Bug fixing of this will mainly involve providing appropriate protocol module overrides where a protocol differs from the expected message syntax. I am confident that this will help us to provide one of the most versatile and comprehensive protocol support systems in any services package. Once IRCu changes are complete and integrated, there will likely be another set of changes related to IRCu P10 so that we can provide a similar simplistic protocol support for this rather different approach to IRCd. Mark.