Changeset 83 in code for trunk/upstream.go


Ignore:
Timestamp:
Mar 6, 2020, 5:51:11 PM (5 years ago)
Author:
contact
Message:

Pass-through QUIT messages

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/upstream.go

    r82 r83  
    191191                }
    192192        case "NICK":
     193                if msg.Prefix == nil {
     194                        return fmt.Errorf("expected a prefix")
     195                }
     196
    193197                var newNick string
    194198                if err := parseMessageParams(msg, &newNick); err != nil {
     
    281285                        })
    282286                }
     287        case "QUIT":
     288                if msg.Prefix == nil {
     289                        return fmt.Errorf("expected a prefix")
     290                }
     291
     292                if msg.Prefix.Name == uc.nick {
     293                        uc.logger.Printf("quit")
     294                }
     295
     296                for _, ch := range uc.channels {
     297                        delete(ch.Members, msg.Prefix.Name)
     298                }
     299
     300                if msg.Prefix.Name != uc.nick {
     301                        uc.forEachDownstream(func(dc *downstreamConn) {
     302                                dc.SendMessage(&irc.Message{
     303                                        Prefix:  dc.marshalUserPrefix(uc, msg.Prefix),
     304                                        Command: "QUIT",
     305                                        Params:  msg.Params,
     306                                })
     307                        })
     308                }
    283309        case irc.RPL_TOPIC, irc.RPL_NOTOPIC:
    284310                var name, topic string
Note: See TracChangeset for help on using the changeset viewer.