View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0004322||unreal||module api||public||2014-07-29 22:09||2015-07-12 17:25|
|Target Version||3.4-alpha3||Fixed in Version||3.4-beta1|
|Summary||0004322: modularize CAP|
|Description||For some unknown reason (probably lazyness) CAP is written entirely in a module rather than a decent modular system like user modes, channel modes, snomasks, etc... this is wrong.|
This CAP thing needs to be moved to the module system, and at the same time the usual nenobugs need to be fixed...
|Additional Information||Right now CAP has a memory leak|
|Tags||No tags attached.|
|3rd party modules|
||I'll try to tackle this one was my next "big project" :)|
As mentioned on irc, sasl is not advertised even though sasl-server is linked properly. Based on my simple check m_sasl_caplist function is not called by HOOKTYPE_CAPLIST. Further investigation leads me to clicap_build_list function in m_cap.c being called only in MOD_LOAD which is causing this problem.
EDIT: Such implementation does not constantly check if sasl-server is linked hence defeated the purpose of m_sasl_caplist.
Extra note: Current cap implementation does not support cap-based modules to be unloaded properly.
SASL in CAP was probably broken by this commit: https://github.com/unrealircd/unrealircd/commit/d540adbc7f1d9bb6d2d2a1be5dbe096b8ba48742
(which fixed another issue, a memleak)
The idea of HOOKTYPE_CAPLIST was (duh..) to be called when a cap list was requested.
...but all of that is/was just more of a hack until CAP was properly in the module system.
I think I'd rather like to see that happen rather than trying to fix this bug by another hack. Travis, if you are working on it, great :) [though the oper priv system is more important :D]
||oh. comment updated above ^^ :D|
I'll work on this one in the weekend (probably Sunday)
Is now in the module system:
Maybe someone could test with an actual client (tested from nc only).
|2014-07-29 22:09||syzop||New Issue|
|2014-08-18 04:56||tmcarthur||Note Added: 0018221|
|2014-08-18 04:56||tmcarthur||Assigned To||=> tmcarthur|
|2014-08-18 04:56||tmcarthur||Status||new => acknowledged|
|2015-05-21 02:58||dboyz||Note Added: 0018320|
|2015-05-21 03:00||dboyz||Note Edited: 0018320||View Revisions|
|2015-05-21 19:43||syzop||Note Added: 0018323|
|2015-05-21 19:44||syzop||Note Edited: 0018323||View Revisions|
|2015-05-21 19:46||syzop||Note Edited: 0018323||View Revisions|
|2015-05-21 19:47||syzop||Note Added: 0018324|
|2015-05-21 19:47||syzop||Note Edited: 0018323||View Revisions|
|2015-05-21 19:50||syzop||Target Version||3.4-alpha2 => 3.4-alpha3|
|2015-07-10 22:05||syzop||Note Added: 0018475|
|2015-07-10 22:05||syzop||Assigned To||tmcarthur => syzop|
|2015-07-10 22:05||syzop||Status||acknowledged => assigned|
|2015-07-12 17:25||syzop||Note Added: 0018477|
|2015-07-12 17:25||syzop||Status||assigned => resolved|
|2015-07-12 17:25||syzop||Fixed in Version||=> 3.4-beta1|
|2015-07-12 17:25||syzop||Resolution||open => fixed|
|2017-01-06 15:48||syzop||Category||module => module api|