From 37c1b3e29cc9edfb47cc6f75af5b8b56fbd64042 Mon Sep 17 00:00:00 2001 From: delthas Date: Mon, 15 Nov 2021 19:20:17 +0100 Subject: [PATCH] Return an empty CHATHISTORY TARGETS batch when in multi-upstream When on an unbound bouncer network downstream, we should return no targets (there are none, because there are no upstreams at all). When on a multi-upstream downstream, we should return no targets as we don't support multi-upstream CHATHISTORY TARGETS. Before this patch, we returned a misleading error message: :example.com 403 :Missing network suffix in name --- downstream.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/downstream.go b/downstream.go index 16e8413..39ecd6e 100644 --- a/downstream.go +++ b/downstream.go @@ -2359,6 +2359,12 @@ func (dc *downstreamConn) handleMessageRegistered(msg *irc.Message) error { return err } case "TARGETS": + if dc.network == nil { + // Either an unbound bouncer network, in which case we should return no targets, + // or a multi-upstream downstream, but we don't support CHATHISTORY TARGETS for those yet. + dc.SendBatch("draft/chathistory-targets", nil, nil, func(batchRef irc.TagValue) {}) + return nil + } if err := parseMessageParams(msg, nil, &boundsStr[0], &boundsStr[1], &limitStr); err != nil { return err }