~emersion/soju

fe64c795cda3ecb33a1c68ca91d0d75869226175 — Simon Ser 26 days ago d6fc01e
Use downstreamConn.upstreamForCommand when handling user MODE

Provides uniform error messages.
1 files changed, 4 insertions(+), 8 deletions(-)

M downstream.go
M downstream.go => downstream.go +4 -8
@@ 2012,15 2012,11 @@ func (dc *downstreamConn) handleMessageRegistered(ctx context.Context, msg *irc.

		if dc.casemap(name) == dc.nickCM {
			if modeStr != "" {
				if uc := dc.upstream(); uc != nil {
					uc.SendMessageLabeled(ctx, dc.id, msg)
				} else {
					dc.SendMessage(ctx, &irc.Message{
						Prefix:  dc.srv.prefix(),
						Command: irc.ERR_UMODEUNKNOWNFLAG,
						Params:  []string{dc.nick, "Cannot change user mode on bouncer connection"},
					})
				uc, err := dc.upstreamForCommand(msg.Command)
				if err != nil {
					return err
				}
				uc.SendMessageLabeled(ctx, dc.id, msg)
			} else {
				var userMode string
				if uc := dc.upstream(); uc != nil {