This site is deprecated; docs have moved to!


From the makers of InspIRCd.
Revision as of 11:18, 2 October 2007 by Special (Talk | contribs)

Jump to: navigation, search


This page is to provide a general roadmap for future InspIRCd development. It is updated *regularly*, so don't take it as verbatim. IRCd stuff here only, no webpage items, etc. Please note that this page may be quite technically oriented, as it is intended primarily as a developer reference.

1.1.x Releases

  • Allow certain channels to be exempt from m_filter_*, help channels etc
  • Module to scan clients for open proxies (to complement m_dnsbl) (?).

Tracker Items

  • (possibly 1.2?), Bug.png Bug #254 - Allow sqlauth to kill 'ghosts' and/or specify the nick in the password

1.2.0 Release

  • SVSPART (bp to 1.1?) [DONE, BACKPORTED]
  • Stop using local fake clients to force mode changes, use a global one. [DONE]
  • Development/Functors Conversion to use functors [UNDERWAY]
  • Development/UID UUIDs and SIDs. [DONE]
  • Development/ModuleLoader Module factory removal and module loader refactor. [UNDERWAY]
  • Development/RemoteIncludes Remote includes.
  • Development/Extbans Extban infrastructure.
  • Development/Hooking Module hooks redesign.
  • Development/CommandFloodControl Flood control redesign proposal.
  • Development/XLine XLine redesign.
  • Development/Logging Logging overhaul.
  • Server to server protocol 'interface', which is implemented by protocol modules (m_spanningtree) - not sure how this is to work exactly, something like ServerInstance->Remote->SendModeChange(user, "+r"), ServerInstance->Remote->ChangeHost(userrec, "
  • Fix jointhrottle to not try 'throttle' clients during a netmerge (requires changing join event to be aware of netmerge?)
  • (backport?) Perhaps compress mode strings (e.g. so /mode user -x+x-x+x-x+x-x+x-x+x-x+x-x+x doesn't do anything)
  • Don't make binding ports work by port number (i.e. allow 7000 to be plaintext on one IP, SSL on another)
  • userrec::HasPermission -> map of maps, for (even faster) access
  • Create command handlers for spanningtree commands, move commands out into individual files rather than huge .cpps
  • Allow modification of active xlines, see Bug.png Bug #264
  • Gline for lots of excess flooding, see Bug.png Bug #314
  • Hashed passwords for more than just opers, e.g. die and restart, Bug.png Bug #355
  • +P channels and relevent protocol changes (ick!) Bug.png Bug #352
  • SQL logging of XLines Bug.png Bug #357
  • If possible, combine module compilation and linking into one command - from a casual glance and vague test, this should work, and cuts off about 25mb. [DONE]
  • Synching of channel ban details, this would require an entirely now BMASK or whatever command to sync bans, one per line (ick) Bug.png Bug #420
  • (module?) Add the ability to allow or disallow modes for an oper via the oper type; this could, for example, allow certain types to not use some snomasks, or +H, etc, and would also remove the custom flag for m_invisible.

2.0 Release

  • Look at what class and struct fields can be moved to std::string
  • Ability to limit total number of users in a connect class/tag, via total="" (will not be easy)


  • SQL based routing (manage links from mysql db)
  • Web configuration frontend
  • Ability for modules to hook any outbound numeric
  • Development/CAP CAP negotiation.
  • "Virtual hosts" - Server responds based on the dns entry used to connect to the server, different server names, auto joins, motd etc.
  • "Caller ID" Mode - The idea is from Hybrid. (via some form of module maybe) (m_silence_ext can do this pretty much, I'd recommend this for third party - R)
This idea is similar to ignore, or server side blocking via silence. 
Or the Registered users only message mode (+R). 

However it has two forms one for is the following:
A user sets this mode, it blocks all private messages
and alerts the user via notice that somebody attempted to message them and they've blocked it.
(It does NOT tell them the message).

The alert is in the following format Nick (NICK!<ident>@<host>) has messaged you..

The user can continue to ignore the messages (they are not alerted again as far as I know).
Or the have an "Accept List" (via /accept) that allows people online to message them
however when the users are offline, it removes them.

The second form is another mode, that drops all private messages without an accept list
(its called hard caller ID).
Also, in their whois it says they are "Server side ignore (<mode>)" 
  • Allow redirecting a channel in config (add option to ban channel stuff?)