commit ee21112
Simon Ser
·
2021-12-01 11:48:03 +0000 UTC
parent 3904c91
Don't double-enable caps
Some servers might adjust their sasl cap at runtime, e.g.
CAP NEW sasl=PLAIN,EXTERNAL
[…]
CAP NEW sasl=PLAIN
In this case, we don't really want to `CAP REQ sasl` again, because
this will make us re-authenticate a second time.
Avoid requesting caps which have already been ACKed.
1 files changed,
+4,
-2
+4,
-2
1@@ -650,8 +650,10 @@ func (s *Session) handleMessageRegistered(msg Message, playback bool) (Event, er
2 case "NEW":
3 for _, c := range ParseCaps(caps) {
4 s.availableCaps[c.Name] = c.Value
5- _, ok := SupportedCapabilities[c.Name]
6- if !ok {
7+ if _, ok := SupportedCapabilities[c.Name]; !ok {
8+ continue
9+ }
10+ if _, ok := s.enabledCaps[c.Name]; ok {
11 continue
12 }
13 s.out <- NewMessage("CAP", "REQ", c.Name)