View Issue Details

IDProjectCategoryView StatusLast Update
0004131unrealmodule apipublic2013-05-20 19:33
Reportersyzop Assigned Tonenolod 
PrioritynormalSeverityfeatureReproducibilityN/A
Status resolvedResolutionfixed 
Product Version3.2.10-rc1 
Fixed in Version3.4-alpha1 
Summary0004131: modulize client CAP system
DescriptionModulize the new CAP system, so modules can add/remove clicap's... similar to how ISupport, User Modes, and so on are modulized.
This means moving part of m_cap.c to the core.

** OLD STUFF, ALREADY DONE IN 0004104: **
Additionally, when at it, add the possibility to disable SASL.

Also add the possibility to disable CAP altogether.

Since all those happen pre-auth, if a serious (crash)bug has been found it should be possible to quickly disable the feature.
TagsNo tags attached.
3rd party modules

Relationships

related to 0004104 resolvedsyzop modulize client CAP system & add disable options 
child of 0004188 closed Unreal 3.4 alpha1 blockers 

Activities

nenolod

2012-10-15 15:27

reporter   ~0017166

idea: enable sasl conditionally based on whether or not services requests it in PROTOCTL. thoughts?

this would allow clients to skip trying to do SASL auth on networks which don't support it (such as anope networks).

syzop

2012-10-15 15:27

administrator   ~0017167

Yes, good point.
Because right now with SASL, the client just waits for XX seconds and times out?

nenolod

2012-10-15 15:27

reporter   ~0017168

actually, this wouldn't work because we don't share global capability data. i guess it would need to be a setting. :)

obviously the real fix here is for anope to implement SASL support, but they probably won't do that for a while.

syzop

2012-10-15 15:27

administrator   ~0017169

Well, SASL is an option, it's not mandatory for services to implement. And, of course, there are also servers (and networks) without services.

In any case, this new feature shouldn't cause a delay for networks that don't use SASL-capable services.
Perhaps we should just default it to off, and have the admin enable it explicitly.
Auto-discovery is also an option, but I really get the feeling that we are making things overcomplicated then.

(If a network does use SASL-capable services and they are temporarily down and you get a delay then.. so be it.. but if you never have SASL-capable services connected, the delay is just a waste)

nenolod

2012-10-15 15:27

reporter   ~0017170

perhaps a fix with sasl is to specify a sasl_server option. this could avoid auto-discovery of sasl agents.

syzop

2012-10-15 15:27

administrator   ~0017171

What I have in mind is something like set::enable-sasl yes/no or set::options::sasl.
What is also possible is set::sasl-server <servername>. Only if this is specified enable SASL. And no longer use SERVICES_SERVER for this.

Is that last option what you meant? Or something else?

syzop

2012-10-15 15:27

administrator   ~0017172

http://hg.unrealircd.com/hg/unreal/rev/8db85bd24b93
- SASL now needs to be enabled explicitly by setting a set::sasl-server.
  If this is not set, then SASL is off and not advertised.
  If the specified server is not connected, then SASL is off as well.
  This prevents unnecessary delay (and the inability for some clients to
  get online) when SASL is not in use or when the SASL server is down.


I realized it would be good to not advertise SASL when the sasl server is down, so that required adding some hacks (which are necessary whether CAP gets modulized or not). Clients such as KVIrc are unable to get online if SASL is advertised and the SASL server does not respond.

The original target for this bug, the modulization of CAP, still needs to be done.

nenolod

2012-10-15 15:27

reporter   ~0017173

set::sasl-server is a good approach, indeed.

i'm going to add this to charybdis as a hint for advertising the sasl capability i think :)

syzop

2012-10-15 15:27

administrator   ~0017174

the disable feature is assigned to me, mandatory for 3.2.10.
the modularization is not a release target, and not assigned to me.

syzop

2012-10-15 15:29

administrator   ~0017176

This issue now tracks the modularization of CAP, which would be nice to have one day, but isn't urgent.

nenolod

2013-05-20 19:33

reporter   ~0017641

Modular CAP framework added:
http://hg.unrealircd.org/hg/unreal/rev/2d6ad56b647c

SASL CAP ownership moved to m_sasl:
http://hg.unrealircd.org/hg/unreal/rev/944c173bcfbf

TLS CAP ownership moved to m_starttls:
http://hg.unrealircd.org/hg/unreal/rev/15cf781c588b

Issue History

Date Modified Username Field Change
2012-10-15 15:27 syzop New Issue
2012-10-15 15:27 syzop Status new => assigned
2012-10-15 15:27 syzop Assigned To => syzop
2012-10-15 15:27 syzop Issue generated from: 0004104
2012-10-15 15:29 syzop Note Added: 0017176
2012-10-15 15:29 syzop Status assigned => acknowledged
2012-10-15 15:29 syzop Summary modulize client CAP system & add disable options => modulize client CAP system
2012-10-15 15:29 syzop Description Updated
2012-10-15 15:30 syzop Relationship added related to 0004104
2012-10-15 15:30 syzop Description Updated
2012-10-16 11:08 syzop Assigned To syzop =>
2013-05-20 19:33 nenolod Note Added: 0017641
2013-05-20 19:33 nenolod Status acknowledged => resolved
2013-05-20 19:33 nenolod Fixed in Version => 3.4-alpha1
2013-05-20 19:33 nenolod Resolution open => fixed
2013-05-20 19:33 nenolod Assigned To => nenolod
2013-05-20 19:33 nenolod Relationship added child of 0004188
2017-01-06 15:48 syzop Category module => module api