Changeset 540 in code for trunk/upstream.go


Ignore:
Timestamp:
May 25, 2021, 6:24:45 PM (4 years ago)
Author:
contact
Message:

Add support for IRCv3 setname

References: https://todo.sr.ht/~emersion/soju/41

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/upstream.go

    r526 r540  
    3030        "multi-prefix":     true,
    3131        "server-time":      true,
     32        "setname":          true,
    3233}
    3334
     
    733734                        })
    734735                }
     736        case "SETNAME":
     737                if msg.Prefix == nil {
     738                        return fmt.Errorf("expected a prefix")
     739                }
     740
     741                var newRealname string
     742                if err := parseMessageParams(msg, &newRealname); err != nil {
     743                        return err
     744                }
     745
     746                // TODO: consider appending this message to logs
     747
     748                if uc.isOurNick(msg.Prefix.Name) {
     749                        uc.logger.Printf("changed realname from %q to %q", uc.realname, newRealname)
     750                        uc.realname = newRealname
     751
     752                        uc.forEachDownstream(func(dc *downstreamConn) {
     753                                dc.updateRealname()
     754                        })
     755                } else {
     756                        uc.forEachDownstream(func(dc *downstreamConn) {
     757                                dc.SendMessage(dc.marshalMessage(msg, uc.network))
     758                        })
     759                }
    735760        case "JOIN":
    736761                if msg.Prefix == nil {
Note: See TracChangeset for help on using the changeset viewer.