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

git-svn-id: file:///srv/svn/repo/suika/trunk@688 f0ae65fe-ee39-954e-97ec-027ff2717ef4
This commit is contained in:
delthas 2021-11-15 20:30:04 +00:00
parent ae9ecc0718
commit d90513bee4

View File

@ -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
}