summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorattilamolnar <attilamolnar@hush.com>2012-12-09 18:06:21 +0100
committerattilamolnar <attilamolnar@hush.com>2012-12-09 18:12:09 +0100
commit71d53e4883cdb83b50f43cd934ac9b4cd2b95383 (patch)
tree6097a440668bcceff9a2ae55b70ca93e41b0d2bd
parente3efb6a0f69203929d9042f9a7b14ba81cf71ddb (diff)
Remove ServerLimits::Finalise(), it's completely wrong
Truncate <limits:identmax>+1 long idents in User::ChangeIdent()
-rw-r--r--include/configreader.h15
-rw-r--r--src/configreader.cpp2
-rw-r--r--src/helperfuncs.cpp4
-rw-r--r--src/modules/m_ident.cpp2
-rw-r--r--src/users.cpp2
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();