1
0
mirror of https://github.com/anope/anope.git synced 2026-06-30 17:26:39 +02:00

Rewrote the config reader to better handle invalid configs.

This prevents Anope from exploding when /os reload has errors.
This commit is contained in:
Adam
2010-08-17 19:27:37 -04:00
parent 2575008baa
commit e65d8b2f3d
195 changed files with 3133 additions and 3249 deletions
+10 -10
View File
@@ -55,7 +55,7 @@ class CommandCSSetMLock : public Command
if ((cm = ModeManager::FindChannelModeByChar(*ch)))
{
if (cm->Type == MODE_STATUS || cm->Type == MODE_LIST || !cm->CanSet(u))
notice_lang(Config.s_ChanServ, u, CHAN_SET_MLOCK_IMPOSSIBLE_CHAR, *ch);
notice_lang(Config->s_ChanServ, u, CHAN_SET_MLOCK_IMPOSSIBLE_CHAR, *ch);
else if (add)
{
ci->RemoveMLock(cm->Name);
@@ -81,14 +81,14 @@ class CommandCSSetMLock : public Command
ci->SetMLock(cm->Name, false);
}
else
notice_lang(Config.s_ChanServ, u, CHAN_SET_MLOCK_UNKNOWN_CHAR, *ch);
notice_lang(Config->s_ChanServ, u, CHAN_SET_MLOCK_UNKNOWN_CHAR, *ch);
}
/* We can't mlock +L if +l is not mlocked as well. */
if (ModeManager::FindChannelModeByName(CMODE_REDIRECT) && ci->HasMLock(CMODE_REDIRECT, true) && !ci->HasMLock(CMODE_LIMIT, true))
{
ci->RemoveMLock(CMODE_REDIRECT);
notice_lang(Config.s_ChanServ, u, CHAN_SET_MLOCK_L_REQUIRED);
notice_lang(Config->s_ChanServ, u, CHAN_SET_MLOCK_L_REQUIRED);
}
/* Some ircd we can't set NOKNOCK without INVITE */
@@ -96,14 +96,14 @@ class CommandCSSetMLock : public Command
if (ModeManager::FindChannelModeByName(CMODE_NOKNOCK) && ircd->knock_needs_i && ci->HasMLock(CMODE_NOKNOCK, true) && !ci->HasMLock(CMODE_INVITE, true))
{
ci->RemoveMLock(CMODE_NOKNOCK);
notice_lang(Config.s_ChanServ, u, CHAN_SET_MLOCK_K_REQUIRED);
notice_lang(Config->s_ChanServ, u, CHAN_SET_MLOCK_K_REQUIRED);
}
/* Since we always enforce mode r there is no way to have no
* mode lock at all.
*/
if (!get_mlock_modes(ci, 0).empty())
notice_lang(Config.s_ChanServ, u, CHAN_MLOCK_CHANGED, ci->name.c_str(), get_mlock_modes(ci, 0).c_str());
notice_lang(Config->s_ChanServ, u, CHAN_MLOCK_CHANGED, ci->name.c_str(), get_mlock_modes(ci, 0).c_str());
/* Implement the new lock. */
if (ci->c)
@@ -114,19 +114,19 @@ class CommandCSSetMLock : public Command
bool OnHelp(User *u, const Anope::string &)
{
notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_MLOCK, "SET");
notice_help(Config->s_ChanServ, u, CHAN_HELP_SET_MLOCK, "SET");
return true;
}
void OnSyntaxError(User *u, const Anope::string &)
{
// XXX
syntax_error(Config.s_ChanServ, u, "SET", CHAN_SET_SYNTAX);
syntax_error(Config->s_ChanServ, u, "SET", CHAN_SET_SYNTAX);
}
void OnServHelp(User *u)
{
notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_MLOCK);
notice_lang(Config->s_ChanServ, u, CHAN_HELP_CMD_SET_MLOCK);
}
};
@@ -139,14 +139,14 @@ class CommandCSSASetMLock : public CommandCSSetMLock
bool OnHelp(User *u, const Anope::string &)
{
notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_MLOCK, "SASET");
notice_help(Config->s_ChanServ, u, CHAN_HELP_SET_MLOCK, "SASET");
return true;
}
void OnSyntaxError(User *u, const Anope::string &)
{
// XXX
syntax_error(Config.s_ChanServ, u, "SASET", CHAN_SASET_SYNTAX);
syntax_error(Config->s_ChanServ, u, "SASET", CHAN_SASET_SYNTAX);
}
};