From ad2f568a7cbe827ba8cee4aa85eb5856b104e523 Mon Sep 17 00:00:00 2001 From: lotodore Date: Thu, 22 Nov 2007 21:37:52 +0000 Subject: [PATCH] Fixed issue with irc auto rename. --- src/net/common/ircthread.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/net/common/ircthread.cpp b/src/net/common/ircthread.cpp index 52fe5dbc..8ae76310 100644 --- a/src/net/common/ircthread.cpp +++ b/src/net/common/ircthread.cpp @@ -32,6 +32,9 @@ using namespace std; #define IRC_WAIT_TERMINATION_MSEC 500 #define IRC_MAX_RENAME_TRIES 5 +#define IRC_RENAME_ATTACH "|Lobby" +#define IRC_MAX_NICK_LEN 16 + struct IrcContext { @@ -55,9 +58,11 @@ void irc_auto_rename_nick(irc_session_t *session) { // Automatically rename the nick on collision. // First: Try to append the string "Lobby". - if (context->nick.find("|Lobby") == string::npos) + if (context->nick.find(IRC_RENAME_ATTACH) == string::npos) { - context->nick = context->nick + "|Lobby"; + if (context->nick.length() + (sizeof(IRC_RENAME_ATTACH)) > IRC_MAX_NICK_LEN) + context->nick = context->nick.substr(0, IRC_MAX_NICK_LEN - (sizeof(IRC_RENAME_ATTACH))); + context->nick = context->nick + IRC_RENAME_ATTACH; } else {