mirror of
https://github.com/anope/anope.git
synced 2026-07-03 22:23:12 +02:00
Allow protocol modules to declare that they have no line/mode limit.
InspIRCd allows us to send infinite length lines and mode changes and will restack before sending to users.
This commit is contained in:
+2
-2
@@ -117,10 +117,10 @@ public:
|
||||
size_t MaxHost = 0;
|
||||
|
||||
/* The maximum number of bytes a line may have */
|
||||
unsigned MaxLine = 512;
|
||||
size_t MaxLine = 512;
|
||||
|
||||
/* The maximum number of modes we are allowed to set with one MODE command */
|
||||
unsigned MaxModes = 3;
|
||||
size_t MaxModes = 3;
|
||||
|
||||
/* The maximum length of a nickname. */
|
||||
size_t MaxNick = 0;
|
||||
|
||||
@@ -143,8 +143,8 @@ public:
|
||||
CanSVSLogout = true;
|
||||
CanCertFP = true;
|
||||
RequiresID = true;
|
||||
MaxModes = 20;
|
||||
MaxLine = 4096;
|
||||
MaxModes = 0;
|
||||
MaxLine = 0;
|
||||
}
|
||||
|
||||
size_t GetMaxListFor(Channel *c, ChannelMode *cm) override
|
||||
@@ -1512,8 +1512,6 @@ struct IRCDMessageCapab final
|
||||
IRCD->MaxChannel = tokvalue;
|
||||
else if (tokname == "MAXHOST")
|
||||
IRCD->MaxHost = tokvalue;
|
||||
else if (tokname == "MAXMODES")
|
||||
IRCD->MaxModes = tokvalue;
|
||||
else if (tokname == "MAXNICK")
|
||||
IRCD->MaxNick = tokvalue;
|
||||
else if (tokname == "MAXUSER")
|
||||
|
||||
+2
-2
@@ -338,7 +338,7 @@ static auto BuildModeStrings(StackerInfo *info)
|
||||
|
||||
for (it = info->AddModes.begin(), it_end = info->AddModes.end(); it != it_end; ++it)
|
||||
{
|
||||
if (++NModes > IRCD->MaxModes || (buf.length() + paramlen > IRCD->MaxLine - 100)) // Leave room for command, channel, etc
|
||||
if ((IRCD->MaxModes && ++NModes > IRCD->MaxModes) || (IRCD->MaxLine && buf.length() + paramlen > IRCD->MaxLine - 100)) // Leave room for command, channel, etc
|
||||
{
|
||||
ret.push_back({buf, parambuf});
|
||||
buf = "+";
|
||||
@@ -362,7 +362,7 @@ static auto BuildModeStrings(StackerInfo *info)
|
||||
buf += "-";
|
||||
for (it = info->DelModes.begin(), it_end = info->DelModes.end(); it != it_end; ++it)
|
||||
{
|
||||
if (++NModes > IRCD->MaxModes || (buf.length() + paramlen > IRCD->MaxLine - 100)) // Leave room for command, channel, etc
|
||||
if ((IRCD->MaxModes && ++NModes > IRCD->MaxModes) || (IRCD->MaxLine && buf.length() + paramlen > IRCD->MaxLine - 100)) // Leave room for command, channel, etc
|
||||
{
|
||||
ret.push_back({buf, parambuf});
|
||||
buf = "-";
|
||||
|
||||
Reference in New Issue
Block a user