summaryrefslogtreecommitdiff
path: root/irc/session.go
diff options
context:
space:
mode:
Diffstat (limited to 'irc/session.go')
-rw-r--r--irc/session.go26
1 files changed, 16 insertions, 10 deletions
diff --git a/irc/session.go b/irc/session.go
index 1a9b659..0776436 100644
--- a/irc/session.go
+++ b/irc/session.go
@@ -62,11 +62,12 @@ var SupportedCapabilities = map[string]struct{}{
"sasl": {},
"setname": {},
- "draft/chathistory": {},
- "draft/event-playback": {},
- "draft/read-marker": {},
- "soju.im/bouncer-networks": {},
- "soju.im/search": {},
+ "draft/chathistory": {},
+ "draft/event-playback": {},
+ "draft/read-marker": {},
+ "soju.im/bouncer-networks-notify": {},
+ "soju.im/bouncer-networks": {},
+ "soju.im/search": {},
}
// Values taken by the "@+typing=" client tag. TypingUnspec means the value or
@@ -1336,11 +1337,16 @@ func (s *Session) handleMessageRegistered(msg Message, playback bool) (Event, er
break
}
id := msg.Params[1]
- attrs := parseTags(msg.Params[2])
- return BouncerNetworkEvent{
- ID: id,
- Name: attrs["name"],
- }, nil
+ event := BouncerNetworkEvent{
+ ID: id,
+ }
+ if msg.Params[2] != "*" {
+ attrs := parseTags(msg.Params[2])
+ event.Name = attrs["name"]
+ } else {
+ event.Delete = true
+ }
+ return event, nil
case "PING":
var payload string
if err := msg.ParseParams(&payload); err != nil {