Merge pull request #411 from slingamn/responsebuffer

address #391
This commit is contained in:
Daniel Oaks 2019-02-22 07:21:32 +10:00 committed by GitHub
commit 56e673559b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 3 deletions

@ -62,8 +62,11 @@ func performNickChange(server *Server, client *Client, target *Client, newnick s
if hadNick {
target.server.snomasks.Send(sno.LocalNicks, fmt.Sprintf(ircfmt.Unescape("$%s$r changed nickname to %s"), whowas.nick, nickname))
target.server.whoWas.Append(whowas)
rb.Add(nil, origNickMask, "NICK", nickname)
for friend := range target.Friends() {
friend.Send(nil, origNickMask, "NICK", nickname)
if friend != client {
friend.Send(nil, origNickMask, "NICK", nickname)
}
}
}

@ -142,10 +142,10 @@ func (rb *ResponseBuffer) flushInternal(final bool, blocking bool) error {
}
useLabel := rb.target.capabilities.Has(caps.LabeledResponse) && rb.Label != ""
// use a batch if we have a label, and we either currently have multiple messages,
// use a batch if we have a label, and we either currently have 0 or 2+ messages,
// or we are doing a Flush() and we have to assume that there will be more messages
// in the future.
useBatch := useLabel && (len(rb.messages) > 1 || !final)
useBatch := useLabel && (len(rb.messages) != 1 || !final)
// if label but no batch, add label to first message
if useLabel && !useBatch && len(rb.messages) == 1 && rb.batchID == "" {