From 6de0195d0a9bedb9dc7226e2c7f6b6f0598530bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Thu, 15 Aug 2024 19:41:08 +0200 Subject: [PATCH] irc: fix send of split messages when server option "anti_flood" set to 0 (closes #2172) --- CHANGELOG.md | 1 + src/plugins/irc/irc-server.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6330bb616..0a3d66f30 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -52,6 +52,7 @@ - core: fix crash when deleting a bar that has no items ([#2138](https://github.com/weechat/weechat/issues/2138)) - relay/api: fix crash when sending data to a remote buffer when the remote has been deleted ([#2157](https://github.com/weechat/weechat/issues/2157)) - irc, xfer: fix display of input prompt in IRC private buffers and DCC chat buffers ([#2128](https://github.com/weechat/weechat/issues/2128)) +- irc: fix send of split messages when server option "anti_flood" set to 0 ([#2172](https://github.com/weechat/weechat/issues/2172)) - core: fix generation of TOTP on FreeBSD ([#2171](https://github.com/weechat/weechat/issues/2171)) - core: apply buffer properties (options weechat.buffer.*) when a buffer name is changed - irc: fix property "short_name" of channel buffer when the joined channel has a different case than the `/join` command diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c index 4de8a05ed..64acc0538 100644 --- a/src/plugins/irc/irc-server.c +++ b/src/plugins/irc/irc-server.c @@ -2991,8 +2991,14 @@ irc_server_outqueue_send (struct t_irc_server *server) if (!server->outqueue[priority]) continue; - irc_server_outqueue_send_one_msg (server, server->outqueue[priority]); - irc_server_outqueue_free (server, priority, server->outqueue[priority]); + /* send all messages with anti_flood == 0, or just one */ + while (server->outqueue[priority]) + { + irc_server_outqueue_send_one_msg (server, server->outqueue[priority]); + irc_server_outqueue_free (server, priority, server->outqueue[priority]); + if (anti_flood > 0) + break; + } /* * continue to send for immediate priority (= 0),