diff options
author | attilamolnar <attilamolnar@hush.com> | 2012-12-09 18:06:21 +0100 |
---|---|---|
committer | attilamolnar <attilamolnar@hush.com> | 2012-12-09 18:12:09 +0100 |
commit | 71d53e4883cdb83b50f43cd934ac9b4cd2b95383 (patch) | |
tree | 6097a440668bcceff9a2ae55b70ca93e41b0d2bd | |
parent | e3efb6a0f69203929d9042f9a7b14ba81cf71ddb (diff) |
Remove ServerLimits::Finalise(), it's completely wrong
Truncate <limits:identmax>+1 long idents in User::ChangeIdent()
-rw-r--r-- | include/configreader.h | 15 | ||||
-rw-r--r-- | src/configreader.cpp | 2 | ||||
-rw-r--r-- | src/helperfuncs.cpp | 4 | ||||
-rw-r--r-- | src/modules/m_ident.cpp | 2 | ||||
-rw-r--r-- | src/users.cpp | 2 |
5 files changed, 4 insertions, 21 deletions
diff --git a/include/configreader.h b/include/configreader.h index 07c7a09f5..09d4e619d 100644 --- a/include/configreader.h +++ b/include/configreader.h @@ -102,21 +102,6 @@ class ServerLimits ServerLimits() : NickMax(31), ChanMax(64), MaxModes(20), IdentMax(12), MaxQuit(255), MaxTopic(307), MaxKick(255), MaxGecos(128), MaxAway(200) { } - - /** Finalises the settings by adding one. This allows for them to be used as-is - * without a 'value+1' when using the std::string assignment methods etc. - */ - void Finalise() - { - NickMax++; - ChanMax++; - IdentMax++; - MaxQuit++; - MaxTopic++; - MaxKick++; - MaxGecos++; - MaxAway++; - } }; struct CommandLineConf diff --git a/src/configreader.cpp b/src/configreader.cpp index 7d204bfb7..2577b83b8 100644 --- a/src/configreader.cpp +++ b/src/configreader.cpp @@ -648,8 +648,6 @@ void ServerConfig::Fill() OperSpyWhois = SPYWHOIS_SINGLEMSG; else OperSpyWhois = SPYWHOIS_NONE; - - Limits.Finalise(); } // WARNING: it is not safe to use most of the codebase in this function, as it diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp index 668cb95ec..5a8f55f11 100644 --- a/src/helperfuncs.cpp +++ b/src/helperfuncs.cpp @@ -339,8 +339,8 @@ bool IsNickHandler::Call(const char* n, size_t max) return false; } - /* too long? or not -- pointer arithmetic rocks */ - return (p < max); + /* too long? or not */ + return (p <= max); } /* return true for good ident, false else */ diff --git a/src/modules/m_ident.cpp b/src/modules/m_ident.cpp index 93a3d6549..4d66a739e 100644 --- a/src/modules/m_ident.cpp +++ b/src/modules/m_ident.cpp @@ -242,7 +242,7 @@ class IdentRequestSocket : public EventHandler /* Truncate the ident at any characters we don't like, skip leading spaces */ for (std::string::const_iterator i = buf.begin()+lastcolon+1; i != buf.end(); ++i) { - if (result.size()+1 == ServerInstance->Config->Limits.IdentMax) + if (result.size() == ServerInstance->Config->Limits.IdentMax) /* Ident is getting too long */ break; diff --git a/src/users.cpp b/src/users.cpp index e55c7e099..30df3c153 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -1483,7 +1483,7 @@ bool User::ChangeIdent(const char* newident) std::string quitstr = ":" + GetFullHost() + " QUIT :Changing ident"; - this->ident.assign(newident, 0, ServerInstance->Config->Limits.IdentMax + 1); + this->ident.assign(newident, 0, ServerInstance->Config->Limits.IdentMax); this->InvalidateCache(); |