if (exclamation != 1 || atsign != 1)
return false;
- if (mask.length() > 250)
+ if (mask.length() > ServerInstance->Config->Limits.GetMaxMask())
return false;
return true;
}
/* true for valid channel name, false else */
-bool IsChannelHandler::Call(const std::string& chname)
+bool InspIRCd::DefaultIsChannel(const std::string& chname)
{
if (chname.empty() || chname.length() > ServerInstance->Config->Limits.ChanMax)
return false;
}
/* true for valid nickname, false else */
-bool IsNickHandler::Call(const std::string& n)
+bool InspIRCd::DefaultIsNick(const std::string& n)
{
if (n.empty() || n.length() > ServerInstance->Config->Limits.NickMax)
return false;
}
/* return true for good ident, false else */
-bool IsIdentHandler::Call(const std::string& n)
+bool InspIRCd::DefaultIsIdent(const std::string& n)
{
if (n.empty())
return false;
return total + subtotal;
}
-const char* InspIRCd::Format(va_list &vaList, const char* formatString)
+std::string InspIRCd::Format(va_list& vaList, const char* formatString)
{
static std::vector<char> formatBuffer(1024);
formatBuffer.resize(formatBuffer.size() * 2);
}
- return &formatBuffer[0];
+ return std::string(&formatBuffer[0]);
}
-const char* InspIRCd::Format(const char* formatString, ...)
+std::string InspIRCd::Format(const char* formatString, ...)
{
- const char* ret;
+ std::string ret;
VAFORMAT(ret, formatString, formatString);
return ret;
}
// This is the default format used by asctime without the terminating new line.
if (!format)
- format = "%a %b %d %H:%M:%S %Y";
+ format = "%a %b %d %Y %H:%M:%S";
char buffer[512];
if (!strftime(buffer, sizeof(buffer), format, timeinfo))
return buffer;
}
-std::string InspIRCd::GenRandomStr(int length, bool printable)
+std::string InspIRCd::GenRandomStr(unsigned int length, bool printable)
{
char* buf = new char[length];
GenRandom(buf, length);
std::string rv;
rv.resize(length);
- for(int i=0; i < length; i++)
+ for(size_t i = 0; i < length; i++)
rv[i] = printable ? 0x3F + (buf[i] & 0x3F) : buf[i];
delete[] buf;
return rv;
}
// This is overridden by a higher-quality algorithm when SSL support is loaded
-void GenRandomHandler::Call(char *output, size_t max)
+void InspIRCd::DefaultGenRandom(char* output, size_t max)
{
for(unsigned int i=0; i < max; i++)
#ifdef _WIN32
output[i] = random();
#endif
}
-
-ModResult OnCheckExemptionHandler::Call(User* user, Channel* chan, const std::string& restriction)
-{
- unsigned int mypfx = chan->GetPrefixValue(user);
- char minmode = 0;
- std::string current;
-
- irc::spacesepstream defaultstream(ServerInstance->Config->ConfValue("options")->getString("exemptchanops"));
-
- while (defaultstream.GetToken(current))
- {
- std::string::size_type pos = current.find(':');
- if (pos == std::string::npos)
- continue;
- if (!current.compare(0, pos, restriction))
- minmode = current[pos+1];
- }
-
- PrefixMode* mh = ServerInstance->Modes->FindPrefixMode(minmode);
- if (mh && mypfx >= mh->GetPrefixRank())
- return MOD_RES_ALLOW;
- if (mh || minmode == '*')
- return MOD_RES_DENY;
- return MOD_RES_PASSTHRU;
-}