View Issue Details

IDProjectCategoryView StatusLast Update
0004322unrealmodule apipublic2015-07-12 17:25
Reportersyzop Assigned Tosyzop  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version3.4-alpha1 
Target Version3.4-alpha3Fixed in Version3.4-beta1 
Summary0004322: modularize CAP
DescriptionFor 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 InformationRight now CAP has a memory leak
TagsNo tags attached.
3rd party modules

Activities

tmcarthur

2014-08-18 04:56

reporter   ~0018221

I'll try to tackle this one was my next "big project" :)

dboyz

2015-05-21 02:58

reporter   ~0018320

Last edited: 2015-05-21 03:00

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.

syzop

2015-05-21 19:43

administrator   ~0018323

Last edited: 2015-05-21 19:47

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]

syzop

2015-05-21 19:47

administrator   ~0018324

oh. comment updated above ^^ :D

syzop

2015-07-10 22:05

administrator   ~0018475

I'll work on this one in the weekend (probably Sunday)

syzop

2015-07-12 17:25

administrator   ~0018477

Is now in the module system:
https://github.com/unrealircd/unrealircd/commit/372ce82335d56f642ab1131fe5b4e2fa7143211b
https://github.com/unrealircd/unrealircd/commit/7e78f0405812a38c157f68178afaa1025131e2a2

Maybe someone could test with an actual client (tested from nc only).

Issue History

Date Modified Username Field Change
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
2015-05-21 19:43 syzop Note Added: 0018323
2015-05-21 19:44 syzop Note Edited: 0018323
2015-05-21 19:46 syzop Note Edited: 0018323
2015-05-21 19:47 syzop Note Added: 0018324
2015-05-21 19:47 syzop Note Edited: 0018323
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