/*
* InspIRCd -- Internet Relay Chat Daemon
*
- * Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org>
- * Copyright (C) 2008 Craig Edwards <craigedwards@brainbox.cc>
+ * Copyright (C) 2018 linuxdaemon <linuxdaemon.irc@gmail.com>
+ * Copyright (C) 2017, 2019 Matt Schatz <genius3000@g3k.solutions>
+ * Copyright (C) 2013, 2017-2018, 2020 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2012-2013, 2016 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be>
+ * Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
+ * Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org>
+ * Copyright (C) 2008-2009 Robin Burchell <robin+git@viroteck.net>
* Copyright (C) 2008 Thomas Stagner <aquanight@inspircd.org>
- * Copyright (C) 2008 Robin Burchell <robin+git@viroteck.net>
+ * Copyright (C) 2008 Craig Edwards <brain@inspircd.org>
*
* This file is part of InspIRCd. InspIRCd is free software: you can
* redistribute it and/or modify it under the terms of the GNU General Public
class RLine : public XLine
{
public:
-
- /** Create a R-line.
- * @param s_time The set time
- * @param d The duration of the xline
- * @param src The sender of the xline
- * @param re The reason of the xline
- * @param regex Pattern to match with
- * @
- */
RLine(time_t s_time, unsigned long d, const std::string& src, const std::string& re, const std::string& regexs, dynamic_reference<RegexFactory>& rxfactory)
: XLine(s_time, d, src, re, "R")
, matchtext(regexs)
regex = rxfactory->Create(regexs);
}
- /** Destructor
- */
~RLine()
{
delete regex;
}
catch (ModuleException &e)
{
- ServerInstance->SNO->WriteToSnoMask('a',"Could not add RLINE: " + e.GetReason());
+ ServerInstance->SNO->WriteToSnoMask('a', "Could not add R-line: " + e.GetReason());
}
if (r)
{
if (!duration)
{
- ServerInstance->SNO->WriteToSnoMask('x',"%s added permanent R-line for %s: %s", user->nick.c_str(), parameters[0].c_str(), parameters[2].c_str());
+ ServerInstance->SNO->WriteToSnoMask('x', "%s added permanent R-line for %s: %s", user->nick.c_str(), parameters[0].c_str(), parameters[2].c_str());
}
else
{
- ServerInstance->SNO->WriteToSnoMask('x', "%s added timed R-line for %s to expire in %s (on %s): %s",
+ ServerInstance->SNO->WriteToSnoMask('x', "%s added timed R-line for %s, expires in %s (on %s): %s",
user->nick.c_str(), parameters[0].c_str(), InspIRCd::DurationString(duration).c_str(),
InspIRCd::TimeString(ServerInstance->Time() + duration).c_str(), parameters[2].c_str());
}
}
else
{
- user->WriteNotice("*** R-line " + parameters[0] + " not found in list, try /stats R.");
+ user->WriteNotice("*** R-line " + parameters[0] + " not found on the list.");
}
}
Version GetVersion() CXX11_OVERRIDE
{
- return Version("RLINE: Regexp user banning.", VF_COMMON | VF_VENDOR, rxfactory ? rxfactory->name : "");
+ return Version("Adds the /RLINE command which allows server operators to prevent users matching a nickname!username@hostname+realname regular expression from connecting to the server.", VF_COMMON | VF_VENDOR, rxfactory ? rxfactory->name : "");
}
ModResult OnUserRegister(LocalUser* user) CXX11_OVERRIDE
if (stats.GetSymbol() != 'R')
return MOD_RES_PASSTHRU;
- ServerInstance->XLines->InvokeStats("R", 223, stats);
+ ServerInstance->XLines->InvokeStats("R", stats);
return MOD_RES_DENY;
}