Changeset 296 in code for trunk/downstream.go


Ignore:
Timestamp:
May 27, 2020, 9:42:38 PM (5 years ago)
Author:
delthas
Message:

Update downstream nicks in single-server mode and after NICK

Previously, the downstream nick was never changed, even when the
downstream sent a NICK message or was in single-server mode with a
different nick.

This adds support for updating the downstream nick in the following
cases:

  • when a downstream sends NICK
  • additionally, in single-server mode:
    • when a downstream connects and its single network is connected
    • when an upstream connects
    • when an upstream sends NICK
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/downstream.go

    r293 r296  
    618618                        dc.unsetSupportedCap(cap)
    619619                }
     620        }
     621}
     622
     623func (dc *downstreamConn) updateNick() {
     624        if uc := dc.upstream(); uc != nil && uc.nick != dc.nick {
     625                dc.SendMessage(&irc.Message{
     626                        Prefix:  dc.prefix(),
     627                        Command: "NICK",
     628                        Params:  []string{uc.nick},
     629                })
     630                dc.nick = uc.nick
    620631        }
    621632}
     
    778789        })
    779790
     791        dc.updateNick()
     792
    780793        dc.forEachUpstream(func(uc *upstreamConn) {
    781794                for _, ch := range uc.channels {
     
    936949                        uc.SendMessage(msg)
    937950                })
     951
     952                if dc.upstream() == nil && dc.nick != nick {
     953                        dc.SendMessage(&irc.Message{
     954                                Prefix:  dc.prefix(),
     955                                Command: "NICK",
     956                                Params:  []string{nick},
     957                        })
     958                        dc.nick = nick
     959                }
    938960        case "JOIN":
    939961                var namesStr string
Note: See TracChangeset for help on using the changeset viewer.