Development/Roadmap/2.0
From the makers of InspIRCd.
See Roadmap for features planned or implemented in later versions.
Finished in 2.0
- New modules
- m_autoop - basic channel access control via the +w listmode (+w o:R:Brain will op anyone with the account "Brain" on join)
- m_chanhistory - replay last N lines of messages on join
- m_channames -
Bug #883: Module to disable certain characters in channel names, can be annoying due to colourcodes etc.
- m_customprefix - Allows the creation of custom channel prefixes such as +V. Can replace m_halfop and m_chanprotect.
- m_delaymsg - prevent messaging immediately on join
- m_exemptchanops - Channel mode +X, per-channel list of modes that do not enforce their limits on channel ops
- m_halfop - halfop is now a module; core no longer references halfop on error messages if not loaded.
- m_namedmodes - display of long-form names for all currently set modes, and allow set/unset via these long names (part of future planned optional letters for some modes)
- m_ojoin - OJOIN "network buisness" join alternative to operoverride
- m_passforward - Forward server password to nickserv on connect
- Removed modules
- m_antibear, m_antibottler, m_invisible - moved to third-party
- m_operinvex - merged with m_opermodes
- m_rpc_json and m_rpctest - removed (did not provide any user-visible services)
- m_safelist - not needed with the new flexible sendQ
- m_spy - not needed with permissions introduced in 1.2
- m_sqlutils - not needed with SQLv3 (did not provide any user-visible services)
- m_sqllog - removed; hard-coded logging interface which should be in third-party, and was not converted to SQLv3
- m_ziplink - removed; not needed as SSL links provide compression and encryption
- Extended ban improvements
- Stacking of "action" and "match" types - this allows "+b m:r:*bot*" to mute all users with "bot" in gecos
-
Bug #752: Allow all matching extbans to be used in invex
- Add channel status to channelban, so that +e j:@#foo can exempt ops in #foo only
- <autoconnect> block: simplify chained failovers, and prevent some possible incorrect hub creation -- related to
Bug #689: Looping failovers can cause bad issues
- SendQ/RecvQ improvements
- Allow command flood parameters to be set (<connect commandrate="2000" threshold="10" fakelag="yes"> allows 2 commands per second, with a burst of up to 10 before fakelag is applied)
- split sendq limit into soft/hard limits, where the user is prevented from issuing commands if they are over the soft limit
- Eliminates the need for SAFELIST by allowing much higher hard limit without allowing users to abuse the server by flooding themselves.
- Faster internal management of queues (fewer copies, edge-triggered epoll)
- motd, rules, and other files can be pulled from executable output with <execfiles> -
Bug #539
- Connect block improvements
-
Bug #795: <connect:modes> doesn't check all connect tag attributes
-
Bug #768: Way to specify requireident/requiressl for <connect> blocks (and requireaccount for SASL)
- Allow <connect> blocks with duplicate masks (just differing ports or other criteria) and with no mask (for use in <oper class="">/<type class="">)
- Allow DNSBL and GEOIP to do matching to connect blocks
- Allow motd/rules files to be specified in connect block
-
- New cloaking modes that give shorter hex strings with more granularity (especially with IPv6)
-
Bug #683: option to zline on rline match
- Remove SID from /map for non-opers.
-
Bug #675: seperate spy channels in whois
- Optional variable substitution of XML entities (&foo;) in configuration using <define name="foo" value="bar">
- Be able to override opertype fields for individual opers using <oper vhost="" class="" ...>
- Improve directory structure on installation
- Support system-wide installation as root
- All paths are relative to the running directory, not config or bin
- Object file location can be specified for read-only source tree or in-place compile/install
-
Bug #676: send module load/unload notifications to other servers
- Proper dependency checking in the build system; remove ./configure -modupdate
- Correct mode merging on netburst
- New SQL API that allows multiple SQL modules to be loaded
- Allow m_sqloper to specify a query string to determine oper host/type from username/password/userinfo
- Fully IPv4/IPv6-independent code
- <bind address="*"> will bind to both IPv4 and IPv6, if your OS supports it. Use <bind address="::"> and <bind address="0.0.0.0"> to bind to wildcard addresses on IPv6 and IPv4 alone.
- Protocol enhancements
- Negotiated backwards compatibility for linking to 1.2 servers/services
- Allow modules to specify how their commands should be routed
- Use ENCAP for most module commands so we have fewer forced capabilities
- Modules using only ENCAP and METADATA can mark themselves VF_OPTCOMMON so that it is possible to load them on only part of the network
- SAVE for nick collisions (fix complex handling of SVSNICK)
- AWAY time notification: :AAAAAAAA AWAY 123456789 :away message here
- Unify cmd_*.so and m_*.so interfaces so that we don't need two codepaths for that. Eliminates /RELOAD, use /RELOADMODULE cmd_nick.so
- Channel::GetStatus() includes all prefixes, so you can notice ~#chan, and +q implies +a implies +o
- Internal changes
- Clarify module hook return values by changing from -1/0/1 to ModResult
- Development/ChannelMembership Channel membership object
- Development/ExtensionItem Registration and automatic cleanup of Extensible extensions
- Configuration tags and other common objects are reference counted
- User class is split between local/remote
- Replace the ubiquitous ServerInstance pointers with references to the Module creating an object
- Automatic cleanup of module-added services - must use init() to register.

















