From fbcda7b963da23f616c9833fad98091c527eb26b Mon Sep 17 00:00:00 2001 From: jacob1 Date: Mon, 29 Apr 2024 20:58:03 -0400 Subject: [PATCH] Fix missing prefix on away numerics This fixes for example, being unable to use /back after going /away in hexchat. Hexchat is unable to parse the 305/306 numerics without the prefix, so assumes you aren't away, and doesn't let you run /back --- downstream.go | 4 ++-- irc.go | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/downstream.go b/downstream.go index 20e6f7b..7627941 100644 --- a/downstream.go +++ b/downstream.go @@ -752,7 +752,7 @@ func (dc *downstreamConn) handleMessageUnregistered(ctx context.Context, msg *ir dc.away = nil } - dc.SendMessage(ctx, generateAwayReply(dc.away != nil)) + dc.SendMessage(ctx, generateAwayReply(dc.away != nil, dc.srv.prefix())) default: dc.logger.Debugf("unhandled message: %v", msg) return newUnknownCommandError(msg.Command) @@ -2583,7 +2583,7 @@ func (dc *downstreamConn) handleMessageRegistered(ctx context.Context, msg *irc. dc.away = nil } - dc.SendMessage(ctx, generateAwayReply(dc.away != nil)) + dc.SendMessage(ctx, generateAwayReply(dc.away != nil, dc.srv.prefix())) uc := dc.upstream() if uc != nil { diff --git a/irc.go b/irc.go index 12732c4..d107cc1 100644 --- a/irc.go +++ b/irc.go @@ -299,7 +299,7 @@ func isNumeric(cmd string) bool { return true } -func generateAwayReply(away bool) *irc.Message { +func generateAwayReply(away bool, prefix *irc.Prefix) *irc.Message { cmd := irc.RPL_NOWAWAY desc := "You have been marked as being away" if !away { @@ -307,6 +307,7 @@ func generateAwayReply(away bool) *irc.Message { desc = "You are no longer marked as being away" } return &irc.Message{ + Prefix: prefix, Command: cmd, Params: []string{"*", desc}, }