This site is deprecated; docs have moved to!


From the makers of InspIRCd.
Revision as of 12:43, 11 May 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) (?).
  • (possibly 1.2?) Fix jointhrottle to not try 'throttle' clients during a netmerge

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

  • 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=""
  • Don't make binding ports work by port number (i.e. allow 7000 to be plaintext on one IP, SSL on another)
  • 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, "
  • Removal of module factories, they're kinda useless.. :P
  • Remote includes, via a module (probably utilising m_httpd/m_http_client)
  • Extban infrastructure. Extbans are proposed to look like: typechar:banmask, for example: r:[email protected]#alternativechan for banredirect.
  • Ability for modules to hook any outbound numeric
  • Restructure of module hooking events to use a hashtable (each event has a 'bucket', which contains a chain of Module * hooking the event) for marginally faster access, and to make it easier to understand
  • XLine overhaul to make the creation of new lines (CBAN etc) easier
  • XLine application overhaul (in addition to the above), have a queue of lines to apply rather than re-applying all lines of a given type on adding a new one. This would provide major speed gains for networks with a lot of bans.
  • Logging overhaul away from the current global 'level' of logging (debug, default, sparse, etc) to a bitmask of enabled types (servertoserver, servertoclient, xline, connect, disconnect, the possibilities are endless ;p). With this, I'd also like to suggest the possibility of different logging *destinations* for different types, i.e. <> foo connected on blah (privmsg to a channel), or possibly for modules to hook to log to a db, etc.
  • 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
  • UUIDs!:
[22:37:37] <Brain> heres what i came up with, basically rehash of what we came up with before i think:
[22:37:48] <Brain> id looks like: 0AABBBB
[22:37:56] <Brain> the 0 is always a 0, differentiates it from a nick
[22:38:14] <Brain> the AA is the server ID, each char can be A-Z which gives us (i think) about 676 possible id's
[22:38:22] <Brain> determined from a hash function of the server name
[22:38:34] <Brain> the BBBB is the users file descriptor in hex, 0...65535
[22:38:39] <Brain> sound good? :P
[22:38:51] <Brain> (and yeah stick that on the roadmap, i think we'll easily fit it in) :p
[22:39:19] <w00t[notbnc> 26x26
[22:39:28] <Brain> 676 isnt it, or round abouts
[22:39:29] <w00t[notbnc> 676
[22:39:52] <Brain> if we also allow 0-9 that boosts it further still
[22:40:13] <Brain> but basically the server admin wont need to specify it except on the rare occaision he/she gets a hash collision
[22:40:31] <w00t[notbnc> eh
[22:40:38] <w00t[notbnc> wouldnt it make it easier to make server admins specify them?
[22:40:42] <Brain> no
[22:41:00] <Brain> its just a pain in the neck of having to instruct just about every user to make them different
[22:41:13] <Brain> i bet you saw the mess newbies get in on unreal-support with server numerics :D
[22:41:27] <Brain> imho, if the value isnt specified, we should create it from a hash of the server name
On collide, the new server is ERROR'd off.
  • SQL based routing:
(13:22:28) PingBad: quick q: is there support for sql-based routing?
(13:22:39) PingBad: that is, manage links via a MySQL db?
(13:22:56) PingBad: or PostgreSQL, whatever makes the heart pulpitate
(13:23:09) Brain | PC Fixed!... ish: not atm
(13:23:13) Brain | PC Fixed!... ish: i never thought of that
(13:23:15) Brain | PC Fixed!... ish: smart idea.
  • Web configuration frontend

Tracker Items

  • Allow modification of active xlines, see Bug.png Bug #264