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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
Legend:
x = done
? = unsure
+ = in progress
1.9.1
-----
[ ] Remove modules_unload_all fini + hack that goes with it
[x] signal handling cleanup
[ ] Move a (lot) of stuff to class members as a defined interface rather than copypasta everywhere (ns_set, ns_saset!)
[ ] burn do_sjoin with fire
[x] Seamless fantasy support for all ChanServ commands, instead of requiring bs_fantasy_*
Remaining issues:
? [ ] Allow fantasy to be disabled from some commands (e.g. FORBID?) seems unnecessary, really.
[ ] (think on this carefully): some commands (e.g. !help) need to strip the pre-provided channelname from them.
[ ] (will require wider re-work): allow replies/notifications to fantasy commands to go to the channel via notice
[ ] HelpServ must die (1.9.1?)
[-] Command parser cleanup: mod_current_buffer needs to go away and be replaced by a proper parser. Commands should then indicate how they want the buffer split.
These all need reviewing, remove them from the list _AS YOU GO_. Talk t0 w00t or CBX if you don't know what this is for:
src/core/os_admin.c
src/core/os_akill.c
src/core/os_chankill.c
src/core/os_chanlist.c
src/core/os_clearmodes.c
src/core/os_defcon.c
src/core/os_global.c
src/core/os_help.c
src/core/os_ignore.c
src/core/os_jupe.c
src/core/os_kick.c
src/core/os_mode.c
src/core/os_modinfo.c
src/core/os_modlist.c
src/core/os_news.c
src/core/os_noop.c
src/core/os_oline.c
src/core/os_oper.c
src/core/os_quit.c
src/core/os_raw.c
src/core/os_restart.c
src/core/os_session.c
src/core/os_set.c
src/core/os_sgline.c
src/core/os_sqline.c
src/core/os_staff.c
src/core/os_szline.c
src/modules/cs_appendtopic.c
src/modules/cs_enforce.c
src/modules/cs_tban.c
src/modules/hs_request.c
src/modules/ns_maxemail.c
src/modules/ns_noop_convert.c
src/modules/os_ignore_db.c
src/modules/os_info.c
[ ] Fix permanent channels support properly. This will require removing do_sjoin().
[ ] Make NS ENFORCE/RELEASE stuff more sane, redo timers
[ ] Add support for +k, +q, etc type umodes
[x] Support operoverride and such things (stop reversing mode changes from nonopped people where unnecessary) - done by Liber
1.9.2
-----
[ ] Redo database insanity.
[ ] Move database load/save to a module
[ ] realtime SQL/whatever module using events (possibly ongoing)
[ ] flatfile save on a periodic timer
[ ] SANE password encryption - prefix password with the method it was encrypted with, allowing for *seamless* upgrading to different methods
[ ] Salted SHA256 (contact Special for this)
[ ] New database format (text, not binary - works very well for merging and so on)
[ ] IRCd capability support: don't rely on CAPAB, provide an interface to turn capabilities on specifically
[ ] Socket subsystem needs some serious loving
[ ] Multiple sockets
[ ] Asynchronous, using select() (multiple engines? not really needed..)
[ ] Callbacks, event style, see also inspircd
[ ] Asynchronous DNS?
[ ] CS SET INHABIT to keep pseudoclient in a channel after it empties to maintain banlists and such
[?] Remote identification (1.9.1? will this break stuff?)
[ ] Requires a rejig of how Alias vs Core works
[ ] Language charset stuff, including collation (1.9.1? phoenix?)
Future
------
[ ] 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?)
[ ] generic database routines modules can use to create their own database
[ ] generic way to check which modes a user has set (u->HasUmode(UMODE_OPER))
? [ ] a way for a module to queue itself (or even another module) for unloading
[ ] add overridden form of SendGlobops accepting BotInfo
[ ] SendAkill should just take a pointer to the Akill class instead of millions of fields (same for some other stuff)
[ ] chan_set_modes should take BotInfo, possibly with override for User *?
[ ] 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
[ ] Last used time on AKICK/access entries
[ ] Channel access additions
[ ] Method to store listmodes (more generically than AKICK, too) for e.g. +beI and extbans, etc.
[ ] Setter
[ ] Time added
[ ] Time modified
[ ] Expiry (useful?)
[ ] Set forbidden channels +s
[ ] 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)
XXX: is SUSPEND overlapping with OS IGNORE functionality?
[ ] Merge NS INFO blah ALL with NS INFO blah, if you're requesting info, you really want the info anyway.
? [ ] Channel passwords seem to be of limited use, think of a more appropriate way to handle this
? [ ] 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
[ ] AKILL/SGLINE/etc..
[ ] Setter
[ ] Time added
[ ] Time modified (can they be modified?)
[ ] Time until expiry/expiry time (YES, time until expiry *instead of* expiry time, more human)
[ ] 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)
[ ] Settable oper flags (split into types containing privs+commands, allow each oper to be set to a type, like we do with insp?)
[ ] NS MARK, CS MARK. Allow multiple marks. Combine into OS MARK?
[ ] General options block, ability to turn LOGCHAN on from the config file..
[ ] Method to list suspended/forbidden nicks/channels?
? [ ] 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)")
? [ ] Review settings like NSModeOnID for whether they actually have a point existing (Rob says it does not - and that it should probably be a nickname setting)
? [ ] OS INJECT
? [ ] Drop CS SET ENTRYMSG, replace with a 'news' type system? (limited to a configured number of items, default 3)
|