RageIRCd v2.0 (bluemoon): TODO List
-----------------------------------

$Id: TODO,v 1.195.2.1 2005/02/21 02:32:45 amcwilliam Exp $
(C) 2000-2005 the RageIRCd Development Team, all rights reserved.

High Priority (beta 8)
======================

None!

Normal Priority (2.0)
=====================

None!

Low-to-No Priority (2.1, 2.2, etc.)
===================================

- module API version 7
    o) Remove useless info string
    o) Add bitmask field for flags, rather than having to use MOD_SET_FLAG() macros.
    o) object registration via tables

- strlcpy integration
  --> see strncpyzt() macro

- Client bandwidth saving mode for /away clients? User or chan mode? Both?

- CHANMODES and USERMODES capab

- Conf3
    o) Convert to flat, generic, table-based parsing
    o) allow modules to create completely new blocks as well as elements
       within existing blocks
    o) ... etc :)

- Revert some ircd.conf variables to be on by default, flipping the
  variable to no_* or disable_* etc.
  --> can be done in conf3

- Convert char* link->host to ConfigFrom link->from, and add inet based
  connect authorisation, similar to allow{} client checks

- Completely eradicate SLink usage (replace with slink_node?)
  --> Lists we don't traverse backwards can be moved from dlink to slink too

- Step away from libcrypt in favour of the builtin crypt library from hyb7

- Add dynamic parameter table to Mode structure [XMODE phase 2]
  --> Replace existing Mode structure?

- Add a global server list (perhaps redo global client list too)
  --> Depends where and why 'client' is used across the source tbh.

- Sort out standard header files looked up by configure.

- Rewrite flud, move to module

- Rewrite throttle, move to module, integrate into IPHash?

- Convert more code to modules (ie, channel mode subsystem)

- Generic CIDR support to integrate into different things.
  --> Atm only user_ban.c can tell the difference between a host
      and a wild-IP and cidr, etc. etc.

- Extend dynamic module support:
    o) Darwin/MacOS X using NSModule
    o) HP-UX using shl_load
    o) Windows using DLLs (can this be done on cygwin?)

- Change servinfo::default-bind-ip and link::bind-ip variables to 
  default-bind-address and bind-address respectively, and modify them to
  accept hostnames as well as ip addresses. (Similar to link::from).

- Refinements to parsing engine, splitting command hash table in two; one
  for clients, and one for servers. This has been successfully achieved
  in bahamut-devel (former 1.6), but would require extensive recodes.

- Add bahamut-release style "conf merging" when rehashing. Similar to the 
  way dynconf is done, but for all conf.

- IPv6 support. (Backport from bahamut-inet6 effort?)
  --> IPv4 is around for another ~20 years, so do we need this yet?

- Rework exit_client() and company.

- Server statistics output. Probably via HTML/JavaScript, PHP, or even
  server-side SQL database. Similar to OperStats. Could even be done
  through a custom module and hooks?
  --> contrib perhaps
  --> can be done as a 3rd party module sometime

- flat-file language translations

************************************************
* Got an idea? Tell us! http://rageircd.sf.net *
************************************************

End of document.
