From 3d5ea005e064f261ed40932b027943f2f087c062 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Sat, 31 Mar 2018 10:06:22 +0200 Subject: [PATCH] irc: fix split of messages when server option "split_msg_max_length" is set to 0 (no split) (closes #1173) --- ChangeLog.adoc | 1 + src/plugins/irc/irc-message.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ChangeLog.adoc b/ChangeLog.adoc index 320fa2004..03fcbfebc 100644 --- a/ChangeLog.adoc +++ b/ChangeLog.adoc @@ -28,6 +28,7 @@ Improvements:: Bug fixes:: + * irc: fix split of messages when server option "split_msg_max_length" is set to 0 (no split) (issue #1173) * irc: send whole IRC message including IRCv3 tags in the signals irc_in, irc_in2, irc_raw_in and irc_raw_in2 (issue #787) * irc: fix memory leak when receiving a message with IRCv3 tags diff --git a/src/plugins/irc/irc-message.c b/src/plugins/irc/irc-message.c index 471033586..05a4a049f 100644 --- a/src/plugins/irc/irc-message.c +++ b/src/plugins/irc/irc-message.c @@ -20,6 +20,7 @@ */ #include +#include #include #include @@ -1001,6 +1002,13 @@ irc_message_split (struct t_irc_server *server, const char *message) { split_msg_max_length = IRC_SERVER_OPTION_INTEGER( server, IRC_SERVER_OPTION_SPLIT_MSG_MAX_LENGTH); + + /* + * split disabled? use a very high max_length so the message should + * never be split + */ + if (split_msg_max_length == 0) + split_msg_max_length = INT_MAX - 16; } else { @@ -1056,10 +1064,6 @@ irc_message_split (struct t_irc_server *server, const char *message) index_args = 1; } - /* split disabled? just add the message as-is */ - if (split_msg_max_length == 0) - goto end; - max_length_nick = (server && (server->nick_max_length > 0)) ? server->nick_max_length : 16; max_length_host = 1 + /* ":" */