SASL extension no longer works
SASL.caps returns immediately during registration because self.mechanisms is empty. self.mechanisms is empty because the connected event hasn't fired when CAP registration is occurring. Yet, it needs to be done every connection because disconnect clears the state.
I can think of a few ways to fix this:
- Call
_create_mechanisms
in__init__
as well. - Set the priority of the connected event in SASL to lower than CapNegotiate's.
- Make the mechanism list static and use a different list for filtering ones the server doesn't support.
- Maybe something else.
What say you, @Elizafox?