summaryrefslogtreecommitdiff
path: root/docs/TODO
blob: 8fb8a8b3aafce4f5fd352b422cf7270c658ea18a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Legend:
	x = done
	? = unsure
	+ = in progress

1.9.2
-----
[x] Redo database insanity.
  [x] Move database load/save to a module
    [x] realtime SQL/whatever module using events (possibly ongoing)
    [x] flatfile save on a periodic timer
    [x] SANE password encryption - prefix password with the method it was encrypted with, allowing for *seamless* upgrading to different methods
    [x] Salted SHA256 (contact Special for this)
  [x] New database format (text, not binary - works very well for merging and so on)
[x] generic database routines modules can use to create their own database
[?] IRCd capability support: don't rely on CAPAB, provide an interface to turn capabilities on specifically
[x] Socket subsystem needs some serious loving
  [x] Multiple sockets
  [x] Asynchronous, using select() (multiple engines? not really needed..)
  [x] Callbacks, event style, see also inspircd
[x] generic way to check which modes a user has set (u->HasUmode(UMODE_OPER))
[x] way for one module to depend on another... not like 2 MOD_HEADs and it being unpredictable which is loaded first..
    the MOD_HEAD MOD_TAIL allows for too few combinations (interface code of insp, hooks code of insp?)
[x] Last used time on AKICK/access entries
[x] Channel passwords seem to be of limited use, think of a more appropriate way to handle this
[+] General options block, ability to turn LOGCHAN on from the config file..
[x] Docs directory cleanup
[x] Fix permanent channels support properly
[x] CS SET INHABIT to keep pseudoclient in a channel after it empties to maintain banlists and such
[x] Set forbidden channels +s
[x] SendAkill should just take a pointer to the Akill class instead of millions of fields (same for some other stuff)
[x] burn do_sjoin with fire
[x] Channel access additions
  [x] Setter
  [x] Last used

Future
------
[ ] Asynchronous DNS
[ ] CIDR Akills, session exceptions, etc
[ ] Hashing system for storing just about everything needs to die
[ ] Move a (lot) of stuff to class members as a defined interface rather than copypasta everywhere (ns_set, ns_saset!)
[?] Remote identification (1.9.1? will this break stuff?)
[ ] Language charset stuff, including collation (1.9.1? phoenix?)
[ ] Add support for +k, +q, etc type umodes
[ ] fantasy: allow replies/notifications to fantasy commands to go to the channel via notice
[?] a way for a module to queue itself (or even another module) for unloading
[ ] Language system is disgusting, it must die.
  [ ] Modules should also have a way to add strings programatically
  [ ] Should be able to add many strings by dropping a file in a set location.
  [ ] I forsee this working via a function rather than defines, as it seems to do now: e.g. _("NS_NICK_IS_REGISTERED").
[?] Update help to reflect the fact /msg memoserv set notify mail - works just fine ;)
[ ] Useful/common "third party" modules to core distro
  [ ] NS AJOIN
[+] Method to store listmodes (more generically than AKICK, too) for e.g. +beI and extbans, etc.
[ ] Channel access additions
  [ ] Time added
  [ ] Time modified
  [ ] Expiry (useful?)
[ ] NS INFO: seperate field for last seen realhost, shown to SRA only
[ ] NS SUSPEND: show suspender and reason, probably to sopers only (see CS SUSPEND)
[ ] Merge NS INFO blah ALL with NS INFO blah, if you're requesting info, you really want the info anyway.
[?] Don't allow soper accounts to expire
[?] Reason for CS SET RESTRICTED
[ ] NS IDENTIFY changes
  [?] Last failed identify? Maybe more useful for sopers only, so users don't get unnecessarily worried
  [?] Last successful login time/ip? perhaps both of these should be a new nick setting
[x] AKILL/SGLINE/etc..
  [x] Setter
  [x] Time added
  [+] Time modified (can they be modified?)
  [ ] Time until expiry/expiry time (YES, time until expiry *instead of* expiry time, more human)
  [x] Reason
  [ ] Unique IDs on each AKILL/blah so that networks may use them as ticket IDs
[ ] HS ACTIVATE -ALL (rob sez this all needs reviewing)
[?] NS MARK, CS MARK. Allow multiple marks. Combine into OS MARK? (AKA os_info)
[?] MS IGNORE. Make it take nick (accounts) or n!u@h masks. Fake success of memo send still, but send to opers?
[?] More "friendly" date displays of some things like registration time ("November 7th 2006 (2 years, 0 months, 0 days ago)")
[?] OS INJECT
[?] Drop CS SET ENTRYMSG, replace with a 'news' type system? (limited to a configured number of items, default 3)