* 988 <nick> <servername> :Closed for new connections
* 989 <nick> <servername> :Open for new connections
*/
+enum
+{
+ // InspIRCd-specific.
+ RPL_SERVLOCKON = 988,
+ RPL_SERVLOCKOFF = 989
+};
class CommandLockserv : public Command
{
flags_needed = 'o';
}
- CmdResult Handle (const std::vector<std::string> ¶meters, User *user)
+ CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
{
if (!locked.empty())
{
}
locked = parameters.empty() ? "Server is temporarily closed. Please try again later." : parameters[0];
- user->WriteNumeric(988, user->server->GetName(), "Closed for new connections");
+ user->WriteNumeric(RPL_SERVLOCKON, user->server->GetName(), "Closed for new connections");
ServerInstance->SNO->WriteGlobalSno('a', "Oper %s used LOCKSERV to temporarily disallow new connections", user->nick.c_str());
return CMD_SUCCESS;
}
flags_needed = 'o';
}
- CmdResult Handle (const std::vector<std::string> ¶meters, User *user)
+ CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
{
if (locked.empty())
{
}
locked.clear();
- user->WriteNumeric(989, user->server->GetName(), "Open for new connections");
+ user->WriteNumeric(RPL_SERVLOCKOFF, user->server->GetName(), "Open for new connections");
ServerInstance->SNO->WriteGlobalSno('a', "Oper %s used UNLOCKSERV to allow new connections", user->nick.c_str());
return CMD_SUCCESS;
}
locked.clear();
}
+ void OnModuleRehash(User* user, const std::string& param) CXX11_OVERRIDE
+ {
+ if (irc::equals(param, "lockserv") && !locked.empty())
+ locked.clear();
+ }
+
ModResult OnUserRegister(LocalUser* user) CXX11_OVERRIDE
{
if (!locked.empty())
Version GetVersion() CXX11_OVERRIDE
{
- return Version("Allows locking of the server to stop all incoming connections until unlocked again", VF_VENDOR);
+ return Version("Provides the LOCKSERV and UNLOCKSERV commands to lock the server and block all incoming connections until unlocked again", VF_VENDOR);
}
};